How To Take Advantage of Resources Available At Work
Ten ways to use what’s already around you at work to accelerate learning:
- Study core abstractions written by your best engineers. Read the core libraries the early/strong engineers wrote — start with ones you’ve already used. Ask whether you’d have written it the same way, why the choices were made, and whether earlier versions got rewritten to fix shortcomings.
- Write more code. Decades of learning research show the more effort you spend retrieving knowledge, the better you retain it — and actively coding takes more effort than passively reading it. It’s easy to think you understand something you’ve read until you try to build it and hit the gaps.
- Go through internal educational material. Design docs, tech talks and internal guides are all learning opportunities.
- Master the languages you use. Read a solid book or two; develop a real grasp of the advanced concepts and core libraries. Make sure at least one is a scripting language (Python, Ruby) to use as a Swiss-army knife for quick tasks.
- Send code reviews to your harshest critics. Optimise for good, thoughtful feedback, not for getting changes merged easily. Ask for deeper review on work you’re unsure about, and discuss designs with your best designers before building.
- Take classes where you want to improve — on campus, at nearby universities, or online (Coursera, Udemy, etc.).
- Join design discussions for projects you care about. Don’t wait for an invite; ask leads if you can observe or participate, and read open mailing-list archives.
- Work on a diversity of projects. Always doing similar tasks the same way makes it hard to learn. Interleaving projects teaches you which problems are common across them and which are artifacts of your current one.
- Be on a team with senior engineers to learn from. If you’re not, consider switching — it raises your learning rate across the other 80% of your time.
- Jump fearlessly into code you don’t know. Fear of failure stops us before we try.
“In the practice of digging into things you don’t know, you get better at coding.” — Bobby Johnson, former engineering director at Facebook
Source
Edmond Lau, The Effective Engineer, Ch. 2.