Note: This is the second part of the interviews to the Complete Developer Podcast hosts. Read here BJ Burns interview.
By: Yadira Y. Caro
In the Complete Developers Podcast, William Gant is described as the more experienced developer of the duo of friends. His career spans over two decades as a developer. In the show, he shares with his friend BJ Burns the lessons he has learned along the way related to code, and dealing with customers and teammates. In this interview, Will talks about his experience, how he started the podcast and some advice for developers.
Why did you decide to become a developer? Did you know that since you were in school?
I was initially going to be a Biology major and I got really interested in biologically inspired computing algorithms, like gene expression programming, that kind of stuff. Once I got to college I double-majored, and the computer classes were late in the day while the biology classes were early in the day. Those two lifestyles just did not go well together, and so, one of them had to go (laughs).
What were some of the first programs or things you learned as a developer?
I started out with GW-BASIC. This was way back in the early ’90s. Then I got into Visual Basic for Applications, then just regular Visual Basic, and ended up moving to .Net when it came out. I’ve been mostly doing that. I had foray into a bunch of other languages. I’m always trying new stuff out, seeing what ideas I can take from another platform.
As far as programs, the first one that I wrote and felt worked really well, was actually a prank. I made a program that could take a screen capture of somebody’s screen and put it flipped upside down with an upside down message box that says “Windows has detected that your video card was installed upside down.” I made it in the background of my uncle’s computer where my dad could hit a button and do that to my uncle at random, because they worked in the same office. He wasn’t real happy about that (laughs).
As a developer, what do you think are some of the misconceptions of people from development or developers?
I think a lot of people have an incorrect understanding of the difficulty level, either thinking it’s more simple than it is or thinking that it’s more difficult. There’s a broad range of difficulty levels in the industry. (As a developer) You kind of get into the habit of breaking stuff down to where it’s simple enough, where you can actually deal with it. A lot of people aren’t aware that that’s what you do versus solving a huge problem. It’s sort of like, ‘how do we fix the transit system in Germany’? You don’t start with, ‘I’m going fix the transit system in Germany.’ You go, ‘I’m going to dig a ditch right here, and then work my way through.’
I would also say a lot of people just generally don’t understand how you give instructions to a computer. The way I’ve always explained it is: imagine if you had somebody that took everything completely literally and didn’t have any external source of information. How would you explain stuff to them? That’s the way you’d explain it to a computer.
People have seen all these hacker shows, they’ve seen like, the guy in The Matrix, with the characters going crazy on the screen, and they think that’s what we do. I mean, it would be cool and all, but you know, we don’t.
“A lot of people just generally don’t understand how you give instructions to a computer. The way I’ve always explained it is: imagine if you had somebody that took everything completely literally and didn’t have any external source of information. How would you explain stuff to them? That’s the way you’d explain it to a computer.”
For anybody who wants to become a developer, what would you recommend to get started?
I would probably work backwards. I would start with, ‘what kind of development do I want to do’? If they’re doing web development, there’s probably not a whole lot of reason for them to go through a degree program, just because it’s overkill. The technology is going to be old. If you’re doing typical business programming, you might want to get an accounting degree and minor in computer science, or vice versa, so that you know what’s going on there. It’s not a discipline that lives by itself. It’s always attached to something else, and that something is not necessarily technical related.
Why did you started a podcast?
BJ was going through a pretty rough phase in his life when we started the podcast and I had taken him on as an apprentice. I was teaching him how to do software development so that he could get his financials back where he needed to be. He suggested the podcast idea, and I actually didn’t think it was going to work, but I went along with it.
I bought the microphone and thought, ‘okay we’ll probably do this for five or six episodes, then he’ll get bored and I’ll have a nice microphone.’ We’re like 170 episodes in now and that’s obviously not happened. I would say that it’s pretty darn near accidental when you think about it (laughs).
I didn’t realize how much I would enjoy it either. I thought that talking into a microphone was something that was going to intimidate me and that I was going to find really uncomfortable. I did for a while, but now, I’m not. I used to be painfully shy, and I’m completely over that now.
How do you come up with ideas for the show?
If you brainstorm on creative stuff for long enough, eventually, you realize that you’re swimming in ideas. In the beginning, it was tough. I did not know if we were going be able to come up with ideas for a podcast each week, and now I think we’re like 150-something ahead. We could go for like another three years with no new ideas and not run out of material.
In the podcast you mention that you’re an aspiring software architect, is that something you’re still pursuing?
We put that in the beginning of the podcast as my introduction because that was kind of my goal then. I think before the first episode, I actually got promoted to that at work. I deal with a lot of the software architecture, just like big picture design of the software: how we’re going to scale, how we’re going to accommodate major software changes going forward, how we’re going to make our team be able to develop faster, that kind of stuff. It’s fun! It’s the hardest code too, so it’s the best.
How is your usual process when it comes to development?
The first thing I’d recommend is figure out who the real stakeholders are, because a lot of times you go in and the person you’re talking to is not really the one that’s got the authority. The next thing would be to see what things have to get done and what’s the priority level like. What do the delivery milestones actually mean? What real result does that create for the company? A lot of times, what you’ve got to do is shuffle things and go, ‘well, I could hit a milestone that’s not quite so ambitious, but it’s 20% of the work and it gets 80% of the result. I can do that right now and get them into a better place.’ That’s’ usually the way I look at it.
I don’t know that the tech is necessarily the most important thing. The tech is how you deliver it. The process is how you figure out what to deliver.
Is the show targeted particularly for developers?
Yeah, it was initially for developers. Then we started getting a lot of people that weren’t developers who were listening, and we started realizing, ‘hey, we’ve made content that’s kind of bigger than just development.’ That happened organically.
Do you apply any of the things from your job into your personal life?
They kind of bleed over into each other. Since I’ve been doing this for so long, I’m not sure exactly where the seam is anymore. The way that I have to manage multiple projects, I’ve found that I use that in the kitchen on Thanksgiving morning. I don’t think twice about it until the end of the day and I’m like, ‘wait, I just did a Gantt chart for making vegetables’ (laughs).
I don’t know if it’s maybe an overly organized personal life that has gone over into work or if it’s the other way around. I wasn’t an adult when I started writing code. The first code I got paid for was 20 years ago this week.
What was it, what did you developed?
I was just helping a friend of one of my programming teachers with a development problem that he just could not figure out. The teacher was basically like, ‘hey, I’ve got this kid in the class, he’s a giant nerd, he can probably help you, and he’s probably cheap.’ And it worked out!
What resources have helped you in your job, either books, podcasts or websites, or anything like that that you would recommend?
Other than our stuff, anything by John Sonmez. He’s got simpleprogrammer.com. He’s also got a book called The Complete Software Developer’s Career Guide and a book on soft skills. The coding stuff is almost the easy side of things, but the interpersonal things in figuring out how to work well with a team, seems to be a spot that a lot of people really need a lot of help on.
If you’re getting into the hard tech, the Gang of Four’s Design Patterns book, Code Complete , Clean Code. There’s also a good book called Don’t Make Me Think, which talks about how you design things. As far as organizing things, I would probably look at Getting Things Done, by David Allen. I have a modified version of that system. It doesn’t work perfectly for creatives, but it works well enough as a start, and then you can fix it once you find the problems. My to-do list has like, 800 items on it right now. So, I have to have organization or I’ll go crazy.
Do you have questions, feedback or suggestions of people to interview? Contact me!