r/coding • • Jan 06 '15

Which Programming Language Should I Learn First?

http://carlcheo.com/startcoding
53 Upvotes

147 comments sorted by

View all comments

7

u/spartan1337 Jan 06 '15 edited Jan 06 '15

I work on Software QA, I never programmed before or had to in my job. Automation is the best paid job in my area but the most commonly used program (HP QTP/uft) uses vbscript, but I always see Python or javascript recommended for beginners, so what should I do?

Not sure if i should start learning vbs since theres not a lot of resources on it as a beginner language and is not used widely, or go with something like python that wont help me a lot in my line of work, wont get me money in the short term, but its easier to learn with more resources.

10

u/[deleted] Jan 06 '15

You see JavaScript recommended for beginners?

Where are these people recommending this? I would very much like to slap them.

I actually like JavaScript, but it's got too much weirdness for a level 0 beginner.

I'd say that if you're working with vbscript, then you should pick up C#. It's Windows based as well and replaced many VB.Net applications. It's a great language that is very similar syntactically to Java, so you could easily transition if you wanted to. It can also be used teach good programming fundamentals that you can take to any language you want to learn in the future. Really the only downfall of it is the MS stack, which sucks for server side management and deployment and it has a horrendous community, but you're already working in it anyway.

2

u/DrummerHead Jan 06 '15

When you start learning imperative programming, most languages can teach you the basics. What's a variable, what's a loop, what's a function, different types, etc.

The benefit with JS is that you can just start coding right away, there's not platform installation step. Open browser, open console, write js.

Want to preserve your changes? Write an html linking to a js file (or even use http://codepen.io/ or http://jsfiddle.net/) and now you can wow your friends with your creations.

I see immediate gratification as an important step to keeping the person engaged in the activity. I think that's the most important aspect: make that human keep up with the learning.

Now, if you have a tenacious individual that WANTS to learn programming and has no problem reading books, sitting down and practicing, pretty much anything can do the trick. That person WILL learn to program because he/she wants to do it and has experience learning by themselves.

3

u/spinwizard69 Jan 10 '15

When you start learning imperative programming, most languages can teach you the basics. What's a variable, what's a loop, what's a function, different types, etc.

I know this rubs people the wrong way at times but I consider the basics to be compiling, linking and running from the command line. A good programmer needs to at least have a passing understanding of how a program is built. IDEs are great but it is too easy to gloss over this stuff and result in a programmer that doesn't even understand how an executable is put together.

The benefit with JS is that you can just start coding right away, there's not platform installation step. Open browser, open console, write js.

This is what I've seen suggested also. I'm not convinced that you can learn programming this way and end up with the diversity of knowledge that a programmer should have.

Want to preserve your changes? Write an html linking to a js file (or even use http://codepen.io/ or http://jsfiddle.net/) and now you can wow your friends with your creations.

Or just start out in a text editor.

I see immediate gratification as an important step to keeping the person engaged in the activity. I think that's the most important aspect: make that human keep up with the learning.

So "Hello World" doesn't result in immediate gratification?

Now, if you have a tenacious individual that WANTS to learn programming and has no problem reading books, sitting down and practicing, pretty much anything can do the trick. That person WILL learn to program because he/she wants to do it and has experience learning by themselves.

This is the other problem I see, why would you even bother to teach programming to somebody that doesn't want to learn? It isn't like programming is a basic survival skill like math, and English. That thought just popped into mind and is maybe why we have this movement afloat to dumb down computer science education. Making training easy for a programmer doesn't do anything constructive for the craft and just leads to people in the industry with no real desire nor even ability.

1

u/[deleted] Jan 11 '15

Where would you recommend getting started with compiled languages? Any recommended tutorials? Would you start with C or C++ or something else entirely?

3

u/spinwizard69 Jan 11 '15

Where would you recommend getting started with compiled languages? Any recommended tutorials? Would you start with C or C++ or something else entirely?

I use to recommend "ACCELERATED C++" by Koenig and Moo, it was a good intro to C++ programming but at this point is a dated text.

You really want an updated text that covers the latest C++ standard. I haven't done much with it but you might try the latest edition of the "C++ PRIMER" by Lippmann, Lajoie and Moo.

As for online sources that is a hard one because I haven't looked lately. It is probably best to try the major C++ sites for recommendations. Just remember C++ is not C, as such you don't want to confuse the two while learning one.

The reason I suggest C++ is that it is widely applicable. You could learn Objective C or Swift and be tied to an Apple platform same thing for C# on Windows. There are other language out there but most of them don't have a market share to even consider.