Coding 101 42 (Transcript)
Father Robert Ballecer: Today on Coding 101 it’s a wildcard episode and we’re sitting down with our very own Patrick Delahanty to see if he’ll share some of the secrets of the code warrior.
Netcasts you love, from people you trust. This is TWiT. Bandwidth for Coding 101 is provided by CacheFly. At cachefly.com. This episode of Coding 101 is brought to you by Squarespace. The all in one platform that makes it fast and easy to create your own professional website or online portfolio. Now introducing Squarespace 7 with even better site management tools and other improvements. For a free 2 week trial and 10% off, go to squarespace.com and use the offer code C101. And by Lynda.com. Lynda.com is an easy and affordable way to help you learn. Instantly stream thousands of courses created by experts on business, software, web development, graphic design and more. For a free trial visit Lynda.com/c101. Lynda.com/c101.
Fr. Robert: Welcome to Coding 101, it’s the TWiT show where we let you into the world of the code monkey, turn you up to be a code warrior. I’m Father Robert Ballecer and I’m joined here today by Mister Patrick Delahanty. If you’ve watched Coding 101 at all you know that he was our code warrior for a module. He taught us all about Perl.
Patrick Delahanty: Yeah, it was a lot of fun.
Fr. Robert: We’ve changed, Patrick. We’ve moved to a different format where we will be interviewing our guests and then having them do a module for us. Not a lesson module, but a project module. Which I think is actually a lot better because it allows us to see how people go through the progression of the logic as they program and then they can actually show us that logic tree in action.
Patrick: Yeah. That sounds great.
Fr. Robert: Yeah. But before we do that I want to talk to you because one of the things that we’ve noticed about programming shows is that many of them are very good about throwing knowledge about coding and how you code and the different languages and how the different concepts come together. But I want to know a bit more about the people who make a living doing coding. Because it’s one thing to know how to code, it’s another thing to actually code in the real world.
Patrick: Yeah. And the real world application was quite an adjustment to have to make after graduating college.
Fr. Robert: Okay, let’s back up. Let’s talk about this. When was your first encounter with a computer?
Patrick: I think that was around 1979 in Auburn, Maine. My uncle had bought a Commodore PET and it was this magic device to me and I wanted to know how to use this so he showed me how to load a cassette tape and load up poker games…
Fr. Robert: What kind of computer was this?
Patrick: Commodore PET.
Fr. Robert: Oh wow. Okay.
Patrick: We used to have one on the set here, it’s down in the basement now. That was the first computer I ever learned how to use. I didn’t do any programming on it but it was my first exposure and I was in love with it.
Fr. Robert: Now the cassette, I can’t remember the cassette on the pet. Was it an audio cassette or was it one of those larger cassettes?
Patrick: No, it was an audio cassette.
Fr. Robert: I remember that as time went on because the very first computer I had that used the cassette was a TI994a and the thing about that was the computer didn’t control the cassette at all, so you had to click load on the computer and it would tell you when to hit play on the cassette. Later on they got super advanced and you had computers that could actually start the cassette so it would load properly.
Patrick: Yeah I was 6 at the time so I don’t remember the details. But I’d have to load the cassette. And there were a few other games but that was my favorite poker game. And it still is today. I don’t remember what it was about it, but I loved that poker game so much and that’s how I learned to play poker. I’m still not very good.
Fr. Robert: That was your first encounter with a computer, what was your first encounter with programming? Did you ever get a chance to get behind the scenes on that pet and maybe change some of the lines?
Patrick: Not on the PET, but when I was in 4th grade my parents signed me up for a summer camp thing that was for computers. So we would go down to the high school and go to the computer lab. It was filled with Apple IIs. and so we learned how to go graphics on it, just low-res graphics and program in basic and that’s where I really fell in love with this and I came home from that like, we need a computer. And I think it was that Christmas when I got the Apple //c. This is what we used at the high school. I think they were 128k. Just green monochrome displays and we did low-res graphics and actually plotted out the not pixels, but giant chunks. Then we made programs and just do easy little games. So really basic programs, but then I got a computer and that’s where it really started. And I’ve learned a lot more Applesoft BASIC on that //c which I had for quite a long time.
Fr. Robert: I want to jump into your mind a little bit here because a lot of us who grew up in the era of the very first IBM Clones, I think the first actual computer computer. The one that I would say that was no longer just a toy. Like the TRS or the 994A was the actual IBM PC. Like an 8088 and across the road we had people who got Apples. And it was interesting to see how people could divide. Because I liked programming, but I was more of a hardware person. My neighbor liked programming and he could care less about the hardware. And that was the whole sort of EE computer science division as we went down the road. Where did you fall on that?
Patrick: I was definitely on the computer science path. And I had the Apple, I didn’t care about the hardware. I wanted a modem, an external disk drive, a color monitor and I wanted hardware, but inside the machine, it had 128k of RAM, that was fine.
Fr. Robert: So yeah, I get it. You were one of these guys who, I don’t care what’s in the box, I just want the box to do something so I can program. Mine was, I like programming, but I’m more concerned with what goes in the box.
Patrick: Yeah. And I was willing and able to push that Apple //c to its limits. I eventually upgraded. It had a clock, which I had to take the processor out, put a clock chip in, then put the processor back in. that was the only upgrade I ever did to it. But because it had a clock, that meant that I could then create BBS software. And so I got a program called Modem Works. Which allowed you to write BBS software and interface with the modem using Applesoft BASIC.
Fr. Robert: There are some people out there who may not know what a BBS is.
Patrick: Oh yeah.
Fr. Robert: We started with BBSs, it was a bulletin board system. And the idea was you could leave your computer on, which back then, people were still having that great debate of well, do you shut it off, do you use it? But then you would allow people to dial in over a modem and access your computer. Some people would say, no, that didn’t exist before the internet. But it did. We just called it something else.
Patrick: I used to send email back in the late 80s, I would dial up a BBS, and it was some guy who would have usually a Commodore 64 or an IBM, there was a Mac. And they’d have it running in their house and I would log into their system, I would be the only person online, on this system at that time. And I would do whatever I needed to do, send email, download things, play door games. And then log out, and then somebody else would go in. a lot of them had time limits, otherwise somebody would be on there all day. But I wrote my own BBS and id have friends call it because I didn’t have a dedicated line. So I was like oh, try it out. But it was fun.
Fr. Robert: I had a 286 that I had scrounged together doing some dumpster diving. And I was running it off of a 2MB hard drive. At the time it was so much space. And I remember that I didn’t have a dedicated line but our neighbors had 3 lines and they were always gone. So there may have been some stealing of phone service for a while. But it was cool because I would sit there and you’d wait for the modem line to light up and you’re like oh, someone is dialing in. and then it was a chat room and I could have up to 4 people including myself, chatting at the same time. It was something that just blew my mind at the time. I was like wow. And I didn’t care about the BBS software, I could customize it when I wanted, but I wanted a faster computer and a bigger storage place so I could put more stuff and download. And that’s kind of what drove me. It sounds like for you, you liked really customizing that software, that back end.
Patrick: Yeah. --- L/A Blues, and they had two lines, but they also had door games so you could go into this BBS and play games as part of it. And one of them was called Trade Wars. Trade Wars 2002. Because “2002 is the future”. And so I remember doing some customizations to that because they had different spaceships and I think I changed some of the spaceships so they were more Star Trek-y.
Fr. Robert: I think I remember that. I was horrible at that.
Patrick: I loved it. ANSI graphics, it was so much fun playing that. Even though I didn’t run a BBS, I bought my own copy of Trade Wars and I probably still have the registration letter that I got mailed but when I went to college I ran it locally in my dorm so that my roommates could come in and play and we had our own little match going.
Fr. Robert: The sysop that ran the box that I played Trade Wars on, he had a big BBS and it had hundreds of users. And it’s a turn based game. And normally it was that you could make one turn a day. I think that was the default. He ran it so that you could make one turn an hour. So if you think about Farmville, this was like that version of Farmville. You had to call in once an hour to take your turn otherwise you would waste the turn.
Patrick: There are websites out there that run Trade Wars now so people can still play this if they want to. I spent so much time on that game and I haven’t played it in decades now. But it was a lot of fun.
Fr. Robert: Let’s move past the nostalgia here. So we’ve established your cred as a geek. You obviously are a geek. You went way back to the days of tape drives, you went through the BBS era, what made you think that this hobby that you had could become a career? Something that you could actually make a living doing?
Patrick: Well I knew when I was looking at colleges, I was looking at Computer Science. I knew that early on that I wanted to do Computer Science. I wanted to program computers for a living. And I knew there was a thing people did, I saw all these great games and I wanted to do games like that or programs like that, but I wasn’t really sure exactly what- like did I want to do the heart of the program, did I want to do the interface, I hadn’t really figured that out yet, I just wanted to do something with computers and programming.
Fr. Robert: So what were the games of your era? For me, when I was in high school and college, the state of the art were like Sierra. The Kings Quest series, what was it for you?
Patrick: There were really not stand out games, because I was on Apple //c. I used an Apple //c until 1991. When I went to college. And that’s long beyond the life of the Apple //c. But I played Flight Simulator and Test Drive and Ultima. When I went to college I got a PC. It was a 386SX-16. I used that for one year until I got sick of it and switched to a Mac.
Fr. Robert: So we lost you early. We lost you to the dark side early.
Patrick: Yeah. I did not care for the PC. And I just loved the Mac. And when they introduced the LC, the "lower cost", I jumped on it. I got the LC 2. And I was doing UNIX programming. Because I went to Worcester Polytechnic Institute which had- it was near Digital Equipment so they had a lot of Digital servers, they had DEC Workstations and I think later on they ended up getting an Alpha. But they had a lot of DEC systems, PDP. Those were on their way out when I got there. Everything was UNIX-based and so all the Computer Science classes were- except for a couple- were doing things in UNIX. So I knew Pascal by the time I got to college but I took C, I took Assembly once and I was done with it. And then as I was going through college I realized I wanted to focus on user interface and there was a human computer interaction class. I don’t even know if user interface was a term at the time. But I loved that Human Computer Interface class and aced that and knew that that’s what I wanted to focus on.
Fr. Robert: We’re speaking with Patrick Delahanty, he’s the programming guru, the expert here in the TWIT Brick House. When we come back could we talk a little bit about those college years? I want to talk about those formative years and how you really moved into that UI side. Because I know that’s really what your passion is for.
Fr. Robert: Fantastic. Before we do that lets take just a moment to talk about the first sponsor of this episode. Now if you’ve got a project and you want to get it out to the world, you could be a photographer, you could be a videographer, you could be someone who’s a programmer, you want to show someone the latest build of trade wars 4000 that you just created, you need a site. You need something that’s going to give you the domain name that you want, something that’s not so hard, that you spend all your time programming the back end. You want something that looks perfect, brilliant, right without a lot of effort and expense, and that’s why we’ve got SquareSpace as a proud sponsor of coding 101. Now SquareSpace is your one stop shop for creating a location, a brand online. They just released SquareSpace 7 and that gives you a much easier unique web presence. It now includes more all in ones and a simpler to navigate and operate operating system that gives you a seamless experience between content creation and content promotion. It’s also easier to edit. Squarespace 7 allows you to live edit on one screen. Which means there’s no more toggling between site manager to preview mode. You can even preview designs in device mode so you can see how a site will look on tablets and mobile devices. Squarespace gives you instant access to professional stock photography from Getty, if you’ve ever designed a site on your own you know how this can sometimes be a little bit tricky. If you want to use artwork a lot of it is licensed and you may not know where to go to. Well now that’s part of your package with SquareSpace. They allow direct purchases inside the platform from Getty images, just $10 each for your site so you’ll always be legal. They’ve also branded themselves with Google Apps so you can have branded email for your small business automatically set up when you sign up for a SquareSpace account. No more going through some weird UI in order to set up the email accounts you want. If you’ve ever used Gmail, you now get that ease and power inside your SquareSpace package. They also have templates that are designed for specific professions. They can work with musicians, artists, architects and chiefs. They design category specific templates that cater to the site requirements for industry groups. For example, the new horizon template is laid out for bands featuring tour dates, music players and a merch store. They also have their developed platform out of beta, so you can customize your site exactly as you wish. We know that you’re all coders, if you want to code, if you want to develop, they give you the hook so that you can change how your site acts. You can move beyond the templates and customize it so you get a truly personal experience. Squarespace also gives you ecommerce with all subscription plan levels for which it’s available. That includes the ability to accept donations, which is great for nonprofits, cash wedding registries, and school fund drives. And it’s easy to use. But if you want some help, they’ve got live chat and email 24 hours a day, 7 days a week, plus there are self-help articles and video workshops to browse at your leisure. Of course SquareSpace is mobile ready. You’re not going to have a site that looks good on a pc, desktop, laptop, whatever, and then looks horrible on a mobile device. Squarespace gives you the tools so it will automatically adjust for the experience of the user who is viewing it. It’s one of the things I like about their back end. Here’s what we want you to do. We want you to start a free 2 week trial with no credit card required, and start building your website today. When you decide to sign up for SquareSpace, make sure to use the offer code C101 to get 10% off and show your support of Coding 101. And to begin using SquareSpace 7, existing customers go to the settings tab to activate all the new features. We thank SquareSpace for their support of Coding 101. A better web awaits, and it starts with your new SquareSpace web site. We’re here with Patrick Delahanty, the coding guru at the TWiT brick house. Patrick, let’s go to your college years. We’ve got people in the chatroom who are saying wait a minute, do you work on a Vac? Did you work on a PDP 11?
Patrick: Yes. VAX, I remember that. And also, somebody had mentioned Commander Keen, and that made me remember that WPI was located in western Mass. Where Software Creations, a large BBS was also located, so I could download all of those Apogee games for free and bring them home with me and upload them when I got back to Maine. But yeah, I used VAX systems. They had a lot of PCs there. They had Mac labs. They had a lot of stuff. But yeah, it was mostly UNIX and they start you out with C. and that’s kind of the basis. But then they learn Lisp…
Fr. Robert: What was your starting language? So when you got into Computer Science, what was the language they made you start with? For me, it was Pascal. Everything started with Pascal. I know we’ve moved on, what was it for your years?
Patrick: I actually learned Pascal in high school. I took a course in the local college because they didn’t have any other- they had BASIC in high school but they didn’t have anything else. So they said oh, you can take this course over at Bates College. So I took a Pascal course with a bunch of college freshman. And learned how to program Pascal there. And that was good because it broke me of AppleSoft BASIC and that line numbering and "goto" statements and everything. And so I got to learn functions and sub routines and a lot of the fundamentals I use to this day.
Fr. Robert: Wait, let’s talk about that. Because that’s actually a big issue for Coding 101. We’ve always got people who said, wait a minute, why aren’t we just using procedural programming? I like procedural programming, you go from this command to this command to this command and you just do loops and such. Moving from that to something that doesn’t have the "10 goto 20", that doesn’t move from lined based, but more object based programming is always been a big jump for some people. What was it like for you? Did you get it and you understood, oh yeah, this is the future? Or was it one of these things like, why are you forcing me to program like this?
Patrick: It made perfect sense to me because with an AppleSoft BASIC program the lines are numbered so its 10, 20, 30, or 1, 2, 3 if you’re really bad at it. Or you do by hundreds or whatever counting method you use. But they’re all in line and they’re all numbered. If you want to put in another command in you have to put it- oh, line 15, and sneak that in. but with Pascal I learned that I didn’t have to number them, I could just put it in and then go back and just insert it. And if I wanted to repeat something I could just make a function and call that. And I’d have to declare variables, which I always thought was a pain and still do. But I adapted to it fairly quickly. Because it just made sense to me. The commands were different but I adapted.
Fr. Robert: I think that’s one of those things that some people just get it automatically. And some people it takes a bit longer for people to warm up to it, and I think it’s just how people’s brains work. But I want to dive a little deeper into something there. Which is, we’ve seen, in the past, I’d say 20 years, the evolution of programming. From something that one person cold so. 20, 25, 30 years ago, you could say this is my program. I wrote this from start to finish. I wrote everything that has anything to do with this program. From the user interface to the back end, of course back then it wasn’t connected to anything, it was a standalone program. But you could say I did every aspect of this piece of software. You can’t do that today. Now a days, if you’re writing something in its entirety, you’re probably working too hard.
Patrick: Yeah. People have made so many modules that can be adapted for whatever situation you need that it’s a huge time saver. If you need to calculate what day of the week it is on November 12th, 1955, you don’t have to go and write your own thing to do that, someone has already written a module in Perl, PHP, or anything, you can just call that and figure it out. But back in those days it was a lot of manual work because you had to figure out how to do it yourself.
Fr. Robert: Right. And I remember- I lived in a dorm when I was studying Computer Science. And there was one guy in our dorm who- he was brilliant. And he could do it all. You wouldn’t have that one guy anymore. Or you look at that one guy, and you go that’s nice and all, but I could have just downloaded 5 modules in the time it took you to write that one. And it would have done everything that you wanted it to do. Some people bemoan the loss of that. The loss of the artistic side of programming.
Patrick: Yeah. And I do like that side. A lot. And I still do a lot of stuff myself, even though I could probably- like some of my websites I could probably just put Wordpress on it and install a few modules and be done, but I like having more control over it myself, being able to customize it. And if I just put in Wordpress, then I have to put in a module and if it breaks then how can I fix it? And if the module isn’t compatible anymore- but if I do it myself, I know every line of that code and if it’s wrong it’s my own fault, but I can fix it.
Fr. Robert: I’m going to get really snobby here. It’s not what I believe, but it’s something that I’ve heard people say. Which is, there are no true programmers anymore. There are people who assemble Lego pieces and them make a couple of changes to a few variables and maybe rewrite a line or two and they call that programming. I don’t believe that, but I understand where they’re coming from. I understand why programmers, especially if you grew up way back when, would look at what we have today and say, well, that’s not programming, you’re just copying and pasting.
Patrick: Well, it’s the same thing with object oriented. Like are you just pulling in the stuff and attaching it together? I mean, do you know how to make the changes? It's different levels.
Fr. Robert: W8SSJoe in the chatroom says “no optimization”, and that’s absolutely true. And actually, I talked about this last week, which is, I think the hardware has made us a little lazy. Because the hardware is now so fast and so cheap that no one really cares about optimizing anymore. When we were working on very limited systems, you couldn’t just copy and paste code that may or may not work, because it would run too slow. Now days it’s like, I don’t care if 90% of the cycles are wasted, because the 10% that is left is more than enough to run my program quickly.
Patrick: Yeah. Why does Chrome need to take up so much memory? Its browser. It’s very basic. But video game programmers need to get every ounce out of their system for the performance. I think they probably put a little more effort into figuring out how they can get a little more performance out of it. Whereas somebody that’s doing a word processor, they have more processing power than they need anyway, so whatever. But like people who do HTML design, if they’re using Dreamweaver, they may not know the specifics of how the HTML works. But if they code it themselves, they have to know what does this CSS do? What does this HTML do?
Fr. Robert: Let’s move beyond your college years and move into your professional years. Because you have quite the experience. You’ve been at a lot interesting companies, I will say. Take me through your first one. Where was the first place that you got a paying job, a professional position where you could prove that this career could support you?
Patrick: Well, my first paying job was at a shoe warehouse. But we’ll move beyond that. And I also worked as an intern in the IT department at Central Main Power. Which was good experience. I got to see the corporate culture and how things work in that environment. But my first real job out of college was called The Internet Company. It wasn’t The Internet Access Company.
Fr. Robert: So you literally worked at The Internet.
Patrick: I worked at The Internet Company. If you went to internet.com you would get to our home page. It’s not there anymore, they went out of business in 1997.
Fr. Robert: The Internet shut down?
Patrick: The Internet Company went out of business in 1997. They were a company that did consulting. We were doing websites for Ziff Davis, Comdex, Photo News Network and some fairly big clients. Some in Germany and England. And so that’s where I learned to do Perl. Because I got there and they gave me the Camel book and said, “Here, learn Perl.” And so I learned Perl on the job and was doing CGI scripts for all these websites. And it was a lot of fun. Because I got to learn so much and I was doing interface things, which I love to do. And on the web. And I was getting paid for it. And it was this brand new frontier, the Internet was just catching on. Because I started there in the end of ’95 and it was a great experience.
Fr. Robert: The Internet really is a formative moment for the current generation of programmers. You can actually step back and you can look at it and what did Computer Science, computer programming look like before the internet and what did It look like after the popularization? And easy access to the Internet. And I think companies like The Internet Company are really good examples of that. Where you have the corporate culture, where you had previously experienced, realized, oh, we have to be a part of this. And so they got these hot shot programmers to come in and design them something. Create something for them.
Patrick: Yeah. And that’s what we were doing for Ziff Davis and Comdex. We were putting them on the Internet really for the first time. Or at least, improving their websites so that they would have more of what they needed. Unfortunately The Internet Company went out of business in 1997. They had decided- "push technology" was big at the time. So they were going to do products based on that. There was going to be a screen saver that would deliver "push" news to you. They were doing a chat tool which was a lot like IM. They were doing something to monitor where your kids went on the Internet so that you could make sure they stay out of trouble. But they had these products, we were talking to Reuters for the news delivery and before they actually sold any of them they decided, alright, we’re going to stop doing the consulting part. And so because in our engineering team, our team and the design team were the only ones that did billable work to clients. And when we didn’t have any billable work to do, it was like, "Alright, let’s play Quake."
Fr. Robert: That’s actually the hallmark of the Internet generation. Which is some companies forgot that they need income.
Patrick: Yeah. Well this was at the start of this. This was way before the Internet boom. But I saw the writing on the wall when I wasn’t having any billable work and things were not looking good. So I started looking for a job and I left The Internet Company and a month later they shut their doors. And they sold off internet.com for, do you care to guess how much they sold internet.com for?
Fr. Robert: Well, if you were selling it off today that would be worth at least $10 million. A couple hundred, thousand maybe?
Patrick: Yeah. A few hundred thousand. Just a few years later, the Internet boom. And at one point our IT department set up email@example.com for internal IT issues, and I said “This is going to be just like 15 minutes before we start getting junk.” It was like 5 minutes. And then in a day we had hundreds of emails. There could have been a business there helping people. People type “internet” into our browser, they go to our home page. And we went out of business.
Fr. Robert: Take me to the Internet. So The Internet Company shuts down and you’ve already moved on to greener pastures. Which were?
Patrick: It was the Green Monster. It was Monster.com or The Monster Board at the time. The world’s first job search website. I looked for the job on The Monster Board and found it on The Monster Board with The Monster Board. So I was doing a lot of coding on their site.
Fr. Robert: What was your language there?
Patrick: They were doing ASP.
Fr. Robert: Okay, that makes sense.
Patrick: So it was fairly easy to pick up.
Fr. Robert: Actually, this is another good point, which is, as a professional, moving between languages- so you get to The Internet Company and they say oh, we need you to know Perl because we do Perl here. And one of the things that we’ve told our audience a lot is that it doesn’t necessarily matter what language you’re using, you just need the concepts behind the languages and then you can jump between them. Did you find that as you were moving from company to company?
Patrick: Yeah. A lot of the programming fundamentals are the same between languages. So it’s a function, it’s a procedure, it’s a subroutine. It’s all essentially the same thing, they just name it something different. The way it prints things, the way you declare variables, there are some variations, but once you get the general syntax, it’s fairly easy to adapt. And so I was able to go from Pascal to C to Perl and then ASP and picked up others along the way.
Fr. Robert: Dallas in the chatroom has an interesting question. He says, “What happens to the code for a company when it goes out of business?” Because it used to be your code base was one of your biggest treasures. That was your IP and you could sell that off. It kind of seems to get abandoned a lot.
Patrick: Yeah. As far as I know The Internet Company’s code base- well, since we did consulting for other clients, they retained it. They still have their websites running. Like if we did- I forgot if Ziff Davis was download.com or shareware.com, it was one of those. Whichever one Ziff Davis had, we did that site before the merge with CNET. But they kept it. But as for the internal The Internet Company code, it just kind of got trashed with the server I assume. Monster is still around but that code is long gone. They switched over years over to .Net. And after I left The Monster Board and went to ExpertCentral.com, which closed and their code just got erased. It was owned by About.com. They merged it. They also had AllExperts.com and ExpertCentral. And they decided they didn’t need two experts sites, so they closed us down and kept the one that had like one employee.
Fr. Robert: Can you talk about code flushing? One of the things- again, the era that I grew up, if you were a part of a team that was developing something big, let’s say you were working for Microsoft and you’re on the Windows team or in the Office suite. You assume that the code that you write is just going to be built upon. It’s going to become legacy. And they may be using the same code base for the next 15, 20 years. At least that was the assumption. Now a days it seems as if you can get this code flush where you have a development team come in and say you know what, chop it all, we’ll make a few things compatible, but we’ve got a much better language we can write it in now, we’ve got a much better team and a much better idea of what we want it to do, and so we’re going to do away with the legacy code. That used to be unheard of. And yet I hear of development shops doing that a lot more these days. Is this becoming more popular?
Patrick: I think it depends on what code you had there before. If it’s just not something that can be maintained or if it’s not as efficient, or if it’s just been modified so many times that now it’s just this Frankenstein monster of code that it’s just so inefficient and so unmanageable it’s just like let’s just start over. Or it’s just a brand new system that you have to move to. So sometimes it’s just okay, on this day we switch over to the new site. Or sometimes it’s okay, we’ll move this section and bunch this section and this section. That’s what we used to do at Monster when we’d redo things. Instead of the whole site, where who knows what’s going to happen. We would do a section at a time. And fortunately each section of the site, whether its job search or resume building, it was compartmentalized enough that we could just do one section and it wasn’t necessarily tied to the other sections.
Fr. Robert: I think that’s what I heard a lot from some of these teams. Which is we’ve inherited such a hydra, its doing things that it was never intended to do. A great example of that is, you’re programming for Windows, which came from a time before not just the internet, but before network connectivity. And all these things have been hung off of modules that weren’t supposed to do that. And at some point you have a development team coming in and saying it’s not worth it to do this anymore. Things are breaking all the time, let’s wipe the slate clean. But it is kind of interesting because in that sense, the programmer, as you get past the code monkey stage into the code warrior stage, you have to make that judgment, no, the stuff that came before me Is junk, it’s gone now.
Patrick: And at what point do you stop repairing your car and just buy a new one? At what point do you just tear down the house and build a new one? Same sort of thing works there too.
Fr. Robert: We want to keep talking about tearing down the house when we get back, I’m here with Patrick Delahanty the code guru here at the TWiT brick house. But before we do that, let’s go ahead and take another break to talk about the second sponsor of this episode of Coding 101. It’s the one stop shop for all knowledge on the internets. It’s Lynda.com. Now Lynda.com is a great place to go for knowledge. And I really mean all knowledge. It’s not just about training on new software or learning new skills or learning about business techniques or software. It’s about a reference for all the things you already know that maybe you need a refresher course. That’s what Lynda.com does for you and that’s what Lynda.com does for us. It’s an easy and affordable way to help you learn that can instantly stream thousands of courses created by experts on software, web development, graphic design and so much more. Lynda.com works directly with industry experts and software companies to provide timely training, often the same day that new versions of software suites are released. So you’re always up to speed. Courses are produced at the highest quality, which means they’re not going to be like that YouTube video filmed in the basement with the shaky camera phone. I love YouTube, but sometimes you want good lighting, cameras, audio, production values so you can focus on what you want to learn rather than the way the lesson was created. They also include tools like searchable transcripts so you can jump to the part of a lesson that deals specifically with the problem that you’re having. And they have certificates of course completion, which you can publish to your LinkedIn profile if you’re a professional in the field and you want a future employer to know what you’ve trained in. whether you’re a beginner or advanced, Lynda.com has courses for all experience levels. You can learn while you’re on the go with the Lynda.com app for iOS and Android and one low monthly price of $25 gives you unlimited access to over 100,000 video tutorials. Premium plan members can also download project files and practice along with the instructor and premium members with an annual plan can download course files to watch offline. Making it the perfect reference. Lynda.com also has courses on foundations of programming, up and running with the PHP library. Simple Android development tools and how to teach kids programming with iOS. There’s even a series on programming for non-programmers. So in other words, if you’ve ever wanted to fill in your knowledge gaps on coding or if you just want to start from scratch, Lynda.com is a great place to start. For any software you rely on, Lynda.com can help you stay current with all your software updates and learn the ins and outs to be more efficient and productive, which is always a worry whenever we switch to a new code base, a new project, or a new product. And we’ve got a special offer for all of you. To access all the courses on Lynda.co, free for 7 days. Just visit Lynda.com/c101 to try Lynda free for 7 days. That’s Lynda.com/c101. Again, Lynda.com/c101. And we thank Lynda for their support of Coding 101. I’m here with Patrick Delahanty the code guru here at the TWiT Brick House. Now I want to move into some advice for code monkeys. This is something that we’re passionate about because we believe people should know how software works. Not just because they’re going to be a programmer, but because everyone should have at least a basic understanding of the tools that basically run people’s lives these days.
Patrick: Yeah. From the early days of my coding experience, getting my head around the logic of how code worked, how it processed through and did all the statements, that helps me understand- I can look at other programs that other people have written, and in most cases figure out, oh they probably did this and had it run like this. And then if I can look at the code I can often say oh, they did it that way, or maybe oh, they did it this other way. And maybe theirs is more efficient and I learned something, or mine is more efficient and I can suggest a change.
Fr. Robert: One of the very first things that we tried to teach people on Coding 101 is “it’s all about the logic tree”. It’s all about being able to take a problem, and then breaking it down into its component pieces. Because it’s difficult to program drive my car down the road. Much easier to program start my car, figure out where my car is, figure out what’s around my car, figure out where I am in my car. And then make those pieces of logic connect to one another. Could you take me through what it looks like when you are taking a real world project, if you can talk about your real world projects right now, how you figure out where you want the logic tree to be? And then how you break that down into actual pieces that you’re going to code.
Patrick: I usually just start with pen and paper. And I don’t do an actual flow chart, but I’ll just kind of write out like an outline of what I need it to do and then fill in the various steps. I’d have the measure points here and go in and say okay, now it needs to do this, check this, connect to the database, get the list of this, verify- and I just start doing that and get at least the major bullet points in there for what I want to code and make sure I get everything. And then I can think about well, okay, from a code point of view how do I want to approach this? Which parts should be their own modules or subroutines and what sort of database structure do I need? If I need one. And just start to turn that pseudo code into actual code.
Fr. Robert: In the process of turning pseudo code into actual code there is a step that the most elite programmers will go through which is deciding what language they’re going to use. Because the best programmers are not just conversive in one or two languages. They know multiple languages. And so they’ll say this one is best done in Perl, and this one is best done in Java. Probably not a lot of us will say that. This ones best in C#. What are the languages that you fall back to the most often when you’re turning the pseudo code into actual code?
Patrick: Well, I usually fall back on the ones I’m most familiar with of course. And then it depends on what the purpose of this is. If its front end web code, I’ll probably go with PHP. If it’s a lot of back end things, Perl, especially if I have to do something that has to be called in a cron. I like doing those in Perl. And those are pretty much my go to languages now. Especially with the stuff I’m doing here at TWiT. There’s a couple things in Perl but most of it is in PHP.
Fr. Robert: I’m going to put you on the spot here because I was speaking with one of my friends who is a professional programmer and he says his biggest programming sin sometimes- I shouldn’t say sometimes- but he says that sometimes he will bend the logic or bend the task to fit the programming language he wants to use rather than using the programming language he should use. Have you ever been tempted by that particular sin?
Patrick: Oh, sure. I mean, I’m not going to go out and learn a whole new programming language just because it has one way to make something simpler. Because there’s all sorts of other issues there and in the long run it’s just going to not be worth the time and effort. But overall, if there’s something like when I do an iOS app, I’m not going to use Perl. I’m going to actually go out and do things using another language. But if I’m doing something on the web, there’s ways to do it in PHP or Perl and I’ve done things in Perl that could probably be done better in PHP. I’ve done some in PHP that could probably be done better in Perl. But usually it’s okay, I started doing this and this, I don’t want to have to rewrite everything so let me just put this little kluge and get it to work.
Fr. Robert: I’ve found personally that when I put the kluge in and the kluge works, very rarely do I go back and fix the kluge.
Patrick: Yeah. If something necessitates rewriting later on, maybe then I’ll be like okay, maybe I should do this in the other language because I know it works better.
Fr. Robert: Can you talk at all, because of course this is a project that you’re working on here at the brick house, can you talk at all about some of the new features coming up in the new TWiT TV website? Because this is- can you actually?
Patrick: I would love to. But I don’t know them actually because our websites being done by Four Kitchens. And what I think has been said already, its public knowledge, is that they will be using Drupal and nodeJS. And so it’s kind of a headless Drupal. And so it’s going to be a lot easier to upgrade in the future.
Fr. Robert: I forget, are we baking an API into that thing?
Patrick: Yes, there will be an API. I reached out to all of our 3rd party app developers asking what features they would like so we’ve got some API requests that will hopefully be able to get in there to aid app developers. Anyone who wants to do an iOS, Android, or Windows Phone app will hopefully have easier access to get information from the TWiT site. And then even if you just want a desktop app or smart TV app or anything and- the thing is, a TWiT site with an API, so you can say oh, well, show me all the episodes of Coding 101, and you get the list back. Or tell me when there’s a recent one.
Fr. Robert: Show me every episode ever that has Cranky Hippo or Brian Burnett.
Patrick: Yeah. I want the Padre feed. I’m going to make a Padre app. and it has all of Padre’s stuff. You’d be able to do that. The API features are still yet to be determined, but yeah, an API is the way that we want to go.
Fr. Robert: I just figured out what I want you to come back for. So we talked about having guests here on the wildcard episodes and then having those guests actually give us some sort of start to finish programming module. I think your module has to be, when this API is ready to go out, and we’ve got the new website up, you have to come in and show us. Like in 3 quick lessons, how to use the API to make something.
Patrick: I think that’s a great idea. And we can do it in Perl. Actually we can do it in a variety of languages if you want. But it won’t be ready until next year at some point. But we definitely have to cover that once it’s done. And maybe we can get some other app developers to come on and say hey, here’s how I did this. I would love to see other people using that too.
Fr. Robert: Patrick, last bit. If you could wave to all of the Coding 101 audience, and especially people who are having a hard time at it because there a lot of people who are going to our back catalogue right now and they’re just crying out for help. They’re like I don’t understand this, I know the code works but I don’t understand why it’s working. What bit of advice would you, as a person who is in the profession, who does this for a living, what would you tell someone who is just about to give up? Who is just about to say forget this language, or forget programming, I don’t care anymore?
Patrick: Well, there’s reasons you might want to give up on a language. But on programming in general, no. I can understand being frustrated, but sometimes even here when I’m coding something I’ll get frustrated. I’ll go home, come back the next day and looking it with a fresh face often improves everything. But sometimes I just get so deep into looking at something, get frustrated, don’t know why it’s not working and just take a step back, breathe, come back and try it again. And maybe if the language isn’t agreeing with you, try a different one. And hopefully something works out.
Fr. Robert: Fantastic. Patrick Delahanty. Code warrior here at TWiT TV, we want to thank you for being on this episode of Coding 101. Could you please tell the folks at home where they can find you, your work? Because not all of your work is coding. Where should they find your content?
Patrick: They can follow me on twitter, @PDelahanty or my main website that links to all my other stuff is adequate.com. That’s the first domain I ever registered. I’m not giving it up.
Fr. Robert: Thank you again for being on Coding 101. For being with us through an entire coding module teaching us Perl. And now for being part of the new format. I believe we have one more wildcard episode before we get back into coding. We’re introducing the hosts who will be coming in to do modules with our audience.
Patrick: Hey, this is episode 42.
Fr. Robert: This is episode 42. You are the answer for everything. The life, the universe, everything. Don’t forget that you can always find us live here on the TWiT TV network every Thursday at 1:30pm pacific time. If you drop by live also drop by our chatroom at irc.twit.tv. If you jump in you’ll be able to talk to some of the TWiT folk who are great programmers and funny people. Don’t forget that you can drop by our show page at twit.tv/coding101. You’ll be able to find our entire inventory of episodes and all the different modules that we’ve done. As well as subscribe. You can also follow me on twitter. Find me on twitter.com/padresj. @padresj. You’ll find out what we’re doing on every episode of Coding 101 and you’ll be able to suggest topics for future episodes of Coding 101. Don’t forget to stop by our Google+ page at plus.google.com/twitcoding101 while you’re there you’ll be able to ask questions and answer questions. And join a strong community. Until next time. I’m Father Robert Ballecer. End of line!