Hitchhiker’s Guide: Becoming a Developer
A Hitchhiker is a human working at Farmz2U 😁!
Learning to code can easily be overwhelming, as there seems to be an insurmountable ocean of things you don’t know. It’s very easy to get lost in tutorial hell. The best place to start from the question “why”.
Why do you even want to learn to code?
Start with the Why (Decide your end goal, if possible)
It’s okay if you don’t have the answer to this at first. In that case, the first step will be to do some research and find out which application of coding most appeals to you. Answering this question could help determine the path you ought take in learning. It’s important that your learning is structured. This means, the programming language or framework that you decide to learn.
Create a Learning Path or Road map
You Cannot learn everything!
Even if you spend the rest of your life learning programming!
It’s better pick a stack and master it and then you can pick up other languages, frameworks and technologies along your journey whenever their use may arise. Here is a good learning path for web development (Front-end development, Back-end development and Dev-Ops).
Learn how to learn 🤓
Figure out the learning pattern that suites you.
There are different approaches to learning, this course can help you understand better and make an informed decision on which works best for you. As a developer you will frequently come across new technologies, new frameworks and new implementations every step of the way. All you have to guide you in a lot of cases is their documentation. Not everything has a tutorial video. You need to be able to learn things fast and implement them too. That’s a major part of the job.
Don’t get stuck in tutorial hell
The sheer amount of resources out there can be overwhelming. Stick to the resource that you can understand and consult documentations whenever you're stuck.
For web development, I recommend using sites like Freecodecamp, Scrimba, Codecademy, FrontendMasters . When working with tutorials, if you don’t understand how something works, try to break it and find out what makes it work you can do this by taking it apart piece by piece or line by line #reverseengineering!
Learn by Doing
In my opinion, project-based learning is the most effective. So I recommend taking on a project after completing each milestone in your learning path. It will help reinforce what you’ve learnt and when issues arise, that gives you an opportunity to gain in-depth knowledge by solving them. Highlight your learning outcomes in detailed sentences and make sure you can defend them at the end.
Understand the Fundamentals
Data structures, variables, conditionals (control structures), loops and functions are the fundamental building blocks of programming. They may vary in syntax depending on the programming language, but they are practically implemented in the same way. Master them and practice algorithms to improve your problem solving ability. It will make you think like a Programmer, an Engineer!
Break and Fix things
Debugging is one of the most important skills to master. You need to learn how to search error messages. The good news is that as a beginner, every issue you face has most likely been encountered by another developer in their learning journey, so a simple search on Google or Stack Overflow can do the trick. When you inevitably encounter stubborn problems or issues that you just can’t seem to find a simple solution online, (trust me you will) keep calm and debug, take a break from debugging and then ask for help
Consistency is key ♾
This can’t be emphasized enough when it comes to coding, especially as a beginner. Practice as frequently as possible. Practice makes perfect. It’s recommended to code every day as a beginner.
In conclusion 🤝🏾
Remember that every programmer before you was once a beginner and went through this stage. Put in the time and effort. Be patience with your progress (expect to fail repeatedly, but don’t think of it as failing ) and have confidence in your ability and always Keep on Learning
Good Luck and Happy Coding!