Today's TLDR newsletter: A thorough article by Sasidhar Gadepalli on the subject. I pasted the entire article in comment in case the link gets broken. It's valuable as it gives example sites and services to deal with the gigs mentioned.
On the must read, I also pasted the entire article in the comments, just in case.
The Developer's Guide to Earning Side Income: An Inside Look
#
programming
#
career
#
sideprojects
#
productivity
I've always been a big fan of the saying, "Don't put all your eggs in one basket." In the ever-changing landscape of software development, this wisdom holds especially true. Relying solely on your 9–5 job isn't just risky, it's also a bit…well, boring.
Today, I'm going to share how I - and many others - have ventured into the world of side income opportunities as a software programmer.
Why Consider a Side Hustle?
Before we dive in, you might be wondering, why bother with a side income? Well, aside from the obvious monetary benefits, side hustles also offer a chance to explore new technologies, build your portfolio, and even network with others in our field. And let's face it, we're living in an era where job security can be as volatile as JavaScript frameworks.
Tutoring and Mentoring
For me, one of the most rewarding ways to earn some extra cash is through tutoring and mentoring. If you're an intermediate or advanced developer, you likely have a wealth of knowledge that beginners would love to tap into. And the best part? You can do it all online, from the comfort of your own home.
Platforms like Codementor and HackHands are always looking for experienced developers to help mentor others. And if you enjoy teaching, why not create your own courses on platforms like Udemy or Coursera?
Freelance Development
Freelance work is another lucrative option. Websites like Upwork, Freelancer, and Toptal are chock-full of businesses looking for developers to build or maintain their software. Here's a pro tip - focus on niche skills or technologies. The less competition, the higher the demand and the rates you can charge.
Open Source Contributions
You might be thinking, "But open source is free, how can I make money?" Well, while it's true that open source projects are freely available, many companies are willing to sponsor developers to ensure the longevity and stability of these projects. GitHub Sponsors, Open Collective, and Patreon are just a few examples of platforms where you can get financial support for your open source work.
This is just the tip of the iceberg, folks. In the next section, I'll share even more ways for developers like us to earn a side income. Stay tuned!
Bug Bounties
Now let's take a slightly different path - Bug Bounties. If you love problem-solving and have a knack for finding security vulnerabilities, this might be right up your alley. Big tech companies like Google, Facebook, and even the U.S. Department of Defense run bug bounty programs, where you can earn big bucks for finding and reporting security flaws. It's like being a digital bounty hunter - thrilling, isn't it?
Building Your Own Software or App
One of the most exciting avenues for earning a side income is to create your own software or app. Yes, it's a significant commitment, but also potentially the most rewarding. You could create a mobile app, a web service, a game, or even a handy tool for developers. If it solves a problem or entertains, there's a market for it.
Consider launching it on platforms like the App Store, Google Play, or even on the web. Monetization can come from in-app purchases, ads, or selling the product outright.
Blogging and Vlogging
"But I'm a coder, not a writer!" I hear you say. You'd be surprised how much your experience can help others. Writing blogs or creating video tutorials about coding problems you've solved or technologies you've learned not only helps solidify your knowledge, but it can also generate a passive income.
Platforms like Medium allow you to earn money based on how much people interact with your articles. If video is more your style, YouTube shares ad revenue with content creators. And if you can build a substantial following, sponsorships might even come knocking on your door.
Stock Assets
If you're a developer with a knack for design, consider selling digital assets on marketplaces like the Unity Asset Store or ThemeForest. These can range from game assets, web templates, to CSS animations, and more. Once you've made the asset, it can continue to earn you passive income without much additional work.
I hope these suggestions have sparked some ideas. Remember, the best side income is one that you enjoy and aligns with your long-term goals.
Consulting
Have you considered becoming a consultant? Businesses often need experienced developers to review their code, architecture, or development processes. If you've been in the game for a while, you probably have a lot of valuable insights to offer. Plus, it can be a nice change of pace from the daily grind of coding.
Speaking Engagements
Once you've built up some expertise and a reputation in a specific area, speaking engagements can become a profitable side income source. Conferences, meetups, and webinars often pay their speakers for their time. Plus, these engagements can significantly increase your visibility in the industry, leading to even more opportunities.
Writing a Book or eBook
Writing a book might sound daunting, but it doesn't have to be a 500-page magnum opus. It could be a focused, practical guide on a specific technology or framework you're proficient in. With platforms like Amazon Kindle Direct Publishing, it's easier than ever to publish your own eBook and start generating income.
Creating a Paid Newsletter or Podcast
If you enjoy staying on top of industry trends and sharing your insights, consider starting a paid newsletter or podcast. Platforms like Substack make it easy to start a subscription-based newsletter. Podcasts have a higher initial investment but can be monetized through sponsorships and ads once you have a steady listener base.
And there you have it. We've explored a variety of ways to earn a side income as a software developer, from tutoring and freelance work to bug bounties and creating your own software. But remember, the key to a successful side hustle is passion. Choose something that aligns with your interests and long-term goals, not just what pays the most.
Earning a side income isn't just about making extra money. It's about growing as a developer, learning new skills, and maybe even discovering new passions. So, why not give it a shot? You might be surprised by what you can achieve.
Technical Writing
Technical writing is another excellent side gig for software developers. Many companies need people who can write in-depth documentation, user manuals, or even write-ups for their APIs. Websites like ProBlogger and Freelance Writing Gigs often post job listings for these roles.
The beauty of technical writing is that it also enhances your understanding of the technology you're writing about. It's a win-win situation, and the pay isn't half bad either.
Participating in Coding Competitions
Coding competitions can be a fun and rewarding way to earn some extra cash. Websites like Topcoder, HackerRank, and Codeforces host regular competitions where you can win cash prizes. Not only can you earn money, but it's also a great way to sharpen your coding skills.
Selling Plugins or Extensions
If you've ever created a plugin or extension to solve a specific problem you had, chances are someone else might find it useful too. Websites like the WordPress Plugin Directory, the Chrome Web Store, or even GitHub, are great places to sell or get sponsorships for your plugins or extensions.
Micro SaaS
Micro SaaS is a small software service that solves a specific problem or fulfills a niche demand. They require less time and resources to develop than a full-blown SaaS business and can be managed by a single person or a small team. If successful, they can provide a steady stream of passive income.
Content Curation
As a developer, you come across a ton of useful articles, tools, and resources. Why not share them with others and make some money along the way? You could start a blog, a newsletter, or a social media account where you share curated content. With enough followers, you could earn money through sponsorships, partnerships, or affiliate marketing.
To wrap up, there's no shortage of ways to earn a side income as a software programmer. The key is to find something that you enjoy and aligns with your skills and interests. Don't be afraid to experiment with different ideas until you find what works best for you.
Remember, the goal isn't just to make extra money. These side gigs can also help you grow as a developer, learn new skills, and even open doors to opportunities you might not have considered otherwise. So, why not take the plunge and start your side hustle today?
Beta Testing
Beta testing is another avenue where you can make a side income. Several tech companies pay developers for testing their software products before they're launched. Websites like UserTesting, Testbirds, and uTest are excellent platforms to find such opportunities.
Providing Tech Support
If you're an expert in a specific technology, platform, or framework, you can use your knowledge to provide tech support. You can find tech support jobs on platforms like Support.com or even go the freelance route on Upwork or Freelancer. What's more, these jobs often allow you to work from home and set your own schedule.
Joining Affiliate Programs
Affiliate marketing can be an excellent source of passive income. Many tech companies have affiliate programs where you can earn commissions for referring customers to them. If you already have a blog, YouTube channel, or a large social media following, you can use these platforms to promote affiliate products.
Participating in Hackathons
Hackathons are another excellent way to earn side income. These are time-bound events where programmers come together to build a software project. Many hackathons offer cash prizes, and it's also a great way to network with other developers and potential employers.
In conclusion, earning a side income as a software programmer isn't just about making extra money - it's also about growing your skills, networking with other professionals, and discovering new passions. There's a multitude of avenues out there, from freelance programming and tutoring to creating your own software and writing a tech blog.
But remember, the best side income opportunities are those that align with your interests and long-term goals. So take some time to explore different options and see what resonates with you the most. Who knows? Your side hustle might even turn into your main gig one day.
Recap
By now, you must be brimming with ideas on how to kickstart your journey to earn a side income as a software programmer. Let's do a quick recap of all the avenues we've explored:
Tutoring and Mentoring: Share your knowledge and experience with those just starting their coding journey.
Freelance Development: Use your skills to help businesses build or maintain their software.
Open Source Contributions: Contribute to the open-source community and get financial support.
Bug Bounties: Find and report security vulnerabilities for cash rewards.
Building Your Own Software or App: Turn your unique idea into a product and sell it.
Blogging and Vlogging: Share your expertise and generate passive income.
Stock Assets: Create digital assets and sell them online.
Consulting: Offer your expert advice to businesses.
Speaking Engagements: Share your insights and get paid.
Writing a Book or eBook: Write an in-depth guide on a technology or framework.
Creating a Paid Newsletter or Podcast: Share your thoughts on industry trends.
Technical Writing: Write in-depth documentation or user manuals.
Coding Competitions: Win cash prizes by participating in coding contests.
Selling Plugins or Extensions: Create helpful tools for other developers and sell them online.
Micro SaaS: Create a small software service.
Content Curation: Share useful content and make money through sponsorships or affiliate marketing.
Beta Testing: Test software products before they're launched.
Providing Tech Support: Use your expertise to provide tech support.
Joining Affiliate Programs: Earn commissions for referring customers to tech companies.
Participating in Hackathons: Build a software project in a time-bound event and win prizes.
There's something for everyone, from passive income sources to more active, hands-on roles. The beauty of being a software developer is the wide range of opportunities available to us.
Final Thoughts
Life as a software programmer is exciting - we're in a dynamic field where new technologies emerge every day. By taking on a side gig, we can not only supplement our income but also continue learning, growing, and challenging ourselves.
But remember - while earning a side income can be rewarding, it's also essential to maintain a work-life balance. Don't overwork yourself; instead, find a side gig you're passionate about. That way, it feels less like work and more like a hobby you get paid for.
For more related content, follow my blog here: https://www.techcornerguru.com/
In the rapidly-evolving field of software development, continuous learning is an invaluable asset. As technology advances and new methodologies emerge, developers must stay up-to-date to remain competitive and deliver high-quality solutions. It’s both a benefit and a necessity: While up-and-coming technologies such as Svelte pay up to 15% more than other more preponderant frameworks, meaning that being on the vanguard allows programmers to nab extra cash, think tanks are claiming that the next few years will be “far more tech-driven.” This dual-sided present tense suggests that, well, there isn’t quite an alternative path to being cutting-edge: In tech, you’re either riding the wave or treading water. Devs know this, and that’s why more than 75% of programmers are learning new technology at least once a year, according to a 2020 Stack Overflow survey.
So, to help you cop the pot of gold at the end of the programming rainbow and navigate the vast ocean of coding knowledge, we've curated the Ultimate Developer Reading List for 2023. These carefully selected books cover various aspects of software engineering, from modern software practices to data structures, algorithms, machine learning, and even soft skills.
Best software development books to read
Each section of the blog post will dive deep into the recommended books for that particular topic, providing critical insights and practical recommendations, and highlighting the value they bring to your professional growth. We'll explore the importance of each book and explain how it can help you enhance your skills, solve common challenges, and excel in your software development journey.
So, without further ado, let's jump into the sections and discover the books that will shape your path as a developer in 2023. Prepare to expand your knowledge, refine your techniques, and become a more proficient and versatile software engineer. Let's dive in — e-book readers are welcome!
1. General
Modern C++ Design
by Andrei Alexandrescu
Goodreads rating: 4.23 ★
Andrei Alexandrescu's Modern C++ Design: Generic Programming and Design Patterns Applied is the quintessential guide to mastering generic programming and design patterns in C++. Essentially a Bible for software developers, this well-organised book offers practical examples of how to write efficient and reusable code using C++'s template features. With a comprehensive exploration of design patterns and their application to real-world problems, this book is a must-read for C++ programmers seeking to refine their skills and develop more robust and scalable code. Simply put, Modern C++ Design is a treasure trove of knowledge that should grace every developer's bookshelf.
The Pragmatic Programmer
by Andrew Hunt and David Thomas
Goodreads rating: 4.33 ★
The Pragmatic Programmer: From Journeyman to Master by Andrew Hunt and David Thomas is a must-read for software developers who want to enhance their programming skills. With concrete examples and pragmatic advice, the book encourages programmers to approach software development creatively and thoughtfully. It focuses on developing practical skills needed for efficient agile development as well as maintaining codebases. The book emphasises testing, debugging, and code review as essential elements for successful software development.
Overall, The Pragmatic Programmer provides comprehensive guidance that can arm software developers with the tools necessary to be efficient and productive in their work. In a nutshell, it's a timeless classic that every developer should have in their arsenal.
2. Coding practices
Clean Code
by Robert C. Martin
Goodreads rating: 4.39 ★
Clean Code by Robert C. Martin is the holy grail for software developers seeking to achieve immaculate, maintainable code. With pragmatic advice and real-world examples, this book teaches developers how to make their code readable, testable, and extensible. Rather than just focusing on writing code, Martin emphasises the importance of keeping it clean to optimise the development process. The book covers everything from naming conventions to code smells, and provides insights into how to refactor code for better readability. All in all, Clean Code is a must-read for developers striving to write high-quality code, and a bible for those seeking to master their craft.
Head First Design Patterns
by Eric Freeman, Bert Bates, Kathy Sierra, and Elisabeth Robson
Goodreads rating: 4.30 ★
Design patterns are the building blocks of robust software architectures. Head First Design Patterns provides a visually engaging introduction to design patterns, making it accessible to developers at any level of expertise. Head First Design Patterns is a game-changer for software developers trying to wrap their heads around the complex world of object-oriented programming. The book uses a fun, witty approach to make the subject more accessible, but don't let that fool you — it's jam-packed with helpful information and insights. By walking you through real-world examples, the book teaches you how to apply design patterns to write flexible code, maintainable, and scalable. Whether you're a beginner or an experienced developer, Head First Design Patterns is a must-read that will help you strengthen your programming skills and stay up-to-date with the latest programming trends.
Refactoring: Improving the Design of Existing Code
by Martin Fowler
Goodreads rating: 4.25 ★
In the software development world, codebases evolve, and so must our code. Refactoring teaches developers how to improve existing code by identifying and correcting code smells. Martin Fowler provides a comprehensive catalogue of refactoring techniques, along with examples in various programming languages. By highlighting the most common code smells, the book teaches developers how to identify potential issues and refactor code for better readability and extensibility. Fowler's writing style is witty and accessible, making the book an enjoyable and informative read. All in all, Refactoring is a must-read for any developer seeking to improve their code quality and productivity. It's a classic work that should be on every programmer's bookshelf.
3. Data structures and algorithms
Grokking Algorithms
by Aditya Bhargava
Goodreads rating: 4.41 ★
Understanding algorithms is crucial for solving complex problems efficiently. Grokking Algorithms by Aditya Bhargava is a fantastic resource for software developers looking to enhance their understanding of algorithms and data structures. With its accessible writing style and engaging visuals, the book takes you on a journey through the fundamentals of algorithms, from binary search to dynamic programming. Bhargava is a master at breaking down complex concepts into simple, concise language anyone can understand. With practical examples and real-world applications, the book empowers developers to implement algorithms with greater confidence and functionality.
Designing Data-Intensive Applications
by Martin Kleppmann
Goodreads rating: 4.71 ★
In today's data-driven world, building robust and scalable data-intensive applications is essential. Designing Data-Intensive Applications explores the challenges and design principles behind such systems. The book covers an exhaustive range of data storage and processing technologies, from relational databases to distributed systems, messaging queues, and stream processing. The book also covers critical aspects like data consistency, durability, and fault tolerance. Overall, Designing Data-Intensive Applications is an excellent resource for developers who want to level up their data engineering skills, and it's a book that every software development team should have on their shelves.
4. Testing
The Art of Unit Testing
by Roy Osherove
Goodreads rating: 4.09 ★
Unit testing is a crucial practice for ensuring code quality and reliability. The Art of Unit Testing by Roy Osherove is an essential read for any software developer looking to write better quality, more reliable code. Osherove makes a compelling case for why unit testing is important, and he provides practical advice on how to write effective unit tests that catch bugs early and prevent regressions. With real-life examples and clear explanations, the book teaches readers how to use popular unit testing frameworks like NUnit and MSTest to write unit tests in C# and other programming languages. Osherove's writing style is witty and easy to understand, making it a refreshing and engaging read. Overall, The Art of Unit Testing is a must-read for any developer serious about expanding their development skills and producing high-quality code.
Test-Driven Development: By Example
by Kent Beck
Goodreads rating: 4.10 ★
Test-Driven Development (TDD) is a methodology that promotes writing tests before implementing code. Beck's approach to Test Driven Development (TDD) provides a solid foundation for writing clean, testable code. The book provides practical guidance on implementing TDD using popular programming languages like Java and Python. The book is filled with clear examples and strategies for writing practical tests, and Beck's writing style is informative and engaging. Overall, Test-Driven Development: By Example, is a must-read for developers seeking to improve their testing and coding skills and is a valuable reference on their bookshelf.
Growing Object-Oriented Software, Guided by Tests
by Steve Freeman and Nat Pryce
Goodreads rating: 4.19 ★
Applying Test-Driven Development principles to object-oriented software development requires a unique approach. Growing Object-Oriented Software, Guided by Tests by Steve Freeman and Nat Pryce is an outstanding book that every software developer should read. The book teaches developers how to use Test-Driven Development (TDD) to write better quality, more reliable code. With practical examples and clear explanations, the book shows readers how to create flexible, maintainable software designs by breaking down complex requirements into smaller, testable pieces. The authors' approach emphasises a ‘test-first’ methodology that encourages developers to write tests before actually writing any code. Overall, Growing Object-Oriented Software, Guided by Tests is a must-have resource for any programmer seeking to improve their software development skills and efficiency.
5. Architecture
Fundamentals of Software Architecture
by Mark Richards and Neal Ford
Goodreads rating: 4.28 ★
Software architecture plays a critical role in designing complex systems. Fundamentals of Software Architecture by Mark Richards and Neal Ford introduces the essential concepts, principles, and patterns of software architecture, thus making it a must-read for any software developer looking to deepen their understanding of software architecture. The book covers an extensive range of topics, from architectural styles and patterns to system design and deployment. It provides practical guidance on how to apply these concepts in real-world scenarios.
Software Architecture: The Hard Parts
by Neal Ford, Mark Richards, Pramod Sadalage and Zhamak Dehghani
Goodreads rating: 4.38 ★
Software Architecture: The Hard Parts by Neal Ford, Mark Richards, Pramod Sadalage and Zhamak Dehghani is an outstanding book that covers some of the most critical and complex aspects of modern software architecture, while delving into the challenges and trade-offs architects face. With practical examples, the authors provide best practices and solutions to many of the toughest challenges in software architecture. The book breaks down modern system architectures, explains how to design scalable systems, and offers guidance on implementing microservices.
Ford, Richards, Sadalage, and Dehghani explore every aspect of software architecture, from risk analysis to choosing the right technology stack, and provide tools, methodologies, and strategies for making sound architectural decisions. By addressing these complex issues, developers can gain a more in-depth understanding of software architecture and tackle complex architectural problems effectively.
6. Distributed systems
Distributed Systems For Fun and Profit
by Mikito Takada
Goodreads rating: 4.19 ★
Building scalable and resilient distributed systems is crucial in the era of cloud computing. Mikito Takada's Distributed Systems for Fun and Profit is a must-read for any software developer looking to master distributed systems. This book provides a comprehensive guide to the principles, techniques, and challenges involved in constructing reliable distributed systems, as well as to the design and implementation of scalable, fault-tolerant, and high-performance distributed systems, using practical examples and clear explanations.
Takada covers everything from the basics of distributed systems to the latest technologies and tools, offering insights into architecture, communication protocols, storage systems, and much more. He also discusses common challenges and pitfalls in distributed systems and provides guidance on overcoming them. Overall, Distributed Systems for Fun and Profit is a fantastic resource for software developers seeking to enhance their skills and create robust, efficient, and scalable distributed systems that work in the real world.
7. DevOps
The DevOps Handbook
by Gene Kim, Jez Humble, Patrick Debois, and John Willis
Goodreads rating: 4.32 ★
DevOps has become integral to modern software development practices. The DevOps Handbook serves as a comprehensive guide to implementing DevOps principles within technology organisations. This book provides a roadmap to creating a culture of continuous improvement, collaboration, and learning, with practical and to-the-point strategies.
It covers everything from implementing DevOps principles to automating pipelines, monitoring, and testing, focusing on delivering value to the business. Kim, Debois, Willis, and Humble are the leading experts in DevOps, and their insights and guidance are invaluable for anyone seeking to build software faster, better, and more securely. Overall, this book is a must-read for anyone interested in DevOps, software development, or IT operations.
Continuous Delivery
by Jez Humble and David Farley
Goodreads rating: 4.19 ★
Continuous Delivery is a must-read for any software developer or IT professional interested in learning how to streamline software delivery and ensure quality and reliability. Jez Humble and David Farley present a clear and practical guide for implementing Continuous Delivery practices, including automated testing, continuous integration, and deployment. Using case studies, Humble and Farley demonstrate how Continuous Delivery can result in faster feedback, increased scalability, and improved collaboration between teams. With its comprehensive coverage and step-by-step instructions, Continuous Delivery is the definitive guide to maximising efficiency and minimising risk in software development. Overall, this book is a must-read for anyone looking to transform their software delivery process and stay ahead in a fast-paced and constantly evolving industry.
Accelerate: Building and Scaling High Performing Technology Organizations
by Nicole Forsgren, Jez Humble, and Gene Kim
Goodreads rating: 4.07 ★
Accelerate: Building and Scaling High Performing Technology Organizations presents research-backed insights into the practices and capabilities that drive high performance in technology organisations. This book highlights the impact of lean software development, DevOps, and continuous delivery on organisational performance. By understanding these factors, software developers can implement best practices and improve their team’s outcomes.
It is an essential read for any software developer or IT professional who wants to understand how to build and scale high-performing teams. The authors present groundbreaking research on the fundamental practices and principles that drive success in technology organisations, including Continuous Delivery, Lean Management, and DevOps. They provide concrete examples and case studies from top companies, along with practical guidance for implementation. This book is an invaluable resource for anyone looking to improve their software delivery process and drive innovation in their organisation. Overall, Accelerate is a must-read for anyone seeking to stay ahead in the fast-paced world of software development, with its witty tone and critical insights making it an engaging and informative read.
8. Machine Learning
The Hundred-Page Machine Learning Book
by Andriy Burkov
Goodreads rating: 4.28 ★
Machine learning has become a powerful tool in various domains. The Hundred-Page Machine Learning Book offers a concise introduction to machine learning concepts, supervised and unsupervised learning, neural networks, and deep learning. Burkov expertly presents complex ideas in a clear and accessible manner, providing valuable intuition and practical advice for each algorithm. Whether you're an experienced data scientist or just getting started with machine learning, this book is a must-read for anyone seeking to expand their skills in this rapidly evolving field.
9. Teams
The Five Dysfunctions of a Team
by Patrick Lencioni
Goodreads rating: 4.09 ★
Team dynamics and collaboration play a vital role in software development — The Five Dysfunctions of a Team by Patrick Lencioni is a must-read for any software developer looking to build effective and high-performing teams. Lencioni presents a compelling model for understanding the common problems that teams face and provides practical strategies for addressing them.
Through a captivating fable, Lencioni explores the root causes of dysfunction, such as a lack of trust, fear of conflict, and a lack of commitment. He then provides actionable steps for overcoming these challenges, such as improving communication and building a culture of accountability. The book's novel, unusual, and engaging style makes it an enjoyable read that is both informative and practical for software developers at any stage of their career. Overall, The Five Dysfunctions of a Team is an indispensable guide to building teams that can drive innovation and success in software development.
Team Topologies
by Matthew Skelton and Manuel Pais
Goodreads rating: 4.24 ★
Team Topologies, written by Matthew Skelton and Manuel Pais, is an essential guide for software developers looking to create effective and high-performing teams. The book emphasises the importance of team organisation and provides practical advice on how to structure teams to meet the demands of modern software development. Skelton and Pais present a range of team topologies, detailing the specific behaviours and responsibilities of each approach. They analyse the benefits and drawbacks of each topology, while also providing guidance on how to select the right approach for your specific organisation.
10. Soft skills
Cracking the Coding Interview
by Gayle Laakmann McDowell
Goodreads rating: 4.34 ★
Cracking the Coding Interview, written by Gayle Laakmann McDowell, is an essential resource for any software developer looking to excel at technical interviews. The book covers a wide range of topics, from data structures and algorithms to system design and behavioural questions. McDowell presents clear and concise explanations of complex topics, making concepts easy to understand and remember. In addition, the book includes over 150 real interview questions from top tech companies, with solutions and explanations for each question. With its practical tips, Cracking the Coding Interview is an indispensable guide for anyone preparing for technical interviews and seeking to advance in their career. Overall, it's an engaging and informative read that is sure to help you build the skills you need to succeed in software development
Software Engineering: The Soft Parts
by Addy Osmani
Goodreads rating: 4.20 ★
Software Engineering: The Soft Parts, written by Addy Osmani, is a must-read for any software developer looking to elevate their skills beyond just writing code. The book goes beyond technical expertise and delves into what Osmani calls “the soft parts” of software engineering, such as communication, collaboration, and project management. Osmani provides practical guidance on how to navigate these areas and offers insights into how to improve team dynamics and increase productivity.
Honorary Mention
Bitcoin: A Peer-to-Peer Electronic Cash System
by Satoshi Nakamoto
Goodreads rating: 4.3 ★
Never before, in the history of human prose, has a book so slender and self-effaced begotten so many self-proclaimed gurus, so many social network rants, and so many lasting spelling mistakes. The always-resplendent OG whitepaper by the unidentifiable Satoshi Nakamoto is still a programmer’s must-read in 2023. More than a decade and a hundred altcoins after it first surfaced, this “book” offers an elegant solution to the Byzantine General's Problem — a vital issue in distributed computing, cryptocurrencies, web3, and bitcoin, among other surprisingly-lasting buzzwords. Bitcoin: A Peer-to-Peer Electronic Cash System also provides a first-class case study in the value of simplicity and clarity in code design. Can you make a script to check out how often Satoshi wrote “blockchain” in the whitepaper, or would you rather use Ctrl+F?
Epilogue…
In 2023, continuous learning is more critical than ever for software developers. Each book offers unique insights and practical guidance to help developers enhance their skills, stay up-to-date with industry best practices, and tackle the challenges of software development. These books (and life-defining papers) provide valuable insights and practical guidance on how to navigate these areas and improve team dynamics.
Moreover, programmers believe that keeping up-to-date with the latest trends and technologies in software development is crucial, as the StackOverflow Developer Survey 2022 reveals. So, why be an outlier? Whether you're just starting or an experienced developer, these books can provide valuable insights and guidance. So, don't miss out on them!