Listener Question: John Wood Asks About Looking for Development Jobs
Published 12/9/2016
In today's episode, I answer listener John Wood's question about sharing his future plans with potential employers.
Today's episode is sponsored by Linode! Head over to Linode.com/developertea or use the code DeveloperTea20 at checkout for a $20 credit towards your cloud hosting account! Thanks again to Linode for your support of Developer Tea.
And lastly...
Please take a moment and subscribe and review the show! Click here to review Developer Tea in iTunes.
Transcript (Generated by OpenAI Whisper)
Hey everyone and welcome to Developer Tea. My name is Jonathan Cutrell and in today's episode I answer a question from listener Jon Wood. Jon is in our Slack community. He is Jon underscore in wood in the Slack community. He sent me a direct message there. By the way you can join our the spec Slack community by going to spec that FM slash Slack. Of course that is free and it always will be to you as spec listeners but Jon has a title in the Slack community. His title is aspiring developer and this is what he had to say. Hello Jonathan. I'm a huge fan of your podcast. I wanted to say thank you for helping inspire me to be better at what I do every day. By following your advice, pursuing my interests and working hard to find opportunities, I actually ended up finding a position as a front end web developer for a group that likes to work with students without much experience. It's much better than working at a call center. At this point I'm really happy to have my foot in the door and as far as getting more technical experience, however I don't plan on ending up in web development in the long term. I have a question I wanted to ask you about my career path and how I should approach jobs and internships in the future. I recently made a huge change where I decided that I need to go into data science and machine learning. I love it and I'm super excited by the prospects for a career in this field. I'm currently studying software engineering at BYU and learning Python to prepare me and will finish my degree in two years. I want to know how would you approach the situation when I'm looking for developing jobs in the future? Should I tell them about my aspirations in data science or just take the time to focus on developing software? Will that kill my chances at getting a good job as a software developer in between now and grad school or possibly show a company that I'm not as interested in long term development jobs? I assume by the way the job was talking about long term web development jobs there. I know you might not be a data scientist but what skills do you think I could really try to learn from my professional experience that might benefit me getting into grad school? Again, I really appreciate the great podcast every week. Keep up the good work. I hope to hear back from you soon. Jon, I'm actually replying pretty quickly to this because I think it's a really good question and I'm inspired by your questions because I think they're very interesting and there's some really fundamental ideas here. You don't have to be going into data science for this to be applicable to you if you're listening today. Again, I am going to speak specifically to you but I'm also going to use your case as an example for other people, specifically talking about pursuing jobs, coming out of school, pursuing jobs and letting them know what you are interested in. That's really what Jon's question is getting at here is explaining to your potential future employer what you actually kind of want to do, what type of work you're interested in doing. Now, Jon, I do have some specific advice for you today but I want to kind of give an overarching conceptual opinion on this. Really what you want to do with your code or the type of work that you want to do with computer science, all of that is going to be under the header of software development. Whether you're doing data science or if you're doing experience development front end, UI development, if you're doing marketing development, some kind of analytics or maybe you're doing API development. There are tons of things that you can do with software development. Jon, your question is pointed and it's pointed in the right direction, the idea of focusing on software development rather than focusing on the more niche part of software development which is machine learning. Now, you're right. I'm not a data scientist but as a developer, I think it's important that you keep up to speed with some of the core functional skill sets are in these various areas of development. I do know a little bit about data science and I know a little bit about machine learning, not enough to actually go and get a job in that field but I know enough to know some of the skills that you may want to develop. We're going to cover all of that today and really excited to talk about this before we jump in. We're going to go ahead and do our quick sponsor read from Leno. Leno is sponsoring Developer Tea for a stint at the end of the year here and we're really appreciative of all of Leno's incredible sponsorship over the course of this year. Obviously, we're coming to the end of the year. Leno has helped us out for such a long time but they've also helped out developers around the world and developers just like Jon. For example, Jon, you're getting into machine learning and you're going to need a computer that is able to take commands and run those commands through whatever your machine learning algorithms are and provide you output. You may want to create an API one day, for example, that processes web requests that you can send. Let's say a string of text and you want to evaluate that string of text and do some kind of sentiment analysis on it. One of the platforms you would probably use to do that kind of analysis is Linux because Linux runs pretty much every programming language that you could want to run and Leno allows you to have a box that is running Linux in the cloud for $10 a month. That's really the pitch here. Cloud is giving you high performance servers, by the way, two gigabytes of RAM kind of servers on 40 gigabit internal networks, eight data centers around the world. They're giving that to you for $10 a month. It's incredibly affordable, especially for people just like Jon, but even if you're well into your career, if you're advanced, if you're a senior developer and you're listening to today's episode and you're looking for an SSD cloud hosting solution, go and check out Leno. They are offering you $20 worth of credit if you use the code Developer Tea 20 at checkout. You can go to spec.fm slash linode and you've probably heard this over and over before, but again, if you are looking to spin up a new API, if you are a developer and you want to create a side project or a weekend warrior kind of project, linode would be a great option for you. Even if your company isn't currently using linode, linode is a good option for these personal projects for the smaller stuff that a lot of developers, they really haven't thought about that as an empowering option for them. Go and check it out. Spec'd out of them slash linode. Thank you again to linode for sponsoring today's episode of Developer Tea. So Jon, I've written some notes down. I'm going to go straight through these notes and discuss and answer the questions that you have presented in your message to me on Slack. The first question that I think is the most important one to answer today is, should I tell my future employer the kind of work that I want to do, the style of work or the type of problems I enjoy solving? Should I tell my future employer those things? This question is actually kind of complex. It sounds simple, but it's actually kind of complex because the real underlying question here, Jon, is why would you decide not to tell your future employer? Think about that for a second. So should I tell my future employer the kind of work that I want to end up doing? Well, why would you not tell them? If you are hesitating to tell your future employer that you are interested in doing data science work in the long run, you should figure out why that hesitancy exists. So are you concerned that the company you are applying at is not going to move into data science or whatever your field of interest is? Is that your concern or are you feeling a level of insecurity maybe about your own knowledge of data science? Do you feel that your aspiration is something that is more dedicated or suitable for a senior level developer? Do you feel like maybe you're not quite qualified and even saying something about it looks arrogant or something similar to this? Are you thinking the job may not actually be a long term job, this particular company that you're applying to, that it's not actually a long term job, but rather a transition job, like a stepping stone kind of job? All of these things are incredibly important to understand about your motivations, right? And really, what you're saying is that you are effectively or fearing that you're not going to get the job, that it's going to hurt your chances of being hired. If your answer is that you don't think the employer is going to go into the data science field, then you have to make a decision. If your long term goal is to get into data science, well, what is really the benefit of working with a company that doesn't value that long term goal? I want you to think about that question before you even write another company. I want you to think about the question, Jon, and anyone else who's in this situation. If you're just going to an employer and you're not telling them what you want to do in the long term because you're afraid that they are never going to go into that field, then you're not going to gain the experience really that you want to gain and head that direction. So really consider whether or not this is the type of employer that you want to work for. The answer is that you feel insecure or you feel otherwise unqualified for a position at a company working in data science or whatever your field of interest is. Then your concerns are not going to be fixed simply by time at that company, but rather by honesty. If you're upfront with your employer about your intention to gain experience with data science, then they know that you're not qualified today to work on something production-wise in data science. When you're confident that the company you're applying to is actually interested in being involved with something like AI or machine learning, it's likely that sharing this information with them will help guide you into that position. If they know that your long-term goal is to move towards those things and they are aligned with that, you are dedicated and you're a good worker and you're actually learning about those things. They're going to move you towards those goals. In that sense, in that particular scenario, Jon, that actually helps your chance. That actually helps your chance of being hired there. I think perhaps a more important question, though, for you to ask, Jon, is what kind of company do you want to work for? What kind of job do you actually want to have? If this is a stepping stone job, then a lot of these questions become irrelevant because really what we're talking about is long-term jobs, what type of job do you want to have? If it's just a stepping stone job, then I recommend you still try to apply as many of these things as possible and look for a company that you can actually do something that you enjoy doing where you're going to gain experience that is relevant to data science. It still applies. I think the important question for you to ask, Jon, is what kind of company do you want to work for? Good work for a company, for example, that has not yet adopted machine learning and you're bringing a new value to that company by presenting machine learning or by bringing data science into their team. They may not even know that they need data science. That is a complete possibility for you, Jon, to move into a position where you are actually learning and discovering how data science can help that particular company. Of course, the downside to this is that you would have less access to other developers, to more experienced developers, people who have been working in data science before you to learn from them. You can get some of that same benefit by meeting with developers who don't work at the same company as you. Obviously, this kind of atmosphere is very different from the other end of the spectrum here. You could choose to apply to a company on the other end of the spectrum where it is somewhat taken for granted that you're going to be interested in data science because that's their core competency. In other words, what they do is entirely centered around data science. An example of this would be something like Tesla, where most of the value that they're delivering on the software side is based on machine learning. In that kind of scenario, you sharing that you are interested in data science kind of comes with the territory. If you're applying to a company where data science is their core competency, then it's likely that it's not only going to be acceptable that you're interested in it, but a requirement that you're interested in it. Now I will say this. I think that we've kind of mixed up some words here. Jon, you are asking about a data science specific position. This potentially is where you're not actually producing a product, but rather where you're producing analysis or you're producing some kind of interesting insights based on data where you're actually taking data and analyzing it with code. These are two very different concepts, but they end up using a lot of the same kind of core skill sets. Most of the data science positions will end up having large overlaps with writing code. What you'll probably find is that you will end up kind of wearing two hats in those positions unless the company is large enough to have you be a dedicated data scientist. There are also positions, for example, at newspapers where your job is to create some kind of visual interaction with data. That is considered a data scientist position, even though you're actually also wearing kind of a designer's hat. There's a lot of interesting possibilities with this kind of work. Data science is not just one thing anymore, just like designing and developing software. Those are not just sequestered into one type of business. They are moving into all types of businesses. It's really important for you, Jon, to think about the different types of businesses that could benefit from a data scientist kind of position and then consider what your job would look like, how your life would look, what kinds of things you are interested in, what kinds of things you're interested in learning, and your personal values. All of those things are really the bigger questions. Yes, absolutely, with all of that information in mind, there are plenty of employers and plenty of situations that you could put yourself in where you do share this information with your employer. Here's a few things you might want to consider as you are studying in your program, your studying computer science at BYU. There's a few things you may want to consider as you are considering going into grad school. First of all, computer science itself is a very large field. It's massive. It will include quite a few other niche subjects. In this way, it's kind of more of a hybrid study program where you're combining a lot of theory and you're combining a lot of actual practical skills from many different fields altogether to actually make up the computer science program. This is even more true when you consider going into a grad program because many grad programs, if not all of them, I'm not really certain, but many grad programs, including the one that I went to at Georgia Tech, are largely self-guided. Your thesis or your graduate project will likely be largely determined by your own interest or your own study rather than assigned, depending on where you go. That doesn't mean that you can pick up anything and use that as your primary grad project or as your thesis. You'll likely go through many approval rounds through your academic supervisor. They'll give you feedback about your chosen field for that study, for that project. Ultimately, a grad program is a huge opportunity to learn very deeply about a subject that you want to learn. This is perhaps the most exciting and challenging part of a graduate program. I would recommend that you look into graduate programs that are flexible in that way. Of course, I mentioned Georgia Tech, the digital media program there. A fantastic program for this kind of thing, if you want to learn about machine learning, you can go and practice that kind of learning at the Georgia Tech Digital Media Grad program. There are many other programs. For example, MIT's Media Lab, they would allow you to do this kind of work as well. There's a lot of exciting opportunity when you go to your grad program. While you're in your CS program, though, there are quite a few online courses and machine learning concepts. There are specific practices associated with machine learning. For example, the more philosophical aspects, like linguistics or sentiment analysis, discussions around artificial intelligence and the ethics that are implied by some of those things. Of course, there are also much more concrete and skill-based elements to data science, like calculus and linear algebra. Some of those, of course, you're going to learn in your CS program. At least some introduction to algorithms and then maybe some more advanced things around algorithmic thinking. But there are also more machine learning specific mathematics, for example, neural networks. Most of these things can be taken far beyond the average CS program. You need to understand that you're not going to walk out of the average CS program with extensive experience with this stuff. Unless you specifically seek it out, you choose those kinds of classes for your electives, maybe talk to your academic advisor, let them know the things that you're interested in. If you can't get these classes added into your academic structure, then ask your academic advisor if maybe there's some kind of summer program that you can get involved in or an online course that you can do remotely from a different university and count the credits towards your credits at BYU. There's a lot of options here. Again, do your research, talk to your academic advisor, talk to someone who is in machine learning and discuss with them a couple of things that they would recommend that you learn. But of course, there's a ton of really good information, really good classes online, even free classes that are full on courses on this stuff. Go and check those out, of course, Coursera is a good option, for example, of courses that are actually put on by universities and they have machine learning specific courses. I was just browsing them the other day, so go and check those out. But if possible, you want to limit the number of things that you're having to split your focus with. We've talked about that on the show quite a bit, right? You don't want to split your focus into 10 different classes in a given semester. If you can get these classes as a part of your actual degree program that allows you to focus a little bit more, learn a bit more deeply about those particular subjects. One more note, if possible, give yourself opportunities to bring the concepts that you're going to be learning about machine learning, about data science, about artificial intelligence, bring that information into your current work. The front-end web development that you're doing, believe it or not, you can take some of these concepts and apply them in your front-end development work. Whether you're building a very simple sentiment analysis tool, maybe you build a training tool that you allow a user to train the system over the course of a browser session and then the system learns and then presents back to them what it has learned. These kinds of exercises where you translate information and theory into an actual product on a given platform, that's going to give you the hard skills that you're going to need to build a sustainable career. These are the kinds of things that you can show in interviews, these are the kinds of things that are going to actually make you feel confident when you walk in and discuss these kinds of things with your future employer. You're going to be able to say, hey, look, I took this information that I've learned. I've took this theory that I've learned and I've applied it in a different space. I've applied it in front-end web development or I've applied it in API development. I can add extra value to your team. I can add value on multiple dimensions. These are the kinds of things that are considered bonuses. They're very few developers who, when they hear that you've done something cool with machine learning, that would think that that's a bad thing. It's very likely that any developer, even the ones that are hiring you, are going to appreciate and respect that you've done something cool with machine learning or something cool with data science. Don't let this opportunity pass you up and don't be hesitant to merge these things together. Go ahead and start working with the things that you have at hand, the tools that you're already using and combine your interests as much as you can. This will provide you a lot of value, a lot of potential tangible value in the form of products that you built, small projects that you've built to prove that you are able to actually put code together, that you're able to actually apply the concepts. Jon, thank you so much for listening to Developer Tea and for joining this Slack community and sending me a direct message there with your question. Of course, anyone who is listening to this podcast right now, you can go and talk to me in Slack by going to spec.fm slash Slack. I try to respond to everyone as much as possible in between doing episodes and of course having a full time job. And if you haven't heard the past couple of episodes, preparing for my wife and I are having a child this coming summer. So we're really excited. We're preparing for that. Obviously, it's a busy season for us at the end of the year. But thank you so much for listening even through the busy season. I appreciate all of you. So very much. So thank you for listening. Thank you again to today's sponsor, Linode. If you want $20 worth of credit to get an SSD server up and running in the cloud, head over to spec.fm slash Linode. Use the code Developer Tea 20 at checkout. Thank you so much for listening and until next time, enjoy your tea.