Advice for Beginners

  1. Start with an easy language - when learning programming fundamentals, avoid heavy languages like Java and C#, because they force you to learn the nuances of object-oriented programming, which beginners shouldn't be bothered with. Start with a lightweight language like JavaScript or Python.
  2. Don't use frameworks at the start - a framework is code that runs on top of a language to simplify complex tasks, and to reduce repetitive code. When learning programming fundamentals, avoid frameworks. Beginners have a hard enough time with simple code. Frameworks will overwhelm you with complicated code. Frameworks also hide many details that beginners should learn about.
  3. Don't worry about front end vs back end at the start - beginners don't even know what programming is yet, let alone the nuances of front end vs back end. You should focus on learning programming fundamentals, which isn't really front end or back end. Once you have a few years of experience, and have done both front-end and back-end development, then you can decide which you prefer.
  4. Don't passively follow tutorials - avoid simply watching or reading tutorials without writing your own code. You will need to follow a tutorial to some degree to learn new syntax or a new concept, but at some point, you should be writing your own code that is not in the tutorial. Most of your actual learning will be from writing your own code, and from doing your own problem solving.
  5. Don't come up with your own projects at the start - at the very beginning, don't come up with projects that seem interesting to you, because interesting projects require complex code, and beginners should start by writing simple code. That means you'll start by making something boring like a unit converter program. But that's how you learn. And don't come up with your own simple programs to make, because beginners don't have enough knowledge to know what is simple and what is complex. Instead you should follow a curriculum that includes a sorted list of projects interleaved with tutorials and exercises. Once you have made some curated projects, then you can start coming up with your own projects.
  6. Don't read documentation at the start - at the very beginning, don't try to learn by reading official documentation, because first of all, most documentation by itself does not explicitly guide the reader on how to use something, but is merely a reference, and beginners need explicit guidance. And secondly, knowing how to read documentation is a skill, and beginners haven't developed that skill yet. Once you are comfortable with basic concepts, then you can start reading documentation to expand your knowledge.
  7. Don't set up a development environment at the start - beginners don't even know if they like programming yet, so start by doing actual programming as soon as possible to test the waters. The fastest way to start is to use an online code editor like Replit where everything is already set up for you. Once you have determined that you want to pursue programming, then you can start setting up a development environment on your computer if you want. But avoid using professional tools like Git until you are comfortable with programming fundamentals.
  8. Don't contribute to open source at the start - open source code is complex, and beginners should start by writing simple code. And contributing to an open source project requires understanding other people's code. Beginners can hardly understand their own code, so there's little chance that they will understand somebody else's code. Even experienced programmers struggle with this.
  9. Don't solve LeetCode problems at the start - LeetCode is a website with thousands of algorithmic programming problems. Beginners shouldn't do LeetCode problems, because even the easiest LeetCode problem is too advanced for a beginner. Once you have mastered programming fundamentals, then you can solve LeetCode problems for extra practice.