I know Court designs webpages and has done so in the past utilizing php, etc. I also know Jono or alfy does C++ Programming. I'm looking to go to school when i get out of the Marine Corps in a few months for Computer Science, and I'd like to start learning webpage design (other than just html, i.e. css/php, etc), as well as C++.
I'm asking for imformation on books or webpages I should look at to start learning as well as what programs you guys recommend using for this. I do have Microsoft Visual C++ on my computer at home, and have dabbled with html in the past creating webpages for old clans when I was a younger gamer.
Any help is appreciated from anyone (not just Court, Alfy, Jono), on the subject at hand.
Something that can aid in your studies is spending an hour or two a night reading other people's questions and problems. After a month or two you'll be answering questions instead of just lurking and it will re-enforce the concepts. I did this for I.T. and got 45k/yr job at 19 years old with no college degree. I just became a know-it-all and obsessed with knowing everything regarding Server 2008, Active Directory, and Exchange.
C++ is the reason I dropped out of college. Alfy codes as I recall.
The first languages they will probably make you learn are Java and HTML. I also know Perl was on my plate for 3rd semester (if I had made it that far.) I'd probably brush up on these because when you're acually in the semester trying to learn these languages, they BADLY start to bleed together. For instance and I've tried to add strings to HTML at 3 in the morning and had a very difficult time...
Add- I don't know if any books made it easier for me. Learning these languages are like learning foreign languages. You spend copious amounts of time trying to learn them, then, as I understand, it just clicks. This never occured for me. I seriously felt like I was learning Spanish, French, German and Chinese my first semester, and if you spell anything wrong, the entire program is fucked. Best thing you can do is just get some initial instruction and then try to code. The folks in my class who got it atleast had a solid foundation of what each command meant and what it did.
My 2 cents are along the same as what Jono is saying. Just dive in and start doing it. The more time you spend doing it the more you are going to learn.
Yeah, I've been experimenting with CSS and actually am finding it to be somewhat simple (with all that I currently know), and really hope to learn more about it.
Personally, I can't speak as a plus for college. In my opinion, going to school for software development really doesn't prepare you much for the real dev world, at least in my experiences. Of course, I dropped out of a community college, but a lot of my professors also taught a 4 year school as well. Their level of knowledge of real development was one of the reasons I dropped out. The rest of my college experiences were good; I have used more of that than I have any of the crappy tech classes. However, the whole GI bill isn't something to waste.
I have learned more just by jumping in head first into languages. I had some basic logic and critical thinking classes, and understood how a computer works on a hardware level. That part there was the biggest help learning some of the lower level languages, C++, Objective C, and to some degree, C#. Learning how those languages work will immensely help you in other languages. Understanding memory management was also a huge help for me. Early mobile dev made me way more aware of every object I created, and what kind of memory footprint it was creating, and destroying the object (or releasing it) when I was finished with it.
I would also recommend learning some sort of SQL, and best practices, and how relational databases work. There is the mindset I try to stay in of this: All software is basically a way to display some sort of data to a user in meaningful way. The way you store this data is crucial to how your software works.
I wouldn't start with a particular language really. If you are starting from zero, you might want to look into basics of software development (for loops, while loops, if/then statements, case statements, ect.) This is something that isn't going to change much across languages. Getting that part of software down is going to make learning languages easier in general.
With all that said, software is entering a matured stage. I personally predict, and others will most likely argue with me on this, that software development is going to become a fairly useless skill in 10 years or so. Computing will have advanced to the point where the computers themselves are doing all the dev work. Of course, this is all looking into my crystal ball, and guessing.
I cannot possibly recommend http://codeacademy.com enough for people that are just getting into programming for the web. You can start coding without installing anything, so you can focus on what you're doing more than what you're doing it with (you can and will have to deal with the latter later). Plus, JavaScript is baller as hell.
As for school, I think it is great that you're considering getting a computer science degree. The degree itself will open up some additional opportunities for you, and there is no better way to completely immerse yourself in learning about computing. The more you know about computing, the better of a programmer you will. Unlike Alfy, I absolutely recommend this path for any person that is serious about making a career out of computing and has the time, money, and dedication to do the learning.
That all said, the degree is just a piece of paper, and any idiot can get it. I know this because I graduated with a lot of idiots. It will provide you with more opportunities than you would have otherwise had, but it will not, by itself, provide you with *any* good opportunities out of the gate.
College will *not* teach you what you need to know to be a programmer, and it is absolutely *not* a requirement to be a successful programmer. For every story of a friend of mine that graduated with a comp sci degree and is now a successful programmer, I have another story of a friend that dove right into programming on their own time and not only learned to program but also built their first software product in less than 6 months.
If you're interested in learning about areas of computing that you will never have a realistic opportunity to learn about again, and you are eager to take advantage of the coops, independent studies, internships, and networking opportunities that will exist for you, or even if the idea of sitting around with a few likeminded students and hacking on something for the sake of hacking on it, then a computer science degree is great.
The value that you will get from college is directly proportional to your interest in the process rather than the degree.
When you get a chance sometime, we should talk on skype. This isn't really the best method of communication for relaying the vast amount of information you may need to get started.
Above is the link to the program with the three different options. Any ideas or suggestions would be great. I've started messing around with css but clearly am an amateur currently at it.
Court, do you ever use Content Management Services when webpage designing such as Wordpress?
My one friend who does webpage coding (html, css, php, etc) says he recommended Wordpress. Up until this point, I often thought people hand coded every bit of code in their webpage design. I then wondered how they got pages looking so damn sexy. I looked into Wordpress, and it seems with a template, you can do anything.
Any recommendations for webpage design (hand coding, or CMS?)
Personally, I like CMS's for most basic websites. Drupal, while bulky, is good at getting to the 90% mark for most basic sites, and can often get to the 100% mark with some modules. However, don't think that all sites need a CMS, or what ever tech is popular at the time, or that drupal (insert any CMS here) is the only way to go. Have the problem/solution mindset is the best way to approach anything dev related IMO. If you only know a hammer, everything is gonna look like a nail, to use the old saying.
Court brings up good points about school, and the stuff I took from college were not really the things that I got from a class. (Forbbiden Donut is one of them... :P) The networking potential is huge by itself.
The only thing I would recommend is get used to using SVN/git, and bug tracking systems. I never got used to doing that, and that has put me at a huge disadvantage at this point in my career. I would be what one would call a "cowboy programmer" as of right now. Not something I am proud of, but it is what it is.
Learn git. The very first line of code you write should be a part of a git repository. Every tutorial you follow, every small site you make, every one-off script you make. They should all be version controlled in git. There are a ton of other version control systems out there (e.g. mercurial, svn, preforce, cvs, etc), but git is by far the most popular amongst new tech and active open source projects. This sort of thing is going to make a bit more sense in the context of a voice chat rather than forum posts.
Wordpress is a flexible blogging platform that has a massive community, so for those reasons it is a useful tool to have under your belt. Drupal is a much better example of a generalist CMS in PHP, and it also has a big community.
Ultimately, neither of those tools are perfect for all jobs. They both have absolutely horrendous code bases as well, so the big allure is definitely in the ability to get stuff done quickly rather than to do stuff well (which isn't to say that the former is necessarily worse than the latter).
Also, been in the web dev world again the past few years. Been on a huge, longwinded project that started with the possibility of running the software on servers that might not have a current version of PHP (at the time, still running PHP 4). Let me tell you what, next time I ever hear that from anyone, I am tucking tail and running from it.
I should not still be using the old as balls original mysql api in 2012.
Wait, they're still running PHP 4? What. The. Fuck. PHP 4 was retired *four years ago*. What app is this? I'd like to make sure I never use it given that it is guaranteed to be insecure.
Court, can you offer some opinions on the course program I listed with the link to Cal State? I'm sure you understand more about the three types of programs they offer.
It really just depends on what you're interested in. I personally have very little interest in systems engineering and networking, so it would be an obvious choice for me. If you want to program, then pursue the programming concentration.
Court: Yeah, I was told that it had to run on any server on the web, which forced me into using old calls like that. I am running on PHP 5 in my test environment, and now, a few years later, I am using more of the php 5 calls. But it was shitty start, that is for sure. What really makes me excited is to know once we launch, I immediately get to start version 2, which is gonna use PDO and prepared statements, and restructure my code differently. But that is the bed I have made, my own fault really.
@Gachi: Do you have time on Sunday evening for a call to discuss this further?
@Alfy: But... code written for PHP 4 won't necessarily run on PHP 5.4, so that whole "any server on the web" thing is kind of a misnomer. Ah well, sucks either way.
Do yourself a favor: For version 2, use a framework, and write it for 5.4.
If you're still on the East Coast so it's about a 6 hour time difference so I cant guarantee I'd be available. I've got the pdf ebook for C++ Primer Plus Vol 6.0 but haven't started to read it yet. I really want to start building programs lol.
I just read a news article on the internet about nerdy jobs, lol.
Anyways, it said that Software Programming was estimated to go up 12% in the job market from 2010 to 2020, but thats average because a lot of jobs get outsourced overseas for cheaper costs.
Then it said a Network Administrator was estimated to go up 28% in the job market.
I was also told by a Sgt of mine who is a very good Network Administrator (did this before being laid off a few years back causing him to re-enlist), that Server Administrator was the way to go, not Network.
Those statistics are also from the Department of Labor.
@Governor Yeah, I been looking at the Yii framework; seems to be pretty nice and fast, and can get out of my way if I need to. Haven't played around with it too much, but once I get to "launch," I am planning on spending a few week really researching it.
@Alfy The big problem with a first-gen framework like yii is that it doesn't use any of the added functionality from 5.3 or 5.4. It is still built for and supports a non-standard version of PHP. Of course you could use any functionality you want, and it does appear that yii at least runs on 5.3 (I have no clue about 5.4), but if you're going to get into a framework this late in the game, you might as well get into a second generation framework that is built for 5.3+. Symfony 2 is a good example of such a framework. Lithium is another example. Zend Framework 2 is as well, but that is still in beta, so the documentation is meh.
I have a degree in networking. It's all but useless, i know a lot of companies that are looking more dor the self taught admins now. Any idiot (as gov said can get a degree) those that are self taught are more likely to troubleshoot better. If you go into networking get the degree but also get the certs ccna, A+, microsoft proffesional. I use exam cram for certs. Cheaper then taking a class and the books are an easy read.