Superman’s Software Engineer Guide from Zero to Hero (1/5): From Scratch to Work-Ready
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:
- Computer science basics — here are a few options to understand the first major section.
- 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:
- 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 - For a deeper dive, here’s a more comprehensive list below
Comprehensive list of Computer science
Basic algorithm knowledge
- State machine
- Data structs and related: tree, list, deck, stack, queue, hash function, and hash table. Great algorithm work visualization
- Different sort algorithms
- Computational complexity (good explanation for data structures and sort algorithms) and memory consumption of algorithms
Basic database knowledge
- RDBMS, NoSQL
- Database indexes
- SQL
Basic operating system knowledge
Basic network knowledge
- OSI
- TCP/IP (including IP, TCP, and UDP protocols),
- Socket, HTTP
- SSL, HTTPS
- DNS
- How a browser works
Basic application virtualization knowledge
Basic API knowledge
Object-oriented programming
Object-oriented programming basics — let’s see on the internet what it is in common, and…
- Let’s read 4 Principles of Object-Oriented Programming
- 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:
- Firstly let’s understand the difference between Software Design and Architecture, just for the right mindset when you read these words
- Secondly, let’s learn the basics of Software Design and Architecture (20–30 mins)
- (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.
This article is one in our article series. Select the article that captures your interest and join us on an exciting journey together.
- Flash’s learning path at the speed of light: only one best simple source for Software engineer
- Superman’s lifelong learning journey
— (current article) Childhood: Computer Science and Object-oriented programming basics
— School: The Proper Approach to Engage in Software Engineering
— Bachelor of Science: Sufficient Understanding of Software Design and Architecture
— Superman’s On-the-Job Learning: From Entry-level to Successful Middle
— Superman’s Master’s Degree and Rise to the Stars: From a Middle to a Senior Engineer, Software Architect, or Team Leader