When you are part of a small team at a fast-growing company like Filepicker.io, there is a constant push to focus only on the immediate task at hand, to Get Things Done. This focus is incredibly important, and many fledgling companies fail because they try to do too many things before they’re ready. On a personal level, however, it’s important to actively devote time to growing your personal abilities, even if not immediately related to what you’re doing now.
It’s easy to see how you can get value out of the new things near your comfort zone, trying out new libraries or utilities in the languages you already know. For web developers, poke around at angular.js, write some coffescript, or take a look at filepicker.io. Mobile developers can try out cross-compiling frameworks like trigger.io or doing the hello world on a new platform, say the Windows Phone SDK. You can learn new techniques, and some of the things you learn may end up being used in future iterations of your product.
Try something unrelated to your project
But there’s also value to be had in trying something totally new, something entirely unrelated to what you normally work on.
Source: mpeterke, Flickr creative commons
Going to hackathons are a great way to do something totally different for a bit: You can use something shiny like Go, something old school like 2051 microcontroller assembly, or something more unique like Haskell or it’s other functional relatives. Even if you won’t be using it on a daily or even monthly basis, writing code in new languages forces you to see things through a new lens and makes you a better developer overall. You won’t be working on the core product, the immediate task at hand, but taking the time to tackle new problems, to not be complacent in what you already know, is absolutely essential for a positive career trajectory.
Make sure your startup values personal development
From a company perspective, make sure you have policies in place that encourage this sort of personal improvement.
Source: Digitalnative, Flickr creative commons
Here at Filepicker.io, personal growth is one of our core company values, and something we go out of our way to promote. It’s tempting to use the rally cry of focus and not give your team the time they need to learn and grow, but you’ll run the risk of over-optimizing for the short term. You could be falling behind technologically and find it’s harder to recruit for the languages you use (Facebook and PHP), but worse you could end up with a team full of smart but unhappy people because they’re getting rusty. Because at the end of the day, a company’s best assets are its people, and making sure those people always stay at the forefront of their craft is paramount.
Some ideas to stay at the top of your craft:
1. Read theory papers. Implement a “useless” algorithm like a bloom filter or a skip list (it just might help you think through other problems)
2. Learn Crypto. Try to find faults in older algorithms that are now known to be bad. Try yourself, and then check by reading the papers.
3. Try your hand at “Practical Computer Security” by throwing yourself at a Stripe CTF challenge
4. Take a class on OCW, MITX, Udacity, etc.
If you want to work at a company that emphasizes personal growth at a core value, we’re hiring
If you have other suggestions, comment on Hacker News and I’ll update this post