DEV Community

Cover image for GitHub Repositories Every Software Engineer Should Know
Marcio Mendes
Marcio Mendes

Posted on • Originally published at dev.to

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.

GitHub logo liuchong / awesome-roadmaps

A curated list of roadmaps.

Awesome Roadmaps Awesome

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.

GitHub logo EbookFoundation / free-programming-books

📚 Freely available programming books

List of Free Learning Resources In Many Languages

Awesome  License: CC BY 4.0  Hacktoberfest 2023 stats

Search the list at https://ebookfoundation.github.io/free-programming-books-search/ https://ebookfoundation.github.io/free-programming-books-search/.

This page is available as an easy-to-read website. Access it by clicking on https://ebookfoundation.github.io/free-programming-books/.

Intro

This list was originally a clone of StackOverflow - List of Freely Available Programming Books with contributions from Karan Bhangui and George Stocker.

The list was moved to GitHub by Victor Felder for collaborative updating and maintenance. It has grown to become one of GitHub's most popular repositories.

GitHub repo forks  GitHub repo stars  GitHub repo contributors
GitHub org sponsors  GitHub repo watchers  GitHub repo size

The Free Ebook Foundation now administers the repo, a not-for-profit organization devoted to promoting the creation, distribution, archiving, and sustainability of free ebooks. Donations to the Free Ebook Foundation are tax-deductible in the US.

How To Contribute

Please read CONTRIBUTING. If you're new to GitHub, welcome! Remember to abide by our adapted from Contributor Covenant 1.3 Code of Conduct too (translations also available).

Click on these badges to see how you might…

GitHub logo sdmg15 / Best-websites-a-programmer-should-visit

🔗 Some useful websites for programmers.


awesome

Build Status

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

GitHub logo freeCodeCamp / freeCodeCamp

freeCodeCamp.org's open-source codebase and curriculum. Learn to code for free.

freeCodeCamp Social Banner

Pull Requests Welcome first-timers-only Friendly Open Source Helpers Setup Automated Discord

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.

The Algorithms · GitHub

Open Source resource for learning Data Structures & Algorithms and their implementation in any Programming Language - The Algorithms

favicon github.com

GitHub logo tayllan / awesome-algorithms

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.

GitHub logo kamranahmedse / design-patterns-for-humans

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…

GitHub logo DovAmir / awesome-design-patterns

A curated list of software and architecture related design patterns.

Awesome Software and Architectural Design Patterns


PRs Welcome awesome awesome


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





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.

GitHub logo donnemartin / system-design-primer

Learn how to design large-scale systems. Prep for the system design interview. Includes Anki flashcards.

English日本語简体中文繁體中文 | العَرَبِيَّة‎বাংলাPortuguês do BrasilDeutschελληνικάעבריתItaliano한국어فارسیPolskiрусский языкEspañolภาษาไทยTürkçetiếng ViệtFrançais | Add Translation

Help translate this guide!

The System Design Primer


Motivation

Learn how to design large-scale systems.

Prep for the system design interview.

Learn how to design large-scale systems

Learning how to design scalable systems will help you become a better engineer.

System design is a broad topic. There is a vast amount of resources scattered throughout the web on system design principles.

This repo is an organized collection of resources to help you learn how to build systems at scale.

Learn from the open source community

This is a continually updated, open source project.

Contributions are welcome!

Prep for the system design interview

In addition…




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.

GitHub logo goabstract / Awesome-Design-Tools

The best design tools and plugins for everything 👉

Awesome Design Tools

Awesome-Design-Tools

awesome PRs Welcome

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…




GitHub logo bradtraversy / design-resources-for-developers

Curated list of design and UI resources from stock photos, web templates, CSS frameworks, UI libraries, tools and much more

Repository Banner

Please read contributing guidelines before submitting new resources.

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





















Website                            Description
SVG sine waves Export perfect sine waves as SVG for your front-end projects
UI Design Daily Awesome UI Components of all types
100 Daily 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.

GitHub logo florinpop17 / app-ideas

A Collection of application ideas which can be used to improve your coding skills.

👇 Practice Daily on iCodeThis.com 👇

iCodeThis

📒 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:

  1. A clear and descriptive objective;
  2. A list of User Stories which should be…

GitHub logo practical-tutorials / project-based-learning

Curated list of project-based tutorials

Project Based Learning

Gitter

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++:

GitHub logo public-apis / public-apis

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 Logo

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 Run In Postman
Marketstack Free, easy-to-use REST API interface delivering worldwide stock market data in JSON format Run In Postman
Weatherstack Retrieve instant, accurate weather information for any location in the world in lightweight JSON format Run In Postman
Numverify Global Phone Number Validation & Lookup JSON API Run In Postman
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.

GitHub logo kdn251 / interviews

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.

GitHub logo yangshun / tech-interview-handbook

💯 Curated coding interview preparation materials for busy software engineers

Tech Interview Handbook


Start Reading 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

GitHub logo DopplerHQ / awesome-interview-questions

:octocat: A curated awesome list of lists of interview questions. Feel free to contribute! 🎓

Doppler

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 Awesome

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

Top comments (37)

Collapse
 
bytevillage profile image
Bytevillage

Thanks for sharing! Amazing list!

Collapse
 
mohamed_salematigh_fbd64 profile image
mohamed salem atigh

After watching a video talking about this article, and after reading about it the only thing that I can say is thank you for this must-read article for all devs.

👋 Hi there! I'm an enthusiastic aspiring software developer with a deep passion for technology and coding. I thrive on solving complex problems, building innovative applications, and learning new programming languages and frameworks.

I’m dedicated to continuously expanding my knowledge in software development, from understanding algorithms and data structures to mastering front-end and back-end technologies. My interests also extend to exploring the realms of AI, machine learning, and cloud computing.

I believe in writing clean, efficient, and maintainable code, and I enjoy collaborating with others to create impactful digital solutions. I'm always looking for opportunities to contribute, learn, and grow in the dynamic world of software development.

Excited to connect with like-minded professionals and grow in this ever-evolving field! 🚀

Collapse
 
ayman_naeem_236931553bcd0 profile image
Ayman Naeem

Geart Job Sir

Collapse
 
megagig profile image
ANTHONY OBI

awesome

Collapse
 
chriisduran profile image
Christopher Duran

Okey, time to study, not copy paste

Collapse
 
khoirulyahya profile image
khoirulyahya

It's amazing. Thanks.

Collapse
 
grapplingdev profile image
Dan

Thanks for including us! (roadmap.sh)

Collapse
 
isharax9 profile image
Ishara Lakshitha

thanks learn lot

Collapse
 
jacksmion profile image
jacksmion

Thanks for sharing!

Collapse
 
essijunior profile image
NDANG ESSI Pierre Junior

Thanks for sharing these, It's a lot of pretty tools you provided to us. I ditn't have the time to consume even one yet, due to the large quantity. Very helpful, thanks.