Technical Skills
Develop technical skills to further your tech career.
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, artificial intelligence.
You can start by reading online from popular tech communities:
- 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
Learn how to design systems at scale and prepare for system design interviews
→ System Design: The complete course
2. Backend roadmap
Step by step guide to becoming a modern backend developer
3. The System Design Primer
Learn how to design large-scale systems. Prep for the system design interview. Includes Anki flashcards.
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
→ SICP JavaScript Edition website
2. MDN JavaScript Guide
Learn less known parts of JavaScript
→ MDN JavaScript Guide website
3. You Don’t Know JS
Dive deep into JavaScript and learn subtleties
→ You Don’t Know JS - 1st Edition
4. Frontend roadmap
Step by step guide to becoming a modern frontend developer
Latest blog posts
Mar 23, 2024
Feb 3, 2024
Dec 29, 2023
Oct 20, 2023
Sep 21, 2023
Subscribe to receive latest updates
Using ChatGPT or Claude 3.5 Sonnet for coding?
Check out 16x Prompt to streamline your AI coding workflow