a thoughtful web.
Good ideas and conversation. No ads, no tracking.   Login or Take a Tour!
comment by rob05c
rob05c  ·  3616 days ago  ·  link  ·    ·  parent  ·  post: Need advice on learning a programming language

short version

Pick a high-level language and learn it. It doesn't matter which one. Python is good. Google is your friend. Here's a tutorial. If you have questions, Google. If you can't find an answer, ask someone, there are tons of forums out there.

long version

I like to think of languages in "levels" of abstraction.

High level languages let you focus on getting your work done, and not worry as much about the details of how it happens. The tradeoff is that they're usually slower and less expressive. But that won't matter for learning.

Lower level languages give you more control over the hardware, but much more can go wrong, and it's much harder to get right.

Finally, kind of a tangent, functional languages offer a different kind of 'high' level. Functional languages give you much more expressibility, and help you write things like large, stable systems and avoid duplication. But the vast majority of code out there is in imperative languages, not functional. So I wouldn't worry about functional programming until much later.

Python, Ruby, and Javascript are good examples of high-level languages. They're easy to pick up to learn the basics of programming, without encountering incomprehensible errors.

Java, Go, C++, and C# are good examples of somewhat-low level languages. They'll teach you important things you need to know, like pointers, memory management, and parallelism.

C and Fortran are very low level. You'll probably never need to be that low – unless you want to play with hardware like Arduino – and C won't teach you much that you can't learn from C++.

I'd recommend Python or Ruby to start. I'd shy away from Javascript. It's too complex, too easy to learn terrible habits. Even if you want to do web stuff, I'd suggest Python first for good programming habits, then pick up Javascript. Once you feel like you've learned the basics of programming and how to do stuff, go learn Java or C#. Once you have a handle on how they work, C++. By that time, you'll know enough to pick your own functional language, or whatever else you want to learn.

Alternatively, if you learn Python and feel like you can do everything you want, just stick with it. Unless you're a professional, you can probably do everything you want with a single high-level language.

longer version

Just kidding. Go learn Python.





caelum19  ·  3616 days ago  ·  link  ·  

Very detailed, insightful post.

I think it's important to add though, that Java and Javascript are very different languages, just incase JethroTulli has any confusion.

no-cheating  ·  3611 days ago  ·  link  ·  

I'd also say add that if you have some further plans to study programming to get your skills to more advanced level, starting with a low-level language may be better. It gives more solid foundations, because it doesn't hide things like high-level languages do.

That's from my experience. In college our first course in basic programming was Pascal (which is low-level). I'm happy it was that way.

If you want learn only practical programming, you'll definitely be good with a high-level language like Python. It gives you a quick start, as you can accomplish practical tasks much easier and more quickly.

JethroTulli  ·  3616 days ago  ·  link  ·  

Hey, thanks a lot for the insight. I would be starting with Python as it goes quite popular on other forums which I checked as well. If I have any problems, I know who to contact now though :D

rob05c  ·  3616 days ago  ·  link  ·  

Sure, if you have a question feel free to pm me. I'm not a Python expert, but I do write code for a living. I can certainly help if you get stuck with anything.