Advice for Newbies: From a Self-Taught Programmer
Tags: beginners, programming, programmer
Published: 2023-03-06 09:32:24

The world is constantly changing at a rapid pace and there are many distractions that can divert our attention from our goals. When I first entered the programming world, things were different. Although the internet already existed, resources such as Stack Overflow were not yet available. Instead, we relied on books, IRC, documentation and Lynda to learn. Often times, in order to understand a concept or fix an issue, I had to read an entire book or documentation.

Having access to a wealth of information does not necessarily make someone a bad developer. However, lacking fundamental skills can hinder one’s progress. With so many distractions available it’s important to stay focused on what truly matters.

In this article I will outline some key areas that developers should focus on in order to improve their skills. If you are an experienced developer feel free to share your thoughts and feedback.

### Don’t be hard on yourself
When you start learning something new, everything can feel overwhelming. Everything is new when you start out. You might wonder if you’re smart enough to keep up with all the information. But trust me, things will get easier as you go. As time goes on, you’ll encounter less new information and it will become easier to understand.

This is true for any new thing you learn, even if it’s not about programming.

### Focus on the basics
It’s important to have a solid foundation of knowledge in any field. So make sure you focus on learning the basics before moving on to more advanced topics.

### Find your niche
Choose a language or framework that aligns with your future goals. Look for popular and trending options in your area of interest. For example, if you’re interested in game programming or web development, find out what’s best for those fields and stick with it. 

Keep in mind that popularity doesn’t always mean something is good, but it can make it easier to find help when you’re starting out.

### No one is stupid.
You don’t have to be a genius to learn something new. Being able to read and do simple math is enough! People have different IQ levels and some may understand things quicker than others. Don’t compare yourself to others - everyone has their own strengths and weaknesses. I’ve seen all kinds of people working side by side in this field for over a decade. Sometimes people who may not seem as “smart” are actually more determined and pay closer attention to details because they have tremendous self-discipline.


### Don’t overthink your choice of language/framework
Select a language that will not die in a few years and stick to it. Use the language as a tool to solidify your basics; after you get comfortable in one language, you will find learning another language much easier.

### Set small goals and work on small projects
Completing something can be very motivating. When you’re starting out, you might have lots of great project ideas. It’s good to work on them, but start with small things that you can complete within a few days or a week. This will give you the motivation to keep going. If you set goals that take too long to achieve at the beginning, it can negatively impact your self-esteem. If you really want to work on something big, go for it! But make sure to also work on some smaller projects along the way to keep your motivation up.

### Security is no joke.
No matter what niche you’re in, security is something you can’t ignore. Companies lose millions of dollars due to security issues caused by programmers’ ignorance. Make sure to stay up-to-date with security issues and learn how to protect against data leaks and comply with data privacy laws. If this seems overwhelming, consider taking a course like [Developing Secure Software](https://training.linuxfoundation.org/training/developing-secure-software-lfd121/) from the Linux Foundation. It’s a good starting point and it’s free. 

### Improve your communication and people skills
This can be challenging for some people, especially introverts like me. Yet, it’s important to be able to communicate effectively and work well with others. I’ve seen many good developers get rejected because they lacked these skills. You need to know how to accept other people’s opinions and disagree without hurting their feelings. There are many little things that can make a big difference when working with others from different backgrounds. Being able to see things from their perspective will make you a better team player. Even if you plan on being an indie developer, you’ll still have to deal with clients or customers. Trust me - having good communication and people skills can have a huge impact on your income.

### Stay up-to-date
Technology is constantly evolving and it’s important to keep up with the latest developments in your field. Make sure to stay informed about updates to your core language and framework features. It’s also a good idea to keep an eye on new tools, trends, and competitive technologies. If you’re just starting out, don’t worry too much about this yet - focus on building a solid foundation first.


They says, it's not about the destination but the journey it self is matter. Remember to have fun along the way. Keep up-to-date with the latest developments in your field and strive for quality over speed. 

Wish you all the best!