We all learn at our own pace and in our own way, in this post I “try” to explain what I do to grow and become an efficient dev one step at a time.
⚠️ This flow is personally curated it may or may not help you.
As you can see in the above flowchart there are 3 phases which you may encounter while being a programmmer/dev, I try to briefly describe them below.
This is an endless cycle of Create 🔄 Learn, you never stop learning while being a dev.
It’s a Learn <-> Implement cycle, once you learn something new you use that to implement something.
Implementation can be of different perspective for different people, you may solve a hackerrank problem after learning binary search, debug that error, implemet a new feature or write a blog.
This is a never ending phase.
In phase 2 there are 3 stages :
Once you create something one thing you should always do is to ask someone to review it for you, this may help you cross out all doubts you have regarding your project.
You can ask anyone for giving you feedback it may be you friend, your project manager, your colleague, your college professor or even a stranger on Reddit.
Another way of getting feedback on your project is to OpenSource it and write a Blog about it or maybe launch it on ProductHunt ! I have been following the later approach for a while now and it has been rewarding.
Once you are successfully able to get feedback your chances of improving increases. How you may ask? people may give suggesstions for e.g some may suggest UI improvements, others may find a bug.
Just make sure you share whatever you create with someone, sometimes I share my draft blog posts with my friends to give me reviews.
Tip : If you use GitHub for your projects use the “issues” they are very handy for remembering what you have to do or what not. I recently started doing this for even my not so great projects.
In phase 3 there are 3 stages :
I call this the pro stage because, once your stuff start getting liked by the communtiy people start appreceating what you do and how you do it. this appreciation injects in you the motivation to create & learn more.
Everyone needs a little appreciation 💟.
The ultiamte goal with every profession is how motivated you are for your work, Programming is no far from this, I constantly see people getting burned out (or procrastinating 😰). I get motivation from the stuff I create (my blogs usually), after a long time I have started reciving DMs from people telling me how they loved my blog and I love the very thing that someone out there took time to message me personally 💓.
Due to this very thing I may not leave technial blogging forever 😛
Tip: before you start your day programming make sure you make a small to-do list just before you turn on your PC/laptop and in the list add only the things you would do in that sitting. For example if you program 2-3 hours constantly make sure your to-do list contains items that can be completed in that time frame, Don’t think about tommorrow think about the present.
I am explaining the Learn stage one time because (I am lazy) nah! Because The Learn Stage is common in every 3 phases of the devlearn flow. As i said earlier everyone learns in their own way. Watching a YT video, joining online courses, going to a bootcamp etc. My personal fav learnig approach is to Make Projects from whatever I learn.
_ If I am a absolute begginer, how will I create something ? _
- Grasp a basic understanding of the language/tech.
- Come out with a very small project idea(could be a clone of something, to-do app, small game etc).
- Make it.
As simple as that. Don’t worry if your app has bugs, you cannot make a perfect project overnight take your time create daily, learn daily.
One approach of learning could be to find a good mentor who can guide you along your way of learning checkout DEV Listings or CodingCoach. So far I have not been successful with the mentor approach but hey! maybe it may work for you.
Don’t forget to log whatever new you learn (you may use the TIL approach on github - here is mine)
This strategy is pretty handy & has been giving me positive results 😃 since I started as a dev, it may not work on you but you may surely gain some insights from this.
Single Responsibility Principle (or SRP) is one of the most important concepts in software development. The main idea of this concept is: all pieces of software must have only a single responsibility.