- Posted by Intent Media 30 Dec
- 0 Comments
One of the fun parts of being on a rocket ship of a startup is that I get to spend some of my time recruiting. I know that not every engineer enjoys recruiting, but personally, I really love it. When I recruit for Intent Media, I’m helping to introduce some smart motivated people to awesome jobs where they will have every chance to succeed in their professional goals and have a great time along the way. It’s sort of like being Santa Claus for good engineers.
One of the most salient aspects of recruiting for me is the difference between people working in data science and engineering and those looking to get started in the field. I got my first job in a data science group back in 2008, before there was a lot of clarity around this emerging profession. Now, when I talk to mathematically inclined people who can write some code, they all want to talk about data science. Recent grads with degrees in things like electrical engineering, physics, and biomedical engineering are all rushing to brand themselves as data scientists.
I understand the technical person’s desire to align themselves with a hot field, overflowing with good paying jobs. As a strategy it makes sense, but engineers can fail to appreciate the negatives such an approach has.
What I want to know most when I meet a less experienced engineer is not what they know;
it’s what they’ll learn in the first year that I work with them.
So when a twenty-two year old physics grad tells me that he has a strong background in data science, I get quite concerned about where he sits on the Dunning-Kruger curve. It’s okay to know that you know nothing. If I’m considering working with you, I’d prefer that you know that you know you know nothing. It’s cool. I know that I also know nothing, but working effectively together, we should be able to find a way to implement the next feature story in our backlog. We just need to make sure that a little thing like hubris doesn’t get in the way of learning the things we need to know to solve the real world problems in front of us.
Learning how to learn
I enjoy it when someone asks what they should learn to get a job in data science and engineering. It shows that they appreciate that there is more to be learned. But I would love to be asked how they should learn those things.
Even though no one asked, I’m going to tell you anyway. This is not another post on, “What does a data scientist do?” Those resources are out there. I’m going to assume you can Google as well as me.
Instead, I want to focus on the lifelong process of becoming a better engineer. Because I work on fun big data stuff, that certainly influences my perspective and what people want to talk to me about. But I think these tools and techniques apply equally to all kinds of engineers, including those oh, so sexy data scientists. They’re engineers too.
The Old (and New) School
You can’t talk about learning and software qualifications without wading into the contentious territory of whether or not programmers need a CS degree. This is a complicated issue that some people have very strong opinions on.
To summarize my views on formal CS education, I’d say that it’s great preparation if you can get it. Personally, I worked for a fair bit in software without having a degree in CS, so I don’t think that it’s mandatory to have the qualification. But it should be mandatory to have the knowledge, at least some of it. When I worked in software without a formal qualification, I was useful because I had still learned all sorts of things about software.
How did I learn those things? In my case, I learned mostly from books and practice. When I did finally decide to get a CS degree, it was in large part to signal to employers that I had in fact read those books and practiced the material in them.
ProTip: If you can’t get a degree in CS, at least read the textbooks and do the work.
That will give you most of the benefit of formal CS education.
Of course, the 2014 version of this advice has to acknowledge that if you can do that, then you can probably do a bunch of MOOCs. Coursera, Udacity, edX, and all the other MOOC providers offer world class education for little to no money at any pace (I prefer to watch lectures at 2X, personally). There’s nothing stopping you from getting just as good at programming and statistics as the best and brightest from Stanford and MIT.
I started taking MOOCs during that first experimental session taught by Thrun, Norvig, Ng, and Widom at Stanford. While I was traveling across Indonesia for a month, I was also traveling through the inner depths of databases, guided by Jennifer Widom.
For various reasons, it was one of the best courses that I’ve ever taken in any topic. If you haven’t taken it, you should, especially if you’re interested in data science or engineering. Much of what data engineers do is to solve the old problems of databases at a new scale. Having a solid foundation in databases ends up being useful nearly every day of your working life.
More generally, if you’re an ambitious engineer, who wants to do great things in tech, you should definitely be taking advantage of world-class resources like MOOCs. Lots of us come from modest backgrounds that didn’t necessarily give us much of a chance to go to a place like Stanford. But now that Stanford is just giving away their education, you need to step up to the plate, if you have big data dreams.
Learning on the clock
Figuring out how to build solid engineering skills is a big topic, and I have even more suggestions on how to learn and grow as a professional. In the concluding post in this series, I’ll change focus from things you do outside of work to things you can do as part of your day to day work as an engineer.
Jeff Smith is a data engineer at Intent Media working on large scale machine learning systems. He has a background in AI and bioinformatics. Intent Media is the fifth startup he’s worked at, and it’s easily the most fun one. You can find him tweeeting, blogging, doing more blogging, and drawing comics all over the internet.