Starting to learn to code on your own can be challenging and requires a lot of planning and discipline. Below, I share some tips I have used and learned when embarking on this journey.
If you are totally new to the coding world, you need to decide where to start.
First, is there a specific domain you are interested in? For example, there is Game Development, Web Development, Data Analysis, Machine Learning, Cybersecurity, and more. If there is a domain you are interested in, it can help you to narrow down to which programming language you want to learn first.
For example, Javascript is usually known for web development, Python for data analysis, C# for game development and so forth. You could also think about the industry you are working in and what type of development would you benefit from. For example, in Finance, you would probably benefit from Data Analysis by using Python or R. Look at these posts by JCharisTech and KDNuggets to get an idea what languages are used in what type of development.
Personally, I chose Python because it is pretty versatile. You can use it for the back-end in web development, data analysis and machine learning, game development, automating tasks, and more. But really, it does not matter which coding language you choose in the beginning because you can always switch if you do not like it. If you are pursuing this professionally, you will probably have to learn several languages anyways. What you will learn through your first programming language is the logic and various computer science concepts. You can apply this to other languages where you just need to learn syntax and perhaps some concepts pertaining to that specific language.
For both new and experienced, it can be very helpful to have a structure.
For example, I recommend getting a roadmap from roadmap.sh in your programming language and/or desired job title and ticking off what you have already learned to do and then just continue the roadmap as it suggests. It gives also sources where you can learned the stated concepts from.
Of course, you can also get your structure from a course, book or website. There are probably free resources for the programming language you are learning, whether it is a website or videos on Youtube. I actually recommend W3Schools as a free resource to learn programming languages such as Python, Javascript, Java, C++, and more.
If you happen to take longer breaks from coding, please DO NOT REDO your notes, projects, and what else you have done before. I know that you might be afraid to have forgotten something and want to repeat everything. I was like this before.
However, if you do this each time you are resuming after a long break, you are never going to progress. For example, I did Python on and off during high school, and each time I got back into Python, I felt like I had to redo an entire Udemy course. But eventually, it was boring to repeat the same things again just because of the fear of “forgetting”.
You do not need to remember. If you forget something, you can always look it up. The point of coding is not for us to remember everything and “memorize”, the point is for us to do problem-solving and use documentation. Honestly, in my opinion, skip the notebook and just start coding. With practice, you will actually remember what you have learned. And again, do not worry if you forget about something, you can just look at StackOverflow, documentation, a simple blog post, or a video on YouTube.
Once you have learned the fundamentals, it is time to get out of the tutorial hell. You are not going to learn and develop if you keep looking at code-alongs and are just copying what the person is writing. You need to start to think on your own, read documentation, and research to find your solutions.
If you did a code-along and want to extract its benefits, try to redo the code-along with a new twist. For example, I followed a code-along on coding a Pomodoro clock with Tkinter and then decided to use what I learned to make a timer for eye-care.
But after, start thinking about what projects you would like to do. Maybe it can be interconnected to your profession or interests or automate a daily life task for you. You will find coding much more enjoyable when you use it to build projects that interest you. When you decide on a project idea, write down everything that needs to be done and implement one feature after another. Read the documentation of the APIs you are using, look at Stack Overflow for issues you are having, and most importantly, just experiment. Experimenting will be the success factor in your learning, as that is how you will learn the best, by forcing you to use your problem solving skills and try various approaches to get what you want.
You might be thinking of using something like ChatGPT or Claude to aid you in your learning process. I would not recommend it. It could be good for you if you are an experienced developer looking to streamline your working processes. But if you are still learning, I think you are falling into a trap when using AI.
Coding is not meant to serve everything for you on a platter, hoping you find what you need on a code-along video or an AI spitting out the answer for you. If you do not like this, then maybe coding is not for you. How can we be innovative if we just copy what is around us?
Yes, AI can be beneficial sometimes when you have really tried to come up with a solution and looked everywhere on the Internet. But in this case, it is important to UNDERSTAND the code and see if there are any flaws with the given code, as mistakes from the AI can definitely happen. Also, you must discipline yourself with this tool, and that is why I am not recommending it. If you can use AI in only rare cases, perfect, why not. But what can happen for many people (and I feel this has already happened in society in general), is that they will always opt for AI, they will quickly go to the AI for help without even thinking of trying to come up with the solution themselves.
It’s like taking the cookie immediately! The habit of always running to AI for help can make you dependent on it. Worse, it can diminish your confidence and ability to tackle problems on your own. Remember, the goal is to grow your skills and independence as a coder, not just to complete the task at hand.
Seriously, document your journey—it’s one of the most powerful things you can do while coding and studying. Sharing your progress online or even keeping a private record helps you stay accountable. On top of that, by documenting your progress, you can see over time how much you have grown and the new skills you have learned, making you feel proud.
Also, if you engage in a community, you will learn much from others’ insights and feedback. Coding can sometimes feel like a lonely journey, but a community can make it feel collaborative and supportive.
On top of that, it kind of forces you to be on top of things, to learn new things and talk about them. At least, that is the effect I am getting from writing this blog. When you know you’ll be writing about what you’re learning, it encourages you to push boundaries, tackle new topics, and ensure you understand concepts well enough to explain them.
So, whether it’s a blog, a personal journal, or even just notes for yourself, start documenting your journey. You’ll thank yourself later.