100% disagree. In fact, I think this mindset is actively harmful. You should learn the basics of coding on something that has very grokkable syntax and isn't an impediment to learning the basic concepts of the craft. You don't need to go low level to do this, in fact, going low level is distracting when all you need to know to get started is "what is a string" and you have like 3 impediments to that basic lesson. Ultimately, languages are super easy to pick up once you grok the basics, so saying "you should start with a low level language" seems iffy to me, since its way easier to learn on a language that is not C.In post 3, Accountant wrote:I'm standing by that opinion. Working at a slightly lower level means you understand how stuff works behind the scenes. Java is okay too.
I'm partial to ruby myself, as its the language I learned with, but python is very similar and is perfectly fine for learning.
I second both the suggestions made by accountant wrt materials. Codecademy is quite good for someone who is going in with no experience because they really start each course with the assumption that you know nothing, which is frustrating for me but is probably pretty useful for someone who actually is new.
First things first, get yourself an editor. I'm partial to sublime text myself, but ultimately your editor matters less than learning it. At this stage it doesnt matter very much at all. This is another reason why I would suggest sublime text. It's free and its very user friendly for a beginner.
Second things first, find yourself a good book. I can personally recommend the one that accountant mentioned, but there are plenty of others. Go through the codeacademy stuff and the book stuff at roughly the same pace, so that you are reinforcing your learning of one with the other. If you find that one works better for you, focus primarily on that, but don't stop doing the other things. The repetition is good for you!
Last things last, once you've got the basics of writing simple programs down (types, loops, etc) you're going to start learning how to turn that code into actual things that do stuff.
I can't recommend this free algo course from stanford enough. It will really hammer into you the basics of algorithm design and it will really get you started along the path of thinking like a programmer:
https://www.coursera.org/learn/algorith ... n-analysis
in addition to that, once you're at this stage you can start introducing yourself to some web frameworks if you're at all interested in web dev stuff.
for instance django is a common web development framework for python. What is a framework? DON'T WORRY ABOUT THAT YET. Just come back to this post later after the other stuff and oh hey look its a nifty little tutorial for your first django app. (https://docs.djangoproject.com/en/1.9/intro/tutorial01/)
these things will get you well on your way.
Feel free to ping me if you get stuck anywhere.
Oh and the most important piece of advice I can give you is this: google is your friend. I know when I was first learning I had this idea in my head that it was cheating to look things up on google when I got stuck. Now that I do this shit professionally, I know that googling is at least 30% of what I do. Don't think it's wrong or cheating. Ask yourself this instead: Do I understand what I just did? If the answer is yes then you're golden. If its no then go read some more and do it again.