Ask HN: Should I specialise?
The other half of the problem is what to specialise in. I have no idea, and I love so many different things it's hard to deliberately give up on most of them to focus. Right now I feel very directionless and could really use some advice from people a bit further on in their development than me (I left university a year ago). To give you an idea of my knowledge and capabilities, the things I've done (or helped with) include:
Basic game physics engine (C++) †
Inverse kinematics solver (C++) †
Cross-platform dynamic music engine (C++, OpenAL) †
High performance bittorrent tracker (Java - and way faster than XBTT, the main competition)
Raytracer (Java) †
Typing tutor (Java) †
Bittorrent web front-end with forums etc (PHP, memcached, Sphinx - one installation of this code has 120000 users with a single MySQL server)
I've also made a lot of websites (this is my day job), and I consider my skills to be most developed in this area - but again, I'm a generalist, I do a little front-end, a little back-end, a little server administration.
† denotes a student project, so these aren't "production-ready" (with the exception of the typing tutor, which has been downloaded 10,000 times and so potentially has some life in it)
I'm confident that I have a lot of raw talent, and could make some great things - I just have no idea how to get there from here. Thank you for reading my ramblings, I can't tell you how much I appreciate all the advice and guidance this community gives and I look forward to reading any advice you may have for me (and others in similar situations to mine).
6 comments
[ 3.5 ms ] story [ 27.1 ms ] threadOf course, it's also great that have breadth of knowledge so you can always say Yes to client when they ask if you can do X.
I would think about which areas that you mentioned above you are most passionate about and what skill-types your current network has and base your decision off of that.
Specialize in something, but keep up your general knowledge. Being too specialized is just as big a weakness as being too generalized. Unless, that is, you become the absolute best in the world at it. Which is not something you can plan for.
Also, don't pick a specialization just because you feel like you need one, or you'll always be behind the curve. If there's nothing you are passionate about to dive deeper and deeper into, keep looking.
"I succeeded as a cartoonist with negligible art talent, some basic writing skills, an ordinary sense of humor and a bit of experience in the business world. The "Dilbert" comic is a combination of all four skills. The world has plenty of better artists, smarter writers, funnier humorists and more experienced business people. The rare part is that each of those modest skills is collected in one person. That's how value is created."
1. http://online.wsj.com/article/SB1000142405274870410160457624...
I'd say learn one programming language and then learn two more skills which programmers rarely hold.
Without some sort of short-term (1-4 years) goal, whatever you do won't makes sense.
Once you know more what you like and what you want to pursue, then the pieces like specializing/generalizing will start to make sense.
Generally speaking, having a particular strong area is a good idea since teams need these type of people to fill in specific roles (even startups).
Don't rabbit hole into and stay curious to other things is also crucial ofcourse.