Skip to content

Latest commit

 

History

History
597 lines (298 loc) · 11.3 KB

roadmap.md

File metadata and controls

597 lines (298 loc) · 11.3 KB

Golang Software Engineer

Computer Science

Architecture knowledge

Microservices

Domain-Driven Design

SOLID

Design Patterns

Event Sourcing

Object-Oriented Programming

Encapsulation
Inheritance
Polymorphism

Functional Programming

Distributed Systems

Code Standards and Code Review Process

Algorithms and data structures

Analysis

Data Structures

Lists
Stacks
Queues
Trees
Heaps
Graphs

Algorithms

Sorting algoritms
Reasearch algoritms

Systems Programming

Artificial Intelligence and Machine Learning

Hardware

Security and Encryption

Blockchain and Cryptocurrency

Databases

SQL

Indexes

Transactions

Principles

Relational

Multiversion Concurrency Control

Firebird
PostgreSQL
Oracle
MySQL

Blocking

MySQL

ACID

Object-oriented

NOSQL

CAP Theorem

BASE

Graph database

OrientDB
Neo4j

Document base

MongoDB

Column base

Redis
ClickHouse

Wide column base

Time series

Search Engines

Elasticseaerch

Sphinx

Message Broker

Kafka

RabbitMQ

Amazon Simple Queue Service

Computer Network

Open Systems Interconnection model

gRPC

REST API

GraphQL

SOAP

DNS

Protocols

IP

TCP

UDP

HTTP

TLS

SSL

Websocket

Authorization and Authentication

Authorization

Authentication

OAuth

JWT

Cookie

Operating System

Types

Batch

Time-Sharing

Distributed

Network

Real-Time

Processes and Threads

Threads

Scheduling

Multi-Threading

Memory Management

Virtual Memory

Virtual Memory

File system

I/O

Virtualization

OS-level Virtualisation

Docker

x86 Virtualization

VirtualBox
VMware

Command Language

Bash

Zsh

Software Development Processes

Testing

Test-driven development

Behavior-driven development

Build Systems

Make

Maven

Ant

Gradle

Bug tracking systems

Jira

Redmine

TFS

Version Control

Git

Deployment

Continuous Integration

Continuous Delivery

Estimations

Planning Poker

Debugging

Troubleshooting

Logging

Monitoring

Orchestration

Ansible

Puppet

Kubernetes

Management

Methodologies and Frameworks

SCRUM
Kanban
Extreme Programming
The Twelve-Factor App

Paradigms and Models

Agile
Waterfall

Time Management

Pareto analysis
Getting Things Done
Pomodoro

Golang

Types

Strings/Runes/Bytes

Integers/Unsigned/Floating-point

Pointer

Array/Slice

Maps

Interface

Constants

Object-Oriented Programming

struct
Encapsulation
Inheritance/Composition/Embedding
Polymorphism

Conversion/Checking

Functions

Lambda/Variadic

init/main

Closure/Recursion

Panic

Recover

Panic/Recover/Defer

First-class function

Concurrency

Goroutines

Channels

Select

Race Condition

Package sync

Mutex
atomic
WaitGroup
Once
Pool
Map

Patterns

Worker Pool (Thread pool)
Pipeline
Barrier
Future

Tools

gofmt

vet

godoc

pprof

Dependencies Management

mod
dep

Linters (GolangCI, golint and etc)

Testing

go test/benchmark

Mocking

Libraries and Frameworks

testify
ginkgo
goconvey

Runtime

Garbage Collector

Scheduler

Package unsafe

Package reflect

Application

Errors handling

Templates

Context

WebSocket

protobuf/gRPC

Encoding

JSON
XML

Frameworks

Gin
Beego
Echo
Go-Kit