Ask HN: What language should beginning programmers learn first?
11–20 of 23 posts
Re: Ask HN: What language should beginning programmers learn first?
#12On one hand, I think that learning an easily-readable language like Python makes it easy to not worry about syntax and focus on actual CS concepts. On the other hand, there are a lot of CS concepts that go beyond algorithms, and I think understanding how e.g. C++ is written, precompiled, assembled, etc. is really valuable information. It is sort of like the argument for or against starting with an IDE - training whee…
Re: Ask HN: What language should beginning programmers learn first?
#13On one hand, I think that learning an easily-readable language like Python makes it easy to not worry about syntax and focus on actual CS concepts. On the other hand, there are a lot of CS concepts that go beyond algorithms, and I think understanding how e.g. C++ is written, precompiled, assembled, etc. is really valuable information. It is sort of like the argument for or against starting with an IDE - training whee…
Re: Ask HN: What language should beginning programmers learn first?
#14Re: Ask HN: What language should beginning programmers learn first?
#15I really learned how to program when I had problems to solve, at the time I wanted to automate unrelated programs on Windows that needed the same data entered into them; I used autohotkey, but probably wouldn't recommend this unless you want to automate other software.
I moved onto python after that. Python seems to have everything needed to easily learn what you need to know, with libraries for everything. This is beneficial when you start out, at least for me.
Re: Ask HN: What language should beginning programmers learn first?
#16Hear me out. It runs in the browser so there is no setup.
You can see all of the blocks so there is less cognitive overhead trying to remember syntax.
There is a huge community, they had 30 million active users last year.
There are tons of books, courses, videos, and a forum to ask questions.
Re: Ask HN: What language should beginning programmers learn first?
#17Regardless of what language is first learned, I wish that more attention was paid to how the language is introduced and used. Specifically, rather than going bottom up mutating things willy-nilly to get the job done, express solutions decomposed in a functional style with localized side-effects. Keep using this pattern until it's the first/second nature.
So much of becoming a good developer is unlearning bad habits picked up starting day 1.
Re: Ask HN: What language should beginning programmers learn first?
#18On one hand, I think that learning an easily-readable language like Python makes it easy to not worry about syntax and focus on actual CS concepts. On the other hand, there are a lot of CS concepts that go beyond algorithms, and I think understanding how e.g. C++ is written, precompiled, assembled, etc. is really valuable information. It is sort of like the argument for or against starting with an IDE - training whee…
From watching my son learn, basic concepts of programming have enough frustration built in, that I feel you really need to optimize the rewarding feedback loop aspects. Jumping to CS concepts is a bridge too far, and TBH, there's a lot of programming-literate jobs that don't need it.
Is there a language that gives beginners a fast reward feedback loop, and also guides them toward good programming habits (or at least does not teach them too much that they're later going to have to unlearn)?
-----
[1] Only halfway, for a couple of reasons.
First, there are different kinds of programming. If you learn imperative programming, with good habits, and then you switch to functional programming, you now probably have some bad habits - habits that are bad in the functional world, but were fine - even correct - in the imperative world. I don't think it's fair to call that "learning bad habits".
At the same time, beginner languages can teach approaches that are bad habits in any non-beginner setting. (This criticism was often applied to BASIC. I'm not sure it's entirely true, but I suspect it's also not entirely false.)
Second, learning good habits took me a decade or three. It took finding out why the simple things weren't good enough, by running into situations where they weren't good enough. But for a beginner, the simple things are good enough, because they aren't yet running into situations that expose the problems. (You don't tell a toddler that they need to fix their method of walking because it won't cut it at a basic training obstacle course.)
All that said, I think there still is a place for not pushing them into blatantly broken approaches.
Re: Ask HN: What language should beginning programmers learn first?
#19On one hand, I think that learning an easily-readable language like Python makes it easy to not worry about syntax and focus on actual CS concepts. On the other hand, there are a lot of CS concepts that go beyond algorithms, and I think understanding how e.g. C++ is written, precompiled, assembled, etc. is really valuable information. It is sort of like the argument for or against starting with an IDE - training whee…
> understanding how e.g. C++ is written True, but why should you learn about this first? Better to get the fundamentals down first. Once you have that down, you can engage with accidental complexity like C++ compilation and linking details if and when needed.
C/C++ could be argued to be a compromise that kind of lets you look both ways. (That could be argued to be a virtue, or a fatal flaw...)
Re: Ask HN: What language should beginning programmers learn first?
#20I would say learn Scratch programming first. Hear me out. It runs in the browser so there is no setup. You can see all of the blocks so there is less cognitive overhead trying to remember syntax. There is a huge community, they had 30 million active users last year. There are tons of books, courses, videos, and a forum to ask questions.