Latest / DevQuestions with Tim Corey / 044 Do I Need To Be A Generalist Or A Specialist?
Transcript
- 0:00SPEAKER_00: Welcome to the Dev Questions Podcast with Tim Corey.
- 0:03SPEAKER_00: Join us each episode as we tackle the questions you are asking about a career in software development, understanding the industry, and new technology.
- 0:12SPEAKER_00: If you're just starting out or you want to grow stronger as a developer, this is the place to get your questions answered.
- 0:19SPEAKER_00: Now, here's your host, expert developer and online educator, Tim Corey.
- 0:24SPEAKER_01: Can I get a job as a software development generalist?
- 0:28SPEAKER_01: Do I need to be a specialist instead?
- 0:30SPEAKER_01: What if I'm not qualified for any job because I don't know anything deeply enough?
- 0:36SPEAKER_01: This is a question that Scott asked.
- 0:37SPEAKER_01: I think it's a great question to cover because I've seen so much confusion out there on when do you apply for a job and what's good enough?
- 0:48SPEAKER_01: So let's start off with a story.
- 0:50SPEAKER_01: I get offered jobs a lot, especially from recruiters who don't seem to read my LinkedIn profile where it says, don't ask me about jobs.
- 0:58SPEAKER_01: I don't need a job.
- 0:59SPEAKER_01: I have a job.
- 1:00SPEAKER_01: But I had a job recently where the recruiter was asking me for uh 10 years of experience with Azure DevOps.
- 1:09SPEAKER_01: That's just one of the qualifications.
- 1:10SPEAKER_01: There's more, of course.
- 1:12SPEAKER_01: And it made me laugh.
- 1:14SPEAKER_01: I had to look it up to make sure that maybe I wasn't misremembering.
- 1:18SPEAKER_01: I mean, time flies, right?
- 1:20SPEAKER_01: But Azure DevOps, the online version we use right now, hasn't been out for 10 years.
- 1:26SPEAKER_01: It's been out for about eight.
- 1:28SPEAKER_01: So the only way you can have 10 years experience in Azure DevOps is if you're talking about really having experience in Team Foundation Server, which was a locally installed product that really has very little connection to what we have today in Azure DevOps.
- 1:49SPEAKER_01: And in fact, what we have today in Azure DevOps is not the same thing as what we had five years ago with Azure DevOps Online.
- 1:57SPEAKER_01: So it wasn't even called Azure DevOps back then.
- 1:59SPEAKER_01: It was uh Team Foundation Server Online or no Visual Studio Server Online.
- 2:06SPEAKER_01: That's what it was.
- 2:07SPEAKER_01: Um but that's not the same product.
- 2:11SPEAKER_01: So even if you had 10 years of experience between on-prem and then in the cloud, does that really matter?
- 2:21SPEAKER_01: Does what I did 10 years ago matter when it comes to today's Azure DevOps?
- 2:27SPEAKER_01: Well, no, it doesn't.
- 2:29SPEAKER_01: So does that mean I'm not qualified to apply for that job?
- 2:34SPEAKER_01: No, I am definitely qualified to apply for that job.
- 2:37SPEAKER_01: Even though I didn't use TFS, the on-premises installed version, I didn't use that hardly at all.
- 2:47SPEAKER_01: I'm still qualified for that job.
- 2:49SPEAKER_01: In fact, I would say that I have around five years experience with Azure DevOps.
- 2:55SPEAKER_01: Maybe a little more, but let's call it five.
- 2:58SPEAKER_01: So I have half the amount they're looking for.
- 3:00SPEAKER_01: And yet I would still say, absolutely, I'm qualified for that position.
- 3:05SPEAKER_01: I know a lot about Azure DevOps.
- 3:09SPEAKER_01: Some people, especially rule followers, and I I live with rule followers, especially rule followers have a hard time saying, I'm qualified for this role in applying for it when they see things like 10 years' experience in Azure DevOps.
- 3:28SPEAKER_01: They say, Well, I've got five, but that's that's half what I need.
- 3:32SPEAKER_01: I'm not qualified.
- 3:35SPEAKER_01: Yeah, you are.
- 3:36SPEAKER_01: So apply for the job.
- 3:38SPEAKER_01: And here's why.
- 3:39SPEAKER_01: Two reasons.
- 3:40SPEAKER_01: First of all, the person who's asking for that didn't really know what they were asking for.
- 3:46SPEAKER_01: And that's very, very common.
- 3:49SPEAKER_01: And two, it's really hard to ask for what you really want in a candidate.
- 3:54SPEAKER_01: And so what happens is often when people put out a job and say, this job is now open, what they're doing is they're putting out their hopes and dreams.
- 4:07SPEAKER_01: They say, you know what?
- 4:08SPEAKER_01: It'd be great if we have a person that's great in Azure DevOps and you know they're a C sharp genius, but they also know JavaScript like amazing.
- 4:19SPEAKER_01: And so Angular and React and View is we don't know which one are choosing.
- 4:23SPEAKER_01: So we'll say all three we have to have qualifications in.
- 4:26SPEAKER_01: And they should probably also be able to know how to install servers and run network cables.
- 4:31SPEAKER_01: What they're looking for is a wish list.
- 4:34SPEAKER_01: If you actually go and look at what they're doing today, they may be doing a little bit of C sharp and they want to do Azure DevOps.
- 4:43SPEAKER_01: They don't know what they're asking for, or they're just asking for everything, hoping they get some rock star who walks through the door that does all the things they're thinking about doing, let alone what they're doing now, and so it can take them forward into the future.
- 5:00SPEAKER_01: And that's not really what they're gonna get.
- 5:04SPEAKER_01: If you look at what the candidates are who are hired for these positions, the candidates who are hired for the positions often are not qualified to apply.
- 5:16SPEAKER_01: And that that maybe feel hard to understand, but it's true.
- 5:21SPEAKER_01: So, first and foremost, when you see a job posting and you know you matched the major points, kind of roughly even.
- 5:32SPEAKER_01: If you match the major points, or if they say we're looking for a C sharp mid-level developer, and then they say, with 10 years experience, and who also knows Azure DevOps amazingly, and who also and they start adding more things on.
- 5:50SPEAKER_01: If you find yourself to be what you feel is a roughly a C sharp mid-level developer or close to it, apply for that job.
- 5:59SPEAKER_01: You may not have all the things they're asking for, still apply for it.
- 6:03SPEAKER_01: You may not get the job, but you you might get that job after all.
- 6:09SPEAKER_01: You might find out that man, I was more qualified than I thought I was.
- 6:13SPEAKER_01: So don't let that stop you.
- 6:16SPEAKER_01: Now, let's talk about the idea of being a generalist versus a specialist.
- 6:22SPEAKER_01: So, one of the things Scott said was, you know, I think I'm too much of a generalist.
- 6:27SPEAKER_01: I know a lot of things, but nothing deeply.
- 6:30SPEAKER_01: So, what are the positives of being a generalist?
- 6:33SPEAKER_01: Well, when you are in the development world, you're often faced with a lot of different problems.
- 6:43SPEAKER_01: And it's not usually just in your field.
- 6:46SPEAKER_01: So if you're a C sharp developer, you might not always get C sharp problems.
- 6:53SPEAKER_01: For instance, you may have to put data into a database.
- 6:58SPEAKER_01: Well, that means SQL knowledge, or it may mean MongoDB knowledge, or it may mean knowledge in MySQL, or and the list goes on.
- 7:08SPEAKER_01: And then you may be asked to do logging.
- 7:11SPEAKER_01: And so you have to figure out what logging frameworks are out there.
- 7:14SPEAKER_01: And then your boss may say, you know what, we're gonna go to Azure.
- 7:18SPEAKER_01: Great, now I've got to learn Azure.
- 7:19SPEAKER_01: And I've got a course for that, by the way.
- 7:21SPEAKER_01: Um, but you know, you've got all these different things you have to learn that are around your topic.
- 7:28SPEAKER_01: Source control.
- 7:29SPEAKER_01: You really need to know source control.
- 7:31SPEAKER_01: Well, that's Git.
- 7:33SPEAKER_01: That's something else you have to learn.
- 7:35SPEAKER_01: Azure DevOps.
- 7:36SPEAKER_01: You need to learn how to deploy and how to create a continuous integration, continuous deployment system, C I C D.
- 7:43SPEAKER_01: That's something else to learn.
- 7:45SPEAKER_01: And so before you know it, you have all these topics you have to learn that aren't your language, your focus, your what you were hired to do.
- 7:55SPEAKER_01: So, yes, being a generalist is very, very helpful because you have touched on these other areas.
- 8:03SPEAKER_01: But what are the downsides?
- 8:04SPEAKER_01: Well, like Scott said, it's hard to say, I have 10 years experience in this.
- 8:10SPEAKER_01: Because maybe you've been doing C sharp for 10 years, but you spent most of your time doing things like logging and working with a source control system and Azure DevOps and putting stuff in the cloud, and you feel like you don't do a whole lot of actual C sharp.
- 8:26SPEAKER_01: Well, maybe it's been your job for the past 10 years, but you haven't written more than a year's worth of code because the other nine years worth of work has been on other things.
- 8:38SPEAKER_01: So it feels like you're not a 10-year veteran of C sharp.
- 8:43SPEAKER_01: It feels more like you're just beginning.
- 8:46SPEAKER_01: So that's kind of a downside of being a generalist, is you have lots of different pieces of information, but nothing deep.
- 8:57SPEAKER_01: Now, on the other hand, if you're a specialist, you dive really deep into one topic.
- 9:03SPEAKER_01: Let's say C sharp.
- 9:04SPEAKER_01: So you're really diving deep into language and learning that well.
- 9:07SPEAKER_01: But then you don't have the skills necessarily to connect to your database or to deploy that code using Azure DevOps or to put it onto Azure or all those other things that come with development.
- 9:22SPEAKER_01: So you're kind of limited in that area.
- 9:24SPEAKER_01: So when it comes time for applying for a job, they might say, Great, you're a senior C sharp developer, but we're looking for someone who can also do and they list four other things.
- 9:35SPEAKER_01: And you say, I don't know those things.
- 9:37SPEAKER_01: And so the downside of being a specialist is that you miss all the connections, the real world use of what you're using, the real world use of, let's say, C sharp.
- 9:53SPEAKER_01: It doesn't, you have to connect it somehow.
- 9:55SPEAKER_01: So the benefits of being a specialist are you really get deep into language.
- 10:00SPEAKER_01: You become the mid-level and senior level developer in that area, but you often miss all the rest of the stuff that goes around it.
- 10:12SPEAKER_01: So there's benefits and drawbacks to both.
- 10:17SPEAKER_01: And my personal recommendation is I would focus on one thing to be a specialist in and yet don't forget about being a generalist in other areas.
- 10:28SPEAKER_01: So my recommendation, if you go through my my learning path for C sharp, I always start you off with a foundation C sharp series, which just focuses in on C sharp.
- 10:41SPEAKER_01: And so we start from you know installing Visual Studio.
- 10:44SPEAKER_01: We walk all the way through uh common project types and databases and object-oriented programming and putting it all together, creating applications.
- 10:53SPEAKER_01: But then I start immediately branching you out afterwards, where we start talking about Azure DevOps and SQL Server and starting to branch out and become at least somewhat knowledgeable of the other areas so that you've gotten a you've started in your deep knowledge.
- 11:13SPEAKER_01: And I encourage you to keep going deeper with C sharp.
- 11:16SPEAKER_01: But at the same time, I also encourage you to pick up these other areas as well, so you can at least say I have skills in those other areas.
- 11:26SPEAKER_01: Now, Scott, what do you do when you feel like you have no depth anywhere?
- 11:32SPEAKER_01: I would first question that.
- 11:45SPEAKER_01: I tell you what, I'm not either.
- 11:48SPEAKER_01: So if you wanted to look at me, you might say, oh, you know, Tim's got it all together.
- 11:54SPEAKER_01: And Tim doesn't.
- 11:55SPEAKER_01: Tim has to learn every day, and Tim feels like an idiot every day when simple things I just don't get.
- 12:02SPEAKER_01: Um, I have a contractor working for me, and it's it's great because he does stuff that I'm like, I don't know, you know, and that's okay because I don't know everything.
- 12:14SPEAKER_01: And if you can be comfortable saying I don't know everything, and it's okay, it opens you up to more opportunities where you can say, you know what, I think I am qualified for this, even though maybe somebody else is more qualified.
- 12:30SPEAKER_01: And that's okay.
- 12:31SPEAKER_01: Someone else can be more qualified.
- 12:33SPEAKER_01: That doesn't mean that you don't apply or give it a shot.
- 12:37SPEAKER_01: But if you really feel like you're too much of a generalist, then I would encourage you to pick the area you want to go deeper in.
- 12:46SPEAKER_01: If it's C sharp, go deeper.
- 12:49SPEAKER_01: Focus your learning plan, your schedule of what to learn next.
- 12:54SPEAKER_01: Focus in on deeper C sharp tasks.
- 12:57SPEAKER_01: Practice those tasks.
- 12:59SPEAKER_01: Make sure that you actually get experience in them.
- 13:03SPEAKER_01: And then you'll be more confident to apply to a C sharp, primarily C sharp job.
- 13:11SPEAKER_01: You have the generalist skills to do all these other things, but you have a little bit more depth in C sharp.
- 13:20SPEAKER_01: So that's what I encourage.
- 13:21SPEAKER_01: I encourage if you're planning out your what to learn, how deep to go, I encourage you to be a specialist in one area and a generalist in the others and kind of balance out the two.
- 13:34SPEAKER_01: Don't get distracted by shiny objects and always just go general, general, general.
- 13:38SPEAKER_01: Go deep in one, which means spending time working through the hard stuff in one, but still learn the others that are related.
- 13:50SPEAKER_01: I often hear people say, okay, you know, I've just started learning C sharp.
- 13:54SPEAKER_01: When's it time to learn Angular?
- 13:56SPEAKER_01: And the answer is not for a long time.
- 13:59SPEAKER_01: Because you need to go deep into C sharp before you're even ready to learn something else that's deep.
- 14:07SPEAKER_01: Because really, Angular isn't a surface level thing.
- 14:10SPEAKER_01: That's a pretty deep level thing.
- 14:12SPEAKER_01: So I would encourage you to go deep in one area, be a generalist in other areas.
- 14:17SPEAKER_01: And when it comes to applying for a job, be confident in yourself.
- 14:23SPEAKER_01: Be confident in what you know, and be okay not knowing everything.
- 14:29SPEAKER_01: Still apply.
- 14:31SPEAKER_01: Give it a shot.
- 14:32SPEAKER_01: Be honest with your skills.
- 14:34SPEAKER_01: Because I tell you what, a person who comes in who's confident in themselves, but at the same time is honest about what they don't know, that's great.
- 14:43SPEAKER_01: That to me is a green flag.
- 14:46SPEAKER_01: If you know those red flags where people are cocky or people say they know things they don't know.
- 14:52SPEAKER_01: Those are red flags.
- 14:54SPEAKER_01: A person who comes in and says, here's what I know.
- 14:58SPEAKER_01: And when I ask a question, they go, you know what?
- 15:00SPEAKER_01: I've never come across that, but I love to learn that.
- 15:04SPEAKER_01: That's a green flag.
- 15:05SPEAKER_01: That's that's someone who, when I give them a job at work and they don't know how to do it, they're not gonna bluff.
- 15:14SPEAKER_01: They're gonna say, Hey Tim, you know what?
- 15:16SPEAKER_01: I've never done that.
- 15:17SPEAKER_01: Can you point me in the right direction?
- 15:19SPEAKER_01: Or, you know what, is it okay if I learn how to do this first before I actually get assigned it?
- 15:25SPEAKER_01: That honest, clear communication is much more valuable than knowing that topic deeply.
- 15:33SPEAKER_01: Because I can now trust you to give you more work to do, knowing that you're not going to just pretend and cause problems.
- 15:44SPEAKER_01: So you don't have to be as deep as you think you do in order to apply for some of those things.
- 15:50SPEAKER_01: Okay.
- 15:51SPEAKER_01: Thanks for the question, Scott.
- 15:52SPEAKER_01: I really appreciate it.
- 15:53SPEAKER_01: I think it's a great question.
- 15:54SPEAKER_01: Hopefully, others benefit from this as well.
- 15:57SPEAKER_01: If you found this episode helpful, I would love it if you'd share on your social network of choice.
- 16:01SPEAKER_01: Thanks for listening.
- 16:02SPEAKER_01: And as always, I am Tim Corey.
- 16:05SPEAKER_00: Thank you for joining us for this episode of Dev Questions.
- 16:08SPEAKER_00: Tim is committed to making it easier for you to become a developer.
- 16:11SPEAKER_00: If you would like to help make more content like this possible, please like, subscribe, rate, and share Dev Questions.
- 16:19SPEAKER_00: You can also send your questions to questions at IamTimcore.com.
- 16:24SPEAKER_00: Until next time, remember, you are too smart and your time too valuable to waste it making all the mistakes Tim did.
- 16:31SPEAKER_00: When you're ready to learn to think and code like a professional developer, head over to IamtimCore.com and enroll in a course.