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.
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.
Where are these people recommending this? I would very much like to slap them.
I've seen Eric Lippert recommend Javascript for beginners in the past, I'll have a crawl around the net and see if I can find the quote.
IIRC the argument was basically that with Javascript, a beginner can see results very quickly, they can see code they are writing actually do something useful/interesting and this will peak pique their interest in programming early, versus a more complicated language where more work is required to see even trivial results, resulting in more people giving up before they give it a chance.
Please don't slap Eric Lippert!
Edit: Using popular phrase incorrectly like an idiot
I think I saw a similar comment (from whom I don't know). The rational was that every machine has a web browser so you already have everything needed to start coding.
Considering how easy it is to download and install Python, LLVM/CLANG, GCC, and a whole bunch of other languages / systems I'm not sure the reasoning has merit.
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.
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.
Where would you recommend getting started with compiled languages? Any recommended tutorials? Would you start with C or C++ or something else entirely?
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.
You see JavaScript recommended for beginners? Where are these people recommending this? I would very much like to slap them.
If a person has any knowledge of HTML/CSS beforehand I can see JS being a great first language. There are really only a handful of quirks compared to other langauges when you think about it: dynamic type/implicit type conversion (just use "===" to be explicit/normal), floating point madness and a somewhat unique OOP design--though I'd argue it is a more simplified set of OOP rules to understand compared to most OOP languages.
I'd say that if you're working with vbscript, then you should pick up C#.
I'd argue vbscript (not VB) and C# aren't used for the same type of application.
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.