16 ms·
Almost all programmers work in frameworks or on top of a large pile of abstractions. I e.g. talk about web frameworks, database frameworks, cryptographic librar
by ThePhysicist 3y ago
Almost all programmers work in frameworks or on top of a large pile of abstractions. I e.g. talk about web frameworks, database frameworks, cryptographic libraries, graphics programming toolkits...
To become great, look what's underneath each abstraction and see how many layers down you can go and still understand stuff. Try to build your own abstractions from the ground up, e.g. write an ORM, write an interpreter, a network protocol, a graphics toolkit, a Javascript framework.
That will already propel you into the 95-99 % quantile in terms of technical understanding. I see e.g. so many frontend people that only have a superficial understanding of how Javascript or a browser works, or how to write good CSS from scratch.
- the__alchemist 3y agoThis is my perspective as well. Be able to apply, or write an appropriate tool for a job, and recognize a given tool's suitability for a task. This means, you don't identify yourself as a "python programmer", "react programmer" etc, but are able to evaluate a range of tools. And, understand how the tools work, and know how to build one. This likely will involve some low-level (think register-level) code. Or for web stuff, being comfortable with network architecture and web standards. Another way of phrasing it: Being a general, cross-domain programmer, vice a provincial one. Being able to recognize when a best-practice or dogma in a given domain isn't applicable, because you are familiar with multiple sets of these practices, and therefor recognize their mutual inconsistency.
- utf_8x 3y agoAbsolutely this, ditching MonoGame for my videogame pet project and instead building my own (micro-)engine from scratch taught me so much.
- wruza 3y agoBut does that make you great? I think my point of becoming “great” (idk if that ever happened, but I ticked all your boxes) was when I stopped inventing piles of abstractions and started just writing TFC. /\ type of curve. The best (imo) programmers I’ve met IRL were pragmatic niche dudes and gals and they loved their job and never expressed developer anxiety. Otoh, our generic kind… honestly not sure if it was worth it.
- Jensson 3y ago> The best (imo) programmers I’ve met IRL were pragmatic niche dudes and gals and they loved their job and never expressed developer anxiety You get there by understanding what you are doing, uncertainty leads to anxiety. And you get to that understanding by trying to invent a pile of abstractions so you understand how those works and when to use them and when to not use them. You can't just skip that learning phase and go direct to expert.