The Definitive Guide to Succeeding as a Professional Dev
INTRO
PART 1. Being a professional developer.
If you consider yourself a professional, you're no longer coding just for fun. You're now coding to help your company succeed. And this completely changes the game.
You'll never become a true professional (or, in fact, anything more than a micromanaged code monkey) if you don't understand:
π Chapter 1. What does it mean to be a professional?
What sets a professional apart from a hobbyist, the difference between passive, active, and proactive mindsets, and the nature of modern software development.π Chapter 2. What makes companies successful?
What all companies need to succeed (even if they don't realize it), how they can achieve it, and why should you as a developer understand it.π Chapter 3. How we, developers, can influence a company's success?
Why you have more leverage than you think, how you can influence different facets of a company's success, and why it's crucial for you to do so.
PART 2. Advancing your career.
Being a true professional is not enough for getting noticed and promoted. To fast-track your career progression you have to purposefully steer it.
In particular, it's essential for you to know:
π Chapter 4. What's the one (and only) thing that will get you promoted?
Why the popular myth of the 10x developer is a misconception, what it means to make an impact, how it can turn you into a 100x developer, and why all tech companies consider it when promoting and hiring.π Chapter 5. How do career ladders (levels) work across the industry?
What are the similarities between levels across various companies, and what is the scope of impact and expectations associated with each level.π Chapter 6. How to make a far-reaching impact?
All the different ways in which you can make an impact, how to extend its reach, and why you don't have to be a manager or lead to make a company-wide splash.
π¨βπ» Chapter 7. How to take control of your career advancement?
Why first impressions matter, how to get yourself and your accomplishments noticed, how to enlist your manager's support, and how to negotiate a promotion or a raise.
PART 3. Developing a comprehensive skillset.
To effectively make an impact and advance your career, you need the right (and well-rounded) set of skills and traits.
To develop such a comprehensive skillset, you must learn:
π¨βπ» Chapter 8. What does it mean to be a well-rounded developer?
Which categories of skills do you need to master, which ones require a basic understanding, and what's the rationale behind these particular categories.π¨βπ» Chapter 9. Should you be a generalist or a specialist?
The pros and cons of both approaches, how to combine them, and which path is more likely to advance your career in today's dynamic job market.π¨βπ» Chapter 10. The definitive list of tech skills.
Everything you need to design, develop, and maintain complex software systems, from coding and architecture to security and performance (and much more).π¨βπ» Chapter 11. The definitive list of non-tech skills.
All the skills revolving around the process of developing complex systems, from soft skills and personal productivity to methodologies and business metrics (and much more).π¨βπ» Chapter 12. Traits of an outstanding developer (and how to cultivate them).
Why you need a specific set of personal traits to excel as a developer, what these traits are, and how they can be developed and refined despite the common misconception that one's traits are fixed.π¨βπ» Chapter 13. How to create your personalized learning roadmap?
How to prioritize skills at each level from Junior to seasoned Senior, determine learning order, identify skill gaps, decide which gaps to close first, and tailor your learning plan to your needs.
PART 4. Learning effectively.
Learning may seem like just another skill, but it's unique. To become a true professional developer and keep up with the fast-paced tech industry, you must master the art of effective and in-depth learning.
This will help you become an expert and efficient learner:
π¨βπ» Chapter 14. A brief note on general learning techniques.
Why the way you learn makes a critical difference, how much modern learning techniques differ from what we're taught at school, and a few pointers to kickstart your journey with effective learning methods.π¨βπ» Chapter 15. Programming-specific learning advice (or how to quickly master new languages or frameworks).
How to transfer knowledge from one language or framework to another, how to make the most of various learning resources, and how to optimally balance learning and experimentation.π¨βπ» Chapter 16. How to learn in-depth (and why it's essential)?
Why superficial understanding won't cut it for a true senior dev, how to avoid blindly applying best practices, and how to dig into their true roots, edge cases, and limitations.π¨βπ» Chapter 17. How to learn without sacrificing your work-life balance?
How to create the time you need without compromising your personal life by maximizing learning at your job, taking advantage of various learning opportunities, and creating an environment conducive to learning.
PART 5. Staying relevant.
Technology is changing too fast to learn everything just once and rely on that knowledge forever. If you're aiming for a successful lifelong career, you'll need to continuously update your skills or even completely reinvent yourself.
To avoid becoming a relic of the past, you must not only know how to learn effectively but also:
π¨βπ» Chapter 18. How to best stay up-to-date with what's new?
How to choose which outlets to follow, whether to focus on mainstream or niche sources, how closely related they should be to your current specialization, and how often to check them for updates to ensure you won't miss the next big thing.
π¨βπ» Chapter 19. How to decide what's worth investing your time (and how much)?
How to filter out the hype, which novelties to experiment with, should you try out several in parallel, how much time and effort to invest, and should you become an early adopter.
π¨βπ» Chapter 20. How to avoid becoming obsolete?
How to anticipate when your current specialization is at risk of becoming obsolete, identify what to transition to, and start preparing to reinvent yourself (while leveraging the benefits of existing expertise).
PART 6. Experience level-specific advice.
Most of the principles presented in this guide are universal. However, what you should prioritize, which projects or companies to seek, and which activities will help you the most differ based on your current level of experience.
Here's some fine-tuned advice tailored to your specific stage in your career:
π¨βπ» Chapter 21. A fresh graduate or a junior.
If you're about to start or are a year or two into your first job. What to focus on to kickstart your career the right way, build a solid foundation for further progression, and "level up" for the first time.
π¨βπ» Chapter 22. A mid-level or early senior.
If you already know your stuff but still have some gaps in your skillset and don't yet feel like a true expert. How to fill those gaps, gain more experience rapidly, build a well-rounded and robust skillset, and become a top-tier senior professional.
π¨βπ» Chapter 23. A seasoned senior.
If you're an experienced pro with multiple complex projects and years of experience under your belt, ready to advance your career to the next level. How to extend the scope of your impact beyond your direct team, take full control of your further progression, and successfully transition to staff or management roles.
π¨βπ» Chapter 24. A staff or principal-level veteran.
If you are a grey-haired, battle-scarred mentor who knows your specialization inside and out. How to keep your skills fresh, stay relevant, avoid a plateau, and continue to improve even when you're at the top of your game.