GitHub Repositories Every Software Engineer Should Know
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.
Interactive roadmaps, guides and other educational content to help developers grow in their careers.
Community driven roadmaps, articles and resources for developers
Roadmaps are now interactive, you can click the nodes to read more about the topics.
Here is the list of available roadmaps with more being actively worked upon.
Have a look at the get started page that might help you pick up a path.
A curated list of roadmaps.
Awesome Roadmaps
A curated list of roadmaps, mostly about software development, which give you a clear route to improve your knowledge or skills.
Contributions welcome
Add links through pull requests or create an issue to start a discussion
Please read contribution guidelines, thank you!
Contents
Programming Language
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.
📚 Freely available programming books
A curated list of engineering blogs
Software Engineering Blogs
Companies
# companies
A companies
B companies
🔗 Some useful websites for programmers.
Best-websites-a-programmer-should-visit
Some useful websites for programmers.
When learning CS, there are some useful sites you must know to get always informed to do your technologies even better and learn new things. Here is a non-exhaustive list of some sites you should visit. This list will get updated as soon as I can get another link, but you can also contribute by adding those you know 😉
Note : Chinese Version
Index
freeCodeCamp.org's open-source codebase and curriculum. Learn to code for free.
freeCodeCamp.org's open-source codebase and curriculum
freeCodeCamp.org is a friendly community where you can learn to code for free. It is run by a donor-supported 501(c)(3) charity to help millions of busy adults transition into tech. Our community has already helped more than 40,000 people get their first developer job.
Our full-stack web development and machine learning curriculum is completely free and self-paced. We have thousands of interactive coding challenges to help you expand your skills.
Table of Contents
Certifications
freeCodeCamp.org offers several free developer certifications. Each of these certifications involves building 5 required web app projects, along with hundreds of optional coding challenges to help you prepare for those projects. We estimate that each certification will take a beginner programmer around 300 hours to earn.
Each of these 50…
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.
Open Source resource for learning Data Structures & Algorithms and their implementation in any Programming Language - The Algorithms
github.com
A Data Structure Algorithms Low Level Design and High Level Design collection of resources.
A curated list of awesome places to learn and/or practice algorithms.
Awesome Algorithms
A curated list of awesome places to learn and/or practice algorithms
Inspired by awesome-awesomeness and all the other awesome Awesome libraries.
If you want to contribute, please read the contribution guidelines.
Websites
Websites you should use to learn classic 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.
An ultra-simplified explanation to design patterns
🎉 Ultra-simplified explanation to design patterns! 🎉
A topic that can easily make anyone's mind wobble. Here I try to make them stick in to your
mind (and maybe mine) by explaining them in the simplest way possible
Check out my other project and say "hi" on Twitter.
Introduction
Design patterns are solutions to recurring problems; guidelines on how to tackle certain problems. They are not classes, packages or libraries that you can plug into your application and wait for the magic to happen. These are, rather, guidelines on how to tackle certain problems in certain situations.
Design patterns are solutions to recurring problems; guidelines on how to tackle certain…
A curated list of software and architecture related design patterns.
Awesome Software and Architectural Design Patterns
A curated list of software and architecture related design patterns.
Software design pattern - A general, reusable solution to a commonly occurring problem within a given context in software design. It is a description or template for how to solve a problem that can be used in many different situations.
Contents
Programming Language Design Patterns
-
AngularJS
-
C#
-
C++
-
Closure
-
Go
-
Java
-
JavaScript
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.
Explain complex systems using visuals and simple terms. Help you prepare for system design interviews.
【
👨🏻💻 YouTube
|
📮 Newsletter
】
System Design 101
Explain complex systems using visuals and simple terms.
Whether you're preparing for a System Design Interview or you simply want to understand how systems work beneath the surface, we hope this repository will help you achieve that.
Table of Contents
Learn how to design large-scale systems. Prep for the system design interview. Includes Anki flashcards.
These are the best resources for System Design on the Internet
System Design Resources
These are the best resources for System Design on the Internet.
Table of Contents
Video Processing
Cluster and Workflow Management
Learn how to design systems at scale and prepare for system design interviews
System Design
Hey, welcome to the course. I hope this course provides a great learning experience.
This course is also available on my website and as an ebook on leanpub. Please leave a ⭐ as motivation if this was helpful!
Table of contents
-
Getting Started
-
Chapter I
-
Chapter II
-
Chapter III
-
Chapter IV
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.
The best design tools and plugins for everything 👉
Awesome Design Tools
Awesome Design Tools as a part of Flawless App family joins Abstract!
Today, we’re excited to announce that Flawless App has joined Abstract, a design delivery platform that brings visibility, accountability, measurability, and predictability to design.
Flawless App was our first company, and we’re proud of everything that we’ve achieved with our 5-person team.
Since 2015, we’ve launched powerful tools for designers and developers — among them are Flawless App, Reduce, Flawless Feedback. We’ve also invested a lot of love and care into community-driven initiatives. Awesome Design Tools is one of them.
So what’s next?
Our team has joined Abstract and is focused on building out the Abstract SDK, bringing developers’ experience forward. One unbelievable journey has finished and the new one has just begun. And if you want to know more…
Curated list of design and UI resources from stock photos, web templates, CSS frameworks, UI libraries, tools and much more
Table of Contents
UI Graphics
Websites and resources with modern UI components in different formats such as PSD, Sketch, Figma, etc. They are great for ideas for web components/UI
…
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.
A Collection of application ideas which can be used to improve your coding skills.
👇 Practice Daily on iCodeThis.com 👇
📒 App Ideas Collection
Have you ever wanted to build something but you had no idea what to do? Just as
authors sometimes have "writers block" it's also true for developers. This list is intended to solve this issue once and for all! 👍
These applications are:
- great for improving your coding skills 💪;
- great for experimenting with new technologies 🆕;
- great for adding to your portfolio to impress your next employer/client 📁;
- great for using as examples in tutorials (articles or videos) 📃;
- easy to complete and also easily extendable with new features 👌;
This is not just a simple list of projects, but a collection that describes each project in enough detail so that you can develop it from the ground up!
Each project has the following features:
- A clear and descriptive objective;
- A list of User Stories which should be…
Curated list of project-based tutorials
Project Based Learning
A list of programming tutorials in which aspiring software developers learn how to build an application from scratch. These tutorials are divided into different primary programming languages. Tutorials may involve multiple technologies and languages.
To get started, simply fork this repo. Please refer to CONTRIBUTING.md for contribution guidelines.
Table of Contents:
C/C++:
A collective list of free APIs
Try Public APIs for free
The Public APIs repository is manually curated by community members like you and folks working at APILayer. It includes an extensive list of public APIs from many domains that you can use for your own products. Consider it a treasure trove of APIs well-managed by the community over the years.
APILayer is the fastest way to integrate APIs into any product. There are a lot of APIs available at APILayer Marketplace.
APILayer APIs
API |
Description |
Call this API |
IP Stack |
Locate and Identify Website Visitors by IP Address |
|
Marketstack |
Free, easy-to-use REST API interface delivering worldwide stock market data in JSON format |
|
Weatherstack |
Retrieve instant, accurate weather information for any location in the world in lightweight JSON format |
|
Numverify |
Global Phone Number Validation & Lookup JSON API |
|
Fixer |
Fixer is a simple and lightweight API for current and historical foreign exchange (forex) rates. |
…
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.
Everything you need to know to get the job.
Interviews
Your personal guide to Software Engineering technical interviews. Video
solutions to the following interview problems with detailed explanations can be found here
Maintainer - Kevin Naughton Jr.
Translations
Table of Contents
YouTube
The Daily Byte
Instagram
Articles
Online Judges
Live Coding Practice
Data Structures
Linked List
- A Linked List is a linear collection of data elements, called nodes, each
pointing to the next node by means of a pointer. It is a data structure
consisting of a group of nodes which together represent a sequence.
- …
💯 Curated coding interview preparation materials for busy software engineers
Tech Interview Handbook
What is this?
Not everyone has the time to do a few hundred LeetCode questions. Here are free and curated technical interview preparation materials for busy engineers, brought to you by me, the author of Blind 75. Over 500,000 people have benefitted from this handbook!
Besides the usual algorithm questions, other awesome stuff includes:
Help from you in contributing content would be very much appreciated!
Why would you read
…
:octocat: A curated awesome list of lists of interview questions. Feel free to contribute! 🎓
All your environment variables, in one place
Stop struggling with scattered API keys, hacking together home-brewed tools,
and avoiding access controls. Keep your team and servers in sync with Doppler.
Awesome Interviews
This project is no longer actively supported.
A curated list of lists of technical interview questions.
What makes for an awesome list?
Please read the contribution guidelines or creating a list guide if you want to contribute.
Table of Contents
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