Superman’s Software Engineer Guide from Zero to Hero (1/5): From Scratch to Work-Ready

Yuri Geronimus
3 min readJul 14, 2023

--

It is a comprehensive guide to being ready for work as a junior developer.

Note that you can stop reading at any time as per our rule. The lists are sorted from general to specific, so you’ll gain some strong comprehension even if you stop at any point.

Superman’s Childhood: Computer Science and Object-oriented programming basics

As a little tyke, even Superman had to learn the basics of walking, talking, and making friends, just like the rest of us mere mortals. But let’s be real, his true superpower was his boundless curiosity, which led him to explore the world around him and uncover its hidden secrets (and maybe accidentally break a few things along the way).

You should have a basic understanding of two major sections:

  1. Computer science basics — here are a few options to understand the first major section.
  2. Object-oriented programming basics

Let’s start with Computer Science. Since I learned this area a long time ago in university, I’m not familiar with the latest books. So, let’s start with this modern overview video of the whole of computer science to get a general idea of what computer science is all about. Then, you can explore two different options on the internet:

  1. For a simpler approach, check out CS50’s Introduction to Computer Science Harvard Course
    — Even simpler you can read 40 Key Computer Science Concepts Explained In Layman’s Terms
  2. For a deeper dive, here’s a more comprehensive list below

Comprehensive list of Computer science

Basic algorithm knowledge

  1. State machine
  2. Data structs and related: tree, list, deck, stack, queue, hash function, and hash table. Great algorithm work visualization
  3. Different sort algorithms
  4. Computational complexity (good explanation for data structures and sort algorithms) and memory consumption of algorithms

Basic database knowledge

  1. RDBMS, NoSQL
  2. Database indexes
  3. SQL

Basic operating system knowledge

  1. Process, thread

Basic network knowledge

  1. OSI
  2. TCP/IP (including IP, TCP, and UDP protocols),
  3. Socket, HTTP
  4. SSL, HTTPS
  5. DNS
  6. How a browser works

Basic application virtualization knowledge

  1. Application virtualization types
  2. Kubernetes

Basic API knowledge

  1. API
  2. SOAP, REST, GraphQL

Object-oriented programming

Object-oriented programming basics — let’s see on the internet what it is in common, and…

  1. Let’s read 4 Principles of Object-Oriented Programming
  2. More best practices are below

Conversation with a Father about the Universe: Overview of Software Design and Architecture

When Superman asked his father about the universe, his mind was blown away like a bird in a tornado. His dad explained how the planets, stars, and galaxies were like pieces in a giant puzzle, and Superman’s brain was like a sponge that absorbed all the knowledge like a thirsty plant on a rainy day. From that day forward, Superman’s passion for space exploration was sky high!

Before we dive in, let’s take a quick glance at Software Design and Architecture to give you a general idea of what you’ll be learning in the future. Who knows, maybe it’ll be enough for you, especially the last book:

  1. Firstly let’s understand the difference between Software Design and Architecture, just for the right mindset when you read these words
  2. Secondly, let’s learn the basics of Software Design and Architecture (20–30 mins)
  3. (You don’t have to read this book carefully at this step, just get an overview) Excellent deep overview of software design and software construction — Code Complete: A Practical Handbook of Software Construction 2nd Edition by Steve McConnell (in rus)
    — Fast track of this book — only Chapter 35 “Themes in Software Craftsmanship”. Note: it is not a full abstract of this book.

--

--

Yuri Geronimus

Software developer with experience in fintech and enterprise software development. Trainer, teacher, father