Reflections on My 15 Year Journey from Novice to Intermediate Developer
Tags: beginners, programming, webdev, productivity
Published: 2022-12-13 06:02:50

My self-taught development journey started around 15 years ago when I was a little kid. It went from passion to a job to irritation with tons of ups and downs. 

I became a normal developer, freelancer, co-founder, office employee and so on. Sometimes I was spending 20 hours per day in front of computer like crazy due to excitement, sometimes I got burned out from overworking and stress. 

I probably did not see everything, but I want to share a few points.

## Table of contents

  * [How do you spot a beginner programmer?](#how-do-you-spot-a-beginner-programmer)
  * [Things beginners should know](#things-beginners-should-know)
  * [Things beginners should avoid](#things-beginners-should-avoid)

Let's get started!

## How do you spot a beginner programmer?
[Top ⤴️ ](#table-of-contents)

There are several signs that can indicate that a programmer is a beginner. Some of these signs include:

- Lack of familiarity with core programming concepts and best practices.
- Struggling to write clean, well-structured, and efficient code.
- Reliance on copying and pasting code from online sources without fully understanding how it works.
- Difficulty troubleshooting and debugging errors and problems in their code.
- Limited knowledge of programming languages and tools.
- Lack of experience working on real-world projects or in a team environment.

These are just some of the potential signs that a programmer may be a beginner. It's important to note that being a beginner is not necessarily a bad thing - everyone has to start somewhere, and everyone has different levels of experience and expertise. 

However, if you notice some of these signs in a programmer, it may indicate that they are still in the early stages of learning and may need more guidance and support.

## Things beginners should know
[Top ⤴️ ](#table-of-contents)

Here are a few tips I'd like to give to someone who is just starting to learn how to code:

1. **Start by making sure that each project or task has clear goals that can be reached.**   
	This can help you focus your work and keep you from getting distracted by code that isn't important.   
	Use tools like Notion, ClickUp, Github Issue.  

2. **Figure out which tasks and features are most important** and work on them first.   
	This can help you make progress on your projects and meet your deadlines while still giving you time to try out new ideas.  

3. **Ask programmers with more experience** for feedback and help.   
	This can help you figure out where you might be spending too much time on code that isn't necessary or useful and teach you how to work more efficiently.   
	Check Github Issues, Stackoverflow, Dev.to, Facebook Groups.  

4. Use tools and methods to better **keep track of your time and tasks.**   
	This can be done by using project management software, using agile development methods, or following other best practices for efficient and effective programming.   
	Use tools like DeskTime, TimeDoctor.

5. **Take breaks** often and don't work for long stretches without stopping.   
	This can help you avoid getting burned out at work and keep your mind on the task at hand.   
	Pomodoro is a great method to do it.  

6. **Don't refactor unless needed**.   
	Rewriting or refactoring code can be a good way to improve how easy it is to read, how easy it is to fix, or how fast it runs. But it can take a lot of time and might not always be necessary.   
	Before starting a big refactoring project, you should carefully consider whether it will bring real benefits. You shouldn't make changes just to make changes.  

7. **Work with other programmers** and talk to them.   
	As a beginner, you can learn a lot from other programmers who know more than you do or have more experience.   
	By working on projects together, sharing ideas and code, and giving each other feedback and help, you can learn and grow as a programmer more quickly.  

8. **Use version control** to manage your code.   
	Version control software, like Git, lets you keep track of changes to your code, work with other people on it, and revert to older versions if you need to.   
	This can help you organize, speed up, and keep your work safe. It can also help you avoid losing important code or making mistakes.  

9. **Put together a portfolio** of your work to show possible employers.   
	When you're just starting out as a programmer, it can be hard to get your first job or project.   
	Building a portfolio of your work is one way to stand out and show off your skills to potential employers or clients.   
	This can include finished projects, samples of your code, or other examples of your work that show your skills and potential.  

10. **Keep learning** new things about programming and keeping up with the latest changes (that is relevant to your goal).   
	Programming is a field that is always changing, so there are always new languages, frameworks, tools, and methods to learn. You can keep getting better as a programmer and stay ahead of the curve in a field that is getting more and more competitive by staying curious and up-to-date.  

11. **Write clean and readable code.**   
	As a beginner programmer, you might be tempted to just focus on getting your code to work and not think about how easy it is to read or fix. But writing code that is clean and easy to read is important for more than one reason.   
	It can make your code easier to understand and change, which can save you time and effort in the long run. It can also make your code easier to find and use, which can be helpful when working with other programmers or putting your code into larger systems.  

12. **Write a lot of tests.**   
	Testing is an important part of the development process, and it can help you find bugs and fix them.   
	By writing and running tests, you can make sure that your code works the way you want it to, and you can find and fix any problems before they get worse.   
	This can save you time, effort, and frustration and help you give your users or clients better-quality code.  

13. Take care of both **your body and your mind.**   
	Programming can be hard on both your mind and body. It can take long hours of focusing, solving problems, and working with other people, which can be hard on your body and mind.   
	Taking care of yourself is important if you want to avoid burnout and keep working well. Getting enough sleep, working out regularly, eating well, and taking breaks from your work are all ways to do this.   
	Taking care of your health will allow you to remain focused, energized, and motivated, allowing you to be a better programmer.  

14.  **Learn how to debug** your code.   
	Debugging is an important part of development that every programmer needs to know how to do.   
	By learning to find and fix errors and bugs in your code, you can make it more reliable and faster, and you won't waste time on code that doesn't work the way you want it to.   
	There are many tools and methods you can use to fix bugs in your code. If you want to become a better programmer, you should learn and practice these skills.  

15. **Stick to the rules and best practices** for coding.   
	If you're just starting out as a programmer, you might not know the rules and best practices for writing code in your language or field.   
	It's important to learn and follow these standards and best practices because they can help you write code that is easier to read, maintain, and use.   
	They can also help you avoid common mistakes and pitfalls, and they can make it easier for other programmers to understand and use your code.   
	By following coding standards and best practices, you can improve the quality of your code and make it more useful to you and others.  

16. **Take on projects and problems** that are hard.   
	If you're just starting out as a programmer, you might be tempted to take on only small or easy projects so you don't get too busy or frustrated.   
	But it's important to push yourself and take on bigger, harder projects, because that's how you'll learn the most and grow as a programmer.   
	You can improve your skills, gain confidence, and build a body of work you can be proud of by taking on hard problems and overcoming obstacles.  

17. **Be proactive and take initiative.**   
	Don't just wait for someone to tell you what to do. Look for opportunities to learn and grow, and take on new challenges.  

18.  **Google everything.**   
	Learn how to google, watch videos and tutorials, visit stackoverflow and reddit. But never copy a code block without understanding how it works.   
	Also, set yourself a time limit on googling stuff before asking other senior developers.  

## Things beginners should avoid
[Top ⤴️ ](#table-of-contents)

Here are some things that a new programmer should not do:

1. **Ignore the latest trends** or fads in the field of programming.   
	The world of programming is constantly changing, and there are always new languages, frameworks, tools, and techniques to learn.   
	However, not all of these developments are equally valuable or relevant, and it can be a waste of time and effort to chase after every new trend or fad.   
	Instead, focus on the fundamental concepts and principles of programming, and learn the tools and techniques that are most relevant and useful for your goals and projects.

2. **Ignore the pressure to be a perfect** programmer.   
	As a beginner, it is natural to feel pressure to be perfect, to avoid making mistakes, or to measure up to the standards of more experienced programmers.   
	However, perfection is unattainable, and it is more important to focus on learning and improving.   
	Be willing to make mistakes, to learn from them, and to continue to grow and develop as a programmer.

3. **Ignore the temptation to compare** yourself to others.   
	As a beginner, it can be easy to compare yourself to other programmers who may have more experience, more skills, or more success than you do.   
	However, comparisons are rarely useful, and they can be damaging to your confidence and motivation.   
	Instead, focus on your own goals and progress, and celebrate your own achievements, no matter how small they may seem.

4. **Ignore the voices** that tell you that you are not good enough or that you can't do it.   
	As a beginner programmer, you may encounter many voices that tell you that you are not good enough, that you don't have the right skills or knowledge, or that you should give up.   
	These voices can come from many sources, including your own doubts, the expectations of others, or the challenges of the field. It is important to ignore these voices and to believe in yourself and your abilities.   
	You have the potential to become a successful and skilled programmer, and you can achieve your goals if you are willing to put in the effort and dedication.

5. **Ignore the temptation to overcomplicate** your solutions.   
	As a beginner programmer, you may be tempted to overcomplicate your solutions, to add unnecessary features or enhancements, or to try to impress others with your code.   
	However, simple and straightforward solutions are often the best, and they can be more efficient, maintainable, and effective than complex and sophisticated solutions.   
	By focusing on the core requirements and avoiding unnecessary complications, you can write code that is more valuable and useful to yourself and others.

6. **Ignore the fear of failure.**   
	As a beginner programmer, you may be afraid of failing, of making mistakes, or of not meeting the expectations of others.   
	This fear can hold you back and prevent you from taking risks, from exploring new ideas, or from challenging yourself. It is important to ignore this fear and to embrace failure as an opportunity to learn and grow.   
	By learning from your mistakes and failures, you can become a better programmer, and you can develop the resilience and persistence that are essential for success in the field.

As a beginner, it can be hard to take advice, even if the person giving it means well. But if you can keep going and do what experienced people tell you to do, you'll get better faster than you thought possible. So don't be afraid to take that step and try something new.