> ## Documentation Index
> Fetch the complete documentation index at: https://blueprint.codeandcreed.tech/llms.txt
> Use this file to discover all available pages before exploring further.

# Software Engineering

> Learn to code from the ground up. Build high-quality Software.

<Note>
  v2.0
</Note>

<Warning>
  If you haven't already, check out our [Pre-Requisites](/pre-requisites) guide to get your local macbook setup and build familiarity with your code editor (Cursor)
</Warning>

## Overview

This is a realistic roadmap for complete beginners, focusing on **only** the most important concepts you need to know to get job-ready or build your own products.

## Frontend Development

<Note>
  Estimated time to complete: 3-5 months
</Note>

<Steps>
  <Step title="What even is a 'Frontend'?">
    <iframe width="560" height="315" src="https://www.youtube.com/embed/WG5ikvJ2TKA?si=B_o6M7Wwt5-VVZw1" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowfullscreen />
  </Step>

  <Step title="Learn Git">
    Git is a version control system that allows you to track changes to your code. It's a crucial tool for any software engineer.

    We won't start the main content until you have some familiarity with Git.

    [Learn Git](https://www.boot.dev/courses/learn-git)

    <Warning>
      Price: £10/month
    </Warning>
  </Step>

  <Step title="Main Content">
    [FrontendExpert](https://www.algoexpert.io/content#frontendexpert)

    <Warning>
      Price: £47 (1-year access)
    </Warning>

    After completing this course, you will have a strong foundation in the most important concepts to know as a Frontend Engineer.

    <Check>Web Development Fundamentals</Check>
    <Check>HTML (HyperText Markup Language)</Check>
    <Check>CSS (Cascading Style Sheets)</Check>
    <Check>JavaScript (Most Popular Frontend Language)</Check>
    <Check>Web APIs</Check>
    <Check>ReactJS (JavaScript Library for building user interfaces)</Check>

    This course also includes a quiz and frontend interview questions to help you prepare for coding interviews for frontend roles.

    You do not need to complete all questions. 20-30 questions should be sufficient.

    <Note>
      As you begin learning JavaScript, React, and other related technologies, consider using [Vite](https://vitejs.dev/) as your build tool. It offers a fast development experience and makes it easy to scaffold new projects. You can ask Cursor to help you set up a new Vite project.
    </Note>

    <Note>
      By the end of the FrontendExpert course, combined with your project practice, you will have a solid grasp of HTML, CSS, JavaScript, React, and TypeScript, forming the core of your frontend stack.
    </Note>
  </Step>

  <Step title="Project Building">
    Practice your skills by building mini projects on [GreatFrontend](https://www.greatfrontend.com/projects) (Free tier available):

    <Check>Build UI Components from scratch (News Feed, Type-ahead Search, Image Carousel, Chat Application etc.)</Check>
    <Check>Implement JavaScript utilities</Check>
    <Check>Create React Components that interact with an API</Check>

    ### Extra helpful content:

    * [All React Hooks - Simply explained](https://youtube.com/playlist?list=PLApy4UwQM3UrZsBTY111R6P4frt6WK-G2\&feature=shared)
    * [All 17 React Best Practices](https://www.youtube.com/watch?v=5r25Y9Vg2P4)
    * [All 12 useState & useEffect Mistakes Junior React Developers Still Make in 2024](https://youtu.be/-yIsQPp31L0?si=FuNnbg7etpFkwufE)
  </Step>
</Steps>

## Start Building Real Products

Once you've completed the above Frontend Development path, you can start building real products with our custom boilerplate codebase ([Titan](https://titan.codeandcreed.tech)).

The key benefit with this approach is that you'll learn backend development in a practical, need-driven way. Instead of spending months on theory before building anything real, you'll:

1. Validate your idea with real users
2. Start with simple features and some marketing
3. Gradually tackle more complex features as your product and userbase needs grow
4. Learn system design principles through actual scaling challenges, no theoretical concepts (if your userbase grows)
5. Build a deep understanding by solving real customer problems (bugs) and feature requests

<Note>
  Remember, as you're building your product, you should be scheduling in time to go through the Backend Development section on specific areas you're shaky on (e.g. Databases, Servers etc.). You'll be building something real, but by doing it this way you won't neglect the the fundamentals as you go continue to build your product.
</Note>

<Card title="Build with Titan" icon="bolt" href="/company-building/pre-requisites">
  Start building full-stack products immediately. Deploy real apps, gain hands-on system design experience, and ship to users fast.
</Card>

## Backend Development

<Note>
  There is no estimated time to complete this section. You should be scheduling in time to go through specific areas in this section that you want to improve your understanding of.
</Note>

<Steps>
  <Step title="What even is a 'Backend'?">
    <iframe width="560" height="315" src="https://www.youtube.com/embed/XBu54nfzxAQ?si=Rqoym_7Jou58jp3F" title="YouTube video player" frameborder="0" />
  </Step>

  <Step title="Main Content">
    <Steps>
      <Step title="High-Level Backend System Design">
        [SystemsExpert](https://www.algoexpert.io/systems/product)

        <Warning>
          Price: £47 (1-year access) \[included as part of the original purchase when you bought the FrontendExpert course]
        </Warning>

        After completing this course, you will have a strong foundation in the most important concepts to know as a Backend Engineer to build scalable distributed systems.

        <Check>Client-Server Model</Check>
        <Check>Network Protocols</Check>
        <Check>Storage</Check>
        <Check>Latency and Throughput</Check>
        <Check>Availability</Check>
        <Check>Caching</Check>
        <Check>Proxies</Check>
        <Check>Load Balancers</Check>
        <Check>Hashing</Check>
        <Check>Relational Databases</Check>
        <Check>Key-Value Stores</Check>
        <Check>Specialized Storage Paradigms</Check>
        <Check>Replication and Sharding</Check>
        <Check>Leader Election</Check>
        <Check>Peer-to-Peer Networks</Check>
        <Check>Polling and Streaming</Check>
        <Check>Configuration</Check>
        <Check>Rate Limiting</Check>
        <Check>Logging and Monitoring</Check>
        <Check>Publish/Subscribe Pattern</Check>
        <Check>MapReduce</Check>
        <Check>Security and HTTPS</Check>
        <Check>API Design</Check>
      </Step>

      <Step title="Core Backend Development">
        [Main Course Link](https://www.boot.dev/tracks/backend)

        <Warning>
          Price: £10/month
        </Warning>

        Only the following modules are required:

        * [Learn Golang](https://www.boot.dev/courses/learn-golang)
        * [Learn Linux](https://www.boot.dev/learn/linux)
        * [Learn HTTP Clients](https://www.boot.dev/courses/learn-http-clients-golang)
        * [Learn HTTP Servers](https://www.boot.dev/courses/learn-http-servers-golang)
        * [Learn File Servers and CDNs](https://www.boot.dev/courses/learn-file-servers-s3-cloudfront-golang)
        * [Learn Docker](https://www.boot.dev/courses/learn-docker)
        * [Learn CI/CD](https://www.boot.dev/courses/learn-ci-cd-github-docker-golang)

        After completing these courses, you will have a strong foundation in the most important concepts to know as a Backend Engineer.

        <Check>Linux Fundamentals</Check>
        <Check>Git Version Control</Check>
        <Check>Golang (High-Performance Backend Language)</Check>
        <Check>HTTP Clients & Servers</Check>
        <Check>Docker Containerisation</Check>
        <Check>CI/CD Pipelines</Check>
      </Step>
    </Steps>
  </Step>

  <Step title="Project Building">
    Practice your skills by building projects with [CodeCrafters](https://codecrafters.io/)

    You don't have to build them all. Just pick a few that are interesting to you and build them. You'll gain a lot of hands-on experience and understanding of backend system design concepts.

    <Check>Redis Clone</Check>
    <Check>SQLite Clone</Check>
    <Check>BitTorrent Clone</Check>
    <Check>Git Clone</Check>
    <Check>Shell Clone</Check>
    <Check>Interpreter</Check>
    <Check>HTTP Server</Check>
    <Check>DNS Server</Check>
  </Step>
</Steps>

## Career Preparation & Job Search

<Note>
  Estimated time to complete: 6 months
</Note>

<Steps>
  <Step title="Crushing Digital VIP Program">
    <Warning>
      Price: £1,199 (24-week access)
    </Warning>

    Once you've built a solid technical foundation, this comprehensive 24-week program will guide you through landing your first tech job with:

    <Check>Personalized CV/Resume Optimization</Check>
    <Check>GitHub Portfolio Development</Check>
    <Check>LinkedIn Profile Enhancement</Check>
    <Check>Interview Preparation & Mock Interviews</Check>
    <Check>Strategic Job Search Techniques</Check>
    <Check>Networking Strategies</Check>
    <Check>Salary Negotiation Training</Check>
    <Check>1:1 Coaching with Industry Veterans</Check>
    <Check>Weekly Group Mentorship Sessions</Check>
    <Check>Job Offer Guarantee</Check>

    This program is led by David @ Crushing Digital, an ex-recruiter and engineer with 20+ years of industry experience who understands exactly what companies look for when hiring junior engineers.

    <Note>
      The program comes with a full money-back guarantee if you don't secure a job offer within 6 months (requires proof of consistent effort including regular check-ins).
    </Note>
  </Step>

  <Step title="Continuous Learning & Portfolio Building">
    While job searching, continue to:

    <Check>Build and refine your portfolio projects</Check>
    <Check>Contribute to open source</Check>
    <Check>Participate in coding challenges</Check>
    <Check>Network with industry professionals</Check>
    <Check>Attend tech meetups and events</Check>
  </Step>
</Steps>

## Complete Journey Recap

By following this roadmap, you'll go from zero to job-ready in approximately 12 months, investing around `£1,895 total` versus £30,000-£40,000 for a traditional 3-4 year computer science degree.

The key advantages are:

* **Focused Learning**: Only what's directly relevant to modern industry needs
* **Practical Experience**: Build real-world projects employers actually value
* **Expert Guidance**: Learn from industry veterans who understand hiring
* **Community Support**: Never learn alone with our peer network
* **Job Guarantee**: Risk-free investment with money-back guarantee
* **Rapid Timeline**: Start your career years earlier than traditional paths

<Card title="Get Started Today" icon="rocket" href="/pre-requisites">
  Begin your journey to becoming a software engineer
</Card>
