The idea of knowledge transfer between generations of workers is not something I had thought about much until a few years back when having dinner with a couple of friends. One an engineer and one an engineer/manager/scientist (it is hard to describe) and they were both happily talking about trying to transfer knowledge down generations. The is from people about to retire who knew a lot about lasers or acoustics down to the middle generation and the middle generation down to people fresh into the industry.
As they work for fairly long lived companies (multiple generations of people have worked there). Both companies took knowledge transfer very seriously and a mentor is the key mechanism for knwoledge transfer, not just the new starters.
This contrast starkly with programming where outside of the first few years of you career you are unlikely to have a mentor. If you check out Jonathon’s Blow talk about “Saving civilization” you can see how, perhaps worst case, scenario could play out.
Certainly it does not over the years seem like software has kept up with the hardware advances. I feel like I am waiting longer for my computer to do things than say twenty years ago. Now some of this can be put down to larger data sets. Code projects have got bigger, images from camera have grown significantly and so on. But I don’t think that can really account for all it.
At some point programmers have to be responsible for making sure we utilise as much of the hardware available as possible to stop people (well me) from having to wait for the computer to do something. Many people have discussed this.
Part of the problem is transfer of knowledge. It is quite possible we are spending a few decade of our career acquiring information and skills that could have been transferred in a shorter time if the focus on transfer of knowledge was altered. With self learning it is very easy to take a direction that history has shown to not be a good direction and be unaware of it.
*An Anecdotal* While the Go programming language is not super popular at the moment, I recall a few tech posts by the developers talking about how they went back to papers and ideas from the 1970s to rethink and imrpove things like garbage collection. I suspect, they were aware of the papers as some of them where coding in that time period.
Normally people think about people at the start of their career and knowledge transfer but as alluded to in the meal I had with friends. Knowledge transfer should be continuing when you are in the middle generation of workers. It might be at a different rate but it should still be present. My concern here is we have a generation of early programmers/tech people who are now retiring without companies taking knowledge transfer seriously. Personally I am very much a self taught programmer and wonder if my skill would have been much improved with some decent mentoring had been available.
The tech industry is still moving very quickly, well in some area’s and with it that brings some challenges. Although I suspect that is more what we can do with the tools rather than the craft of actually building the tools.