Hacker News new | ask | show | jobs
by karmajunkie 3442 days ago
The advice I give developers at the beginning of their career is that its really difficult to be a generalist when you don't have much experience to lean on. You end up knowing just a little bit about a lot of things, but you don't plug any holes for the team, so everyone there is deeper than you are on any question that matters. This was how my career started, and though its worked out really well for me as a consultant, there were several years where I questioned my fitness for this career path and even went down a road towards medical school before returning to the field, incurring a not-insubstantial student loan debt along the way.

First, focus on getting depth of experience in one area. This could be front-end or back-end. These days you'll want to pick a framework and get really, really good at it—could be react, ember, angular, vue, whatever. But be really solid in that framework and the language it uses (modern javascript, for example.) Learn all the tools you use in that capacity (e.g. Chrome's web developer console, webpack, etc). Then branch out—for our hypothetical front-end developer, pick up another framework and learn it about 70-80% as well as you know your first. Or learn how to pull off an isomorphic React application and start learning about the back end.

This is the "right"[1] way to become a T-shaped developer. Once you start branching out into other languages or platforms or whatever strikes your fancy, and you develop some experience with those things, you get to be more of a "paint-drip" developer. [2] Eventually you've been a generalist so long that the area of your experience puts you on par with a mid-level developer in any of several areas, and you're well-suited to a career phase as a consultant, manager, etc. Then you become fairly expert in all of these areas and you can start gap-filling (e.g. learn devops much more deeply, learn design, whatever you didn't pick up the first time.) As a seasoned generalist, you'll be pretty valuable in startup settings, but fair warning, they rarely pay enough to warrant the time you've put into becoming a broad expert. Unless you've got founder-level quantities of equity take those jobs because you really like it, not for the illusion of an exit. It sounds like you're already coming to this realization, so that's one less thing to learn the hard way.

A word of advice in your current capacity—if you're not getting much pay, and you don't have much equity, is this really the startup you want to trade those things for experience with? Is it giving you a quality of experience that will open doors or increase your depth in a single area? If not, you're better off coming up with your own project and working on it to learn than giving your time away to someone else's exit. With your degree concentration in informatics and interfaces, you should probably look for a project that will focus heavily on those skills.

Best of luck to you in finding the path you want to be on!

[1] There's rarely a single "right" way to do anything, but what I'm describing is the way I wish I'd done it.

[2] https://www.facebook.com/notes/kent-beck/paint-drip-people/1...

1 comments

Working in a startup can be a great way to get a variety of experience. Too much variety can be a trap that furthers appearing as too much of a generalist for later positions. If the startup succeeds and you with it, even better.

But, for getting "established" financially as a human, startups with lower pay that may not succeed can make it more challenging.