What coding language should I learn?
V-P
State College, PA Member
I have a summer full of free time and it's a good time to do something productive. I want to learn something that would be helpful at some point in my life. I want to stick web development. I know next to nothing (other then some basic HTML) about coding so you can consider me an absolute noob. What do you think would be a good place to start?
0
Comments
w3schools.com
I would not move on to any other language until you've got a non-reference book for that language, a mentor available to answer questions (or good forum...), and plenty of time to dedicate. Java would be the best next-step-up language.
Edit: Oh yeah; learn mySQL too, if you don't already know it. Php makes SO many tasks trivial (like creating hash tokens, and parameterization), It's not even funny. The same things in a language like objective-c will make you want to eat your own head.
Clearly, I am a nerd, because I see large amounts of humor in this comment. :bigggrin:
That was the worst class of my entire college career.
There are people who stick with 1 and are totally happy.
There are people who know enough of every language are happier. :bigggrin: Just sayin'
Php is a serious investment. html5/javascript are a summer learning adventure. Python is awesome, if you are an engineer. Really all this comes down to, what is that you want to do with the code that you learn? If you aren't sure, then just look at your own personality: are you ready for a serious investment in programming, do you like to be extremely analytic, or is this more just a hobby for fun?
No matter what you choose, just stay dedicated even if it seems boring as possible. It will pay off. Icrontic members promise!
As a person who's job is centered around .NET/Java development at this point, I feel like I can give a good recommendation too.
I love Python. I cannot stress how freakin' awesome it is. Of all the languages I've had exposure to (PHP, Java, C#/VB.NET, Perl, etc.), there's just something fundamentally wonderful about Python. Depending on your personal preference for syntax you might get the same feeling out of Ruby (I love whitespace, it makes things easier for me to parse. Some folks prefer {}. Those folks are wrong!).
I program for fun in Python. Seriously. For fun. It rarely gets in my way and when I think it is, its just me getting in my own way.
^This
Javascript is baller and there's a good market demand for jS devs.
My office is all into C#/.NET stuff. If you'd like to see the tools we use, check this out. We use FubuMVC instead of ASP .NET MVC and a host of other open source tools.
I like Ruby on Rails.
It totally comes down to personal preference and what you want to do with it.
Here's a hint: if you did and understood how bad that is, you'd set yourself on fire and run around screaming in a panic as you realized these people may someday write the control software for airplanes.
So yeah. Get a SOLID grounding in programming concepts and principles first. Worry about languages after that.
This is exactly true. Until I took my programming foundations course at Georgia Tech (where we were never allowed to write anything but pseudocode) I was a very linear thinker when it came to programming. Nothing I took at UC, including Data Structures, even came close in really granting an understanding of what good code really is.
Once you understand how to program, you can essentially program in any language with just a short introduction to the basics of that language and a good reference book.
Before I took the foundations course all I could write in was BASIC and C, and the code was very procedural. After programming foundations, I have since coded in C++, Java, VB.NET, and php without really needing to "learn" those languages.
Yeah, it's not very glamorous to just learn the foundations and to stick to pseudocode, but when it comes to actual knowledge, it beats the hell out of parroting "Hello World" in your language of choice.
I guess that's a long way of saying, RootWyrm is exactly correct.
It's amazing how few developers understand design patterns. Add these two books to your summer reading list:
Domain Driven Design by Eric Evans
Design Patterns: Elements of Reusable Object-Oriented Software by Gamma, Helm, Johnson and Vlissides
Both will help you in the long run. They're pretty much required reading for all our hires.
On another note, I've began learning PHP but I'll be putting that on hold as soon as I find a good source to learn pseudocode. I'll read up on python in the mean time.
Good sources to learn pc? k thnx bye
Also the good folk here seem to think it's better to learn a language first then pseudocode. Arguements?
My point was that he should learn one thoroughly. Then you can move to other languages much easier.
Start somewhere simple. You might start by writing the steps to making a peanut butter and jelly sandwich.
Coding is about turning these steps into syntax that can be executed by whatever device they are put into (computers, people, flying giraffes).
Programming is about creating and ordering these steps in the 'best' possible way.
(the point being that while it may seem like a simple task to do X, fully doing the pseudocode will allow you to see the steps that you may miss if you jumped right into the task).
Shwaip is making an excellent point. We all start off with the idea that "Something like this is so simple!"
Then we start working on the problem (or program, in this case). We get done with it, think we've thought of everything, show it to a test group. 30 seconds in, it doesn't work and they're confused. why wouldn't it work? I mean, they just checked all the boxes, isn't that what they're supposed to do? What do you mean I'm supposed to insert a number here and not random ASCII characters? Oh, you mean I'm not allowed to use non-english characters? Your web app can't handle that?
This is just a tip of the iceberg but you're going to experience these things. Even if you're writing stuff for yourself, you'll put it down and come back to it in a month or six and totally forget how things work and break it in 30 seconds yourself.
In 2001-2002, I taught myself PHP in my spare time while attending undergrad and working full time. It's very easy to learn, and I earned side money creating very basic websites using nothing but the listed technologies for local small businesses.
If you're looking into doing web stuff, you'd be wise to look into PHP, how to use a MySQL database with PHP, and how to do layouts with CSS.
Resources I used 10 years ago that are still good:
PHP: http://www.w3schools.com/php/php_intro.asp
MySQL with PHP: (part of the above) http://www.w3schools.com/php/php_mysql_intro.asp
CSS layouts: I learned this from many sources - when I compiled all of the info, I wrote myself a tutorial and posted it on a blog I had at the time, so I could teach myself again when I inevitably forgot. Here's my notes from 2006. It gets a little into XHTML, which is handy to know as well.
One of my assignments was once to write the psuedocode for the Disney monorail system. We were told the distance between stops, the length of each section, and that there could only be one train on a section at any given time. The objective was to have as many trains in the system as possible to move as many passengers as possible as quickly as possible from any given location to another in the system.
I'll spoiler-alert some of the things that happened, just in case some of you want to guess at some of the problems you'd need to solve in this example.