Ask HN: Is it reasonable to be a generalist programmer for your entire career?
I'm curious about this for my own personal reasons. I currently am working with 10 years of experience, graduated a little later than other students at 26 and that was when I started my career. I consider myself to be more or less a generalist with no extreme pros or cons. But, with 10 years of experience a lot of places consider my lack of expert knowledge in any particular area to be a con.
I failed Triplebyte's phone screen/code tests twice- this year and last year. While they are not the ultimate test of skill they do provide good detailed feedback. Generally speaking I've been told that I know a little about many different topics but can't go deep into one.
But maybe it's for the best if I can't become an expert in something. Is it reasonable to continue my rest of my career as a generalist programmer and maintain employment? I am now a bit closer to 40 years of age than 30 and at this point I still cannot find an area in programming that I can consider myself good enough to specialize in and become an expert.
(
4 comments
| 4 points
| on HN
)
Nobody hired me because my code was good. They hired me because I could talk about it to ordinary mortals and help them see the potential. And, self support (ok, ask a lot of annoying questions of more capable people sitting around me)
I do suggest you acquire some niche skill. Become an expert at writing tiny parsers for DSL. Learn to use an FP language. Then, apply it as a generalist.
Stats and maths are domain specific knowledge generally applied. Have some domain of knowledge (mine is networking) so learn how to tune postgres. Or zfs. Or run a bgp router. Or apply linear algebra to real world decision making. Be good at something useful, besides programming. Then. Apply programming to a problem in that space!
What has happened in my career is, I have brought myself up to what I admit to be an "expert beginner"... through jobs that have been mostly lonely and unfulfilling experiences for a programmer (not a whole lot of experienced peers to network and learn from). So life has given me lemons, might as well find out how to make lemonade from them.
At a senior level the difference in programming ability becomes negligible, its what you do with that ability that matters. Here are somethings that a programmer could specialise in:
- building web apps to handle extremely high loads of traffic
- web apps with a heavy focus on security
- embedded systems / low level programming
- computer graphics
- machine learning (warning: the hype around this may skew things)
- blockchain based technologies (warning: the hype around this may skew things)
All of those fields require specialist knowledge beyond the programming language being used. You should focus on gaining specialist knowledge like that at this point in your career. Otherwise there is really not that much difference between a generalist programmer with 15 years experience and a generalist programmer wit 5 years experience.