What coding language should I learn?

V-PV-P State College, PA Member
edited June 2011 in Internet & Media
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?
«13

Comments

  • PirateNinjaPirateNinja Icrontian
    edited June 2011
    HTML5 and Javascript. :D
  • V-PV-P State College, PA Member
    edited June 2011
    Know any good sites to start learning? After a quick google search I found tons of sites that look like they'd all be helpful so I guess what I'm asking what are your preferred websites? I like to stay away from tutorials that teach me how to do SPECIFIC things like an HTML5 photo gallery just because what I learn from it is very limited.
  • ButtersButters CA Icrontian
    edited June 2011
    tizag.com
    w3schools.com
  • PirateNinjaPirateNinja Icrontian
    edited June 2011
    Lynda.com is awesome. Otherwise I'd roll over to the local bookstore and pick up a couple books that look like they appeal to your learning style.
  • CBCB Ƹ̵̡Ӝ̵̨̄Ʒ Der Millionendorf- Icrontian
    edited June 2011
    I'd start by learning Pseudocode
  • sharkydartsharkydart KY Icrontian
    edited June 2011
    Php is probably the best and easiest language for you to learn on your own. The online documentation for it, and the typically associated technologies (setting up Apache and mysql servers) doesn't really get any better. Look up information on coding methods and best practices as well. Read up on Object-Oriented Development, and google "obfuscated code" to see what variables and code structure shouldn't look like.

    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.
  • GHoosdumGHoosdum Icrontian
    edited June 2011
    sharkydart wrote:
    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:
  • mertesnmertesn I am Bobby Miller Yukon, OK Icrontian
    edited June 2011
    Forget all that. Learn Ada :D
  • UPSLynxUPSLynx :KAPPA: Redwood City, CA Icrontian
    edited June 2011
    I learned Ada in college! They used it to teach data structures.

    That was the worst class of my entire college career.
  • AnnesAnnes Tripped Up by Libidos and Hubris Alexandria, VA Icrontian
    edited June 2011
    Since everyone is giving conflicting advice I'm going to throw my hat behind Python.
  • shwaipshwaip bluffin' with my muffin Icrontian
    edited June 2011
    python's a good choice. I think for web stuff php is probably a better choice. Just pick one and learn the shit out of it.
  • ButtersButters CA Icrontian
    edited June 2011
    shwaip wrote:
    Just pick one and learn the shit out of it.

    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'
  • V-PV-P State College, PA Member
    edited June 2011
    What are some of the uses for python? I'm familiar with the others.
  • primesuspectprimesuspect Beepin n' Boopin Detroit, MI Icrontian
    edited June 2011
    Sites that do a lot of math; things like algorithmic-intensive software (Google, for example, is very Python-centric, as a company).
  • PirateNinjaPirateNinja Icrontian
    edited June 2011
    I recommended HTML5/javascript because it holds a definite place in the future and because of your background and its apparent future with M$.
    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!
  • MiracleManSMiracleManS Chambersburg, PA Icrontian
    edited June 2011
    Annes wrote:
    Since everyone is giving conflicting advice I'm going to throw my hat behind Python.

    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.
  • BuddyJBuddyJ Dept. of Propaganda OKC Icrontian
    edited June 2011
    HTML5 and Javascript. :D

    ^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.
  • RootWyrmRootWyrm Icrontian
    edited June 2011
    Screw languages; learn concepts and principles first. There is a dire shortage of people who know what the hell they're doing. No, seriously. Do you have ANY idea how many college graduate "programmers" out there don't even know what the purpose of an array is, or how to use one?
    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.
  • mertesnmertesn I am Bobby Miller Yukon, OK Icrontian
    edited June 2011
    RootWyrm wrote:
    Screw languages; learn concepts and principles first. There is a dire shortage of people who know what the hell they're doing. No, seriously. Do you have ANY idea how many college graduate "programmers" out there don't even know what the purpose of an array is, or how to use one?
    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.
    Best advice ever. Seriously.
  • CBCB Ƹ̵̡Ӝ̵̨̄Ʒ Der Millionendorf- Icrontian
    edited June 2011
    That's why I recommended learning pseudocode first.
  • GHoosdumGHoosdum Icrontian
    edited June 2011
    RootWyrm wrote:
    Screw languages; learn concepts and principles first. There is a dire shortage of people who know what the hell they're doing. No, seriously. Do you have ANY idea how many college graduate "programmers" out there don't even know what the purpose of an array is, or how to use one?
    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.
  • BuddyJBuddyJ Dept. of Propaganda OKC Icrontian
    edited June 2011
    RealTalkâ„¢

    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.
  • V-PV-P State College, PA Member
    edited June 2011
    Ok, so the general consensus is learn "pseudocode" first. I've never heard the term but I think I know what it means (assuming it's just the word pseudo put together with code :)). However, I'm drawing a blank on how to go about learning this. A lot of google results lead to explaining what pseudocode is but not really teaching it to me.

    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?
  • shwaipshwaip bluffin' with my muffin Icrontian
    edited June 2011
    Butters wrote:
    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'

    My point was that he should learn one thoroughly. Then you can move to other languages much easier.
  • TiberiusLazarusTiberiusLazarus Icrontian
    edited June 2011
    Pseudocode isn't about learning a specific language. Being able to write pseudocode means you are able to take a problem and break it down into (generally) small, logical sections and explain it in words, numbers, and logical operators (AND, OR, IF, ELSE).

    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.
  • V-PV-P State College, PA Member
    edited June 2011
    Seems like I can already do that... Get a loaf of bread, a knife from the drawer, jelly from the fridge and peanut butter from the pantry. Take out a slice of bread, open peanut butter, spread peanut butter, get another slice of bread, open jelly, spread jelly, put slices of bread together. Eat. Changes coming to version 2.0 include cleaning up.
  • shwaipshwaip bluffin' with my muffin Icrontian
    edited June 2011
    One of the changes you might want to add is opening the bag of bread. or opening the drawer. otherwise your sandwich won't be very good.

    (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).
  • MiracleManSMiracleManS Chambersburg, PA Icrontian
    edited June 2011
    shwaip wrote:
    One of the changes you might want to add is opening the bag of bread. or opening the drawer. otherwise your sandwich won't be very good.

    (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.
  • the_technocratthe_technocrat IC-MotY1 Indy Icrontian
    edited June 2011
    Php is a serious investment.

    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.
    1. http://blog.geeklimit.com/2006/06/12/a-guide-to-beginning-xhtml/ (good to know)
    2. http://blog.geeklimit.com/2006/06/13/a-guide-to-beginning-css/
    3. http://blog.geeklimit.com/2006/06/14/a-guide-to-css-inheritance-and-classes/
    4. http://blog.geeklimit.com/2006/06/20/a-guide-to-using-xhtmlcss-ids-and-classes/
    5. http://blog.geeklimit.com/2006/06/22/a-guide-to-css-spacing-and-positioning/
  • the_technocratthe_technocrat IC-MotY1 Indy Icrontian
    edited June 2011
    V|P wrote:
    Seems like I can already do that... Get a loaf of bread, a knife from the drawer, jelly from the fridge and peanut butter from the pantry. Take out a slice of bread, open peanut butter, spread peanut butter, get another slice of bread, open jelly, spread jelly, put slices of bread together. Eat. Changes coming to version 2.0 include cleaning up.

    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.
    Things that happened because people assumed the problem was easier than it really was:
    • People couldn't get on the train because the doors never opened
    • people were crushed in the doors and dragged to their deaths because they took too long to get on
    • Doors stayed open far too long to accomodate everyone's speed because there wasn't a sensor to detect that only one person got on instead of a carload
    • The people were terrified because the trains had no PA to warn them then the doors were closing / the train was about to move
    • Acceleration and deceleration caused serious injury to passengers because speed was controlled like a light switch instead of gently
    • the FRONT of each train was on a different section, but sections collapsed because the front of one train and the rear car of another train occupied the same section at the same time
    • Trains mercilessly piled on to one another on a collapsed section because there was no way to signal them to stop between stations
    • trains smashed into each other in the stations because they didn't have a way to signal each other that they were delayed
    • trains travelled inappropriately fast after they were delayed to "catch up", terrifying passengers (150mph, etc)
    • over time, delays would prevent trains from arriving at stations at a regular interval, making a few trains arrive within minutes of each other, then a 30-minute delay
    • working but inefficient systems didn't have enough trains in the system to effectively handle the passenger load, meaning multi-hour wait times during rush hour at some stations
    • other hilarity
Sign In or Register to comment.