How to make yourself STAND OUT as a software developer

Felix Ivance Runye
2 min readApr 29, 2021

While it is true that you don’t need a CS Degree to be a developer,
BUT, there are certain subjects that you should study.

Data Structures & Algorithms

These are the MOST IMPORTANT subjects taught in a CS degree.
But you can totally study them on your own.
There are plenty of resources available online.

Book Recommendation:
Introduction to Algorithms by Thomas S. Cormen

Trust me, if you read and understand “Introduction to Algorithms” you’ll level up your programming game substantially

Computer Networking

You’ll learn how the internet (or any network) works.

Topics:
Concept of layering, LAN technologies, flow and error control techniques,
switching, IPv4/IPv6, routers and routing algorithms (distance vector, link state). TCP/UDP and sockets, congestion control. Application layer protocols (DNS, SMTP, POP, FTP, HTTP). Basics of Wi-Fi.

Network security: auth, public key and private key cryptography, digital signatures and certificates, firewalls.

Book Recommendation:
Computer Networking: A Top-down Approach

Database Management Systems

Topics:
ER‐model. Relational model: relational algebra, tuple calculus, SQL. Integrity constraints, normal forms. File organization, indexing (e.g., B and B+ trees). Transactions and concurrency control.

Book Recommendation:
Database System Concepts, by Abraham Silberschatz, Henry F. Korth, and S. Sudarshan

Operating Systems

Topics:
Processes, threads, inter‐process communication, concurrency and synchronization, deadlocks, CPU scheduling, memory management and virtual memory, file systems.

Book Recommendation:
Operating system concepts by Silberschatz and Galvin

Design Patterns

Design patterns are formalized best practices that the programmer can use to solve common problems when designing an application or system.

Object Oriented Programming

Just study it already!

It is a programming paradigm that relies on the concept of classes and objects. It is used to structure a software program into simple, reusable pieces of code blueprints (usually called classes), which are used to create individual instances of objects

Book Recommendation:
Design Patterns: Elements of Reusable Object-Oriented Software

--

--

Felix Ivance Runye

I am a Software Engineer, and an Adventurer, who is passionate about cycling, biking, and reading. Always on the lookout for new challenges.