Dev essentials

2 min to read

I embarked on the path of software development back in 2017. Over the years, I’ve worked with a variety of technologies across different companies. Reflecting on that journey, I decided to assemble a list of skills I’ve repeatedly encountered — in practice, in job descriptions, and even those I wish I had mastered earlier in my quest.

For many years, I have been asked “What should I learn to get better?” I never had a clear, structured answer — until now. From this point onward, I can simply point them to this scroll of wisdom.

A Source of Inspiration for Aspiring Heroes

Think of this list as a world map, not a to-do list. If you’re just stepping into your first developer role — focus on learning what helps you succeed right now. Later, you can return to this map to discover new lands of knowledge and sharpen your edge.

Core Skills for Every Developer

I’ve broken this list into “levels” — from basic to more advanced. These levels are just a guideline. You’re free to explore in any order that suits your journey.

Level 0 – The Wisdom of the Apprentice

  • Learning strategies and how to acquire knowledge effectively

Level 1 – Foundations of the Craft

  • Computer architecture basics
  • At least one programming language — core constructs
  • Structured programming
  • Core web technologies

Level 2 – Paths of Code Magic

  • Object-Oriented Programming (OOP)
  • Functional Programming (FP)

Level 3 – The Alchemy of Debugging

  • Debugging
  • Error handling
  • Logging

Level 4 – The Architect’s Tools

  • Design patterns
  • Data structures
  • Algorithms
  • Aspect-oriented programming
  • Testing
  • Test-Driven Development (TDD)
  • Behavior-Driven Development (BDD)
  • Code quality
  • Software quality beyond code
  • Usability and UX
  • Information architecture
  • Agile methodologies
  • Git
  • Deploying applications

Level 5 – The Master’s Secrets

  • Core principles of performance optimization
  • Technical writing

Advanced Mastery for the Bold

Once you’ve honed the essential skills, you might choose to delve into more specialized domains:

  • Application development
  • Tooling and SDK development
  • Data science
  • Game development
  • Cloud architecture
  • IT system architecture
  • IoT
  • Embedded systems

These aren’t the only advanced fields out there — but they’re among the more popular ones. Typically, developers specialize in areas related to their current work or desired future roles.

That said, there’s great joy in dabbling beyond your profession. I don’t build games for a living, but I still experiment with game dev for fun. The same goes for data science — not my main gig, but I like to play with it from time to time.

📜 Technology is ever-changing — what’s considered “essential” today may become tomorrow’s baseline. Tools evolve, practices shift, and our craft grows ever deeper.

If you believe I’ve missed something valuable, feel free to send me a raven (or, more practically, a message/comment on any Social platform).


Discover more from Bytes & Dragons

Subscribe to get the latest posts sent to your email.

Leave a Reply

Your email address will not be published. Required fields are marked *

Trending