This is a great book. Even though it was written in 2015, it reflects some timeless wisdom from one who made the journey (and continuing it). It is a great blend of strategies and tactics to become a better developer.
I enjoyed reading it and took lots of notes. I am reproducing some of it. Some were words spoken by the author (I was listening to the audio version) and some of them paraphrase what the author said.
The notes should be self-explanatory. If they are not, it is my fault. But it is also a technique for me to encourage you to go and read the book.
Book Notes: Skill Up
- Coder Skills
- Tipping point from beginner to pro
- Study and understand complex topics
- Reification – taking a new concept and connecting to an older (known) concept
- Deep work – Reading four to five books a month since authors spend about 2+ years to research a topic they write about
- Tipping point from beginner to pro
- Skill Plateau
- Step back a bit and focus on quality instead of quantity
- Work on challenging new tasks (that you have not done before)
- Frustration zone (frustration = skill)
- Developer Learning Curve – the learning process
- Lift-off, twilight zone and the zone
- Lift-off (takes about 250 to 300 hours)
- All new topics and concepts – 6 to 8 weeks of intensive learning
- Twilight Zone
- Cementing of core concepts
- Novelty wears off
- Debugging defects
- Implementing best practices
- The Zone
- Learning never ends for developers
- Lift-off, twilight zone and the zone
- Slowing down to code faster
- Take 8-week training programs (typically boot camps)
- Our challenge is moving knowledge from short to long term memory
- Spaced repetition helps (a lot)
- Mental Models for learning to code and improve as a developer
- How can expert developers work so efficiently
- A mental model is a mental representation of a skill made through repetition
- “The only source of knowledge is experience” – Einstein
- How can expert developers work so efficiently
- Hacking Procrastination
- Root causes
- Perfectionism
- Fear of success
- Lack of a plan
- Embrace Failure
- Fear of success is rooted in the fear of the unknown
- Root causes
- Hacking the Plan
- Be very specific
- Work on smaller and more manageable tasks (time boxing)
- Pomodoro and Development
- Use Pomodoro technique to work on small tasks
- Learning by Failing
- Mistakes force learning
- Mistakes kill pride
- Learn how to code
- Visual/Mental Mapping
- Patterns/Clustering
- A system for learning new language/framework
- Watch or Read a tutorial
- Build a simple app
- Implement a sort or some other app that tests your data type/data structure skills
- Go through an advanced tutorial
- Go through interview questions
- Try a few micro-apps (tiny apps that you can build over a weekend)
Each step moves you up a level and due to spaced repetition, helps you solidify concepts learned.
- Development Study Tips
- Reverse note-taking
- Listen to lectures without taking notes
- At the end of the lecture, write down whatever you remember
- Develop a story based mind set
- Try forced repetition