Hacker News new | comments | ask | show | jobs | submit login

I sometimes feel that I wasted all my years because I was developing quite diverse applications, so I am not an expert of anything. For example I am writing a Java to Scala translator now. I hate that I was dealing with completely other topics when I could have done Phd in programming languages and could have worked on compilers all the time. There is a company founded in 1995 working on source code analysis, translation, etc... I felt the same way when I developed a 3D game, when I developed Java web apps at my workplace, etc... I feel that I am not an expert of anything. That if I gave a lot of time to one topic (years) then I would be much much better than I am now. I feel like a fraud because I have to pretend that I am a specialized expert of one topic, but in reality I am a jack-of-all-trades programmer.

Being a generalist isn't always an easy sell, but we can be uniquely valuable in a small shop that lacks an army of specialists. Just since last year I've been called on to document several protocols for partners, design and back-test a Bayesian estimator, troubleshoot a balky load balancer using only a tcpdump (it was reusing port numbers too aggressively), sleaze together some last-minute map/reduce analytics feeding Excel graphs, and track down regressions caused by bad svn merges. Nobody sane would put all of that in one job description (nominally I maintain a soft realtime Java app server), yet someone had to do it, and there I was. As a specialist I'd worry about only getting asymptotically better at solving one problem which could become irrelevant.

Actually it's the stuff I'm supposed to know how to do where I feel like a fraud, because I compare the imaginary progress of an idealized version of myself to what I've actually accomplished. When I'm handling one of these tasks from left field, everyone knows I'm winging it, and that makes success sweeter.

Guidelines | FAQ | Support | API | Security | Lists | Bookmarklet | Legal | Apply to YC | Contact