Code Monkey home page Code Monkey logo

curriculum's Introduction

Boot.dev's Backend Developer Learning Path

logosmooshed

โญ Hit this repo with a star if you find the roadmap useful! โญ

This is a living roadmap for Boot.dev's free-to-audit computer science program for backend developers.

The Roadmap of Courses and Projects

  1. Learn Python (Python)
  2. Learn Shells and Terminals
  3. Learn Git 1
  4. Build a Bookbot (Python, VS Code)
  5. Learn Object-Oriented Programming (Python)
  6. Learn Functional Programming (Python)
  7. Build a Static Site Generator
  8. Learn Algorithms 1 (Python)
  9. Learn Data Structures (Python)
  10. Build a Maze Solver (Python)
  11. Learn Memory Management (C)
  12. Personal Project 1 (Your choice)
  13. Learn Go (Go)
  14. Learn HTTP (Go or JavaScript)
  15. Build a Pokedex on the Command Line (Go)
  16. Learn Web Servers (Go)
  17. Personal Project 2 (Your choice)
  18. Learn SQL (SQL)
  19. Build a Blog Aggregator (Go)
  20. Learn Docker (Docker CLI)
  21. Learn CI/CD (Docker + GitHub Actions)
  22. Capstone Project (Your choice)
  23. Learn to Find a Job

Going Deeper

  • Learn Git 2
  • Learn Kubernetes (Minikube)
  • Learn Algorithms 2 (Python)
  • Learn Cryptography (Go)
  • Build a Web Crawler (JavaScript, Node.js)
  • Learn Computer Architecture and Hardware (ARM)
  • Learn Distributed Systems (Go)
  • Learn PubSub Architectures (Go)
  • Learn Computer Networking (Go)
  • Learn NoSQL Databases (???)
  • Learn Performance Engineering (Go)
  • Learn Infrastructure as Code (Terraform)
  • Learn Logging and Telemetry (Go)
  • Learn Clean Code (Go)
  • Learn Discrete Math for Programmers (Go)
  • Learn Operating Systems (???)
  • Learn Compilers (Go)
  • Learn Computational Theory (???)
  • Learn Artificial Intelligence (Python)
  • Learn Machine Learning (Python)
  • Learn GraphQL
  • Learn Cyber Security
  • Learn AWS/GCP/Azure
  • Learn NLP

Philosophy

You can read about our approach to learning here.

Should I start learning even though the program is not "complete"?

Yes you should get started - this program will always be improving and never be "complete". This curriculum will never be "complete" in the same sense the YouTube will never be "complete" - there is new content all the time. We care deeply about the quality of this program and will always be improving and adding to it.

๐Ÿ‘ Contribute

We love feedback on how we can improve the curriculum! The recommended way to help is to submit issues here on GitHub. If you just want to talk about some ideas, contact us directly using one of the methods below.

๐Ÿ’ฌ Contact

If you would like to discuss the project feel free to contact us at Boot.dev. We're most responsive on Discord, but you can also find us on Twitter.

curriculum's People

Contributors

alires avatar hbeckmann avatar matiasbaldanza avatar misterspencerbailey avatar wagslane avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

curriculum's Issues

Typo on Ch.3 Inline - 1. Split Delimiter

Hi folks! First off love the concept of boot.dev. I have been loving the learning journey so far.

I tried looking through the files themselves to find the .md file for Ch.3 Inline 1. Split Delimiter assignment on the static-site-generator project to fix the typo, but alas couldn't find it. I did come across the note about the preferred way was to submit an issue so here I am.

Issue
On list item #3 delimter should read delimiter.

Thanks again for reading my note! If by any chance there was a way for me to have actually been able to do a pr to have rectified and saved you all some time would love a pointer or two so that I could help the greater cause.

Carlo

Bug in test cases for Ch 1.7 It's Math of Learn Functional Programming

Ch 1.7 It's Math of Learn Functional Programming might have an error in the test cases.

Official solution

def get_median_font_size(font_sizes):
    if len(font_sizes) == 0:
        return None
    sorted_sizes = sorted(font_sizes)
    n = len(sorted_sizes)
    if n % 2 == 0:
        return (sorted_sizes[n // 2 - 1] + sorted_sizes[n // 2]) / 2
    else:
        return sorted_sizes[n // 2]

My solution

def get_median_font_size(font_sizes):
    if not font_sizes:
        return None
    idx1 = len(font_sizes) // 2
    if len(font_sizes) % 2 == 0:
        idx2 = idx1 - 1
        return (font_sizes[idx1] + font_sizes[idx2]) / 2
    else:
        return font_sizes[idx1]

Test cases - see how they're all presorted? They maybe shouldn't be? My code wouldn't work if they weren't.

run_cases = [
    ([10, 12, 14], 12),
    ([9, 11, 16, 20], 13.5),
]

submit_cases = run_cases + [
    ([8, 8, 8], 8),
    ([14, 18, 22, 30], 20.0),
    ([6, 6, 6, 24, 24, 24], 15.0),
    ([], None),
]

Suggested fix:

Add some unsorted run_cases or submit_cases

Incomplete curriculum

I cannot find a single mention of testing or testing frameworks in the curriculum.
If I missed something, please, provide a link, else explain the omission.

A few future course suggestions

Some specific courses that would be very helpful for me that I didn't see on the list are something like:

  • Learn GraphQL
  • Learn Mobile Backend Development
  • Learn Security Best Practices (Go, Python, JavaScript)
  • Learn Cloud Platforms (AWS, Google Cloud, Azure)
  • Learn Natural Language Processing

Are there any plans for any of these courses? Thank you for all of the hard work you guys put into making such great courses!! (Also, not sure if this is the right place to put something like this, so please let me know if there is a different place to send feedback like this)

Proposal for JS rework

  1. Learn Coding Basics in Python (Skip if not brand new to coding)
  2. Learn Python (Skip if not new to python)
  3. Learn OOP
  4. Build Dev Env Setup
  5. Learn Algos
  6. Learn DS
  7. Build Maze Solver
  8. Learn Advanced Algos
  9. Personal Project 1
  10. Learn JS
  11. Learn HTTP
  12. SEO Analyzer in Node.js (convert to Node, we need HTTP for this)
  13. Learn 2D Graphics
  14. Learn Functional Programming
  15. Learn Go
  16. ... rest is the same

Here are some of my thoughts:

  • Python is easier to start with than JS
  • It just makes the most sense to use fetch() to teach HTTP so JS makes sense
  • Group FP with the rest of JS
  • Simplifies the "where to start problem" (there are really only 3 places to start, and they're all at the beginning)
  • Allows us to teach more advanced & modern JS in "learn js" which is nice.
  • Not starting with JS will solidify the look that this is backend focused

  • Slight concern that lack of visuals at the beginning won't be as fun
  • 2D graphics is still out-of-place

links issue

I noticed that some items on the roadmap have links, while others do not. I wanted to confirm whether this was intentional or if there are plans to make all items links in the future. Could you provide some clarification on this?

Thank you!

Code Error

in DECORATORS:

Original Code:

def vowel_counter(func_to_wrap):
    vowel_count = 0

    def wrapper(doc):
        vowels = "aeiou"
        for char in doc:
            if char in vowels:
                vowel_count += 1
        print(f"Vowel count: {vowel_count}")
        result = func_to_wrap(doc)
        return result

    return wrapper

It should be:

def vowel_counter(func_to_wrap):
    vowel_count = 0

    def wrapper(doc):
        nonlocal vowel_count
        vowels = "aeiou"
        for char in doc:
            if char in vowels:
                vowel_count += 1
        print(f"Vowel count: {vowel_count}")
        result = func_to_wrap(doc)
        return result

    return wrapper

Otherwise, we cannot access local variable 'vowel_count' where it is not associated with a value.

Python modulo usage before explanation

The modulo operator is first introduced in the solution to "Ch 7: Loops C4. Prime?". The explanation of the modulo operator, on the other hand, is not found until "Ch 8: Lists 16. Modulo operator in Python". Could be confusing.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.