Yesterday, I had dinner with a friend of mine, and a conversation I had with Him made me rethink why I do what I do. As we talked I realized that I am not content with just being another software developer in the marketplace. Still, I would like to become a dynamic, useful software engineer ๐จ๐พโ๐ป in each team I will get the opportunity to serve my skills.
As we continued to speak he stressed the power of mastering the fundamentals. I went home determined to start from scratch, seeking to master fundamentals because as it is often said Fundamentals win championships ๐. Thinking through this led me to re-read one of my favorite articles about Vince Lombardi and the hidden power of mastering fundamentals
๐ฏI have determined to master the fundamentals of frontend development (HTML, CSS & JS) because I believe that the less someone understands the underlying technologies or fundaments of the language you work with, the more buggy their code will be.
- Read an article by Josh Comeau on The importance of learning CSS. He goes deep into the fears faced by developers when it comes to working with CSS and the correct mindset needed to approach CSS systematically. At the end of this article, He highlights one of the most trusted resources you can use for learning CSS: MDN, web.dev and a beautiful article on How to learn CSS by Racheal Andrew.
- I have the privilege of serving as a coding coach at a boot camp I recently was on,The Gym ๐ช Rwanda, and today I have learned something while having a one-on-one with one of my trainees, teaching Basics is hard. You have to have a solid understanding of fundamentals, and why things work the way they are, to convey basic principles to a newbie (๐Thanks to the bottles and glasses ๐ I used for demonstration). And by the way, I was explaining to them why and how Git and GitHub work. Here is a YouTube Channel that I found out today that explains complex principles of software development in simple terms and in a short time (<5 minutes ๐ฒ).
- Key takeaways from reading through Josh Comeau's article on How to learn ๐ stuff quickly :
- You need both guided and unguided learning. When beginning it is always good to do much of guided learning but as you progress you have to lean much into unguided learning through working on projects that interest you and referring more to the docs.
- When doing guided learning:
- Play a scientist, and experiment with the code you writing. Ask yourself, What would happen if I omit this? Never copy and paste code, always make sure that you understand what you are implementing.
- Apply the one on, one off principle, after going through a resource such as a tutorial, and redo a similar project but with an unguided approach.
- Always cultivate a growth mindset, which is seeing struggle and failure as an opportunity to learn not an indication that you can't make it.
- Courage to be able to do physical exercise.
- Peace of mind
- Good friends
In the journey of self-paced learning, nothing is as important as deciding what path is specifically for you. I haven't yet figured out the ultimate one, either, but I contemplate it daily. What can I do to improve my learning strategy?
Through so much trial and error, I have learned that I am a morning person. This means that I am at my peak in terms of learning new things or attending to challenging tasks in the morning. Of course, this schedule has a lot of benefits but with the society's working norm of meetings (Jason Fried's insights on meetings are definitely worth checking out) and instant messaging it can super distracting that these power hours are somehow used unproductively.
Paul Graham has an article that I have found useful, which argues for instituting a maker's and manager's schedules for our daily work. But still, I am struggling.
- Applying Pomodoro to my coaching styles.
- How do decorators work in NestJS?
- How to deal with afternoon lag?
- How to listen when she speaks?
- The joy that comes with celebrating a friend
- I understood how decorators work in JS
- Energy to take these notes