Development in Go - course 130,000 rub. from GeekBrains, training 15 months, Date: June 10, 2023.
Miscellaneous / / November 29, 2023
For beginners
Golang is great as a first programming language. It has a simple syntax and short documentation. You don't need a technical background to master it.
Developers with experience
Many companies are switching to Go and looking for bilingual professionals. If you know PHP, C/C++, JavaScript, Ruby or other languages, you can earn more.
Basics of programming
Program, variables and data types
• Flowcharts and branches
• Cycles
• Functions
• Arrays
HTML/CSS. Interactive course
- Get acquainted with web technologies and create a simple website.
Basic concepts in web development
• Basics of HTML document markup language
• Basics of the CSS document styling language
• Pseudo-classes and pseudo-elements, table layout
• Formation of a block model, block layout
• Work with design mockup in PSD format
• Website markup and introduction to Bootstrap
• Web standards and supporting tools
Basic video course on Git
- Get acquainted with Git, a version control system that programmers actively use in educational and commercial projects.
Introduction to Git
• Installing and configuring Git
• Basic terminal commands
• Working with repositories
• Repository file management
• History of changes
• Working with repository branches
• Publishing a repository
• Branch merges
• Version management
• Create a pull request
• Complex operations
• Working with Fork repositories
Javascript Basic Course
- Learn JavaScript programming to create simple web pages.
JavaScript Language Basics
• Basic operators
• Loops, arrays, data structures
• Objects
• Introduction to DOM
• Event Handling
• Workshop lesson
• Anonymous functions, closures
Linux. Work station
- Backend Go applications are often deployed on Linux. You will become familiar with the features of Linux and will be able to develop more efficiently.
Installing the Linux operating system
• Customizing the command line interface
• User and group management
• Processes, operating system loading
• File system device. File and directory
• Introduction to bash scripts. crontab and at task schedulers
• Manage packages and repositories. Network Security Basics
• Introduction to docker
Go. Level 1
- Get familiar with the basic tools and main data types of Go and learn how to create simple console applications.
Features and history of the Go language. Working with playground and toolchain basics.
• Basic data types. Basics of working with the I/O subsystem of the operating system. Basics of structuring Go applications
• Operators and control structures, basic functions
• Complex data types: arrays, slices and maps
• Complex data types: structures, functions and methods
• Complex data types: pointers
• Interfaces. Errors. Error Handling Basics
• Application Configuration Basics
• Working with the file system
• Fundamentals of Go Application Testing
• Final consultation on the course. Answers on questions
Go. Level 2
- Get acquainted with options for implementing parallel computing in a competitive model, learn how to manage dependencies and write simple asynchronous applications.
Advanced generation and handling of errors and working with panic. Deferred function calls
• Cross-compilation in Go and deeper dive into the toolchain
• Working with external dependencies
• Concurrency, part 1. Goroutines and channels
• Concurrency, part 2. Basics of data types from the sync package
• Concurrency, part 3. Goroutine scheduler, race condition and checking for its presence
• Reflection and code generation in the Go language.
• Basics of working with the Go standard library. Preparation for the course project
Best Practices for Go Application Development
- Get acquainted with modern development practices in Go and learn how to implement them in your projects. They are useful in developing any application: from simple utilities to highly loaded services.
Handling errors from third-party services and operating system signals
• Logging
• Advanced testing practices
• Consultation
• Principles for structuring Go applications
• Linters: advanced level
• Build applications and automate repetitive actions
Backend development. Level 1
- Learn to develop applications in Go, design and support their backend. At the end of the course, create a project - a link shortener.
Networking Basics
• HTTP and RESTful API design
• Implementation and testing of HTTP handlers
• Selecting a router and libraries. Middleware. Request context.
• Practice, part 1. Server Implementation
• Practice, part 2. Implementing a Web Application
• Features of dockerization of Go applications.
• Build and deploy the application. CI/CD
Database
- You will learn how relational databases work, you will be able to create your own, modify their structure and manage data using SQL.
Introduction to Relational Database Theory
• Basic concepts of database structure
• Data definition, basic data operations
• Data sampling, data aggregation
• Nested queries and UNION
• JOIN
• Advanced SQL capabilities
• Window functions, indexes, work in a graphical client
Postgres for Go Developers
- Try yourself as a database administrator, learn how to work with the PostgreSQL management system and implement it in your projects.
Getting started with PostgreSQL: basic tools, comparison with other DBMSs
• Working with database structure, CTE, analyzing requirements when searching for data
• Query execution analysis and data indexing
• Using PostgreSQL from a Go application
• Application structure, testing, migrations, ORM
• Isolation levels, concurrency, cleanup, replication
Observability and optimization
- Learn how to analyze program performance and optimize them using profiling, tracing and caching.
Monitoring + alerting
• Logging + Error handling
• Profiling and tracing
• Optimization and caching
Backend development. Level 2
- Learn to deploy and manage applications in Kubernetes, become familiar with various API protocols and microservice design principles.
Principles of interaction between microservices
• JSON-RPC and gRPC
• GraphQL
• Running Go applications on Kubernetes. Configuration Monitoring. Debugging.
• Kubernetes cluster
• Queues
• Functional testing/BDD
• Go Application Security Basics
Preparing for a Go Developer Interview
- Create an attractive resume and prepare for a technical interview. You can create your own GitHub portfolio of your projects.
Creating a GitHub portfolio
• Soft skills of a Go developer
• Passing a technical interview
• Portfolio consultation
Team development of a microservice project
- You will learn how to conduct development in a rapidly changing environment: learn to work with large tasks from customers, disassemble them into parts and correctly prioritize them. Implement your own microservices in team work.
Collaborate on service design. RFCs and design documents
• Collaboration practices with Git. Code review
• Joint testing and deployment of services
• Responsibility of the developer. Production readiness checklists
• Practice of oncall duty. Incidents and post-mortems
• Three consultations on your project
Sergey Gonchar
16.07.2022 G.
Now I'm studying to become a Go developer - overall it's not bad. So far I don't regret purchasing their courses. The programs are interesting and useful, but 2-hour webinars are not a very pleasant thing. I would prefer pre-recorded videos of 20-30 minutes with tasks. Sometimes in some courses you can feel a sharp increase in the difficulty of topics and assignments. You go through the lessons, do the homework, everything seems clear...