Skip to content
main
Switch branches/tags
Go to file
Code

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
 
 

Developer Roadmap 🧗

This document describes my current status and upcoming development milestones as a Software Engineer in 2021

Milestone Summary

🚀 OPEN    📉   0 / 7 goals completed (1%)   📅   Tue Aug 31 2021

Status Milestone Goals ETA (240h)
🚧 GitHub Actions 1 / 3 Apr 2021
Ruby under the hood 0 / 6 May 2021
🚧 Is Ruby on Rails Dead? 1 / 9 Jun 2021
AWS Basics 0 / 4 Jul 2021
Boring Front and End 0 / 1 Aug 2021
Personal development 0 / 4 2h / week
Lightning talk 1 Aug

Stage 1

GitHub Actions

Helps to automate software workflow with world-class CI/CD in Linux, macOS, Windows, ARM and containers. Provide live logs for easy find bugs and vulnerability. Has a lot of open source libraries for help to manage workflow.

  • Continuous Integration (CI) and Continuous Delivery (CD) concepts
  • Concepts of cache and containers
  • Setup CI for RoR project(with PostgreSQL, RSpec, Capybara, Webpacker)

Resources:
https://docs.gitlab.com/ee/ci/introduction/
CI/CD Presentation https://drive.google.com/file/d/1--LiN27INGaOr1fTkYoMGRX7i658dmqE/view?usp=sharing

Ruby in depth

  • Rack on Ruby
  • DSL in Ruby
  • Data Structures 💖
  • Include, extend, prepend and difference between them
  • Metaprogramming what it is and how to use it
  • SOLID, GRASP, YAGNI, KISS DRY etc

Resources: How to use Rack Middlewares

Is RoR Dead?

To answer this question, I need to study in more detail the internal structure and all the charms of the RoR framework. Ruby on Rails is a tool that helps to quickly and efficiently implement the functionality that the customer wants. But like any tool, it can become a device that helps to do work more sophisticated and faster, or become a dangerous weapon. To understand the difference and also has some benefits: maintainability, readability, elegance, faster development, DRY code.

  • Naming variable and functions in programming
  • Global classes: Active Record, Active Job, Active Support, Active Cable, Active Storage, Action Mailer
  • Securing Sensitive Data(concepts and examples) 💖
  • RESTful API, REST vs GraphQL 💖
  • Authentication: JWT, OAuth 2.0
  • Catching with Rails
  • SQL queries in Rails
  • Isolation (database systems)
  • Rails Concepts
  • Create simple application using Active Cable + Redis

Resources:
Naming things https://gist.github.com/tmcw/35849b7e9b86bb0c125972b2bb275bc7
Чиcтый код - Роберт Мартин https://habr.com/ru/post/424051/
Securing Sensitive Data in Rails
Catching with Rails
Rails Concerns

AWS Basics

Amazon Web Services launched in 2002 is the market leader in IaaS (Infrastructure-as-a-Service) and PaaS (Platform-as-a-Service) for cloud ecosystems, which can be combined to create a scalable cloud application without worrying about delays related to infrastructure provisioning (compute, storage, and network) and management. With AWS you'll find a complete set of highly available services which is designed to work together to build sophisticated scalable application delivered over the internet. You'll have on-demand access to highly durable storage, low-cost compute, high-performance databases and the tools to manage these resources all available with upfront costs only pay for what you use.

  • AWS Identity and Access Management (IAM)
  • Create different keys and folders
  • AWS Simple Storage Services (S3) 💖
  • Generate Access Keys and setup AWS S3 on Rails project

Resources:
AWS Basics for Beginners Full Course https://www.youtube.com/watch?v=ulprqHHWlng&ab_channel=freeCodeCamp.org
AWS Certified Cloud Practitioner Study Guide

Boring Front and End

  • Pass interview as a Junior Fronted Developer
To do this, repeat the following:
  • WebSocket, HTTP, HTTPs, ftp, ssh
  • Currying and Composition
  • Promises, Async/Await, XMLHttpRequest, Yeld Function
  • Closures(local, global, block) and Scopes
  • Rest operator, Spread operator
  • React lifecycle methods
  • Error objects in JS
  • 3 different types of inheritance
  • bind, apply, call
  • CORS

Resources:
Job Interview Tasks

Personal development

Focus on work, identifying my most productive hours throughout the day, and completing my most important tasks during those hours. Correct formulation of the problem and look at the problem from different angles, rethinking the task. Breaking the task down into small parts and setting the correct priorities for their implementation.

  • See tasks differently and think outside the box
  • Develop the ability to focus on one task
  • Become a better Stack Overflow user
  • Estimating task execution time

Resources:
Семь навыков высокоэффективных людей: Мощные инструменты развития личности
Scrum. Навчись робити вдвічі більше за менший час Оценка времени выполения задачи
Как способность фокусироваться на одной задаче может сделать вас продуктивнее
Гибкий ум. Как видеть вещи иначе и думать нестандартно

⌨️ Typing Speed - 50wps

Typing on the keyboard should be like breathing - precise and fast at the right moments.
Blind typing helps you focus on your work without thinking about the keys or looking at the keyboard. It will also help avoid spelling errors that are difficult to track down and not tracked in the IDE.

  • en 🇺🇸
  • uk 🇺🇦

Resources:
Typing Club https://www.typingclub.com/sportal

English - Intermidiate

English, English, English it is needed everywhere and one of the most important thing in this roadmap.

Resources:
Duolingo https://www.duolingo.com/learn
Let's Master English with Coach Shane

Lightning talk

The main idea is to hold out for 20 minutes, telling something understandable and at the same time keep attention on the presentation, so that no one falls asleep

Stage 2

Idea for the future milestones 🌱

Show all goofy ideas

Back-end 👨‍💻

  • Web Serves: Nginx, Apache 💖
  • Docker and containerization strategy
  • Message Brokers: RabbitMQ, Apache Kafka
  • Search Engines: ElasticSearch, Solr, Sphinx
  • GOF Design Patterns, Architectural Patterns, Different Testing techniques 💖

DevOps 🧑‍🔧

  • OSI Model. TCP/IP/UDP Common ports 💖
  • Knowledge about different file systems 💖
  • Setting up a Reverse Proxy (Ngnix, ...)
  • Setting up caching Server (Squid, Nginx, ...)
  • Setting up a load balancer (HAProxy, Nginx, ...)
  • Setting up a firewall
  • TLS, STARTTLS, SSL, HTTPS, SCP, SSH, SFTP
  • Postmortem analysis when something bad happens

Golang 🇬.🇴

Created by Google in 2009 Go programming language do what Google does: performant web applications at scale. Go is the most powerful, performant, and scalable programming language today for creating web application, web API's, microservices and other distributed services.

Resources:
Udemy course: https://www.udemy.com/course/go-programming-language/ Golang web dev https://github.com/GoesToEleven/golang-web-dev

Angular 🅰️

The modern web developer's platform. Angular, supported by Google, is an open-source software engineering platform used for building user interfaces (front-end).

Resources: https://angular.io/

About

Roadmap to becoming a better web developer in 2021

Topics

Resources

Releases

No releases published

Packages

No packages published