Personal Growth

Grow as a person. Develop technical skills and soft skills.

T-shaped person

The best way to develop technical skills is to become a T-shaped person, expanding both your breadth and depth. To quote from Wikipedia:

The vertical bar on the letter T represents the depth of related skills and expertise in a single field, whereas the horizontal bar is the ability to collaborate across disciplines with experts in other areas and to apply knowledge in areas of expertise other than one’s own. T-shaped skills

Breadth

Develop your breadth by venturing into fields adjacent to software developments, as well as gaining exposure to the wider spectrum of technologies.

Here are some examples of areas that could expand your breadth as a software engineer:

DevOps

  • CI/CD pipeline

Site reliability engineering (SRE)

  • Load balancing
  • Observability (monitoring, log processing, tracing)

Infra

  • Database administration and performance tuning
  • Load / capacity planning

Data

  • Data analytics and visualization
  • Data pipeline - Extract, Load, Transform (ELT)

It is also useful to gain exposure to technologies that are less relevant to your work, such as signal processing, hardware, articificial intelligence.

You can start by reading online from popular tech communites:

  • Hacker News is good place to explore interesting topics around tech and others.
  • Towards Data Science is a beginner-friendly place to learn about machine learning and data science.

Depth

Another way to grow as a person is to dig deeper into the whatever that you are currently using or working on.

It can be concepts, patterns, tools, languages and frameworks.

Let’s dive into this topic for backend and frontend separately.

Backend Depth

For backend, in-depth topics can be:

  • Backend service architecture and system design
  • Concurrency and multithreading
  • Best practices in handling idempotency
  • Language-specific depth, for example JVM internals and tuning

Recommended in-depth resources for backend:

1. System Design: The complete course

https://kps.hashnode.dev/system-design-the-complete-course

2. Backend roadmap

Backend Developer Roadmap

Frontend Depth

Frontend depth includes topics such as:

  • Visual design principles
  • Intensive graphics rendering using WebGL / webassembly
  • Data visualization
  • Framework-specific depth, for example React or Vue internals

Solid understanding of JavaScript is very much needed to grow as a frontend engineer.

Recommended in-depth resources for frontend:

1. Structure and Interpretation of Computer Programs (SICP) - JavaScript Edition

Best way to learn JavaScript as a functional programming language

https://sourceacademy.org/sicpjs/index

2. MDN JavaScript Guide

Learn less known parts of JavaScript

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide

3. You Don’t Know JS

Dive deep into JavaScript and learn subtleties

You Don’t Know JS - 1st Edition

4. Frontend roadmap

Frontend Developer Roadmap

Subscribe to receive latest updates