Latest / DevQuestions with Tim Corey / 166 What is the Best Type of Work Experience?
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:26SPEAKER_02: What is the best type of work experience?
- 0:29SPEAKER_02: Is it better to be at one job for a long time or work at different jobs repeatedly?
- 0:35SPEAKER_02: Let's talk about this in today's episode of DevQuestions.
- 0:39SPEAKER_02: Now, this question comes from a suggestion site.
- 0:41SPEAKER_02: And if you have a question, go to the suggestion site, suggestions.imtimcorey.com, leave it there.
- 0:46SPEAKER_02: Okay, let's talk about what the values or the valuable benefits are of each.
- 0:53SPEAKER_02: So if you're in a long-term job, you have a deep understanding of the production lifecycle.
- 0:59SPEAKER_02: What this means is when you've worked there for five, 10 years, you understand kind of the cycle that the applications go through.
- 1:09SPEAKER_02: You haven't just seen, like, okay, deploy a few things and you know, we're good.
- 1:14SPEAKER_02: You haven't seen a year or two.
- 1:15SPEAKER_02: You've seen multiple years where you see, okay, you know what?
- 1:20SPEAKER_02: Every October, we get hit hard and we have to fix a bunch of bugs.
- 1:24SPEAKER_02: Or we we have a lot of new things come out, a new featured request come out in the March time frame because of this.
- 1:32SPEAKER_02: You start to see that that cycle there.
- 1:34SPEAKER_02: You will also understand how software flows a whole lot better.
- 1:38SPEAKER_02: Because you've seen that proposed issues that get broken down into projects that get built over time.
- 1:48SPEAKER_02: You see how those projects succeed or fail over and over again.
- 1:52SPEAKER_02: You might see your company struggle from project to project to project, always getting them out kind of, but then they're half baked because you rush at the end and get, you know, just get it to work, but it's not really great.
- 2:07SPEAKER_02: It's not really great code, but it's too late, gotta go to the next thing.
- 2:10SPEAKER_02: And you keep doing that over and over.
- 2:12SPEAKER_02: You start to see that pattern form, and you start to see, oh, we're doing more work than we should be doing because you should be spending more time doing this.
- 2:22SPEAKER_02: So along with that, you start to see the long-term impact of choices.
- 2:28SPEAKER_02: There are choices that seem good in the short term, and they may even be good.
- 2:34SPEAKER_02: But you start to see over time, ooh, that wasn't really good because long-term, it had these impacts.
- 2:42SPEAKER_02: There's these things that cause problems.
- 2:45SPEAKER_02: So, for example, it may be valuable to write a little, you know, side project software that does something.
- 2:53SPEAKER_02: And you know what?
- 2:54SPEAKER_02: It makes your life easier, automates things, and you create a proof of concept and show it off your boss.
- 2:59SPEAKER_02: Your boss is like, that's cool, let's use that right now because it will make our lives easier.
- 3:05SPEAKER_02: Short term, that sounds great.
- 3:07SPEAKER_02: Long term, you figure out that those projects often end up becoming long-term supported projects.
- 3:15SPEAKER_02: Even though it was a proof of concept, even though you just kind of threw stuff together and just got something cobbled together to work.
- 3:23SPEAKER_02: All of a sudden, now you're supporting it five and 10 years later.
- 3:26SPEAKER_02: And if it breaks, it's your problem.
- 3:28SPEAKER_02: You got to fix it.
- 3:30SPEAKER_02: And it causes frustration when it goes down, but it was never meant to be a production application.
- 3:36SPEAKER_02: Those are the kind of things you figure out and learn over long-term jobs.
- 3:40SPEAKER_02: You figure out how to write code in a way that is defensive for the long run.
- 3:45SPEAKER_02: You start to figure out how maybe changing with every new thing that comes out isn't a good thing.
- 3:53SPEAKER_02: And how some stability in your software can be a better thing.
- 3:58SPEAKER_02: And how maybe the styling of how things work in code changes over time in the industry.
- 4:05SPEAKER_02: But maybe you don't, because you've seen how when you do that, when you do change those styling, well, you still have your old styling in some stuff.
- 4:14SPEAKER_02: Then you have, you know, the next version, then you have the next version, and all of a sudden you have three different styles in your code base because you changed with the times instead of changing the whole thing, but you couldn't change the whole thing because that takes too much time and we'll get to it.
- 4:30SPEAKER_02: And you learn that we'll get to it means no, you won't.
- 4:33SPEAKER_02: So being in a long-term job gives you a lot of experience to have some wisdom when it comes to making new choices.
- 4:41SPEAKER_02: So when you come into a new organization, let's just say that after 15 years or 10 years, you decide I want a new job, or maybe they laid you off.
- 4:52SPEAKER_02: And so you go to a new employer and you walk in and they say, Great, you're hired.
- 4:57SPEAKER_02: Well, you bring with you that 10 years plus of experience in that one role.
- 5:03SPEAKER_02: Yes, there'll be some changes.
- 5:05SPEAKER_02: There's different code base, different ways of doing things, but you have that long-term wisdom of saying, I've seen how this type of decision will impact your product five years from now.
- 5:22SPEAKER_02: And how this sounds good for today, but it will cause problems in two years.
- 5:28SPEAKER_02: That's one of the things that often people argue with me over is entity framework.
- 5:33SPEAKER_02: And one of the things I think is the big problem is a lot of times, not every time, but a lot of times, people have seen that from a short perspective.
- 5:44SPEAKER_02: They've built it and they've worked with it for five years or less in one project, where they move on to the next project or the next organization.
- 5:53SPEAKER_02: Or it's it's with a small customer base that never seems to grow exponentially.
- 6:00SPEAKER_02: Whereas I have worked as a consultant, that's also a nice feature, but I've worked in long-term spots as well where I've seen the long-term impacts of those choices.
- 6:11SPEAKER_02: And sometimes it works out, but there's other times where it causes major issues.
- 6:16SPEAKER_02: But I know about that because I have been at places for long periods of time.
- 6:22SPEAKER_02: So being there for a long period of time, you get to see the consequences, the long-term consequences of some actions that look good up front.
- 6:32SPEAKER_02: So having a long-term job can be very valuable and it adds a lot of wisdom to you as a developer for making good choices, for making good architectural choices, or it can.
- 6:45SPEAKER_02: Again, these are generalizations.
- 6:48SPEAKER_02: You can work at a place for a long time and do nothing of value.
- 6:53SPEAKER_02: So another thing that a long-term job offers you is a good understanding of corporate culture.
- 7:00SPEAKER_02: Now, it may be one specific corporate culture, but you've learned more about how they work over time, especially when you've seen the corporate culture as it changes with new leadership.
- 7:14SPEAKER_02: Because you get to see that kind of that flow of, oh, this is how much leadership actually impacts, and here's how much it doesn't.
- 7:22SPEAKER_02: And here's the broader picture of my job, not just I write software, I fix problems.
- 7:31SPEAKER_02: Because, you know, there's a there's a corporate side to it.
- 7:35SPEAKER_02: There's the the impact uh on the budget in the bottom line, and the the impact on customers and bringing new customers in or not, depending on if your offering is attractive or not, unchanging the times and all the rest.
- 7:50SPEAKER_02: So understanding corporate culture can also be very helpful.
- 7:54SPEAKER_02: And then you'll have an opportunity at one job to dive deeper into specific technologies.
- 8:02SPEAKER_02: Again, not every time, but being at one job for a long period of time will allow you to, let's just use an example here.
- 8:12SPEAKER_02: Maybe you you build a SQL database.
- 8:14SPEAKER_02: Cool.
- 8:16SPEAKER_02: And you get it to work and get it to run, and then you know your customer base goes from 100 people a day to a thousand people a day.
- 8:24SPEAKER_02: And you realize, ooh, we've got some problems.
- 8:26SPEAKER_02: And so you figure out how to optimize that and you you optimize your SQL calls.
- 8:31SPEAKER_02: Cool.
- 8:32SPEAKER_02: Now your customer base goes to 10,000 a day.
- 8:35SPEAKER_02: And you're like, ooh, still have problems.
- 8:38SPEAKER_02: And so you learn how to optimize more and figure out and go deeper into, oh, you know what?
- 8:43SPEAKER_02: If I write this one specific index and I drop this one field or add this one field, that will make an impact.
- 8:51SPEAKER_02: Or if I move this temp database over to a different SSD drive, that will have an impact.
- 8:56SPEAKER_02: And you start to get deeper into specific specific technologies and how to make a bigger impact.
- 9:04SPEAKER_02: Now, that's if you've been there for a long time, because you get to see those things grow and change over time.
- 9:12SPEAKER_02: Let's talk about having multiple short-term jobs.
- 9:16SPEAKER_02: What are the benefits there?
- 9:18SPEAKER_02: Well, one, you get to see different corporate cultures.
- 9:22SPEAKER_02: Maybe you saw one corporate culture and a long-term job and it was dysfunctional.
- 9:27SPEAKER_02: And you could say, well, then all corporate culture is dysfunctional, right?
- 9:31SPEAKER_02: Well, most are, seems like.
- 9:33SPEAKER_02: But, you know, maybe you see different corporate cultures.
- 9:37SPEAKER_02: I um worked for a number of organizations and I found one organization that did things very well.
- 9:44SPEAKER_02: So well that I didn't want to leave my job when I really, it was kind of obvious I needed to.
- 9:50SPEAKER_02: Um, I became a full-time YouTuber.
- 9:54SPEAKER_02: So um, you know, that job was really good at corporate culture.
- 9:59SPEAKER_02: And I learned a lot, and I've actually incorporated a lot of those things into my business because of what I learned there that I hadn't learned from other corporations, other jobs I'd worked at, and I'd worked at quite a few.
- 10:12SPEAKER_02: So having that experience of multiple allows you to see the differences and go, oh, when I look for a new job, I'm gonna look for these things because these things really stand out as important.
- 10:26SPEAKER_02: So having different corporate cultures allows you to have even a different insight when it comes to talking to your leadership to say, hey, you know, it, you know, two jobs ago, we did this process, and that seemed to work really well for writing better code or for getting code out faster and being less buggy.
- 10:46SPEAKER_02: You want to try that?
- 10:47SPEAKER_02: So having seen something before, you can bring that experience to your next job.
- 10:53SPEAKER_02: It also allows you to learn different technologies.
- 10:57SPEAKER_02: If you're jumping from job to job, I don't mean like every six months, but I mean, you know, every two years you go to a different job, or even every year potentially.
- 11:06SPEAKER_02: Well, you'll learn different technologies.
- 11:09SPEAKER_02: One job might be you know C sharp with MBC, but even if you stick with C sharp, you might the next one might be Blazor and API.
- 11:16SPEAKER_02: And the next one might be WinForms or WPF or Maui.
- 11:22SPEAKER_02: So even inside C, you might learn different technologies.
- 11:26SPEAKER_02: Or one company might use SQL Server, the next might use MongoDB, the next might use Cosmos DB.
- 11:32SPEAKER_02: So learning different things can be really valuable and give you work experience in a broader breadth of different things for your resume.
- 11:42SPEAKER_02: You'll also learn different business models, different ways to make money as a company, different ways to utilize a software product to have an impact on the bottom line or an impact on the business in large.
- 11:56SPEAKER_02: So learning those different business models will allow you to make better choices where you've seen more things, make allow you to make better choices when it comes to making your own decisions about how things should work.
- 12:09SPEAKER_02: And then it will also give you a different perspective on product life cycles.
- 12:15SPEAKER_02: Different businesses will do things differently.
- 12:18SPEAKER_02: I've been in businesses where the way to deploy code is you zip up your this one directory, you copy it over, you plunk it down in production, and you hope things work.
- 12:28SPEAKER_02: And then you do a file compare to figure out why it doesn't work.
- 12:32SPEAKER_02: And, you know, those kind of things, that's one way of doing things.
- 12:36SPEAKER_02: And I've seen other places where it's an entirely automated process, or a mostly automated process where we still tweak a finger too.
- 12:46SPEAKER_02: You know, you start to see different ways of doing things, and you can start to learn to pick the best things out of each and learn how to do things, you know, even with different systems like Azure DevOps versus GitHub Actions versus a manual process or a third-party process for deployment.
- 13:06SPEAKER_02: So different ways of doing things will allow you to bring more tools to the table when you need a specific way of deploying something at your new company.
- 13:19SPEAKER_02: If you've had experience with five different ways of doing things and can say, based upon what I've seen, based upon our product, I think this way is best, but I've used all of these so I can kind of compare and contrast, that's huge.
- 13:32SPEAKER_02: So having a different perspective will allow you to have a better, um better solution for your existing company.
- 13:42SPEAKER_02: So there's good with long term, there's good with short term.
- 13:46SPEAKER_02: So what's the best?
- 13:49SPEAKER_02: Um personally, and again, this would be my opinion because it depends, of course.
- 13:55SPEAKER_02: But my opinion, more than one job or company.
- 13:59SPEAKER_02: I would highly recommend that you work at more than one job or company over your career.
- 14:04SPEAKER_02: And the reason why is because you do get that breadth of experience.
- 14:09SPEAKER_02: You don't get locked into they may have they may do things really poorly in a certain area, and you don't know that because it's the way we've always done it.
- 14:18SPEAKER_02: Having that experience, you go, oh, there's a different way of doing this.
- 14:22SPEAKER_02: So more than one company, but still gain a depth of experience.
- 14:27SPEAKER_02: That means you should probably stay at one company for a while.
- 14:31SPEAKER_02: Learn to get better, grow in your craft, maybe stay there five years or more, but learn in depth.
- 14:39SPEAKER_02: But then also that breadth of experience, that broad experience is also important.
- 14:46SPEAKER_02: So moving around a little bit can be helpful at certain times in your career.
- 14:51SPEAKER_02: So kind of make those choices of, hey, is this the right company to go deep with?
- 14:56SPEAKER_02: Or should I, you know, wait a couple of years and then find another company and see if that's the right company to go deep with so that you kind of get a little of both so you have that breadth and also that depth.
- 15:08SPEAKER_02: And if you want to put on order which is better to go first, I would recommend to go deep first.
- 15:13SPEAKER_02: Stick with one company for a while first.
- 15:16SPEAKER_02: First of all, it's gonna give you that five years work experience.
- 15:20SPEAKER_02: That's a great number to have, but it's also gonna give you a little more depth in specific technologies that you can then use as your foundation to add other ones.
- 15:30SPEAKER_02: Otherwise, you might be a mile wide, an inch deep.
- 15:34SPEAKER_02: That's a that's a problem.
- 15:35SPEAKER_02: You want to have some depth to your experiences.
- 15:37SPEAKER_02: So I'd recommend trying to stick with one company for a while first.
- 15:41SPEAKER_02: If you can, obviously, things happen to get laid off, whatever.
- 15:46SPEAKER_02: But if you can stick with one company and go deep and then broaden out and skip around a little bit in order to broaden out those skills and have the widest possible um resume to make sure that you are a well-rounded developer.
- 16:04SPEAKER_02: All right.
- 16:05SPEAKER_02: So that's my that's my answer to the question.
- 16:08SPEAKER_02: I hope that answered your question.
- 16:09SPEAKER_02: If you have more questions, if you're watching the YouTube video, uh leave them down below if they're related to this video.
- 16:15SPEAKER_02: Um otherwise, if you have a question that you know is gonna add on this or be something even entirely different, go to suggestions.iamtimcorey.com and leave them there.
- 16:24SPEAKER_02: Thanks for listening.
- 16:25SPEAKER_02: As always, I am Tim Corey.
- 16:28SPEAKER_01: Thank you for joining us for this episode of Dev Questions.
- 16:31SPEAKER_01: Tim is committed to making it easier for you to become a developer.
- 16:34SPEAKER_01: If you would like to help make more content like this possible, please like, subscribe, rate, and share Dev Questions.
- 16:41SPEAKER_01: You can also send your questions to questions at IamtimCore.com.
- 16:46SPEAKER_01: Until next time, remember, you are too smart and your time too valuable to waste it making all the mistakes Tim did.
- 16:54SPEAKER_01: When you're ready to learn to think and code like a professional developer, head over to IamtimCore.com and enroll in a course.