One can say that programming is not for everyone, but truth is we often miss the opportunity to find passionate people on teaching that think out-of-the-box and try to create a common bridge of communication so anyone really interested can smoothly grasp concepts such as:
- Computer CPU's speak bits
- Assembly is nice, saves us much time from typing bits for the processor, but it's not portable
- Programming languages are just specifications and abstractions which make our lives easier. But someone has to implement such specs in an already existing language
- Type systems made easy®
- UNIX commands don't bite
man
, Google search and online documentation are the best friends- TCP is a specific communication language where two different computers can exchange messages
- HTTP is an abstraction on top of TCP and like TCP, requires the connection to be closed at every request
- Browsers are not only icons on the Desktop, they are simply HTTP clients and can understand HTML, CSS, sometimes Javascript
- Building an HTTP web server from scratch is not that hard but requires a lot of repeated work (patterns appear then frameworks)
- Writing data into .txt files. Oh wait, databases...
- There's no magic in Ruby/Rails
- How to apply the test-driven mindset through the whole development process, even when writing a tiny piece of code or a programming tutorial
- Cracking SPA, Frontend, Backend, MVC, REST concepts and all the like, with a bit of React + Redux + Rails API integration
- OOP and FP made easy®
- ...and much more
- Why practicing typing on keyboard is important and how it can stretch your brain
- Mastering your work environment with Tmux + Vim