Alternate route, especially to machine learning / data science:
- Become a "business analyst", AKA spreadsheet jockey, at some gigantic & relatively faceless corporation.
- Learn Python, or some other scripting language that runs on Windows and has hooks into spreadsheets / backend data stores / email systems and makes data manipulation easy.
- Automate your job away. Use the time to learn the basics of "real" statistics and machine learning. Gradually feed these into your work product, for instance by putting confidence intervals on your reports or generating trend lines via simple ARIMA.
- Write some public demo projects that implement these techniques. Do some public evaluations of different techniques or implementations of techniques.
You now have a super plausible "in" to do basically the same thing at a technology company or someplace that sees analytics as a key part of their value proposition, and bootstrap yourself from there.
Thanks for this comment. If you have the time, could I ask for your advice about this route? I'm a Windows sysadmin who's been working to transition into programming. I've made a few webapps, which I somewhat enjoy making, but lately I've become interested in data science.
I have a stable position now where I have a lot of time to learn new things not directly related to my job. I've been trying to figure out if I should simply take advantage of that while not working in a related field or to look into a business analyst position. In fact I was just contacted a few days ago by a recruiter for just such a job!
Would creating public demo projects alone be enough? Or should I get some experience -- even just as a spreadsheet jockey -- while potentially having much less time to devote to learning? To give you a better idea of my situation, I oftentimes have days where I can spend half of it learning whatever... and my boss is even fine with that (and has encouraged me to move on to better things, since I can't really go any further here). Any insight that you can offer would be very much appreciated.
For every story like this, there are 20-30 unwritten stories by folks who leapt and fell. Hard.
I can't imagine, as a community, we could support promoting this without giving a stern warning to anyone trying to duplicate this success - this won't usually happen.
Life is not a story, and you are not always the protagonist - things won't just "work out" because you set goals, and worked hard. Just be careful.
Indeed. One might wonder how such a warning would be worded.
Sometimes people ask me how I managed to make this happen. Shared below is what worked for me. This is not comprehensive or universal advice. Nor is it the only way to get a job in this industry. It may not even be relevant any longer, given how much time has passed since I began. Timing may have been critical to some of what I tried. Standard warnings of survivorship bias apply.
As someone who has done a good deal of hiring, I think this guy has nailed it. You want "social proof" for yourself. This comes from shipping good-quality code that people use. If you have that and can prove it, actual resume-line experience and education become nearly irrelevant.
> This comes from shipping good-quality code that people use.
Whoa! Easy there, tiger. Let's not get too far ahead of ourselves. Shipping code that people use is enough. It takes many years to learn how to program well, and the perfect will quickly become the enemy of the good if you obsess over quality first.
Recurring theme of HN success stories: setting a goal, and hustling to meet it by sheer determination and creativity.
I think I have the hustle down, Just not so sure I've been great at setting lofty enough goals for myself lately. I think I did well setting goals early on in my career, but after achieving all of those, I am not sure which direction is "up". I am happy at the level I reached, just adding skills tech as it interests me.. But can't help feel a little guilty for not setting goals as high as I used to? Is that just societal pressure from watching others grow, or recognition of complacency? Is there anything wrong with complacency?
This is exactly what the posted article doesn't do though, and I really appreciate that. In fact it's absurdly rare to see someone share their success story while owning up to the fact that it 1) may not be universal 2) was not planned out in advance 3) may not even be repeatable. Major credit to Danilo for not falling into that trap.
I did not finish any projects in any sort of demoable state
I did not build a network
I didn't really have a plan
The most important bit is this:
> Learn relentlessly and without excuses
There are enough people hiring that you really only need to demonstrate basic competency and apply for every jr or entry level position you find. Eventually you'll find a place where someone is actually looking for ability.
Tech is as close to merit-based hiring as you'll find outside of actual trades.
Some important blog posts by Danilo Campos that seem to have been eaten by Hipmunk's blog history
> I have a confession: At first, I didn’t get Hipmunk. I mean, I understood the merits of the interface, I respected the user focus of the site, all of that was awesome and drew me to the iPhone project...
From a UX perspective, I’m really pleased with how the pinchable, stretchable, draggable time bars came out in the application. They feel really good to use. But from a development perspective, this is some of the stupidest, craziest code I’ve ever written in my life. Don’t ask me how I did it because it did it entirely the wrong way. Maybe I'll share once I figure out the non-stupid approach.
> I published the post, submitted it to Hacker News and moved on with my night.
I got some traffic, but that wasn’t the interesting bit. The interesting bit was an email the next morning from Hipmunk co-founder Adam Goldstein, thanking me for the mention and wondering if I would want to be considered to work on a future iPhone app.
Uh, yes? But “considered” my ass – I was going to build it. Awesome side project. I’m incomplete without a side project.
A couple of weeks later, I turned up at Hipmunk HQ, during their Startup School open house. I hung out for an hour, got to know everyone, then cornered Adam at the end.
“What do I have to say to get you commit, right now, to putting me on your iPhone project?”
An old sales tactic: ask for the sale. I spent my teen years in a Best Buy, selling Dyson vacuum cleaners.
Adam was cagey, claiming he had a couple of other developers to talk to, so I decided to build some wireframes on spec that night to sway his decision.
A couple of nights later he called me. They didn’t want this to be a side project for me. Adam made me a full-time offer and with minimal haggling, I accepted.
Interesting post. Right now I am where he was when he started. I want to learn Android programming. Every night I spend 1-2 hours working through a Java book or an Android book, or one of the Coursera Android courses. Progress is slow, but steady.
- Become a "business analyst", AKA spreadsheet jockey, at some gigantic & relatively faceless corporation.
- Learn Python, or some other scripting language that runs on Windows and has hooks into spreadsheets / backend data stores / email systems and makes data manipulation easy.
- Automate your job away. Use the time to learn the basics of "real" statistics and machine learning. Gradually feed these into your work product, for instance by putting confidence intervals on your reports or generating trend lines via simple ARIMA.
- Write some public demo projects that implement these techniques. Do some public evaluations of different techniques or implementations of techniques.
You now have a super plausible "in" to do basically the same thing at a technology company or someplace that sees analytics as a key part of their value proposition, and bootstrap yourself from there.