“What should I learn?”

You should learn whatever will help you most with what you want to do in life but if that isn’t immediately obvious you can learn basic tech skills to sustain you while you figure out what it is that you want to do.

You’ll become the most empowered becoming a full-stack engineer.

Below is a list of technologies every full-stack engineer should master and maintain (in rough order of complexity and priority). You should regularly review these and self-assess where you are and what you have to show for each to prove it to others.

Don’t be intimidated. Start small and level up. There’s plenty here because no one should ever be done learning.

The Answer Itself Really Isn’t That Complicated

The skill learning priorities aren’t that complicated:

  1. learn to build web sites and full stack apps,
  2. learn to build chat bots, command line scripts, and terminal apps,
  3. learn to build and maintain Linux servers to run them on.

Then — and only then — build other hardware and electronic devices and add in machine learning. There is a certain amount of networking stuff required to do it all as well.

General Categories

Category Description Languages
Front Web app development. HTML, CSS, JavaScript, Vue
Back CLI, APIs, DBs, Commands. Bash, Go, Node, Python
Deep Linux, Raspberry PI, Arduino Rust, C, PIC Assembly

Foundational

Working Environment

Coding Languages

Languages come in many flavors for different purposes. Generally the best language for the job it preferred rather than a one-language-for-all approach (which is why Python is actually a horrible language).

Quick Start

I believe an objective case can be made for the following languages providing the most empowerment for the least amount of learning investment. After you learn these, in this order, you can learn anything else. Learning an applications language along with operations languages is crucial to maintaining balance as a full stack engineer.

SkilStak Language Priorities
Data Applications Operations
Pandoc Markdown HTML, CSS, JS Bash 4.4.+
JSON Node.js, Vue.js Go
YAML TView Python
TOML NativeScript Rust
SQL GTK+ Gnu C
LaTeX SDL2 PIC Assembly

Data and Configuration

Content Creation

Programming

Applications Development

Operations and Hosting

Providers

Platforms

Hardware and Electronics

Notable Intentional Omissions

For reasons that are better explained in person (where I can provide objective explanations and demonstrations of why these technologies excluded ) the following currently not taught here.

⚠️ Strongly consider the time wasted learning these technologies. Your time is better spent adding and maintaining from the list above. If you take a job working with any of these – or your company is hiring for them – you will fundamentally limit your future opportunities by incurring massive technical debt. You cannot afford to waste that kind of time in the tech industry. Eventually it will catch up with you.

Dead, Dying, or Defunct

Broken

Ethically Challenged

Not Yet Ready, Questionable