Coder Social home page Coder Social logo

saidamir98 / backend-roadmap Goto Github PK

View Code? Open in Web Editor NEW
91.0 2.0 13.0 5.47 MB

The roadmap is made for anyone who wants to become a modern back-end developer, focusing on the world of REST and microservices architecture. It covers everything from basic stuff to advanced technology including publicly available sources, topic-related tasks, and projects to have an idea of the full cycle of developing the backend of modern projects.

License: Other

backend backend-roadmap cs docker git go golang grpc nodejs nosql os roadmap sql

backend-roadmap's Introduction

Backend Roadmap

License: CC BY-SA 4.0

The roadmap is made for anyone who wants to become a modern back-end developer, focusing on the world of REST and microservice architecture. It covers everything from basic stuff to advanced technology including publicly available sources, topic-related tasks, and projects to have an idea of the full cycle of developing the backend of modern projects.

1.* Computer Science Foundation

Please visit Computer Science Foundation Roadmap to learn about those topics:

  • 1.1 Basics of CS(Computer Science)
  • 1.2 Introduction to Data Structures and Algorithms
  • 1.3 Introduction to OS(Operating System)
  • 1.4 Linux OS
  • 1.5 Terminal Commands
  • 1.6 Shell Scripting
  • 2.1 Git

3.1 HTML+CSS+JS

3.2 JS

* Project3

  • Create a simple X&O game using HTML and JS.
    Example:
    tic_tac_toe.gif

4.1 NodeJS

4.2 REST

  • Develop simple in-memory Blogpost CRUD REST APIs using NodeJS+Express.

4.3 Postman TOOL

* Project4

  • Create a simple blogpost website using NodeJS as a web server.

5.1 Golang

  • Sources

  • Practices

    • Task1: Swap 2 numbers. In this task, a user is asked to enter two numbers and the program will swap two numbers without using the third variable.
    package main
    
    import "fmt"
    
    func main() {
        var a, b int = 3, 4
    
        // fmt.Scanf("%d", &a)
        // fmt.Scanf("%d", &b)
        fmt.Printf("a = %d, b = %d\n", a, b)
        //
        // WRITE YOUR CODE HERE
        //
        fmt.Printf("a = %d, b = %d\n", a, b)
    }

    Example:

    a = 3, b = 4
    a = 4, b = 3
    
    • Task2: isOdd and isEven. Write go functions to check whether a number is even and is odd.
    package main
    
    import "fmt"
    
    func main() {
        var a, b int = 3, 4
    
        // fmt.Scanf("%d", &a)
        // fmt.Scanf("%d", &b)
        fmt.Printf("a = %d, b = %d\n", a, b)
    
        // fmt.Println(a, "is odd: ", isOdd(a))
        // fmt.Println(b, "is even: ", isEven(b))
    }
    
    // func isEven(num int) bool {
    // 	//
    // 	// WRITE YOUR CODE HERE
    // 	//
    // }
    
    // func isOdd(num int) bool {
    // 	//
    // 	// WRITE YOUR CODE HERE
    // 	//
    // }

    Example:

    a = 3, b = 4
    3 is odd:  true
    4 is even:  true
    
    • Task3: Area of a circle inscribed in a square. Find the shaded region by given R(radius of the circle).
      Task 3 Image
    package main
    
    import (
        "fmt"
    )
    
    func main() {
        var r float32 = 10.04
    
        // fmt.Scanf("%f", &r)
        fmt.Println("R =", r)
    
        fmt.Printf("Area: %0.2f\n", area(r))
    }
    
    func area(r float32) (area float32) {
        //
        // WRITE YOUR CODE HERE
        //
        return area
    }

    Example:

    R = 10.04
    Area: 86.53
    
    1. FizzBuzz
    package main
    
    func main() {
        for i := 1; i <= 100; i++ {
            FizzBuzz()
        }
    }
    
    func FizzBuzz() {
        //
        // WRITE YOUR CODE HERE
        //
    }
    1. Find a weekday from a given date
    package main
    
    import (
        "fmt"
        "time"
    )
    
    func main() {
        dobStr := "20.04.1998" // Replace this date with your birthday
        givenDate, err := time.Parse("02.01.2006", dobStr)
        if err != nil {
            panic(err)
        }
        fmt.Printf("%s is %s", givenDate.Format("02-01-2006"), FindWeekday(givenDate))
    }
    
    func FindWeekday(date time.Time) (weekday string) {
        //
        // WRITE YOUR CODE HERE
        //
        return
    }
    1. Display numbers from 1 to 100 in reverse order using DEFER
    package main
    
    func main() {
        DisplayNumberInReverseOrderWithDefer()
    }
    
    func DisplayNumberInReverseOrderWithDefer() {
        for i := 0; i < 100; i++ {
            //
            // WRITE YOUR CODE HERE
            //
        }
    }
    1. Write a function to calculate square root. Given a positive number n and precision p, find the square root of the number up to p decimal places using binary search.
    package main
    
    import (
        "fmt"
    )
    
    func main() {
        fmt.Println(MySquareRoot(10, 12))
    }
    
    func MySquareRoot(num, precision uint) (result float64) {
        // DO NOT USE math.Sqrt!
    
        //
        // WRITE YOUR CODE HERE
        //
    
        return
    }
    1. Find the Minimum Number. Link: https://www.hackerrank.com/contests/w30/challenges/find-the-minimum-number/problem
    package main
    
    func main() {
        n := 12
        // Read n from input
        DisplayMinimumNumberFunction(n)
    }
    
    // https://www.hackerrank.com/contests/w30/challenges/find-the-minimum-number
    func DisplayMinimumNumberFunction(n int) {
        //
        // WRITE YOUR CODE HERE
        //
    }

* Project5

  • Task1: Write a bigint package.
    • func NewInt(num string) (Bigint, error)
    • func (z *Bigint) Set(num string) error
    • func Add(a, b Bigint) Bigint
    • func Sub(a, b Bigint) Bigint
    • func Multiply(a, b Bigint) Bigint
    • func Mod(a, b Bigint) Bigint
    • func (x *Bigint) Abs() Bigint
      Example:
    a, err :=bigint.NewInt("988847123412385995937737458959")
    if err != nil {
        panic(err)
    }
    b, err :=bigint.NewInt("21231231231231231231231231233")
    if err != nil {
        panic(err)
    }
    err = b.Set("1") // b = "1"
    if err != nil {
        panic(err)
    }
    c:=bigint.Add(a, b) // c = "988847123412385995937737458960"
    d:=bigint.Sub(a, b) // d = "988847123412385995937737458958"
    e:=bigint.Multiply(a, b) // e = "988847123412385995937737458959"
    f:=bigint.Mod(a, b) // f = "0"
  • Task2: Write tests on your own bigint package.

5.2 Gin

5.3 PostgreSQL

5.4 Go + SQLX

5.5 Migrations

5.6 Go + Swaggo

* Project6

  • Develop a simple blogpost REST APIs using Golang + Gin + SQLX(PostgreSQL) + Swaggo (+Include testing).

6.1 Protocol Buffers (protobuf) and gRPC

6.2 Go + gRPC

7.1 Docker

* Project7

  • Building A Containerized Microservices for a simple blogpost project.

Loading...

8.1 MongoDB - Pending...

8.2 NodeJS + gRPC - Pending...

* Proejct8 - Pending...

9.1 DB modeling - Pending...

10.1 EDA - Pending...

11.1 Web Socket - Pending...


References

Fireship | freeCodeCamp.org | TutorialEdge | Traversy Media | CS50 | geeksforgeeks | Coding For Everybody | DoS - Domain of Science | Basics Explained, H3Vtux | LetsCode | Tren Black | OpenCanvas | Neso Academy | Techquickie | DorianDotSlash | Ksk Royal | Linux Tex | Gary Explains | Android and Tech Solutions | Colt Steel | Tech With Tim | Victor Geislinger | devdojo | Programming with Mosh | uidotdev | James Q Quick | JavaScript Mastery | Troy Amelotte | Stephane Maarek | Gopher Guides | Tech and Beyond With Moss | The Linux Foundation | Simplilearn | Amigoscode |


Backend Roadmap © 2023 by Saidamir Botirov is licensed under CC BY-SA 4.0

CC BY-SA 4.0 License

backend-roadmap's People

Contributors

saidamir98 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

Watchers

 avatar  avatar

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.