4 ms·
> In kind learning environments like programming I'd agree this is the case up to a point with programming, but some of the most important aspects of the job a
by d23 6y ago
> In kind learning environments like programming
I'd agree this is the case up to a point with programming, but some of the most important aspects of the job are in the things that are unkind, like how well your design will hold up under future maintenance. Often times there are no feedback mechanisms whatsoever for whether you've done a good job. Or they're slow and coarse and can be ignored or justified away. It's easy to just hop onto the next project and leave the mess you've made behind.
The more subjective stuff like how to approach problems as well as what to write and not to write in the first place -- these are what separate people who can technically do the job from those at higher levels. And often even a successful application here ends up getting overlooked by the very fact that it Just Works and doesn't make a lot of noise.
This is just one aspect of the unkindness. There's also how effective you are, how reliable your systems are, how productive you are, whether you pick the right things to invest in learning about, how well you solve problems, how well you debug, how well you coordinate with peers, how well you are able to understand and navigate existing systems, and how well you communicate technical ideas. Many of these things compound in positive or negative directions over time. I've yet to see any good materials teaching most of this stuff, and I suspect plenty of people will go their entire careers without ever really figuring out or being aware of a large chunk of it.
- bryanrasmussen 6y agoThe description of programming is kind really depends on what you are doing: are you building things that all sorts of different systems need to integrate with that you don't necessarily know what the technical specifications of these systems are = unkind are you designing a database schema and writing queries against it = kind are you doing frontend development (or something similar where fast paced change means new technology, new best practices etc. all the time) = unkind are you doing text processing analysis of structured data following well understood schemas = kind I mean really, they gave two examples of sports one which was kind one unkind - but for programming it is just kind?
- Balgair 6y agoEpstein goes through many other examples of learning environments in the book, most of which I found to be very entertaining and informative. To be clear, Range is not an academic article, and is very much in the 'pop-psych' genre like Gladwell or Talib. That said, it's well worth a Christmas vacation to read through. Gates had it on his best books in 2020 list for a reason (though it was published in 2019). Pick up a copy yourself from the local library (if open/online) or you can buy it yourself: https://www.amazon.com/Range-Generalists-Triumph-Specialized-World/dp/0735214484 https://www.amazon.com/Range-Generalists-Triumph-Specialized...
- bryanrasmussen 6y agoto expand on this I sort of have to expect, if this whole kind/unkind thing is to mean anything at all, that any reasonably large area of human endeavor (sports, programming, politics, law, music, etc. etc.) will have some sub-fields that are either kind or unkind, although I suppose some areas (like politics or business) might skew extremely towards the unkind.
- Chyzwar 6y agoare you designing a database schema and writing queries against it = kind I worked in a project using MongoDB. Initial implementation was easy and quick to iterate. After a few years when it was evident that it was not sustainable. Two years of painfull effort was required to squeeze out MongoDB. are you doing frontend development (or something similar where fast paced change means new technology, new best practices etc. all the time) = unkind React already won, front-end tech is stable in last 4 years. It is an easier part of my job. Front-end development require high upfront learning, but it is boring at some point. are you doing text processing analysis of structured data following well understood schemas = kind I know some pipelines on structured data that are hell. I worked with XML (FpML) and systems that produced/consume these, It would make most people cry. It is very easy to create massive technical debt where data is flowing. Any change needs to be done from both ends. It is not like front-end where I can refactor components as much I want. Because programming is such diverse field, I would be careful with labeling anything kind/unkind.
- bryanrasmussen 6y ago>Any change needs to be done from both ends. If the change needs to be done on both ends it is probably an integration problem, which I labelled unkind. The use of the words kind/unkind is probably not well-thought out, because kind implies easy, but there is nothing in the description of the term that means it is an easy thing to do.
- Chyzwar 6y agoKind because there is an obvious path forward. Unkind because there is uncertainty over time. In programming there is no objective measures for code quality, cost of maintenance or even productivity of individuals. I would argue that programming is fundamentally unkind. You can only learn a small fraction of stack and operate on assumptions. It is very hard to learn from other people's experiences as it is hard to quantify complexity. If someone is preaching for microservices you can only understand tradeoffs by having a specific knowledge/experience. That why we have people still using PHP for new projects because they are so entrenched in their local maximum.