A collection of resources built by members of the Code Society, now accessible as a website for a better experience.
To add an item to the list, follow this guide
Name | Description |
---|---|
Developer Roadmaps | Community-created roadmaps, articles, resources, and journeys to help you choose your path and grow in your career. |
Embedded Engineering RoadMap | This roadmap is designed to help beginners aspiring to build a career as an Embedded Engineer/Developer, as well as assist current practitioners in expanding their skills. |
Open-Source RoadMap | Tools and resources to help you get started with open source. |
What is Embedded Systems & RoadMap | This course is an hour-long presentation that dives into the details of ๐๐ต๐ฎ๐ ๐๐บ๐ฏ๐ฒ๐ฑ๐ฑ๐ฒ๐ฑ ๐๐บ๐ฏ๐ฒ๐ฑ๐ฑ๐ฒ๐ฑ ๐ฆ๐๐๐๐ฒ๐บ๐ ๐ถ๐ ๐ฎ๐ป๐ฑ ๐๐ต๐ฒ ๐ฟ๐ผ๐ฎ๐ฑ๐บ๐ฎ๐ฝ ๐๐ผ ๐ด๐ผ๐ถ๐ป๐ด ๐ฎ๐ฏ๐ผ๐๐ ๐น๐ฒ๐ฎ๐ฟ๐ป๐ถ๐ป๐ด ๐ถ๐. The presentation is fast-paced and focused on how one can become an Embedded Systems Software Engineer. |
Name | Description |
---|---|
The Netwide Assembler (NASM) | Tutorial to learn NASM Assembly Language |
Learn NASM | This manual documents NASM, the Netwide Assembler: an assembler targeting the Intel x86 series of processors, with a portable source. |
ARM Assembly | This resource provides exercises and lessons to introduce ARM assembly, covering key concepts and practical applications for both bare metal programming and interfacing with Linux systems. |
Azeria ARM Assembly | This ARM assembly basics tutorial series serves as a primer for ARM exploit development, covering topics like data types, registers, instruction sets, memory operations, branching, and functions, focusing on ARM 32-bit architecture and examples compiled on ARMv6. |
Assembly Language Programming with ARM | Learn assembly language programming with ARMv7 in this beginner's course. |
Inline ASM | Introduction on how to use inline assembly language in C code. |
ARM Assembly instruction Sets | A completely description of the ARM ASM instruction set. |
Name | Description |
---|---|
C by example | This guide offers a user-friendly exploration of C and C++, highlighting their features and key differences in a progressive format, serving as an introduction or refresher without substituting for an in-depth study. |
C Programming A Modern Approach | A comprehensive and accessible guide that blends theory with practical examples to teach foundational concepts and advanced techniques in the C programming language. |
Memory Allocation | An introduction to the basics of memory allocation. |
Name | Description |
---|---|
Learn C++ | An easy to follow guide to starting off in C++ |
Core Guidelines | Recommended guidelines for modern C++ |
CPP Reference | Helpful reference material for the C++ and its standard library |
Modern C++ | The purpose of this book is to offer a quick start for modern C++. Of course, advanced readers can also use this book to review and examine themselves on modern C++. |
Name | Description |
---|---|
Go By Example | Explore Go, a language for fast, reliable software, through official documentation and Go by Example's hands-on programs. |
Name | Description |
---|---|
Python | Python official website |
Getting started | Offical Python getting started guide |
Learn Python | An easy-to-follow guide to starting off in Python |
Virtual environment | Virtual environment |
Python Tutorial | Free open source site towards learning Python |
Name | Description |
---|---|
Learn Javascript Online | Free open-source site for learning modern Javascript through lessons and practical methods |
Name | Description |
---|---|
Elixir | Elixir official website |
Elixir School | Good starting point to learn and master Elixir |
Unofficial Style guide | Unofficial Elixir style guide |
Code Smells in Elixir | Understanding code smells in elixir functional language. |
Name | Description |
---|---|
Phoenix | Full-Stack Web framework |
Absinthe | GraphQL library |
Name | Description |
---|---|
Think Data Structure using Java | Learn Data Structure concepts such as Array, LinkeList, HasMap, etc using Java. |
Open Data Structure (available in Java, C++, and Pseudocode) | Open Data Structures covers the implementation and analysis of data structures for sequences (lists), queues, priority queues, unordered dictionaries, ordered dictionaries, and graphs. |
Name | Description |
---|---|
Algorithms using Pseudocode | The textbook is based on lecture notes created for algorithms classes at the University of Illinois, stemming from a major revision in 2016 to adapt to changes in the undergraduate theory curriculum, particularly emphasizing fundamental content for the new required junior-level theory course. |
Algorithms for Competitive Programming | Algorithms for competitive programming, covering topics like data structures, sorting, searching, dynamic programming, and graph algorithms. |
Name | Description |
---|---|
Game Programming Patterns | Using Games as a reference point, this ebook covers tons of useful programming patterns |
Gang of Four (GoF) Design patterns | Detailed description and examples of multiple design patterns |
Clean Code | Principales, patterns and practices of writing clean code |
Clean Architecture | Building clean software architecture |
Fundamentals of Software Architecture: An Engineering Approach | Learn software architecture principles |
Software Architecture: The Hard Parts: Modern Tradeoff Analysis for Distributed Architectures | Learn in-depth analysis of software architectures |
Model-View-Controller | Explanation of the Model-View-Controller (MVC) architecture |
Name | Description |
---|---|
Crafting Interpreters | A deep dive into writing tree walking and bytecode interpreters |
Make a Lisp (MAL) | A step-by-step tutorial into making a list processing interpreter |
Name | Description |
---|---|
Git | Distributed version control system |
Github for Beginner | Github for Getting Started Guide |
Git Tutorials | Free open source site for learning Git basics and advanced patterns |
Name | Description |
---|---|
Embedded Systems Security | EmbeddedSecurity.io provide a beginners resource on embedded systems security |
Putting the โYouโ in CPU | Curious exactly what happens when you run a program on your computer? Read this article to learn how multiprocessing works, what system calls really are, how computers manage memory with hardware interrupts, and how Linux loads executables. |
Practical Guide to Bare Metal C++ | This document introduces several concepts that can be used in bare-metal development as well as shows how they can be implemented using features of the latest (at the time of writing) C++11 standard. |
Bare-metal C programming on ARM | This ebook is aimed at people who have an interest in low-level programming, and in seeing how to build a system from the ground up. Topics covered include system startup, driver development, and low-level memory management. |
Intro to ARM Cortex-M | An introduction to ARM Cortex-M controllers, covering their key characteristics, advantages, and applications. Followed by a comprehensive overview of the programmers' model. |
ย Name | Description |
---|---|
How to GraphQL | Free open source tutorial to learn GraphQL |
REST API Best practices | Best practices for REST API design |
Name | Description |
---|---|
How to build good software | A guide to building good software |
Professional Software Development | Almost everything youโll need to know to โhit the ground running.โ |
What every CS major should know | A guide to the basics of computer science |
About Warning & Undo | Never use a warning when you mean undo, a guide to error handling |
Free Software, Free Society | A collection of writings essays by Richard Stallman. It introduces the subject of the history and development of the GNU Project and the Free Software Foundation, explains the author's philosophical position on the Free Software movement, and deals with the topics of software ethics, copyright, and patent laws, as well as business practices in application to computer software. |
Name | Description |
---|---|
RTOS | How-to articles about using real-time operating systems in embedded systems. |
ZephyrOS | The Zephyr OS is based on a small-footprint kernel designed for use on resource-constrained and embedded systems: from simple embedded environmental sensors and LED wearables to sophisticated embedded controllers, smart watches, and IoT wireless applications. |
FreeRTOS | A free-use Real Time Operating system widely used and supports many platforms. |
FreeRTOS on STM32 | Getting started with FreeRTOS in STM32 with Code Examples. |
ย Name | Description |
---|---|
SQL Bolt | Free open source site towards learning SQL |
PostgreSQL | The World's Most Advanced Open Source Relational Database. |
ITTIA Embedded SQL | The ITTIA DB SQLโข documentation provides how-to guidance and reference information for embedded systems to stream, manage, and analyze data, with an emphasis on time series. This documentation is for software developers who seek to embed a silent database inside applications. |
ย Name | Description |
---|---|
EDX Learn DevOps | A site where there's a curated list of high-level courses towards DevOps that you can enroll to |
Name | Description |
---|---|
Learn Deeplearning | Free open source blog style tutorial on Deeplearning |
Deep Learning for Coders with Fastai and PyTorch | A free book (supplement for the below course) designed for people with some coding experience, who want to learn how to apply deep learning and machine learning to practical problems. |
Practical Deep Learning | A free course designed for people with some coding experience, who want to learn how to apply deep learning and machine learning to practical problems. |
Learn Machine Learning | A free 10-hour machine learning course for beginners on the freeCodeCamp.org YouTube channel. |