- #1
- 4,800
- 3,075
- TL;DR Summary
- If you are new to programming, learn Python - it is relatively easy to learn and you can do a lot with it.
Learn | If you want to write code for |
---|---|
Python | Machine learning, AI Statistics/data analysis Scientific research Web application servers Some microcontrollers |
JavaScript/Node JS/TypeScript | Web sites Web application servers |
C# | Games (Unity) Consumer applications (Windows) Business applications |
C++ | Games (Unreal Engine) Operating systems, device drivers Microcontrollers/embedded systems Consumer applications (Linux) |
Some more tips:
- Do not learn C++ (or any other dialect of C) as a first language - there are too many things to learn that are unimportant that distract from focusing on what is important.
- Do not learn C++ (or any other dialect of C) because you believe that it is "fast" in some general sense - the contexts in which this may be relevant are limited to those mentioned above (games, embedded systems etc.)
- Do not learn C++ because you believe that all interviewers expect you to use it to answer coding questions - in 2023 this is no longer true in many cases, and it is easier and quicker to solve coding problems correctly in e.g. Python. Of course if you are going for a job writing device drivers at NVIDIA this is not going to apply, but if you think you can get a job writing device drivers at NVIDIA you don't need advice on learning to code anyway.
- Do not avoid Python or Node JS because you believe that they are "slow" - the contexts in which this may be true are unlikely to be relevant to you.
- Do not learn how to implement algorithms and data structures like linked lists, hash tables, trees, indexing, sorting etc - these algorithms have already been implemented optimally in the languages that you will learn (although the comment about NVIDIA etc. above applies).
Last edited: