3 ms·
The tragedy of this is, as other commenters have noted, that many workplaces don't offer much opportunity for developers to improve their skills in a general se
by glangdale 7y ago
The tragedy of this is, as other commenters have noted, that many workplaces don't offer much opportunity for developers to improve their skills in a general sense ("you'll learn exactly what you need for success at FoobarCorp by working on FoobarCorp projects!").
Couple this with our field's aggressive skepticism that anyone really knows how to program, regardless of prior achievements ("reverse a linked list, you big fat liar who lies") you've got a powerful motivation to ensure that you can work outside of your long-term work projects. Because, let's be frank, a lot of us, after spending a lot of time hacking on some particular system, really get serious atrophy in our abilities to work with a clean sheet.
There was a point where I would have been able to confidently bang out some bizarre NFA graph or SIMD algorithm in Hyperscan from memory but would have been hard-pressed to remember how to open a file in C++ and read from it...
A compromise would be to constantly look for opportunities to extend what you do (in terms of range, public visibility, etc) at work. If you can't, you run the serious risk that any evidence that some significant work was yours will be hidden away (unless you're working on open source) from the perspective of any future employer.
This may be a point of negotiation with your current or future employer - you may have to put your hand up and say "I want to do something public facing" (i.e. "I want to spend X% of my time as a developer evangelist" or "I want to do our blog on Y" or "I think we should open-source part Z and I'll lead it").
Obviously these things are not magically easy, especially the more junior you are. I drove the process of open-sourcing Hyperscan (not for the reasons in this post but for other strategic reasons) and that was a pretty hefty process and a big ask, even for a senior person.