Learning Faster as a Developer
Tags: beginners, productivity, career
Published: 2020-01-29 02:57:37

# Introduction
In the past, did not talk about how you should approach it. Here is what I had learned in accelerating your own learning.

This is my own learning preference, I understand that are different types of [learning styles][1].  Therefore, I encourage you as the reader to seek out the best way.

# Learn By Doing Real-World Projects
This is recommended by one of my fellow co-mentor when I was in JuniorDev SG mentoring program as a mentor. 

Which I wholeheartedly agree with this as one of the best ways for anyone is to learn. Through the school of hard knocks by doing the real thing in the actual environment. 

Which there are times when you are forced to think on the spot. To get things done, by being resourceful or seek information or advice by Googling or asking a person for help.

For me, the next best thing is through **simulation** of the actual environment that could be in the form of [wargame][2]. 

Which is why going for [CodeKata][3] reinforces learning concepts in habits, thinking processes and reflecting through one's own failure.

Sure everyone dreads the feeling of making mistakes or failures due to our own education system that prefers not making mistakes. 

As a developer, your job is to make mistakes and learn from them. To find ways that work that is maintainable and make sense to use. 

Like for example, you should never deploy anything to a production server on [Friday afternoon][4].

# Looking at the Code & Documentation
I found that reading another person's codebase and documentation helps a lot to understand to write better pieces of code. 

Which is why regardless of your team size, enforcing [style guides][5] and [linter][6] in your text editor or IDE is a **must**. For both **maintainability** and **readability** of the codebase.

Regardless of your view in [Test Driven Development (TDD)][7] and [Clean Code][8]. Since for me, it's just basic courtesy and sanity for anyone who will be touching your codebase in the future, including your future self.

One of the best ways to learn about coding is diving into open source projects and reading their codebase to understand their thinking process and how a feature is implemented.

This provides you insight on how packages, plugin or add-on work in real life. If they had lack of documentation or it is hard to decipher.

# Teaching by Documenting Your Journey
[Gary Vee][9] gave tons of advice on content creation. I read his book called [Crushing It][10]. Where he drills deep on producing quantity over quality content.

Which is the case for me as well, since by adopting the mindset of **documenting** and **adding value** for someone through the content you had created. The person might stumble across it through a Google search on a specific problem or social networking or media platform like Youtube, Dev.To & Medium. 

By adopting the documenting approach, you won't really care what others will think about it. As long as you create content that is specific for your niche, which in my case was **Python**, **Web Development** & **Startup**.

The other concept that you need to adopt is "trusting the process" by [John Sommez][11]. Who is a creator for [SimpleProgrammer][12] & [Bulldog Mindset][13] sticking to it for **5** years when you are focusing on documenting your journey.

Besides, one of the benefits of doing that for so long is that it allows your potential future employers. To find you by offering you a job or customers who know that you are specialised in your niche to seek advice or help them to build things for them.

# Conclusion
I hope it is useful for you who are seeking to accelerate your learning as a developer. 

Those are actionable steps that I believe will be useful for anyone who is seeking to learn faster in what you **need**. 

Seek to learn things when you want to operate at a higher level. Not just [chasing the dragon][14] in the latest shiny technology that has rolled off the block.

If you like this article **sign up** for my [Adventurer's Newsletter](https://maxongzb.activehosted.com/f/1) for a weekly update in the area of **Python**, **Startup** and **Web Development**.

You can also **follow** me to get the **latest** update of my article on **Dev**

The original post was on [Learning Faster as a Developer - Reading Time: 3 Mins](https://www.maxongzb.com/learning-faster-as-a-developer-reading-time-3-mins/) and cover image by [Ben White on Unsplash](https://unsplash.com/photos/1MHU3zpTvro)

# Reference
* [Learning Styles][1]
* [Wargame][2]
* [CodeKata][3]
* [Why You Should Deploy on Friday Afternoon][4]
* [Style Guides][5]
* [Linter][6]
* [Test Driven Development (TDD)][7]
* [Clean Code][8]
* [Gary Vee][9] 
* [Crushing It][10]
* [John Sommez][11]
* [SimpleProgrammer][12]
* [Bulldog Mindset][13]
* [Chasing the Dragon][14]
* [The Learning Pyramid][15]
* [Soft Skills Software Developers Life Manual][16]
* [How to Become a Software Developer][17]


[1]: https://www.brighthubeducation.com/teaching-methods-tips/128391-different-types-of-learning-styles/
[2]: https://en.wikipedia.org/wiki/Wargame
[3]: http://codekata.com/
[4]: https://dev.to/quii/why-you-should-deploy-on-friday-afternoon-285h
[5]: https://en.wikipedia.org/wiki/Programming_style
[6]: https://www.perforce.com/blog/qac/why-linting-important-and-how-use-lint-tools
[7]: https://www.agilealliance.org/glossary/tdd/
[8]: https://www.amazon.com/Clean-Code-Handbook-Software-Craftsmanship/dp/0132350882
[9]: https://www.garyvaynerchuk.com/
[10]: https://www.amazon.com/Crushing-Great-Entrepreneurs-Business-Influence/dp/0062674676
[11]: https://simpleprogrammer.com/about-simple-programmer/
[12]: https://simpleprogrammer.com/
[13]: https://bulldogmindset.com/
[14]: https://www.urbandictionary.com/define.php?term=Chasing%20the%20dragon
[15]: https://www.educationcorner.com/the-learning-pyramid.html
[16]: https://www.amazon.com/Soft-Skills-software-developers-manual/dp/1617292397
[17]: https://simpleprogrammer.com/how-to-become-a-software-developer/