Latest / DevQuestions with Tim Corey / 184 What Is The Real Job of a Software Developer?
Transcript
- 0:00SPEAKER_01: Welcome to the Dev Questions Podcast with Tim Corey.
- 0:03SPEAKER_01: 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_01: 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_01: Now, here's your host, expert developer and online educator, Tim Corey.
- 0:25SPEAKER_02: What is the real job of a software developer?
- 0:29SPEAKER_02: With the rise of AI, I've been hearing a lot about that AI is going to replace software developers.
- 0:35SPEAKER_02: And before AI, I heard the same sentiment about how low-code or no-code application development solutions, such as Microsoft Power Platform, were going to replace developers.
- 0:46SPEAKER_02: And before that, it was the idea that all jobs would be outsourced to low-cost countries.
- 0:53SPEAKER_02: Through it all, I've remained pretty much unconcerned.
- 0:58SPEAKER_02: And that's had people asking questions.
- 1:01SPEAKER_02: And the reason why I am pretty unconcerned is because that none of these solutions really address the real job of a software developer.
- 1:10SPEAKER_02: So let's talk about what is our real job.
- 1:26SPEAKER_02: That's it for a software developer.
- 1:27SPEAKER_02: That's our main job.
- 1:30SPEAKER_02: Writing code is just a mechanism to express logic.
- 1:34SPEAKER_02: That's why software developers can and often do change languages over the course of their career.
- 1:42SPEAKER_02: Personally, I've developed in over 20 languages professionally because the need required it.
- 1:49SPEAKER_02: And my role wasn't tied up with what syntax I know.
- 1:54SPEAKER_02: It was tied in with how well I can express logic and build something that fulfills that logic.
- 2:01SPEAKER_02: And that's also why work experience is so important.
- 2:06SPEAKER_02: So let's talk about how a developer does their job.
- 2:12SPEAKER_02: And we're going to talk through some examples here to kind of make this a little clearer.
- 2:16SPEAKER_02: I think it's important to understand the distinction.
- 2:18SPEAKER_02: Otherwise, what happens is you get caught up in training for the wrong things and focus on the wrong things, and you don't find yourself becoming valuable in the industry, and you get concerned that a piece of software can replace you.
- 2:33SPEAKER_02: So let's talk about how a developer does their job.
- 2:36SPEAKER_02: Now, this isn't going to necessarily apply to junior developers.
- 2:42SPEAKER_02: All right.
- 2:42SPEAKER_02: So this is something where, yes, it's going to apply probably more likely to mid-level developers and senior developers.
- 2:50SPEAKER_02: And the reason why is because junior level developers are just figuring this stuff out.
- 2:54SPEAKER_02: They're just getting started, they're just learning how to change over from I know syntax to I can construct logic.
- 3:04SPEAKER_02: So the difference is that I can show a junior developer some code and say, okay, here's how you do an if statement.
- 3:14SPEAKER_02: And they say, Cool, can you show me how to do an if statement within an if statement?
- 3:21SPEAKER_02: Well, you've already learned how to do an if statement.
- 3:23SPEAKER_02: You can probably figure out how to do a nested if statement.
- 3:27SPEAKER_02: And what they're thinking is, I haven't seen the syntax for that yet, so I don't know how to do that.
- 3:33SPEAKER_02: Or they might say, okay, I've seen these pieces, but how do I build a full application?
- 3:38SPEAKER_02: Well, it's putting those pieces together.
- 3:40SPEAKER_02: They've never done that.
- 3:41SPEAKER_02: And so as a junior developer, they're still learning how to become a full developer, a developer who is building that logic.
- 3:52SPEAKER_02: And so sometimes they get focused more on help tickets and fixing small bugs and things like that that help them get a speed in larger software development.
- 4:03SPEAKER_02: So we're going to focus more on the replacement of those mid-level and senior developer positions.
- 4:09SPEAKER_02: Now, yes, that does mean that AI and low-code solutions and outsourcing, these can all disproportionately affect junior developer positions.
- 4:22SPEAKER_02: And that can be a problem, but that's a problem that we need to address because if you don't have junior developers, you never have mid-level developers or senior developers.
- 4:33SPEAKER_02: Now, there's ways to skip ahead.
- 4:36SPEAKER_02: There's ways to learn how to do that stuff, not through a job.
- 4:40SPEAKER_02: And I teach that like the C Sharp master course.
- 4:42SPEAKER_02: It's designed to do that, kind of skip ahead a little bit because of that real-world training.
- 4:47SPEAKER_02: But there's still a need, I think, for junior developers and the um what they provide to our industry.
- 4:56SPEAKER_02: But let's talk about a story of what I did once in a job.
- 5:02SPEAKER_02: So I worked for a number of years as a consultant, meaning I would come in, I would help companies figure out what to do.
- 5:09SPEAKER_02: But then I was also kind of a contractor as well, where I would help them figure out what to do, but then I'd help them or even do it myself.
- 5:18SPEAKER_02: So I might come in and say, okay, here's what I think you should do.
- 5:21SPEAKER_02: And they might say, Cool, go do that.
- 5:24SPEAKER_02: And so I would do that.
- 5:26SPEAKER_02: And there was one job that I did where I was given a task of doing the software, building the software for a conveyor system.
- 5:36SPEAKER_02: So, really cool job.
- 5:38SPEAKER_02: It's always neat to see your software do something mechanical.
- 5:41SPEAKER_02: And that's what was happening.
- 5:43SPEAKER_02: The this um this warehouse had a whole bunch of cases of shoe boxes.
- 5:49SPEAKER_02: And customers would order a single pair of shoes in a single size.
- 5:54SPEAKER_02: And what they would do is they would ship out boxes filled with different types of shoes to various customer locations.
- 6:02SPEAKER_02: So they had to pull them out of a case where it's all one size or you know, all one type of shoe, and then kind of mix and match into other cases they shipped out, or even individual boxes they shipped out through UPS and FedEx.
- 6:16SPEAKER_02: So my job was this conveyor system, they would pull a shoebox out of the box of the same kind of shoes, they put on a conveyor.
- 6:26SPEAKER_02: Then my system would scan the barcode on that box and figure out where that shoe box went.
- 6:32SPEAKER_02: And there were, I think, 24 different lanes that it could go down.
- 6:37SPEAKER_02: And they'd pop up rollers and they'd go sideways down a lane to be put into the shipping containers.
- 6:44SPEAKER_02: So that was my job was the software to control the scanning of the shoeboxes and then figure out where they go, and then tell the system, okay, here's when you want to pop up that diverter and divert that shoebox down the lane.
- 7:02SPEAKER_02: Okay, so in a lot of ways, that's a pretty simple application.
- 7:08SPEAKER_02: So I identified how the system should work, and then I identified how to talk to each component, how to talk to the barcode scanner and get that information, and then how to talk to their API to say, hey, where should this box go?
- 7:24SPEAKER_02: Because that wasn't my responsibility.
- 7:26SPEAKER_02: They would tell me, oh, that's going out on this load, which I would then know, okay, that's lane 15.
- 7:33SPEAKER_02: And then I would have to figure out how to talk to the conveyor system to tell it, okay, this is when to open up this lane for that particular shoebox.
- 7:43SPEAKER_02: So that was my job.
- 7:45SPEAKER_02: It's a really fun job, and in a lot of ways, pretty straightforward.
- 7:50SPEAKER_02: So I figured out how to do all those different parts.
- 7:54SPEAKER_02: I put them all together and I built the system.
- 7:58SPEAKER_02: And guess what happened?
- 8:00SPEAKER_02: It failed.
- 8:01SPEAKER_02: It failed out of the box.
- 8:03SPEAKER_02: It was spectacular.
- 8:04SPEAKER_02: There was tons of fun.
- 8:06SPEAKER_02: I had a lot of laughs figuring out this system.
- 8:09SPEAKER_02: And yes, I also slipped on conveyor sometimes because I was spending so much time on the job.
- 8:13SPEAKER_02: Not totally the best uh solution in the world.
- 8:17SPEAKER_02: Um, but the reason why the system failed was because the real world isn't this nice, neat ones and zeros, yes and no, always going to work the way you expect it situation.
- 8:32SPEAKER_02: It's analog.
- 8:33SPEAKER_02: It's it's complicated.
- 8:35SPEAKER_02: It's it's got so many variables that are difficult to think through.
- 8:40SPEAKER_02: For example, how fast is that conveyor moving?
- 8:45SPEAKER_02: Well, what they wanted was they want, I believe, somewhere around 60 boxes per minute to go through the scanner.
- 8:53SPEAKER_02: That means one per second.
- 8:55SPEAKER_02: Now, if you think that through, you're like, well, that's not a problem, right?
- 9:00SPEAKER_02: Well, there's a lot of limitations there because when that barcode gets read, you need to have less than one second to figure out what to do that box before the next box is in line.
- 9:12SPEAKER_02: Otherwise, you're backing up your queue of boxes.
- 9:15SPEAKER_02: But worse, there was, I think, about three or four feet before the first gate.
- 9:22SPEAKER_02: Well, that means that I have to figure out and talk to the API and get back where it goes and tell the system when to open the gate within that three-foot span, which by the way, if a shoebox is a foot long, that means it's going one foot per second.
- 9:39SPEAKER_02: So it's ripping quite along.
- 9:42SPEAKER_02: So I gotta figure out really quick what to do with that and execute that action.
- 9:46SPEAKER_02: And so there were times where we just missed.
- 9:50SPEAKER_02: And so it closed in the wrong box.
- 9:52SPEAKER_02: We sent the wrong box the wrong way, caused snarls.
- 9:55SPEAKER_02: But then we think of the fact that, okay, yeah, if you have a pair of work boots, they're pretty heavy and they're pretty sturdy, and that's a pretty big box.
- 10:03SPEAKER_02: But what if you have a pair of work boots and then a pair of baby shoes in a tiny little box, and then another pair of work boots?
- 10:14SPEAKER_02: How does a scanner get down in that angle?
- 10:17SPEAKER_02: So we have to figure out how to space them out differently.
- 10:20SPEAKER_02: But then, this is the one that made me laugh every time, is because of the way that the pop-up worked, we didn't have like these arms that came out to divert.
- 10:30SPEAKER_02: We had pop-up rollers that rolled the other direction.
- 10:32SPEAKER_02: And so the pop-up would pop up and the box would roll the other direction and then down that side conveyor.
- 10:38SPEAKER_02: Well, that worked fine for work boots.
- 10:40SPEAKER_02: But what happens when you've got a little pair of baby shoes that are on the rollers before they pop up?
- 10:48SPEAKER_02: Well, what happens is they throw the baby shoes in the air because of how fast they're coming up.
- 10:53SPEAKER_02: And then what happened was more often than not, it would pop the lid off and at least one shoe would come out.
- 11:00SPEAKER_02: And then that one lone baby shoe would circle the conveyors until someone pulled it off, which again just made me laugh because I found it quite funny.
- 11:11SPEAKER_02: Um, so those are real world issues.
- 11:14SPEAKER_02: All right.
- 11:15SPEAKER_02: So why is it that it's not just a simple, let's build some simple logic here?
- 11:23SPEAKER_02: Well, because the real world is so complex.
- 11:25SPEAKER_02: We have to think about the speed of the conveyor, we have to think about the size of the box and the weight of the box and all these issues that are just the tip of the iceberg.
- 11:35SPEAKER_02: What if the box is turned sideways?
- 11:36SPEAKER_02: What if the barcode's in the wrong spot?
- 11:39SPEAKER_02: What if the reader fails?
- 11:41SPEAKER_02: Or what if the rollers jam?
- 11:43SPEAKER_02: What if all these things happen?
- 11:46SPEAKER_02: And this is where the real world kind of intrudes on this nice clean digital world.
- 11:53SPEAKER_02: So that's where my real skill as a developer came into play.
- 11:58SPEAKER_02: It wasn't the somewhat simple setting things up, and that was still mid-level developer complexities of, okay, hey, talk to a barcode reader and all the rest, but it was still simple compared to figuring out how to interact in the real world, how to overcome each of these issues, and what workarounds could we do in order to fix all these things.
- 12:26SPEAKER_02: And some of them were hardware fixes, some of them were software fixes, some of them were caching issues, and there was a number of different creative solutions we had to come up with in order to get the shoeboxes to come around the conveyor at the speed the company wanted.
- 12:45SPEAKER_02: And just as a side note, of course, once we got that speed and we were everything was working great, they want to speed things up.
- 12:52SPEAKER_02: And that causes a whole new cascade of issues.
- 12:56SPEAKER_02: Of course, they do.
- 12:57SPEAKER_02: So that's kind of the real world of how software development works.
- 13:02SPEAKER_02: It's not just a simple, oh, create simple logic, create a simple form, and it just somehow works.
- 13:08SPEAKER_02: That's the easy part.
- 13:10SPEAKER_02: The hard part is what do you do with the complexities of the real world?
- 13:15SPEAKER_02: So let's talk about some of the reasons why we can't just replace software developers with these other solutions.
- 13:25SPEAKER_02: And we're gonna start off with outsourcing, which is kind of weird because outsourcing is just people, right?
- 13:33SPEAKER_02: So it's people in another place.
- 13:34SPEAKER_02: So you'd think that that's totally possible.
- 13:38SPEAKER_02: And it is the closest thing to replacing developers since it's replacing developers with developers who just get paid less.
- 13:46SPEAKER_02: Okay?
- 13:46SPEAKER_02: And companies love paying people less.
- 13:49SPEAKER_02: So yes, work can be done remotely, and that work can be to the same level as what you're doing locally.
- 13:58SPEAKER_02: But the downside of outsourcing is that building logic is hard, especially when you don't understand the business.
- 14:09SPEAKER_02: And especially when you don't see the results of your work directly.
- 14:14SPEAKER_02: I worked once for an organization that was in uh multiple different states, naturally multiple different countries, but I never worked in other countries.
- 14:22SPEAKER_02: So I worked for an international organization and we were working on a simple, at the time, I think it was we're talking like 1998 or so, I was working on an access database that was a full application.
- 14:35SPEAKER_02: So it had forms and reports, and it had uh macros and interactions and some VB, uh VBA that ran the whole thing.
- 14:43SPEAKER_02: And I was working on it in one location, in one state, and then the actual application was about a thousand miles away.
- 14:55SPEAKER_02: So slow internet, large application, and the application tied into systems at that plant.
- 15:04SPEAKER_02: So I didn't have access to those systems, and I didn't have access to test it locally.
- 15:10SPEAKER_02: I had to test it by running it across the network, and that actually took minutes and even sometimes hours to test for one particular solution.
- 15:23SPEAKER_02: Well, it took me days and I could not figure out the problems.
- 15:28SPEAKER_02: Eventually, my boss said, Why don't we just fly you there?
- 15:32SPEAKER_02: And so they flew me out.
- 15:35SPEAKER_02: And when they did, when I arrived, I was within a couple of hours, I had solved all the problems and upgraded the system.
- 15:44SPEAKER_02: So the reason why is because I was outsourced.
- 15:49SPEAKER_02: I didn't have access to a lot of the things that the application did, and I couldn't see the results.
- 15:57SPEAKER_02: It was like working something with something minute, but having gloves on, you know, something small and trying to manipulate something small, but I had these big, thick gloves on.
- 16:06SPEAKER_02: It was very difficult to do.
- 16:08SPEAKER_02: And that can be the challenge of outsourcing.
- 16:12SPEAKER_02: When you outsource to a company that is, let's say, 12 time zones away, well, communication is difficult.
- 16:20SPEAKER_02: And then they don't have access to your business.
- 16:23SPEAKER_02: So that you say, hey, I want this built, and they say, okay, but then they build it and you're like, well, that's not what I was thinking.
- 16:30SPEAKER_02: Well, because they didn't have the broader picture of what the business does to kind of push back on some of those things.
- 16:37SPEAKER_02: And when you ask them to do certain things, you're like, I don't know how to do that because I don't see their interaction.
- 16:43SPEAKER_02: I can't really test these things.
- 16:45SPEAKER_02: And so it makes software development harder.
- 16:48SPEAKER_02: Now, there are tools that make it easier, there are systems you can put in place to make that easier, but it's still a difficult process when you're so disconnected from the end result or from the company.
- 17:01SPEAKER_02: So outsourcing isn't nearly as magical as companies want it to be, or as developers are scared it might be.
- 17:11SPEAKER_02: And yes, companies have gone full tilt into outsourcing.
- 17:15SPEAKER_02: But you know what?
- 17:16SPEAKER_02: Companies make bad decisions.
- 17:18SPEAKER_02: And oftentimes those are bad decisions.
- 17:21SPEAKER_02: So just because a company doesn't doesn't mean it's smart, nor does it mean they're gonna stick with it long term.
- 17:29SPEAKER_02: I've worked with a number of companies that that went from full on-site staff to full outsource staff or majority outsource staff to back to on-site staff because they realized the downsides once they got into it.
- 17:44SPEAKER_02: They looked at all the positives, there are positives, like it's cheaper, but they didn't look at the negatives as well.
- 17:51SPEAKER_02: And so they kind of got blinded by that.
- 17:54SPEAKER_02: And when they saw the negatives, they realized, ooh, there's some problems here.
- 17:59SPEAKER_02: Now, again, you can make things better instead of just abandoning that process, but usually it's this pendulum swing back and forth.
- 18:08SPEAKER_02: So outsourcing doesn't replace local developers, at least not fully.
- 18:14SPEAKER_02: It's very difficult to make that work.
- 18:17SPEAKER_02: Next, low-code or no-code solutions.
- 18:21SPEAKER_02: Okay, these solve problems, usually simpler problems, but problems.
- 18:26SPEAKER_02: And that can mean it replaces some software development.
- 18:32SPEAKER_02: So the Microsoft Power Platform allows, for example, an accountant to create an application that can do things that normally a developer would have to do that makes their lives easier or improves what they can do or improves how effective they can be at their job.
- 18:49SPEAKER_02: So why aren't these replacing software developers?
- 18:52SPEAKER_02: Well, for one, it's harder to do edge cases.
- 18:57SPEAKER_02: When you do the simple stuff, you're like, wow, this is so powerful.
- 19:00SPEAKER_02: And you get to the edge cases, you're like, ooh, how do I do that?
- 19:04SPEAKER_02: Well, you can create your own code module before you know it, you're writing code, before you know that, you have to involve a developer.
- 19:11SPEAKER_02: And okay, so you're you're still involving developers, or you just don't do those edge cases.
- 19:17SPEAKER_02: Okay.
- 19:17SPEAKER_02: And either way, it still requires that someone develop the logic to solve the business need.
- 19:25SPEAKER_02: And that's where companies, again, can get into problems, is they have people use these low-code and no-code solutions thinking this will replace developers.
- 19:37SPEAKER_02: And in some cases, it might in some small ways, because of the fact that there are people in other positions that can do development-level tasks.
- 19:48SPEAKER_02: They just don't know the syntax of languages.
- 19:51SPEAKER_02: So they can still do those tasks.
- 19:54SPEAKER_02: But the reality is, for the most part, what happens is that they are either not replacing a developer, they're just adding more functionality because the amount of software development that has to be done is pretty much endless.
- 20:08SPEAKER_02: Um, or they're doing things poorly.
- 20:12SPEAKER_02: And that's the danger, is that we don't have that logic, that trained logical mind to think about edge cases and think about the what-ifs of development.
- 20:26SPEAKER_02: Well, then you your happy path, as I like to call it, works.
- 20:30SPEAKER_02: You know, the if you put in a first name and a last name and you know, push this button, it's gonna pop out hello, first name, space, last name.
- 20:38SPEAKER_02: Or it's gonna store it in the database as first name and last name.
- 20:42SPEAKER_02: That's the happy path.
- 20:43SPEAKER_02: What happens if the person has three names?
- 20:46SPEAKER_02: Or their last name is too short for your validation?
- 20:49SPEAKER_02: Or what happens if there's already a person by that name in the database?
- 20:53SPEAKER_02: Or and the list goes on of questions they don't really answer because they haven't thought that far through.
- 21:00SPEAKER_02: And what happens then is the application works.
- 21:03SPEAKER_02: And it works for a while until it doesn't.
- 21:07SPEAKER_02: And it can actually cause problems.
- 21:10SPEAKER_02: And that can cause even more problems, or you just abandon that project.
- 21:15SPEAKER_02: Either way, you kind of cause a mess.
- 21:17SPEAKER_02: So there's dangers there as well.
- 21:20SPEAKER_02: And again, these can be minimized if you are thinking things through carefully.
- 21:26SPEAKER_02: And low-code and no-code solutions can be an excellent way to improve your business's efficiency if you do it right.
- 21:35SPEAKER_02: But it's important because it's important you do it right because if you're just thinking, oh, this is gonna replace my software developers, probably the wrong call there unless you're misusing your software developers' time.
- 21:49SPEAKER_02: Okay?
- 21:49SPEAKER_02: And at the end of the day, you really need software development like people who have that logic skill to build those solutions.
- 21:57SPEAKER_02: All right, now the big one that everybody's talking about.
- 22:00SPEAKER_02: About AI.
- 22:01SPEAKER_02: Okay.
- 22:01SPEAKER_02: So what does AI do?
- 22:04SPEAKER_02: It mimics what it has seen before.
- 22:06SPEAKER_02: It can't solve new problems.
- 22:09SPEAKER_02: Now, if you are not familiar with software development or you are early on in your development career, you might think, Tim, that's not true.
- 22:16SPEAKER_02: I've seen it write new code.
- 22:19SPEAKER_02: No, no, you haven't.
- 22:21SPEAKER_02: Okay?
- 22:21SPEAKER_02: It might combine things in a way that seems new, but it's guessing.
- 22:27SPEAKER_02: So it's not really solving new problems, it guesses where things go.
- 22:31SPEAKER_02: It doesn't actually test anything.
- 22:33SPEAKER_02: Now, as a software developer, how often when you write new code or take code from different spots and combine it together, how often is it that that problem that combined code is bug free?
- 22:48SPEAKER_02: Would you be comfortable just doing that over and over again and calling it good?
- 22:53SPEAKER_02: No, I'd be terrified to do that.
- 22:56SPEAKER_02: That wouldn't work.
- 22:56SPEAKER_02: That's why when I teach people to develop in C sharp, I say, hey, test as early as possible.
- 23:04SPEAKER_02: Try things out.
- 23:05SPEAKER_02: Make sure that the code you have written works.
- 23:08SPEAKER_02: Try it out in small chunks because you don't want to write 400 lines of code and then have a problem.
- 23:18SPEAKER_02: So AI, that's all it's doing.
- 23:20SPEAKER_02: It's just throwing stuff together and it's either mimicking what it's seen before and those patterns, or it's just kind of trying stuff, which is why it's told me before, oh, here, use this library, which sounds super right.
- 23:34SPEAKER_02: It sounds like, yes, this is the right way of going about things until I find out that library doesn't exist.
- 23:40SPEAKER_02: It never existed.
- 23:41SPEAKER_02: And it's just kind of assuming that that could work.
- 23:45SPEAKER_02: And it sounds right, it looks right, but just not.
- 23:49SPEAKER_02: So it's not actually thinking.
- 23:53SPEAKER_02: It's not actually building logic.
- 23:56SPEAKER_02: What it's doing is it's writing code.
- 23:59SPEAKER_02: And again, what's the role of a software developer?
- 24:02SPEAKER_02: It's not to write code.
- 24:05SPEAKER_02: It is to build logic, it's to implement logic, is to develop logic and figure out how to piece together various bits of code or various ideas into a cohesive whole that works in the real world.
- 24:22SPEAKER_02: And that's the next thing is AI has no connection to the real world to evaluate and address real world problems.
- 24:30SPEAKER_02: Going back to my example of the conveyor system, well, even if I could have broken the problem down and said, okay, figure out how to talk to a barcode reader and it did it.
- 24:43SPEAKER_02: And figure out how to talk to a PLC and it did it.
- 24:45SPEAKER_02: Figure out how to talk to this API and it did it.
- 24:48SPEAKER_02: Which by the way, it wouldn't have because it's a custom API, but beside the point, even if it did all those things.
- 24:54SPEAKER_02: And then I said, okay, now figure out how to talk to each other.
- 24:58SPEAKER_02: Now write the logic for when to talk to who and how.
- 25:01SPEAKER_02: Even if it did all that, by the way, what I've done is I've done the logic for it and just asked it to do the steps, which the steps are just the code.
- 25:09SPEAKER_02: But even if I pretend that that is somehow AI doing my job for me, what happens when that little shoebox pops up on the rollers?
- 25:21SPEAKER_02: First of all, AI can't know that.
- 25:23SPEAKER_02: But even if it does, if I tell it a shoe box popped up in the rollers, it's going to go, uh, okay.
- 25:29SPEAKER_02: Like, how does it know what to do?
- 25:31SPEAKER_02: How does it know it's a problem?
- 25:33SPEAKER_02: How does it know how to solve that problem?
- 25:35SPEAKER_02: How does it know how to think through the different parts of that problem?
- 25:40SPEAKER_02: How does it break down the various things that need to be evaluated, evaluate each one, and identify where the problem is when that problem might not be in one spot?
- 25:51SPEAKER_02: It might be that we need to slow the conveyor down a little bit.
- 25:54SPEAKER_02: We might need to add a speed up section to one section of the conveyor.
- 25:58SPEAKER_02: We might need to lengthen, if we could, we couldn't, but we might need to lengthen one piece of conveyor.
- 26:04SPEAKER_02: We might need to pop the rollers up early, that's one of the solutions we did, and so on down the list of potential solutions.
- 26:12SPEAKER_02: So it's not just potentially one thing you have to do, but multiple things in concert.
- 26:18SPEAKER_02: How is AI going to know how to do that?
- 26:21SPEAKER_02: Well, it can't at this point.
- 26:24SPEAKER_02: So it's not actually developing logic, it's just writing code and guessing in the dark.
- 26:32SPEAKER_02: Now, you may have heard about AGI, which is general intelligence, where artificial general intelligence, which is where it's writing or building logic.
- 26:44SPEAKER_02: And there have been rumors that AGI has been started or that there is AGI out there somewhere.
- 26:51SPEAKER_02: Um, this is more like Terminator type stuff, you know, where it makes decisions.
- 26:56SPEAKER_02: And quite frankly, it's a little bit terrifying that we're even pursuing this, but this is how the human race progresses or kill itself.
- 27:03SPEAKER_02: Um, so from the experts I have seen, AGI is a very long way off.
- 27:12SPEAKER_02: In fact, the people who are working on AGI, one of the leading firms, has said we have to throw out all of our tools for AI and kind of start over because they're not adequate for AGI.
- 27:25SPEAKER_02: It's not a tomorrow solution, most likely.
- 27:30SPEAKER_02: It's more like a 30 years, 50 years in the future if we can even do it.
- 27:37SPEAKER_02: Now, things move a whole lot faster in the tech realm than in any other realm.
- 27:45SPEAKER_02: And so, you know what?
- 27:46SPEAKER_02: Would it be stunning if it happened next year?
- 27:50SPEAKER_02: Well, yeah, it would.
- 27:51SPEAKER_02: But at the same time, it wouldn't be a total out of the blue, what?
- 27:55SPEAKER_02: Okay.
- 27:55SPEAKER_02: It you know, there might be, but the likelihood is very, very, very, very low.
- 28:01SPEAKER_02: But if it did, AGI is still not going to come for developers' jobs.
- 28:08SPEAKER_02: At least not for a long time.
- 28:10SPEAKER_02: Because even at that level, you would have to build something up to the point where it could then learn to reason at a very high level.
- 28:21SPEAKER_02: This is why developers are in demand.
- 28:24SPEAKER_02: This is why the number of development jobs is increasing at a very fast pace.
- 28:31SPEAKER_02: And yes, you may say, well, there's so many jobs out there that you know aren't filled, or maybe there's you know, there's no jobs in my area.
- 28:38SPEAKER_02: Yes, there's region-based specific stuff and it's also economic stuff around the world.
- 28:43SPEAKER_02: But overall, the number of jobs for developers is going up.
- 28:47SPEAKER_02: But filling those jobs is difficult.
- 28:50SPEAKER_02: Some jobs stay up in four months or even years.
- 28:53SPEAKER_02: It's because finding a person that's not just, I know code, but I know how to build logic well is difficult.
- 29:04SPEAKER_02: It's a trained skill that takes a lot of work to master.
- 29:10SPEAKER_02: And so if that's true for humans, and the human brain is has no equal when it comes to artificial, okay?
- 29:20SPEAKER_02: The human brain is so much further ahead of anything we have on the entire planet that it's not even funny.
- 29:26SPEAKER_02: Okay.
- 29:27SPEAKER_02: So if it takes that much work to find a human for a human to do these roles, how much more work would it take to build up an AI to the point where it could do that work?
- 29:40SPEAKER_02: Now, if it can, first of all, it's coming for all of our jobs, not just developers.
- 29:46SPEAKER_02: It's coming for every job.
- 29:48SPEAKER_02: And what does that mean for society?
- 29:50SPEAKER_02: I have no clue.
- 29:51SPEAKER_02: But I think at this point, it's still science fiction.
- 29:54SPEAKER_02: It's not science.
- 29:55SPEAKER_02: We have not gotten to the point yet where we have developed a GI.
- 30:00SPEAKER_02: So don't worry about it because you can't really plan for it.
- 30:05SPEAKER_02: Because if it comes for all the jobs, what happens to the rest of everybody else?
- 30:08SPEAKER_02: I don't know.
- 30:09SPEAKER_02: And no one does.
- 30:10SPEAKER_02: So, as a developer or as an aspiring developer, what do you do?
- 30:16SPEAKER_02: Well, the first step is to understand how to write good code.
- 30:21SPEAKER_02: And you might say, well, Tim, developers don't write code, they write logic.
- 30:24SPEAKER_02: Yes, but how do they write logic with code?
- 30:27SPEAKER_02: And so if you don't have the tools in the toolbox, you might even know how to or what logic you want, but you don't know how to do it.
- 30:39SPEAKER_02: So you need to be able to express yourself.
- 30:42SPEAKER_02: And the way to do that is to understand code first.
- 30:47SPEAKER_02: This is also why I tell people don't skip around from language to language to language.
- 30:52SPEAKER_02: I hear developers, new developers often say, oh, well, I changed over this now.
- 30:57SPEAKER_02: I'm over here now, I'm over there now.
- 30:59SPEAKER_02: Stop.
- 31:01SPEAKER_02: Go deep into one language.
- 31:04SPEAKER_02: Because developers aren't about writing code, they're about building logic.
- 31:10SPEAKER_02: And the way to figure out how to build good logic is first to have the tools to express that logic.
- 31:17SPEAKER_02: And that means have a good understanding of a language.
- 31:22SPEAKER_02: Now, once you have a good understanding of one language, then it's gonna be easier to switch to other languages because you're just gonna be thinking, how do I do this concept in another language?
- 31:33SPEAKER_02: And it can be a whole lot easier to go to your second language when you've gone deep into one first.
- 31:39SPEAKER_02: Now, the next thing is, okay, so first you understand how to write good code, but then I want you to practice building applications repeatedly.
- 31:51SPEAKER_02: This is where you practice your logic.
- 31:55SPEAKER_02: If you only build one tiny application or get stuck on building the first application and quit, well, guess what?
- 32:02SPEAKER_02: You're not building logic.
- 32:03SPEAKER_02: So what are you not doing?
- 32:04SPEAKER_02: You're not preparing to be a developer.
- 32:08SPEAKER_02: You're just preparing how to write code, which is mostly replaceable by an AI.
- 32:16SPEAKER_02: So you're putting yourself in danger.
- 32:18SPEAKER_02: Learn how to build logic by continually practicing building applications.
- 32:25SPEAKER_02: And then the third point is learn the business you are working in.
- 32:32SPEAKER_02: This is something often overlooked.
- 32:33SPEAKER_02: And it's another one of those things that people who switch careers often devalue, and it's to their detriment, is if you have a skill in industry, not coding, just if you've worked, let's say you've worked as a realtor.
- 32:49SPEAKER_02: Well, guess what?
- 32:50SPEAKER_02: You understand that industry.
- 32:52SPEAKER_02: What does that make you uniquely qualified to do?
- 32:55SPEAKER_02: Build good logic for applications in that industry.
- 33:00SPEAKER_02: You can ask good questions, you know the business, and you know where the pitfalls are, you know where the edge cases are, you know what questions to ask to really get to the heart of what your customer or client wants.
- 33:14SPEAKER_02: So that real-world experience is really helpful.
- 33:17SPEAKER_02: So if you're working in a business, learn the business, not just coding, but learn how the business works.
- 33:26SPEAKER_02: So by doing so, you'll have a better appreciation for how to build that software well, how to write good logic, and how to ask good questions.
- 33:36SPEAKER_02: You'll become a much better developer doing so.
- 33:38SPEAKER_02: And then finally, learn to think beyond the what to the why.
- 33:45SPEAKER_02: So when your boss asks you, I want this, that's the what.
- 33:50SPEAKER_02: I want this form.
- 33:52SPEAKER_02: Why?
- 33:54SPEAKER_02: Understand the why.
- 33:55SPEAKER_02: Learn the why.
- 33:56SPEAKER_02: Because when you do, you can ask better questions.
- 33:59SPEAKER_02: And you can say, okay, this is what you want, and and here's why.
- 34:04SPEAKER_02: But if you want that, you're probably gonna want this next, right?
- 34:08SPEAKER_02: So maybe you can develop this with a mind to continue to keep going.
- 34:12SPEAKER_02: Or if you if you want it for this reason, you don't need these pieces.
- 34:19SPEAKER_02: So understanding the why can help you build better logic to support what you're doing.
- 34:25SPEAKER_02: If they just say build this and you do this, you're gonna get some disconnects when it comes to what your boss is thinking versus what they said.
- 34:34SPEAKER_02: And I think it gets some frustration in the mix because you're you're doing what you're asked for, but you're not doing what they want.
- 34:41SPEAKER_02: And that's where, again, outsourcing struggles because they have a hard time getting to the why because they're just told the what and told just do it.
- 34:50SPEAKER_02: And that's a problem.
- 34:51SPEAKER_02: That's where you need to have better communication with an outsourced person or group.
- 34:56SPEAKER_02: So those are the things that as a developer you can do.
- 35:00SPEAKER_02: Learn to write good code first.
- 35:02SPEAKER_02: Practice building applications repeatedly.
- 35:06SPEAKER_02: Learn the business you're working in, and then learn to think beyond the what to the why.
- 35:12SPEAKER_02: All right, so that's my kind of long-winded answer to the question: what is the real job of a software developer?
- 35:20SPEAKER_02: Thanks for listening.
- 35:22SPEAKER_02: As always, I am Tim Corey.
- 35:24SPEAKER_00: Thank you for joining us for this episode of Def Questions.
- 35:27SPEAKER_00: Tim is committed to making it easier for you to become a developer.
- 35:30SPEAKER_00: If you would like to help make more content like this possible, please like, subscribe, rate, and share Dev Questions.
- 35:37SPEAKER_00: You can also send your questions to questions at IamTimcorey.com.
- 35:42SPEAKER_00: Until next time, remember, you are too smart and your time too valuable to waste it making all the mistakes Tim did.
- 35:50SPEAKER_00: When you're ready to learn to think and code like a professional developer, head over to imtimcore.com and enroll in a course.