I agree with the general point of this article. Showing that you have the skill to accomplish a job effectively will get you a job most anywhere.
There's a major issue when this is applied to a certain class of problems in ML and Data Science that people tend to ignore.
If you could get a job as a civil or mechanical engineer (building bridges or whatnot) by showing that you built a small bridge in your backyard... We'd have some unstable bridges.
If hospitals just let residents run the hospital... We'd have a lot of mistreated illnesses.
If you could show a realty company that you can build a recommendation engine and they hire you to build their advertisement algorithm... Suddenly you're breaking housing discrimination laws.
I am all for folks being able to get jobs from their cool projects. But we need ethical standards and educational standards before folks are given large, real-world problems to work with.
We need to take a page out of engineering and medical playbooks and build official education or apprenticeship requirements. We need to have licenses that can be revoked if someone fails to follow ethical or quality standards.
So - love creative people getting jobs. Now give them a high-quality education program along with those jobs.
Programming is the last decent job that doesn't have a bunch of artificial barriers to entry put up to protect privileged people from competition from the industrious poor. The day I need a license from the government to own a compiler is the day I check out of this life.
This is the problem of a lot of software development. Look, this bright young man just built a wooden box all by himself. Let’s employ him to build our new shed. A shed is just a big box, isn’t it? This bright young man just built a shed. A house is just a big shed, isn’t it? He’ll figure out isolation, electricity and plumbing when we get to those parts...
A lot of Computer Science graduates, and/or self-taunt engineers are missing the commentary of 'masters' or senior people who can say why and why not this or that way.
Just like the difference between building a bridge across a river and in your backyard is far more than just scaling up, seeing design patterns and common pitfalls writ large is one more step towards proper education needed for a modern programmer IMO.
Instead of the n-th Tutorial website, I would love a list of worthwhile projects one can build with increasingly tougher level of difficulty, start with MNIST and move up. You don't have to hand-hold me by providing a sandbox, but suggested frameworks are welcome.
Ending the list with a couple of research/unsolved problems is perfect.
To me, this is the perfect way to learn, almost like feel your way blind in a cave and reaching its extents.
I've hired dozens of people in tech and building something that works and is related to the job you want is so important it's hard to overstate. IMO, it's far more important than what school you went to and maybe even your employment history. Tech moves so fast that if your portfolio is something you built 3+ years ago, it can be difficult to find a job other than at companies that can afford substantial training programs.
In the gamedev, I would not want to work with someone just because he has built a game on his own. Gamedev is notorious for having a low barrier of entry and then there is an exponential learning curve. I'd rather work with someone who has a deep understanding in some specific area or has worked on a library of some sort. I think there are a lot of other technical fields that work the same.
I agree with you, but would argue that this doesn't rise above experience, this shows experience. The value of having shipped something, maybe even supported it and maintained it is invaluable experience as a software developer, and not something taught at school, at least not my university.
1. Apparently modeling is a solved problem. No need for any knowledge of math/stats folks, just use the latest python packages.
2. Data collection is more important than actually knowing how a model works and even more importantly doesn't work. What happens when he is hired and can't put together a reliable model?
I think his approach is solid (using projects to learn and being ambitious), but it feels like trying to run before you can walk.
Like Jeremy Howard (fast.ai) says, nobody learns baseball by first studying several years how to build baseball bats, optimal playing strategies, or managing baseball teams. Nope, you're given a bat, told where to stand, swing the bat and try to hit the ball. Suddenly, you're playing baseball.
I am not afraid to outsource domain-agnostic projects to smart junior practitioners, though. Your conclusion is a cultural barrier where metrics is the real king. Domain expertise is absolutely needed in a few specific cases only, the rest being gatekeeping.
The title of this article is misleading. I thought it was a discussion of the "Cold Start Problem" (https://en.wikipedia.org/wiki/Cold_start_(computing)), which is a common technical challenge. Instead, it is a recollection of two stories for how to get a job in ML.
One tricky thing I've noticed when trying to hire ML people is that it's very difficult to tell when someone is okay at ML and when someone is great at ML from their past projects. Because machine learning is just statistics, it is often resilient to errors in design and implementation. You can mess things up and still get reasonable (but suboptimal) results.
This means that someone can easily claim "this problem is difficult to learn for machines" when they fail or claim "we got X% accuracy look how great we are!" when they do okay. But a really good engineer or scientist would have succeeded in the same task, or have gotten X+10% accuracy with the right models, data, or engineering.
On my resume, I compare my results to either the previously implemented model or the state-of-the-art for that specific problem. If you bring someone in for an interview, ask them what the previous best was.
This is also a great way to become a better engineer - a lot of jobs are improving existing systems, so you get a different category of lessons building something from scratch to completion. Doing a write-up at the end is also teaches you to communicate better.
The number of prospective employers that will actually pull up your github / portfolio project website / etc (let alone read it) is not especially different from zero.
It's important to have stories to tell during an interview, but getting the interview is the hard part.
Getting an interview when you have a consequent Github portfolio is very easy.
Prospective employers not only do actually pull up your github profile, many of them will find you because of it.
As an aside, writing this makes me realize how successful Github has been at implementing their motto of "social coding" when none of us had any idea wtf that could actually mean or look like.
I had a similar experience with a personal project. I scrapped NFL player/game stats dating back past 2000 and spent a bunch of time on the data, feature engineering, and modeling. Although my original goal was to beat vegas models (got to even in some metrics, but not enough to cover the juice), it ended up being the best line on my resume. Every interviewer during my last job search asked about it, and it was very easy to talk about.
I did make money in the end however, but only because I was buying bitcoins to gamble with in the 2017 season.
There's another important trend in these two examples that generalizes well beyond just machine learning.
If you show a willingness to scrape resources together to work on difficult problems, that's scrappier than the majority of your competition for the job. Startups love that.
Of course actual technical skill matters, but in my experience, the willingness to reach for aspirational goals is rarer than baseline competence, so I'll happily interview someone who shows that specific trait.
> Alex planned to improve his accuracy, of course, but he was hired before he got the chance.
Reading these posts I get the impression people prefer portfolio projects over studying the mathematical fundamentals; "dazzle hiring managers with these three easy tricks!" Seems like a great strategy to getting hired, but one wonders how long people using these lifehacks persist in the role.
I think someone without experience training a model to high-accuracy might struggle at a startup where they're the first hire in the department, but at a larger company, presumably there are senior folks to help newcomers along. I think having motivation is a much better signal, and you need to be motivated to develop a side-project of significant magnitude.
> Reading these posts I get the impression people prefer portfolio projects over studying the mathematical fundamentals
It didn't appear as though these two didn't train their mathematical fundamentals though. I believe the gist here is to find an interesting project tailored to the field you want to work in, and make it visual for the non-technical interviewers. Once you do get their attention, you would naturally need to pass a real DS interview, which would test your mathematical fundamentals.
I had a hunch. I'm sitting here perusing theory after theory for years now. I need to just sit down with some data and a python ide. It's more fun that way anyway. This doesn't mean I think I'll get or even want a job, but I'll get a better sense of what the work is and how to best use it.
Side projects directly related to the area someone is interested in getting a job in are very useful, or those that use trendy technologies.
However if it’s in unrelated technology (or no longer trendy), then I’d argue they should be removed from the profile altogether. These might raise unnecessary questions and trigger biases.
Ron wanted a job with the organization that asked him to make his repo private. Cooperating is the best strategy given the goal. Ron can always make his repo public later.
Seems to me more of a case where companies no longer train grads, and instead tell them to work on a proof of concept on solving a hard problem without paying for it, a sad state of affairs.
I think it is absolutely immoral (and dumb from an IP risk point of view) for companies to try to get interviewees to solve real problems for free.
This is different though: this is about potential candidates finding creative ways to demonstrate their skills.
The companies didn't even ask people to do this: these people chose to take on projects that would demonstrate their skills in a new space in which which they did no yet have commercial experience. I think that's commendable and a very smart strategy.
The current problem with things like data science thought pieces and MOOCs is that they don't prepare for the realities of machine learning/data science in the real world. (longer blog post on the subject: https://minimaxir.com/2018/10/data-science-protips/)
Doing a unique project is much better for learning cost/benefits of implementing AI/ML, although this post may be overoptimistic on how that can lead to a job offer.
I don’t know why everyone cares about machine learning so much. Frankly there seem to be so many prerequisites to knowing what goes on, when I imagine a software developer could just get better at java and then learn about parallel code or something to get lots of money for less effort. I’m not in software so I don’t know if any of that is actually true
[+] [-] pragmacoders|7 years ago|reply
There's a major issue when this is applied to a certain class of problems in ML and Data Science that people tend to ignore.
If you could get a job as a civil or mechanical engineer (building bridges or whatnot) by showing that you built a small bridge in your backyard... We'd have some unstable bridges.
If hospitals just let residents run the hospital... We'd have a lot of mistreated illnesses.
If you could show a realty company that you can build a recommendation engine and they hire you to build their advertisement algorithm... Suddenly you're breaking housing discrimination laws.
I am all for folks being able to get jobs from their cool projects. But we need ethical standards and educational standards before folks are given large, real-world problems to work with.
We need to take a page out of engineering and medical playbooks and build official education or apprenticeship requirements. We need to have licenses that can be revoked if someone fails to follow ethical or quality standards.
So - love creative people getting jobs. Now give them a high-quality education program along with those jobs.
[+] [-] povertyworld|7 years ago|reply
[+] [-] Ma8ee|7 years ago|reply
[+] [-] oriel|7 years ago|reply
Link: http://aosabook.org/en/index.html
A lot of Computer Science graduates, and/or self-taunt engineers are missing the commentary of 'masters' or senior people who can say why and why not this or that way.
Just like the difference between building a bridge across a river and in your backyard is far more than just scaling up, seeing design patterns and common pitfalls writ large is one more step towards proper education needed for a modern programmer IMO.
[+] [-] berti|7 years ago|reply
[+] [-] drawkbox|7 years ago|reply
It is always better to go into the interview, meeting, pitch with projects that are shipped or working to demonstrate.
For instance, if you want to get into the game industry, build games.
Same with any field, when you create/build you can rise above education, experience and more competitive metrics.
Created/functional projects, and especially shipped products, are the best qualifications.
[+] [-] pj_mukh|7 years ago|reply
Ending the list with a couple of research/unsolved problems is perfect.
To me, this is the perfect way to learn, almost like feel your way blind in a cave and reaching its extents.
[+] [-] everdev|7 years ago|reply
[+] [-] penetrarthur|7 years ago|reply
[+] [-] runeb|7 years ago|reply
[+] [-] technobabble|7 years ago|reply
[+] [-] nightski|7 years ago|reply
1. Apparently modeling is a solved problem. No need for any knowledge of math/stats folks, just use the latest python packages.
2. Data collection is more important than actually knowing how a model works and even more importantly doesn't work. What happens when he is hired and can't put together a reliable model?
I think his approach is solid (using projects to learn and being ambitious), but it feels like trying to run before you can walk.
[+] [-] metafunctor|7 years ago|reply
[+] [-] androidgirl|7 years ago|reply
For me it feels more like "software plumber".
[+] [-] DrNuke|7 years ago|reply
[+] [-] aabhay|7 years ago|reply
[+] [-] nostromo|7 years ago|reply
[+] [-] gdy|7 years ago|reply
[+] [-] make3|7 years ago|reply
[+] [-] danielmorozoff|7 years ago|reply
[+] [-] nharada|7 years ago|reply
This means that someone can easily claim "this problem is difficult to learn for machines" when they fail or claim "we got X% accuracy look how great we are!" when they do okay. But a really good engineer or scientist would have succeeded in the same task, or have gotten X+10% accuracy with the right models, data, or engineering.
[+] [-] lstmemery|7 years ago|reply
[+] [-] garysieling|7 years ago|reply
[+] [-] timdellinger|7 years ago|reply
It's important to have stories to tell during an interview, but getting the interview is the hard part.
[+] [-] scrollaway|7 years ago|reply
Prospective employers not only do actually pull up your github profile, many of them will find you because of it.
As an aside, writing this makes me realize how successful Github has been at implementing their motto of "social coding" when none of us had any idea wtf that could actually mean or look like.
[+] [-] jonahx|7 years ago|reply
[+] [-] ScoutOrgo|7 years ago|reply
I did make money in the end however, but only because I was buying bitcoins to gamble with in the 2017 season.
[+] [-] ptd|7 years ago|reply
[+] [-] munchbunny|7 years ago|reply
If you show a willingness to scrape resources together to work on difficult problems, that's scrappier than the majority of your competition for the job. Startups love that.
Of course actual technical skill matters, but in my experience, the willingness to reach for aspirational goals is rarer than baseline competence, so I'll happily interview someone who shows that specific trait.
[+] [-] jldugger|7 years ago|reply
Reading these posts I get the impression people prefer portfolio projects over studying the mathematical fundamentals; "dazzle hiring managers with these three easy tricks!" Seems like a great strategy to getting hired, but one wonders how long people using these lifehacks persist in the role.
[+] [-] joshwcomeau|7 years ago|reply
I think someone without experience training a model to high-accuracy might struggle at a startup where they're the first hire in the department, but at a larger company, presumably there are senior folks to help newcomers along. I think having motivation is a much better signal, and you need to be motivated to develop a side-project of significant magnitude.
[+] [-] llampx|7 years ago|reply
It didn't appear as though these two didn't train their mathematical fundamentals though. I believe the gist here is to find an interesting project tailored to the field you want to work in, and make it visual for the non-technical interviewers. Once you do get their attention, you would naturally need to pass a real DS interview, which would test your mathematical fundamentals.
[+] [-] smrtinsert|7 years ago|reply
[+] [-] sheeshkebab|7 years ago|reply
However if it’s in unrelated technology (or no longer trendy), then I’d argue they should be removed from the profile altogether. These might raise unnecessary questions and trigger biases.
[+] [-] Jerry2|7 years ago|reply
How is this infringement? Why did he oblige? Unless he got paid by them, he should not have obliged with their request.
[+] [-] max76|7 years ago|reply
[+] [-] ziont|7 years ago|reply
[+] [-] simonw|7 years ago|reply
I think it is absolutely immoral (and dumb from an IP risk point of view) for companies to try to get interviewees to solve real problems for free.
This is different though: this is about potential candidates finding creative ways to demonstrate their skills.
The companies didn't even ask people to do this: these people chose to take on projects that would demonstrate their skills in a new space in which which they did no yet have commercial experience. I think that's commendable and a very smart strategy.
[+] [-] minimaxir|7 years ago|reply
Doing a unique project is much better for learning cost/benefits of implementing AI/ML, although this post may be overoptimistic on how that can lead to a job offer.
[+] [-] tensor|7 years ago|reply
[+] [-] InterestBazinga|7 years ago|reply
[+] [-] hnuser355|7 years ago|reply
[+] [-] t0astbread|7 years ago|reply
[+] [-] visarga|7 years ago|reply