2 ms·
You are aiming too low. Why do you want to be on par with the best? Why not exceed them? My advice to you is to learn more than computing. We tend to obsess
by segmondy 10y ago
You are aiming too low. Why do you want to be on par with the best? Why not exceed them? My advice to you is to learn more than computing. We tend to obsess over languages, frameworks, algorithms & tooling.
Learn "software engineering", this has nothing to do with language, framework, algorithm or tooling. This is about code organization, managing complexity in code, deciding how to structure/architect an application. This is where you are going to read what some will consider "boring" books, these books will hold very strong opinions and are not exact science. You will have to take that knowledge, apply your experience and come up with your own reasonable opinions too. Here are sample of such books in my library, "Business Process Management", "Ship It", "Architecture Principles", "domain driven design", "Enterprise integration pattern", "Clean code".
The real world doesn't care what language, framework, algorithm or tool you use. They just care that you solved the problem. This means you must understand some other domains outside of tech. If your domain is only tech then you will be building tools for programmers/IT folks. If you understanding banking, insurance, health care, automotive, shipping, etc, you could apply your knowledge towards the difficult or poorly solved problems in those areas.
If you become well rounded, you will have the skills to implement, the domain knowledge to solve pressing problems, but more importantly the wisdom to know when to and when not to break rules.