We’re assuming you’ve already taken coding courses and been practicing quite a lot. If not, then why not kick-start your career as a developer right now?
- Sites such as Codecademy, Coursera, PluralSight, and Skillshare provide online coding classes for beginners;
- You can sign up for in-class instruction from various universities and other training institutions;
- If you’re an Estonian wanting to join the IT sector, check out http://vali-it.ee/;
- If you know you want to join IT but not sure if you should be a programmer, take a look at our article on non-technical roles in IT.
For most engineers, the habit of learning from books doesn’t come easy, especially when you’re young and eager to take on the world. It might be enjoyable to make your discoveries by reinventing the wheel, but the road to mastery then takes twice as long. Books will help you create a context in which you can make sense of your own experiences more smartly. We’ll give you three good reasons why reading is a good investment of your time:
- We believe every lesson you acquire from these books significantly increases your professional worth.
- As a bonus, you’ll earn new respect from hiring managers and engineering colleagues.
- You’ll also save countless hours of arguing about style and form and get more stuff done from day one.
To become a highly valuable engineer, you should educate yourself mainly in three areas:
- Coding principles, tools, and practices
- Working in a software team (as a team)
- The software development process
Books Every Software Developer Should Read
If you’re in the early years of your developer journey, the assignments you get are less-complex and mostly non-critical. It’s easier to start with good development habits and mindsets by following these evergreen principles from the books below.
The Pragmatic Programmer: From Journeyman to Master (A.Hunt and D.Thomas) focuses on what it means to be working in a software development team.
This book is a timeless read for any level of software engineer that will be as useful in 10 years as it is today. Understanding the expectations for a top engineer and how the journey unfolds will give you valuable insights for a successful career.
Clean Code (Robert Martin) focuses on evergreen coding principles.
“Clean Code” is the most-recommended book by software engineers. Bad code can work, but if it isn’t clean, it can eventually bring a development organization to its knees. Read this book if you want to be a coder that everyone wants on their team.
When you have a couple of years of experience under your belt, assignments are often more complex and with a broader scope. The following practices introduced in the books below will enable you to have a stronger foundation to tackle the software development challenges as they come:
Code Complete (Steve McConnell) focuses on higher-level coding guidelines and the complete software development process.
For junior engineers, this book will be too difficult to apply to their programming. Later chapters of this book will help you get valuable insights and appreciation of other development roles. These lessons will benefit you, especially when you have a senior position in a development team.
Refactoring (Martin Fowler) focuses on improving the design of existing code and on enhancing software maintainability.
Every year, some part of software moves into the realm of “legacy”. Engineers expend a lot of effort, are working or maintaining some kind of outdated program or system. This book helps bring satisfaction to the job of working with legacy software and how to take pride in your work.
The road to mastering the skills of a developer requires gaining the knowledge and skills to influence your development team and organization effectively. The best in the field learn from the giants to see what the software world has already learned, and then figure out how to apply it to their own context. The following books are pure gold in the value they contain:
Peopleware: Productive Projects and Teams (Timothy Lister and Tom DeMarco) focuses on the social side of software development, specifically on how to manage project teams.
This book covers the most common questions and challenges and uses actual research to explain what matters in a software team. It’s a tremendous eye-opening read that will start instantly to make sense to an experienced mind. After reading this book, most people look back and think, “Oh, why didn’t I read this five years ago!”
Lean Software Development: An Agile Toolkit (Mary Poppendieck and Tom Poppendieck) focuses on adapting agile practices to your development organization by uncovering and eradicating waste throughout the software development life cycle.
If you are experienced in the software development field and have a mindset for thinking about systems, the potential value of this book can be radical. Most have heard about Extreme Programming, Agile, Scrum, and Kanban; then there is Lean. We consider Lean Thinking as the highest level of mastery to bring sustainable efficiency. Applying Lean Software Development principles could double the profit of many business projects and would save many unprofitable ones.
If you can’t get access to these books, then let us know, we might lend them for a month or two. It’s our mission to bring higher-level software development practices to society. Everyone will benefit from working smarter together!