4 ms·
The biggest issue we are facing as a profession is abstractions. Most of us are good at abstracting things because this is the way we cope with complexity. But
by neo2006 9y ago
The biggest issue we are facing as a profession is abstractions. Most of us are good at abstracting things because this is the way we cope with complexity. But the moment we need to face that abstraction and need to understand what is hiding behind it we can reach some limit.
A very common example I noticed with Java developers who use frameworks like spring, they use spring tooling to cope with code complexity and are able to put together a functional piece of code in minutes, but as soon as you get them out of the spring framework and ask them to code without using their toolbox, you can see difference between a java programmer and a "spring" programmer.
One of the things I like to do in interview is giving people a piece of code in a language or at least using a library or framework they don't know and see how they cope with the complexity of it. It can tell which is just learned to use a tool and which know the basics and can adapt depending on the set of tools available
- contingencies 9y agoI have struggled with complexity my entire career. One of our key approaches for managing complexity is to 'walk away' and start fresh. Often new tools or languages force us to start from scratch which means that developers end up conflating the benefits of the tool with the benefits of the clean start. The clean start is what is fundamental. The simplest way of controlling complexity growth is to build a smaller system with fewer developers. - Terry Crowley An informed perspective: https://www.quora.com/Programming-is-all-about-managing-complexity-Do-you-agree-with-that-statement/answer/Keith-Bentley https://www.quora.com/Programming-is-all-about-managing-comp...