GUILD LINES TO LEARNING HOW TO CODE IN 2021
Tags: programming, codenewbie, opensource
Published: 2021-01-12 01:16:21






Disclaimer: *This article is subjective to my view, and it's also the guild lines I followed into becoming a better software engineer. It may work for you but I strongly believe everybody is unique, and what works for me might not work for you. So, keep this to mind while you read.*


###INTRODUCTION.

My name is David, I am a software developer who is also learning how to become a better writer. I  also enjoy teaching kids how to code. 


I co-founded Skill-Connect and I currently work for Bitnob (a crypto-currency company in Nigeria). I started this journey five years ago, web development precisely, Now I do both mobile development (flutter) and web (Angular/React).
Enough of me, let's dive right in.


###WRITE DOWN YOUR GOALS AND JUMP ON THEM.

I believe one mistake newbies make is not setting realistic and achievable goals before jumping into any language or framework. I am also a victim of this. The reality is no one can master a language or framework 100%, you can master the ins & out for sure, but you can't know everything, that is impossible, even the almighty Linus Torvalds (the creator of Git/Linux) uses google to search for solutions somethings, (so I heard lol).


I see many people trying so hard to grasp every concept of the tool they use, this is not just overwhelming, but this will also clutter your brain with some information you might never use. 
For example, let's say you want to learn angular, my advice would be jotting down something similar to this.


i. Learn what components, directives, services are.
ii. Learn data binding and How to make http request, intercept request with interceptors in angular.
iii. Learn state management, Rxjs, observables etc.
iv. Learn Authentications and Authorizations
v. Learn Angular architectural patterns. etc.


There are other things too, but the point is. Notice the above are realistic, achievable and also fundamental, I would strongly advise you build a small project after you've learnt the theoretical aspects, this helps you solidify what you've learnt and as you know getting your hands always dirty cannot be overemphasized in this industry.


###PICK A FRAMEWORK AND STOP PROCRASTINATING.
I was stuck on this for weeks trying to choose which framework is best for me to learn, and also there is this funny question I see many people asking now "What is the best programming language or framework to learn?". I now find this funny, because the truth is there is no best programming language.

 
It's just like asking a carpenter, what is his best tool? Well, I'm no carpenter, but I'm sure the carpenter would say, every tool he uses has its own function and when it's best for him to use it. 


Let say a carpenter wants to divide a wood, he would use a saw, right? If he wants to join two woods together, he uses a drill and screw, or nail and hammer, right? of course he can decide to use a hammer to divide a wood, but would that be efficient. you get my point? The same principles applies to programming, every language or framework has where its scales high, and where its scales low. I think the question should be, which language is more beginner friendly? then my answer would be JavaScript or python.


Also, it's very important you choose your path from onset, the reality is that Tech Industry is very huge, there is devOps, Artificial Intelligence, Machine Learning, Mobile Development, Game Development, Desktop Development, Web Development you name it. Just choose one path and learn it prerequisite, then you are good to go.


For a beginner I would strongly advise you choose Web Development or Mobile Development. it's more beginner friendly, and its job opportunities are countless. You should also consider the community behind tool you are learning, Its more easy for you to find help or resources when you get stuck if the community is big.


###LEARN DAILY AND CODE DAILY

I hear a lot of people say, "practice makes perfect", well, I disagree. I believe practice makes you good, but obsession makes you perfect. I believe if you really want to be perfect at what you do, you need to be obsessed with what you do. Perfection is way beyond just practice.


let's look at the almighty Cristiano Ronaldo for example. You see him score goals, set records that are just so crazy for anyone to beat (Some even call him immortal, lol). But the truth is, he is very hard working, Ronaldo is said to be the most hard-working football player of his time, even his teams-mates don't like paying him a visit, because he is always training when they get there, and he forces them to join him. 


I strongly believe he is obsessed with training. That is why we all see him as a perfect player. The same applies to all these great geniuses: Elon Musk, Michael Jordan, Linus Torvalds, etc.
So, for you to really stand out as a developer, you have to learn daily, code daily. This forces your brain into making it a habit, and once it becomes a habit, you see yourself doing it without feeling stressed out, or forcing yourself to do it. I can guarantee you; you would scale up in no time.


###LEARN TO ENJOY THE PROCESS

This is my favorite, I remember how angry and frustrated I normally feel, each time I'm alone, on my bed coding, learning while my friends are out there having fun. I wasn't really progressing, I felt irritated, each time I saw an error, and my first thought would be "I'm not cut out for this". It was not until when I started tricking my brain into loving coding, that I started grasping concepts faster, solving bugs, writing good quality code.


You might be wondering, 
who the heck tricks his brain? 
How? Yeah, I did just that, Here is how.


I was watching YouTube one day then I came across this video by Mel Robbins, where she spoke about tricking your brain, *(the 5 seconds rule)*, and also *How to change your life | Affirmation to success*. I would strongly recommend you check it out here and here it's worked for me. I taught about this for some minutes and developed a routine for handling my fears and irritations.


Each time I feel irritated and just want to get out and run away, I remind myself the reason I'm doing this. (mine was because I want to change my current financial status). I would imagine myself getting a good job and how happy I felt when I got things I couldn't afford now, paid my little nieces fees, how happy they were when I took them out and bought them gifts. 


This sends some dopamine to my brain and switches my mood, and I continue my learning process fired up.


I hear lots of people saying *"don't do it because of the money"*, well for me I don't think I would go down this route, if it wasn't for those 6 digits salaries. I personally think the same applies to over 60% of people in this industry. Just when the tech industries start booming up, suddenly, everyone on earth starts joining the industry. *(They now suddenly enjoy coding because it's fun, Naaah!!)*. 


Coding is very hard, like it is extremely hard, if you just started out as a beginner, you need all the motivation you can get for you to go down this route, and guess what, research has shown that money motivates man into doing the extraordinary.

 
My only advice would be you shouldn't let money enforce the decision you make as a beginner. What I mean is, let's say you work for a startup, whose working environment is super nice, and your growth is paramount in this startup, and you later got an offer from a bigger startup whose pay is better, but it's toxic. don't take it. *(Run from a toxic environment as a beginner, it would drain your blood and motivation, lol)*. 


I'm not saying you shouldn't take risks, of course you should do that more often, I'm just saying your growth should be more important than what you earn when starting out, because once you are above average, offers and jobs would keep coming.


How would you know?


Do your research thoroughly before joining any startup. It's easier for an experienced developer to switch between jobs, but it's not easy for a newbie to see jobs come their way if eventually you got fired for not being productive enough.


###DON'T BE SCARED OFF ERRORS AND MISTAKES

This affected my learning process because I was battling Imposter Syndrome then. What is that? Well. 


Imposter Syndrome is being scared of people discovering that you are a scam. 


It delimits your self-confidence, and you are always scared whenever you are charged to do something new. 


Confidence is everything, embrace it. Whenever you see that error, don't feel irritated, try to fix it, if you can't, google is your friend. and if you still can't find any answer, then seek help from a friend, colleague or group but not after you've tried fixing it yourself, you don't want to disturb others while they are working. it makes you a lazy programmer and disvalued how you are being pictured if you keep doing that. Trust me have been down that road.


Also, errors and bugs are your friend, embrace them every time because you would see a lot of them, I mean a lot. I remember how happy I felt when any code I wrote compiled at first trial when I was starting out, Now I'm usually very surprised if this happens, because I expect something to go wrong. The same applies to more experienced dev.


###WHEN WOULD YOU BE READY TO START APPLYING FOR JOBS OR INTERNSHIPS?

I would say you start as soon as possible, but also make sure you've built like two or more projects, your recruiter would request for your port-folio. I see many folks are always scared of applying for roles, they think they are not ready yet. Just do it, let your recruiter beside who is the perfect fit for the job, you don't have anything to lose, just continue trying, if you get rejected, try again, that's life. 


Just because you were rejected does not mean you are worthless or you are not a perfect fit, some recruiters don't even know what they want, I have seen a recruiter post a five years' minimum experience job for a framework that is less than 3 years (flutter precisely) and after that they choose randomly. 


So, you never know where luck might find you. Just try.
Rejection is very normal, don't expect to get your first job in two to three months, its very possible though. But don't let it way you down if you've not gotten any offer yet, it would come, trust me. you have to keep trying.


I remember when I was applying for internships, and I got a technical interview, I was extremely nervous, it didn't go well, thereafter my interviewer said: "You know this coding thing isn't for everybody, right?". 


No words of encouragement or whatsoever, I was completely devastated, I almost cried. I almost gave up, thank goodness I didn't, maybe I might be working as a fuel attendant in a gas station or a Bar attendant.


*P.S. Please I don't have anything against these jobs.*


###CONCLUSION

I hope this article motivates you into being successful in your journey. Remember it's not a sprint but a marathon; coding is very hard for a beginner, but I can promise you that, it gets easier when you keep doing it. 


Take every step bit by bit and continue learning, you would be amazed at how far you've gone in no time. I can promise you this.

Wishing you best of luck as you commence your coding journey, and don't forget, you can do it, you matter, don't let anybody tell you otherwise.
Cheers.