Code Monkey home page Code Monkey logo

distributed-systems-journey's Introduction

Distributed Systems Journey

โš  Work in Progress โš 

๐Ÿ“š Roadmap to becoming a distributed systems specialist ๐ŸŽ“

What is this roadmap?

This resource is my personal roadmap in order to become a Distributed Systems specialist.

This project aims to have a pragmatic and realistic approach. We will create a solid foundation, starting with practical knowledge, and build upon it until we achieve a Ph.D. level of expertise in Distributed Systems.

Motivation

It is difficult to find a linear, simple, and curated list of resources to learn a new subject, and it is even worse when what you want to learn is a more niche and specialized topic.

For that reason, and after a good experience creating the OSSU organization and OSSU-CS curriculum, I'm starting this new challenging project!

Project Goals

Main goals

  1. Create roadmaps to provide a linear path for those that want to be a developer, engineer, master, and/or phd in distributed systems.
  2. Create original content so students will be able to learn everything in one place.
  3. Give a valid certificate for those that finished the curriculums.

Other goals

  1. Help to educate professionals to become really knowledgeable about distributed systems.
  2. Help professionals to acquire a solid understanding of the process of developing high-quality systems.
  3. Help publicize Erlang and Elixir for distributed and also for general-purpose systems.

Learning methodology

I highly encourage you to spend some time planning how you will be able to solidify the content you study.

We have a bunch of resources about this topic, so take some time to research and think about it.

Recently, I develop a personal methodology that I'll share with you so you can use it as an inspiration to create your own.

C3T2B1

The C3T2B1 learning methodology consists of:

  • Copy/read/watch the content 3 times.
  • Transform the content 2 times.
  • Build some project 1 time.

By copy, I mean you should read/watch a section of the resource, and type everything that is presented on it. At this moment, you should not fight with the content, just copy it exactly in the same way it is presented to you.

By transform, I mean you should make a slight variation of the final project that was developed in the resource.

By build, I mean you should create a new project based on the knowledge you acquired.

It would also be interesting to create at least a simple article for each section of the resource you are consuming, to better summarize what you have learned. I recommend DEV to be your blog platform.

I will also do one challenge from HackerRank in all programming languages I know after finish a section of a resource I'm studying. You can see more about this here.

Distributed Systems Developer Roadmap

Distributed Systems Engineer Roadmap

  • Main goal: being able to develop and architect complex high-scalable, distributed and fault-tolerant systems.
  • Duration: 4~5 years.
  • Link to engineer roadmap โžญ

Distributed Systems Master Roadmap

  • Main goal: gain a deep understanding of distributed systems theory and become a master in one specific topic of distributed systems.
  • Duration: 2~3 years.
  • Link to master roadmap โžญ

Distributed Systems PhD Roadmap

  • Main goal: gain a even more deep understanding of distributed systems theory and become a Doctor of Philosophy (Ph.D.) in one specific topic of distributed systems.
  • Duration: 3~5 years.
  • Link to phd roadmap โžญ

Total duration: 10~15 years.

About the author

Maybe you will find it interesting/relevant to know more about the person behind the project.

My main background is not in Elixir/Erlang nor backend development.

Currently, I am a JavaScript Developer, working with React and Node applications.

You can see more about my previous experiences here.

Recently, I became a member of the Erlang Ecosystem Foundation - Education, Training, & Adoption Working Group, and my biggest motivation to join this working group was the Distributed Systems Journey project. Since I knew I wanted to start this, I thought it would be great to receive and give some help in such endeavor of spreading the information about the Erlang and what its ecosystem has to offer to us.

distributed-systems-journey's People

Contributors

ericdouglas 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.