Live data from Hacker News

Ask HN: What language should I learn first?

news.ycombinator.com

31–40 of 77 posts

Re: Ask HN: What language should I learn first?

#31
It depends what your goal is. Do you want to learn to be a good programmer, or are you looking to, for example, make a website as soon as possible? Is your vision to eventually make apps? Do you want to learn the "art" of programming or the "craft" of programming? You'll end up learning both if you pursue it, but this may impact where you start out.

Some people argue that starting with a functional language will make you a better object oriented programmer later on, while the reverse is less often true. If you believe in this, I would recommend Clojure from personal experience.

In my first programming courses at university, we used Lisp and ML. This was for learning the "art" of programming, i.e., learning to think like a programmer. Once you picked a course that was arguably more about the "craft", you were exposed to a language more native to the domain. As I choose to go towards front end related stuff, I was exposed to JavaScript and (at the time) ActionScript.

I ended up not working as a programmer; I'm UX designer. When I need to, I program most of my interactive prototypes in ClojureScript. Two years ago, that would have been JS, but I found that Clojure conforms to my thoughts rather than the other way around.

So, depending on where you are and where you are going, you might benefit from different advice, I think.

Re: Ask HN: What language should I learn first?

#34
For serious work, starting with something like Python is probably a good idea (as many people have suggested), but if your goal is to learn about programming, I'd actually suggest you start with assembly. Assembly is really tedious to do anything practical with, but as a way to understand some of the most fundamental concepts in programming it really can't be beat. Doing the equivalent of hello world, in assembly and really understanding exactly what each line of the program is doing will pretty much make you better than most newbie programmers right from the start. If you jump to C next, do a little bit more there, and then finally jump to something like Python (bonus credit for calling C code from Python and vice versa) you'll be well on your way to being a fairly well rounded programmer.

Re: Ask HN: What language should I learn first?

#35
What do you want to achieve when you learn how to program? Mobile dev, web dev?

I'm on a similar path. I've been learning to code now for like 3 years, never really having the time. Now that I'm out of a job, I've got some free time and I've always had some web projects I wanted to work on. So even though I've been trying to learn python for the past 3 years, I've recently started following the reddit learnjavascript course that started last week [1]

I figured that with JS, I can learn Node.js and have some frontend and backend knowledge as well. Maybe someone much more knowledgeable than me can chime in on my approach?

[1]-http://www.reddit.com/r/learnjavascript/comments/2c5aue/lear...

Re: Ask HN: What language should I learn first?

#36
post #13
post #5

What is your preferred computer? If Windows, then I must agree with myddle's recommendation of Python.

And with Linux? I'm only on *nix based platforms and I see Python everywhere

On Linux and Mac, any platform except .Net will work out of the box; so it doesn't affect your choice; but on Windows some platforms are easy to get a working dev environment and some cause a bit of pain.

If you know how stuff is supposed to work, then you can tolerate a few setup quirks, but if you're just starting then it's important to not lose all your steam on configuring the development workflow before you get to a running Hello World.

Re: Ask HN: What language should I learn first?

#38
I'd lean slightly toward recommending Python to beginners, but don't get stuck on whatever you learn first. Try to learn at least one new language a year till you have several under your belt -- and even then, its not a bad idea to continue to do that.

And try to mix families -- each provides different insights. The first few might be something like:

1. One of Python or Ruby 2. JavaScript 3. One of Java or C# 4. Erlang 5. C/C++ 6. One of Haskell, Scala, F#, or OCaml (but I'd lean heavily toward Haskell)

(Also, if you are going to use relational databases, learn SQL -- yes, there are frameworks that abstract it largely away for you, but you really want to understand what's going on behind the scenes. But that doesn't need to be in among the first things, unless heavily RDBMS-dependent stuff is going to be an initial focus...)

Re: Ask HN: What language should I learn first?

#39
post #34

For serious work, starting with something like Python is probably a good idea (as many people have suggested), but if your goal is to learn about programming, I'd actually suggest you start with assembly. Assembly is really tedious to do anything practical with, but as a way to understand some of the most fundamental concepts in programming it really can't be beat. Doing the equivalent of hello world, in assembly and…

Definitely NO. Assembly is okay as a second or third language, but not as the first one.

Python->C->ASM will have a much larger chance of success than ASM->C->Python; there's a good reason why college programs don't start with assembly first.

Re: Ask HN: What language should I learn first?

#40
Call me old fashioned, but I'm going to suggest learning C. It's one of the smaller languages around so you'll be quickly able to get past the "learning the language syntax" stage and into the "learning to program" stage. It's also still one of the most widely used and supported languages out there. It's also closer to how computers actually work so you'll learn more of what is actually happening when the computer runs your code.

Pick up a copy of K&R [1], read enough to do a hello world and start playing.

[1] https://en.wikipedia.org/wiki/The_C_Programming_Language

Post reply on HN