GitHub Repositories Every Software Engineer Should Know
Tags: programming, softwareengineering, algorithms, systemdesign
Published: 2024-06-30 18:17:18

Finally, after a long time, I am realizing my desire to write articles to help other software engineers advance their careers. With this, I intend to help them improve their knowledge while allowing myself to learn and grow during the process.

In my first article, I present to you a compilation of interesting repositories for all software engineers who seek to stay updated and improve their skills whenever possible, regardless of their level or position.

Let's get straight to it, organized by categories:

- RoadMaps
- Books, Blogs, and Websites
- Algorithms
- Design Patterns
- System Design
- Design Resources
- Projects, Tutorials, and APIs
- Interviews

##RoadMaps
In the RoadMaps category, we have two repositories that provide a pathway to follow when you are looking to learn about a language or tool, giving you a direction on the basic knowledge you should acquire or already have.
{% embed https://github.com/kamranahmedse/developer-roadmap %}{% embed https://github.com/liuchong/awesome-roadmaps %}

##Books, Blogs, and Websites	
After understanding the path to follow through the RoadMap, you should delve into documentation, books, blogs, and websites. For this, we have several repositories with various books, blogs, and important sites for you to structure your knowledge base solidly.
{% embed https://github.com/EbookFoundation/free-programming-books %}{% embed https://github.com/kilimchoi/engineering-blogs %}{% embed https://github.com/sdmg15/Best-websites-a-programmer-should-visit %}{% embed https://github.com/freeCodeCamp/freeCodeCamp %}

##Algorithms
With a well-formed knowledge base, you can visit the repositories below and deepen your knowledge in algorithms, checking implementations of various algorithms in different programming languages so you always know the best approach to take when faced with a problem.
{% embed https://github.com/TheAlgorithms %}{% embed https://github.com/arpit20adlakha/Data-Structure-Algorithms-LLD-HLD %}{% embed https://github.com/tayllan/awesome-algorithms %}

##Design Patterns
Through design patterns repositories, you can deepen your knowledge in patterns used in service and project implementations, understanding how they work and how you can implement them.
{% embed https://github.com/kamranahmedse/design-patterns-for-humans %}{% embed  https://github.com/DovAmir/awesome-design-patterns %}

##System Design
With the System Design repositories, you can deepen your understanding of building your applications, considering scalability, performance, data storage methods, gaining knowledge to contribute to the technical definition of the application, and always developing a quality project.
{% embed https://github.com/ByteByteGoHq/system-design-101 %}{% embed https://github.com/donnemartin/system-design-primer %}{% embed https://github.com/InterviewReady/system-design-resources %}{% embed https://github.com/karanpratapsingh/system-design %}

##Design Resources
With the repositories below, you can access various design resources such as style guides, web templates, CSS frameworks, and create the best designs and design patterns for your projects.
{% embed https://github.com/goabstract/Awesome-Design-Tools %}{% embed https://github.com/bradtraversy/design-resources-for-developers %}

##Projects, Tutorials, and APIs
To get hands-on and create your projects, the repositories below bring you ideas, already implemented projects, and provide public APIs giving you resources and tools to practice everything you have learned and solidify the acquired knowledge.
{% embed https://github.com/florinpop17/app-ideas %}{% embed https://github.com/practical-tutorials/project-based-learning %}{% embed https://github.com/public-apis/public-apis %}

##Interviews
Finally, in the repositories below, after all the preparation and project implementation, we have various tools and documents to help you improve your interview preparation and perform them in the best possible way, advancing in your career and contributing to others.
{% embed https://github.com/kdn251/interviews %}{% embed https://github.com/yangshun/tech-interview-handbook %}{% embed https://github.com/DopplerHQ/awesome-interview-questions %}

##Conclusion
That's it, folks. Feel free to comment, suggest other repositories, and follow me for the upcoming articles.

I hope you have enjoyed this post and start to learn something new. 

Thanks ❤️ 

Linkedin: https://www.linkedin.com/in/marcio-mendes/
Github: https://github.com/marciojr