3 ms·
> Application of theory is key. I often see people either get caught up in theory without practice, or proclaim that it's all about experience. Actual time spe
by jjice 2y ago
> Application of theory is key.
I often see people either get caught up in theory without practice, or proclaim that it's all about experience. Actual time spent writing code is probably the most important thing, but having some foundational ideas and getting to skip some things you've have to painfully learn yourself by reading and then getting to apply them directly is huge.
- __loam 2y agoI believe it was Knuth who said practice informs theory and theory informs practice. You need both.
- sevensor 2y agoSee the recent threads about Heaviside and Category Theory for interesting perspectives on practice informing theory (Heaviside) and theory informing practice (Category Theory naturally).
- maerF0x0 2y agoAnd there's an adage updated with modern understanding "Perfect practice makes perfect" . It's not just repetitions but ensuring you train the patterns you wish to do automatically next time. Excellent code is slow to write, the first 10 times, but eventually it's just as fast as junky code.
- ffsm8 2y agoYou should keep in mind that code quality is mostly subjective. You can create a PR that coworker 1 loves because it hides the complexity and then have coworker 2 come in and say that it's complete garbage, because while the complexity is hidden, it still has to be understood in this context, only increasing the difficulty of working with the project I.e using a state-machine vs a switch/case to determine a status attribute. Both viewpoints are valid. Some code is objectively terrible, but most discussions on code quality are massively overblown
- psunavy03 2y agoThere are also those who view obscure and quasi-obfuscated ways of solving a problem as "elegant" as opposed to more straightforward and easy-to-read ones. Usually found near the ones ranting about superfluous code comments. Or making/sharing LinkedIn posts showing the uber-obscure or complicated "Senior Developer Solution" next to the more straightforward and easy-to-read "Junior Developer Solution."
- bunderbunder 2y agoThere has actually been some research on this. I didn't save the link, but the paper I found showed that time spent reading code is a much stronger predictor of skill development than time spent writing code. I'm guessing in practice it's probably comparable to music and language learning, which seem to work similarly in this respect. You do need to spend time practicing by doing, but having that be most of your skill development time is sub-optimal for people who aren't already at an advanced level. Most your time should actually be spent carefully observing what the experts are doing. Because that's what builds the intuition you need to critique your own performance. Which, in turn, acts as an enormous force multiplier for your active practice. That's arguably why contributing to open source projects is such a great method. Because, unlike drilling yourself on practice problems, the vast majority of time spent contributing to an existing project will be spent reading and understanding the code that's already there.
- intelVISA 2y agoNot just time spent writing code but variety; the 1YOE ten times trap of some 'seniors' is very real.