Material for (New) Developers
A collection of books, links and videos that can be helpful for (new) developers. Experienced programmers might already be knowledgeable about these subjects.
Technical and Non-Technical Tips and Guides
These can help you become a better engineer, improve your knowledge of the software industry and your ability to understand people.
- The Pragmatic Programmer
- This book is filled with practical and technical advices, best approaches and major pitfalls
- Read 20th Anniversary Edition / 2nd edition
- The Software Engineer’s Guidebook
- Lots of practical information from all areas of software engineer’s work and career
- The Software Developer’s Career Handbook
- Easy to read material containing a lot of relevant information about what it’s like to work in the software industry
- The Goal: A Business Graphic Novel
- A novel about thoery and practices to achieve ongoing process improvement
- The comic version is quick to read and for most readers, it is likely enough
- Full novel: The Goal: A Process of Ongoing Improvement
- The Phoenix Project
- A novel about transforming IT processes to better align with business goals and enhance overall organizational performance
- This book is a homage to The Goal, and it is recommended to read it (comic) first
- The Unicorn Project
- A novel about working in software development in a non-tech centered enterprise company
How to Write Good Code
Hard to find a single good book to recommend. It is good to keep in mind that books have always author’s personal opinions and you do not need to agree with them all. Overall, following practices will help you to write better code.
Start with one of these: JavaScript | TypeScript | Python
and read more from books
- The Art of Readable Code
- More approachable and lightweight than Clean Code or Refactoring
- Clean Code
- Refactoring
- 2nd edition has code examples in JavaScript
- Philosophy of Software Design
- How to design software while avoiding complexity
After that, write more code. And repeat, repeat and repeat.
Architectures
Understand the decisions behind architecture choices.
- Architecture Patterns with Python
- Official free online version of the book: Cosmic Python
- Software Architecture & Design - YouTube playlist
- Good under 1h introduction to distributed systems architectures
Keep Up with the Latest Trends
History of Software Field
- Masters of Doom - book
- Hackers: Heroes of the Computer Revolution - book
- Command Line Heroes - podcast
- Halt and Catch Fire - TV-series
About Engineering and Product Development
- Why coding isn’t enough
- “The job of a software engineer is not to code, at least not 100% of it is; it’s to solve a technical problem. So have pride in solving that problem.”
- Things they didn’t teach you about Software Engineering
- Some important aspects of software engineering that are often overlooked in traditional education, e.g. self-leadership, collaboration, and continuously learning and improving technical skills.
- How “Engineering-driven” leads to “engineering-supremacy”
- Focusing on engineering as the key driver of a company’s success can lead to negative outcomes as it can lead to neglecting the importance of other roles, such as product, sales, and customer support.
- What Silicon Valley “Gets” about Software Engineers that Traditional Companies Do Not
- In some companies engineering is not a feature factory. Engineers are expected to be creative problem solvers who also understand the business.
- On Being A Senior Engineer
- A good summary of what is expected from a senior engineer. Spoiler: technical excellence alone isn’t enough for seniority.
Written on February 5, 2022