Boost your development knowledge and coder skills!

Every course includes special git-repo access,
pdf documents and video recordings of session!

Golang  

There are 4 available Golang courses in this section.

Feel free to communicate about course details or questions via sending email to address.

Golang 101

Introduction to Google’s awesome Golang!

  • Anatomy of a go program: main.go
  • Basics of coding conventions and standards
  • Package concept, private/public access logic
  • Variables, assignments
  • Pointers, references
  • Type assertions, reflection
  • Built-in data types: Numbers family, String, Slice, Map
  • Function definitions, parameters, return types
  • Conditionals, loops and more...
  • What is struct ?
  • What is struct method ?
  • What is interface method ?
  • Errors, panic, recover logic
  • What is marshaling/unmarshaling ?
Bonus
  • Standard library: io package examples
  • Standard library: net/http package examples

Golang 102

We are going to focus on more complicated topics for building go apps.

  • What is go tool chain ?
  • Linting, checking and vetting go code
  • Why interface defines behavior ?
  • Satisfying interface methods and behaviors
  • Creating and testing go packages and modules
  • Create detailed package documentation with godoc
  • Create presentations like a gopher!
  • What are Goroutines ?
  • What are channels ?
  • Designing tests, examples, benchmarks
  • Detect memory leaks, race conditions and more with built-in go tools
  • Mocking 3rd party services for better tests
  • Useful external testing libraries and helpers
Bonus
  • We’ll build basic command-line http client for release!

Building Rest API with Golang

Are you ready to build your first API with golang’s standard library? No external packages just pure built-in functions and libraries!

  • How to handle URLs ?
  • What is middleware ?
  • How to communicate with database ?
  • Request / Response headers
  • Can we implement any kind of authentication ?
  • Serving JSON or XML ?
  • Logging ?
Bonus
  • We’ll build a basic blog backend as REST API

Hands on gRPC and Protocol Buffers 101

Are you ready to dive right in to Google’s other gem ? Protocol buffers aka protobuf is the fastest and solid way of microservice communication.

  • Whats is protobuf ?
  • Protocol naming conventions and coding style
  • What are the basics of scalar types ?
  • Tags, repeated fields, default field values
  • Enumerations and nesting
  • Rename or remove field
  • Build protobuf for golang
Bonus
  • Connect Rest API with microservice over gRPC

Django  

There are 10 available Django courses in this section.

Feel free to communicate about course details or questions via sending email to address.

Django 101

You can build/develop web applications super fast with Django web application framework. Also batteries are included!

  • Setting up Django development environment
  • What is Django Project ?
  • What is Django Application ?
  • Django project structure
  • Isolation of development, test, staging and production environments
  • What is Django Model ?
  • What is migration ?
  • What is Django ORM ?
  • Introduction to Django shell
  • Model-Template-View approach
  • Routing, URL dispatcher
  • What are to goodies shipped with Django ?
  • Built-in Django function, models, helpers
  • Basics of Django Admin
  • Basics of Authorization and Authentication
  • Quicklook: Function-based views
  • Quicklook: Class-based views
  • Swiss army-knife of Django: Django Debug Toolbar and Django Extensions
  • Integration 3rd party packages
  • Basics of deployment, let’s deploy to Heroku
Bonus
  • We’ll build a small app like GitHub’s Gist
  • We’ll integrate markdown parser, syntax highlighter and more...

Advanced Django

We’ll dive in to more advanced topics, reveal the hidden gems of Django...

  • Class-based views in detail
  • Multi-table inheritance
  • What is Proxy model ?
  • What is Polymorphic relation ?
  • What is Generic relation ?
  • Custom Managers, Querysets
  • ORM performance and optimization
  • Debug in View! or in shell ?
  • What are Mixins ?
  • Data migration, pre-defined data providing, writing custom migrations
  • Built-in Signals, custom signals
  • Custom Users, custom User admin and more...
  • Localization aka I18N, Timezone aware data in the wild!
  • Permissions
  • PostgreSQL specific features
  • Intermediate Django Admin customization
  • Intermediate Django Admin widgets
  • Intermediate Django Forms
  • Custom management commands
  • Custom template tags and filters
  • Overriding Django classes in the right way
  • Testing views, admin site
  • Test tricks, mocking, mocking with vcrpy
  • Caching... What are options ?
  • Advanced logging, custom loggers, formatters etc...

Hacking the Django Admin

Django shipped with awesome Admin features. Authors always mention that “Admin site is for the developers only, not for clients!” Let’s change that!

  • Latest features of Django Admin!
  • Custom autocomplete views
  • Dive into django.contrib.admin
  • Let’s build our custom BaseModelAdmin
  • Permission/Group based admin displays
  • Permission/Group based admin forms
  • Forms with fake fields
  • Custom Inline Formsets, custom initial data and more...
  • Working with calculated fields in Admin
  • Custom admin filters
  • Overriding change lists, change forms, injecting extra items!
  • Dashboard view
  • Soft deletion, versioning data
  • Handling large databases in Admin
  • Using built-in admin widgets for good!
  • Injecting JavaScript flavor to Admin

Django Tips and Tricks

We’ll cover performance issues, DOs and DON’Ts. Also, best practices from well-known Djangonauts

  • Better project structure! Isolate environments: test, development, production etc...
  • Fat Model + Skinny Controller!
  • ORM performance tips + new functions such as Prefetch() and more...
  • Curated list of model tips, view tips and ORM tips
  • Using transactions, preventing race-conditions
  • Examples of built-in Query Expressions: F(), Func(), Value(), custom Aggregate functions and more...
  • What is Subquery and annotation()
  • Creating custom lookups: field__my_lookup=1
  • What bulk operations are ?
  • Who needs Elastic Search if you have PostgreSQL ? Search Vectors and more...
  • Migration optimization. Always check what Django produced!
  • What about PostgreSQL extensions? How to enable them?
  • Special search operations
  • Faster and better tests!
  • All about Django Forms, hacking admin forms

Django Class-Based Views

This is introductory level of Class-Based View usage in a Django application.

  • Understanding Mixins and MRO
  • Introduction to Generic Views
  • Detailed inspection of Views and their MRO
  • Blending different views together!
  • Decorator usage
  • Data validation
  • Ajax and Class-Based Views

Django and Authentication

Sometimes you need to authenticate users via different service backend such as LDAP or any custom service.

  • Built-in authentication mechanisms
  • Writing custom authentication backend
  • What is Remote User?
  • Accessing 3rd party providers such as LDAP
  • What about social auth? Twitter, Facebook, GitHub etc?
  • What about Token authentication?

Serving robust API with Django Rest Framework

We’ve already built the application. All we need is DRF for API service!

  • What REST stands for ? What is It ?
  • What DRF does to make your life easier ?
  • What is Serialization ?
  • Serializing Django models
  • Basic CRUD operations
  • Queries, pagination
  • Security, authorization
  • Routing principle
  • Related models, queries
  • Token authentication
  • API load balancing, throttling, rate limits and more...

Django Deployment Workshop

After watching Jacob Kaplan-MossDjango Deployment Workshop video from O’Reilly OSCON Conference, June 2010, We’ve inspired to do soo!

  • Provisioning Ubuntu OS’ (4 Vagrant instances)
  • Setting up application servers, load balancers, databases
  • Service and process management
  • Gunicorn approach
  • uWSGI approach
  • PostgreSQL pooling
  • Load balancing with NGINX
  • Distributed Django application infrastructure
  • Dockerize you Django app!
  • Run your Django app over cloud services

Django Models

How exactly do you need to prepare your database model?

  • How to design your model relations?
  • Consider you queries first!
  • How do you measure your queries?
  • What is your query execution plan?
  • ManyToMany or ManyToMany.through? What are the benefits?
  • What about indexes and constraints?
  • Which is more important? size of the db or query execution time?

Django Testing

Test Driven Development is the key of building better and rock solid applications!

  • How to design your tests?
  • What external libraries should you use?
  • How to build testing pipeline?
  • What to test? what to mock?
  • Unit tests or integration tests?
  • How to maintain tests?
  • How to speed up your tests?

Python  

There are 6 available Python courses in this section.

Feel free to communicate about course details or questions via sending email to address.

Python 101

Introduction to Python programming language. We’ll cover latest Python version 3.9+

  • Coding format and standards
  • Python syntax
  • Delimiters, operators
  • What is Object
  • What is method
  • Variable and assignment
  • Built-in data types: Booleans, Numbers, Nones
  • Sequences: Strings, Lists, Tuples
  • Generators, Generators Expressions
  • Arithmetic operators
  • Sets and Dictionaries
  • Functions and Scope concept
  • Lambda Expressions
  • Control statements and conditions
  • Loops, Iterators and Iterable elements

Python 102

Entering the magical world of Object Oriented Programming aka OOP in Python! Are you ready for Classes, Inheritance and more?

  • What is Class declaration ?
  • What is Base Class ?
  • Class vs Instance and special methods
  • What is method resolution order aka MRO and why It’s important!
  • What is instance ?
  • What is method, property or attribute ?
  • Getters, setters aka accessor
  • Decorators
  • Object inspection
  • Hidden methods in an Object
  • What is method access level ? Pythonic approaches
  • What is override, overload and super ?
  • What is Meta Class, Abstract Base Class ?
Bonus
  • We’ll build TODO command-line app
  • We’ll pack our TODO app as Python package!

Testing Python App

We’ll discover built-in testing tools shipped with Python!

  • Basics of testing, idea behind testing philosophy
  • What parts of the code should we test ?
  • What is Docstring test ?
  • Basics of unittest
  • What is assertion ?
  • Overview: 3rd party testing libraries

Distributing Python Packages

Python allows us to build and ship re-usable apps. Let’s see that!

  • How to build a standard Python package ?
  • Managing package dependencies
  • What are the most common mistakes ?
  • What is PyPI ?
  • Maintaining a package on PyPI: new releases, updates etc...
  • How to distributor your package privately?

Python Version Management

There are lot’s of Python versions around. How can we organize project based Python version?

  • Understanding the PYTHONPATH
  • Introduction to pyenv
  • Installing pyenv to macOS, GNU Linux and Windows
  • Managing virtual environments with pyenv
  • Other version management tools?

Python Development Environment

You need some tools to write better Python code. What are those?

  • Installing Python with version management
  • Choosing a Text Editor IDE ?
  • Configuring code writing tool to output A-GRADE Python code
  • Helper packages for formatting and linting
  • Extensions for most common editors such as TextMate, VS Code, Atom, Sublime, vim, emacs...

Flask  

There are 2 available Flask courses in this section.

Feel free to communicate about course details or questions via sending email to address.

Flask 101

Did you know that the Flask was born from April Fools joke in 2010? It’s great for building simpler web apps and prototypes on Python.

  • Introduction to app aka Flask app
  • What is routing? Flask views aka handlers
  • Flask request payload for incoming http
  • Routing with name matchers and regexes + type safety
  • Rendering a template and understanding context
  • Template inheritance and introduction to Jinja
  • Handling basic html forms, redirect and url routing
  • Uploading and saving files
  • make_response and cookie basics
  • How flash messages work?
  • How to deploy Flask app ?

Basic API Design with Flask

We are going to build and deploy a web RESTful API aka a micro-service from scratch! Let’s build a retro computer game database!

  • Quick introduction to REST API design philosophy
  • Decide and create data models
  • Decide and design REST endpoint URLS aka resources
  • What is ORM? Introduction to SQLAlchemy
  • Fixtures and migration basics
  • Establish CRUD functionality for initial resources
  • Introduction to Blueprint and Api
  • Authentication and Authorization basics
  • Basic HTTP auth vs HTTP Token auth
  • Consume our little API from command-line via curl and httpie
  • Dockerize the API and deploy!

Ruby  

There are 8 available Ruby courses in this section.

Feel free to communicate about course details or questions via sending email to address.

Ruby 101

Ruby has the easiest learning curve comparing to other programing languages. Let’s dive right in to easy and elegant world of Ruby!

  • How Ruby works ?
  • Ruby syntax
  • Interactive shell aka REPL: irb
  • Pre-defined variables, variables, pseudo variables
  • Operators, constants
  • Methods, blocks, proc and lambda notions
  • Conditions, control statements
  • Enumeration, iterators, loops and more...
  • Built-in data types
  • Object Oriented Ruby: Class and Modules
  • Exception handling
  • Quicklook: File system, IO and Kernel module
  • Basics of Rubygems

Sinatra 101

You can build ruby apps in minutes. From basic apps to complex database apps Sinatra is the most famous light-weight web framework!

  • More than Rack, less then Rails ‐ Den Benjamin
  • Sinatra’s DSL structure
  • Handlers and HTTP methods
  • URL Params, splat, regex and conditional matchers
  • ERB and Views
  • What is layout ?
  • Static files such as images, JavaScript and CSS files
  • Easy integration of almost any kind of file type such as Sass, Markdown
  • What are filters and helper ?
  • Making custom filters and custom helpers
  • Handling, canceling, redirecting, passing or raising errors on http requests
  • Environment isolation: testing, development or production
  • Manage sessions
  • Testing Sinatra apps
  • One file app or structured app ?
  • Deploy basic Sinatra app to Heroku

Ruby and TDD 101

Ruby is a test-first programming language. Let’s take a look at built-in testing tools.

  • Introduction to testing, importance
  • What are built-in test helpers and tools ?
  • What are testing kinds ?
  • Mocking, stubbing, test doubles notions
  • What is Minitest ?
  • Quicklook: What is Rspec ?
Bonus
  • We’ll build command-line bookmark saving tool

Sinatra and Active Record

Active Record is the most common/famous object relational mapping library aka ORM for Ruby on Rails. We can use it with Sinatra too!

  • Basics of ORM: What is It ?
  • Introduction to Active Record, conventions and rules
  • What is Schema ?
  • What is Model ?
  • What is Migration ?
  • Data validation
  • Prepare your app for integration
  • Active Record related Rake tasks
  • Fat Model - Skinny Controller
  • CRUD with Active Record
  • Querying database
  • Model relations, building and querying related objects
Bonus
  • We’ll build a blog application and deploy It to Heroku!

Building Basic Rack Application

Build Ruby web apps with Rack!

  • Understanding http
  • What is Rack? How It works ?
  • What is Rack Middleware ?
  • What are the Rack’s layers ?
  • How to protect http requests ?
  • Handling http methods
  • Let’s build custom Rack extension!
  • How to deploy Rack application ?
Bonus
  • We’re going to build a Guestbook app

Making Static sites with Middleman

At the end of the day, all we need is a bunch of html files to run a website right ? Let’s build It!

  • What is static website ?
  • What is Middleman ?
  • What are the built-in components ?
  • Html templating, template helpers, renderers
  • Assets pipeline
  • Data automation
  • Multi language web sites
  • Integration with 3rd party services
  • Deploy Middleman app via GitHub Pages
Bonus
  • We’re going to build an e-commerce application

How to make gem file?

Ruby gem is a package contains tools, helpers, sometimes frame-works. Ship and deploy re-usable code with Rubygems!

  • What is Bundler?
  • Create gem template with Bundler
  • Managing manifest files, revisions, releases
  • Gem development environment and dependencies
  • Extensible gem development
  • Publish your gem to Rubygems!
Bonus
  • We’re going to build GitHub Issue tracker!

It’s not a Makefile It’s Rakefile

You can automate your daily tasks, common operations as-easy-as writing a Ruby code! Welcome to wonderful world of Rakefile

  • Tribute to Jim Weirich
  • Anatomy of a Rakefile, It’s DSL
  • Basic tasks
  • Tasks with params
  • Name spaces
  • Multi tasks
  • Rules
  • Built-in tasks
  • File, FileList and Directory features
  • Global / local tasks
  • 3rd party Rake extensions
  • Real-life examples

Git  

There are 2 available Git courses in this section.

Feel free to communicate about course details or questions via sending email to address.

Git 101: Git for everyone!

Day to day basic usage of git from command-line!

  • How to install git to most common operating systems
  • What is git configuration ?
  • What is repository ?
  • What is commit ?
  • Working with files, making changes and un/tracking revisions
  • Isolation some file types
  • What is branch ?
  • What is merge ? What kind of merging does git provides ?
  • What is conflict ? How can we resolve conflicts ?
  • What is stash, tag ?
  • Undo, reset, amend and revert features
  • What are git aliases ? Let’s make our own!
  • Call shell commands from config files!
  • Log operations, searching files, messages etc...
  • git keeps everything at least 90 days!
  • Working with remotes
  • Basics of git platforms: GitHub, Gitlab and Bitbucket
Bonus
  • Git cheat-sheet

Advanced Git

We’ll dive deep in to amazing world of git.

  • Intermediate inspection of git config file
  • How to compress files
  • What is merge commit ?
  • What is bundling ?
  • Getting shallow copy of a repo
  • Interactive add, patching and rebasing
  • How stash works ? Basic tips for better stashing
  • Solving rebase and stash conflicts
  • Pick any commit via cherry-pick
  • Browse revisions from command-line
  • Detailed diff operations
  • Split and join commits
  • Changing orders commits
  • Bug hunting with bisect
  • Modify any/all commit repo-wide
  • Sign your commits/tags with GPG
  • Commit annotations, notes
  • Patching recipes
  • Reflog and garbage collection
  • Handy cli helper: tig
  • Build your own git extension: Kommit
  • What are git-hooks ?
  • More best practices, tips and work-flows

Bash  

There are 2 available Bash courses in this section.

Feel free to communicate about course details or questions via sending email to address.

Bash 101

Bash is an open-door to Kernel! Every *NIX bases operating systems have a shell entrance!

  • Variables and environment
  • Built-in commands
  • Profile, settings and configurations
  • Calling a shell command, getting help about It!
  • Permissions, users, groups and others
  • Files, inspection and analyze
  • Syntax
  • META characters, parenthesis expressions, quoting
  • Command formation, chaining/piping commands
  • File descriptors, IO redirection and PIPE
  • Standard IN/OUT/ERR
  • Data types, arithmetical expressions
  • Functions, conditions and loops
Bonus
  • Anatomy of a Bash completion
  • I18N and localization examples

Building Command-Line Apps with Bash

You can build almost anything with Bash. From small tools to complicated apps, even a web server!

  • Parsing command-line arguments
  • Errors and exceptions in Bash way
  • Linting and checking shell code
  • Testing bash scripts, TDD is everywhere
  • Adding bash-comletion and localization
  • Adding man page for your bash tool
  • How to create brew packages
  • Distributing your app with homebrew

DevOps  

There are 2 available DevOps courses in this section.

Feel free to communicate about course details or questions via sending email to address.

Introduction to Docker

Let’s build and ship our apps with Docker

  • What is Docker engine ?
  • Docker images vs containers
  • What is Dockerfile ?
  • Environment variables, passing arguments
  • How to create container from image?
  • What is Volume ? How to persist data ?
  • Sharing volumes amongst containers
  • What is Docker Compose ?
  • Lets dockerize our Python app
  • Lets dockerize our Django app

Make your own Vagrant Box

Sometimes you need your own box to play with. Now It’s time to build your vagrant os box!

  • Setting up VirtualBox provider
  • Configuring VirtualBox in detail
  • Building custom Ubuntu box (latest edition)
  • Initial provisioning for custom box
  • Network and other devices configurations
  • Install newly built box
  • Maintain you own box for future upgrades
  • Vagrant host/guest tips and tricks
Bonus
  • NGINX server setup and integration to custom box