3 ms·
I have 3 languages that I would and do recommend for any new programmer: - Python, because it looks like pseudocode and it's hard to fuck up as a beginner. Plu
by nonsince 9y ago
I have 3 languages that I would and do recommend for any new programmer:
- Python, because it looks like pseudocode and it's hard to fuck up as a beginner. Plus, if you're trying to do something real/effectful (rather than write implementations of algorithms) imperative code matches your intuition.
- Haskell, because it looks like maths and it's hard to fuck up as a beginner. It's really easy to convert any maths stuff that they know verbatim into Haskell and have it Just Work without accidentally having to worry about, for example, how many times a piece of code is run.
- C, ASM or LLVM IR (leaning towards the first because it has great tutorials), because it matches how a computer really works. Ok, yeah I know, it doesn't, but it's closer than anything else that you'd actually want to use. C and manual memory management has gotten a bad rap recently, mostly because of all the security vulnerabilities it causes. Sure, you don't want to have to think about memory safety as an application developer but when you're learning it's OK to accidentally read or write uninitialized memory or cause a segfault as long as you've got good debugging tools to turn it into a useful learning experience.
- afarrell 9y agoHaskell has a steep learning curve. This is not a bad thing: it means that you climb so much higher in the early days of learning if you are successful. You learn more. But! It also means that it is harder to climb that hill and you might just slide down. You need good support.