Coding Blocks - What programmer do you want to be?

Episode Date: June 22, 2014

“Water Cooler” episode talking about sweet sugary C# kisses, JavaScript as a first language, T-shaped developers, how to get addicted to drugs and…Where in the World is Carmen Sandiego? Points o...f Interest Keep the keys! Go follow @trentapple and check his site out at www.trentapple.com! A year’s worth of tech podcasts! from @patrikdahlen NativeScript – Cross […]

Transcript
Discussion (0)
Starting point is 00:00:00 you're listening to coding blocks episode 12 subscribe to us and leave us a review on itunes stitcher and more using your favorite podcast app visit us at codingblocks.net where you can find show notes examples discussion and more and send your feedback questions and rants to comments at codingblocks.net and follow us on twitter at codingblocks and on facebook at facebook.com slash codingblocks and with that with that, welcome to CodingBlocks. I'm back with my voice. I'm Alan Underwood. I'm Joe Zach.
Starting point is 00:00:30 And I'm Michael Outlaw. And today, today's going to be just a water cooler discussion. Yeah, we've been talking a little bit about a few things, you know, kind of what we want to be when we grow up and what life's like for new developers. Whoa, whoa, whoa, whoa, whoa. I'm not growing up. I when we grow up and what life's like for new developers. Whoa, whoa, whoa. I'm not growing up. I refuse to grow up. It's nice to dream, isn't it?
Starting point is 00:00:51 What? My wife's grandma, she once said, I didn't plan on mentioning this, but my wife had asked for something, and her grandma told her that it was good to want things. Nice. Is this like the people in hell want ice water? Sounds about right. Doesn't mean they get it.
Starting point is 00:01:08 Yeah, something like that. It's good to want things. Yep. So with that, we have some podcast news today. What do we got? Yeah, first off, I mentioned an article on the last post, our last episode, about signing packages in NuGet and kind of what to do with your keys and how it's a pain for open source.
Starting point is 00:01:26 And I got some really nice comments from Peter and Vlad. And you can check that out on the blog post. We'll have a link to it. But basically, they both told me the same thing, which was, of course, you have to use the same key. Yeah. So my little strategy there of just generating a new one every time definitely loses the authenticity factor.
Starting point is 00:01:45 So not such a great idea, but hey, you live, you learn. And also I wanted to mention the SwedishCoder.net. This is a guy we've mentioned on the podcast before, Patrick Dahlin, and he is actually getting really close to having listened to 365 podcasts. And if you go to his blog and kind of scroll through,
Starting point is 00:02:04 you'll get to see he's actually written notes on each one. And I thought this was really cool because that's a lot of time. When you think about 360, you know, generally an hour worth, like I don't even know how many weeks that is. But that's a lot of time to really invest in yourself. And I thought that was really cool that he actually took the time to write up the notes about it. And so we probably actually remember some of the stuff that he learned. Yeah, I think that might be the more noteworthy part of of is to take the notes about it yeah i mean he writes a decent little post about each one of them and you imagine writing a note for every show you listen to
Starting point is 00:02:32 yeah and i mean honestly the cool thing is i went up there and was looking at them and he's got some good references so i'm going to go check out some of these as well so yeah i think scott hanselman's actually talked before about writing a blog so that he can google himself later be like oh what's that cool thing i was looking at last month or you know two years ago and just Yeah, I think Scott Hanselman's actually talked before about writing a blog so that he can Google himself later. Be like, oh, what's that cool thing I was looking at last month or two years ago? And just kind of Google it and find it. There you go. So inspiration for some of you guys out there.
Starting point is 00:02:59 And also we want to send out some thanks to Trent Apple, at Trent Apple on Twitter. And you can find him at www.trentapple.com. He actually left us a review on iTunes, a five-star review, as did Brock as well. Appreciate both of those. Super appreciate them. And another little piece of news that came up. I always get stuff about a cool last name. But you've got to admit, to this day and age, for technology, that guy's got a pretty good last name. Yeah, Apple's right up there, right?
Starting point is 00:03:25 That's not one you forget. No, it would really suck for him if he hates Apple products. Yeah, I mean, three.NET guys here sitting with Apple computers, so that tells you a little bit of something. That's true. Well, as soon as they start making outlaw computers, then maybe I'll focus on that. So with the last piece of news I have for the week, it's Telerik came out with a new thing called NativeScript, which is a cross-platform mobile development JavaScript-type language. So Telerik is pushing these things out.
Starting point is 00:03:58 I don't know when it's actually going live, but we have a link to it, so you can check that out. Yet another cross-platform mobile development framework and also in other news uh the reflection of control article i posted that out to reddit and got some interesting feedback on both reddit and on the site on on codingbox.net um some interesting feedback some people pointing out uh mef or uh the service locator pattern um yes those kind of similar ways of solving the problem but mbf is heavy man i don't know anyone who's ever enjoyed working with it yeah you know i mean there were some some of the guys the feedback you know there were guys who did and guys who voiced opinions similar to yours. Yeah, it's good to hear both sides of it.
Starting point is 00:04:46 So, moving right along. We're on to our show topic. I don't want to grow up now. Should we be singing a Toys R Us song? Well, how did you guys get into programming? Anyway, when you started thinking about working in this field, what did you want to be? Oh, man.
Starting point is 00:05:01 I started programming, I think, in high school because I had a little TRS-80. So video games is what you're saying. No, no, it wasn't video games. It was actually, you know, we had these. I was taking algebra or whatever, whatever age I was in. And I was like, oh, this makes sense. So I can write a little program that I can just plug in some numbers and it'll do my homework for me.
Starting point is 00:05:20 Fantastic. So that's how it started. But, like, getting into it in the real world it was literally we had some inefficient processes at a job i was working at i was like i think we can automate these and so i took something that took typically about eight hours of a person's time in a day and dropped it down to about a minute so you know it was just it was one of those you see something you know there's got to be a better way right yeah well for me it was definitely video games uh you know world cups going on right now my wife was talking about how
Starting point is 00:05:48 she didn't recognize some of the flags i was like yo carmen san diego suspect flew off in a plane flying a green and white flag go to morocco yes yeah oh man that was fun times yeah i love that and nintendo and there's a lot of stuff around then. My parents were both teachers, and we used to check out Apple II and take it home for the summer. And I got to kind of play around and learn on that, and that was really cool. So because I'm so young, it's hard to believe that I would understand this reference. But totally war games. Oh, absolutely.
Starting point is 00:06:21 That didn't really inspire me. I was a kid at that point. Yeah, I wasn't born yet. so it was kind of like I saw that movie on Netflix. Right. But Michael's still 21. Yeah. It's weird. So one of the things we first wanted to talk about was this whole idea that I actually heard on a MacBreak podcast recently
Starting point is 00:06:42 where they just kind of lobbed this out there like hey what do you i mean shouldn't people almost just consider using javascript as a first language now and i heard that and i think i like twitched a few times and then i was like well wait a second this has a lot of merit to it yeah f12 and you've got it right there right yeah i mean you got a free browser that you can use it's got i mean webkit's got all these tools in it to be able to debug this stuff. I mean, you don't really need a lot to get going. And today, I mean, you totally, I mean, if you want to learn how to do things wrong, yeah, you should totally pick up JavaScript as your first language.
Starting point is 00:07:18 Okay, so in fairness, it's loosey-goosey, right? Like, there's no typing. There's none of that. Like, you can kind of cheat it in some places but but realistically so check this out like one of the things that kind of makes a lot of sense is you have things like phone gap you have app accelerator slash titanium you have um like swift apparently is following the same type of syntax obviously it's going to be a little bit different but you have all these things that right now, if you just really want to spend some time doing some JavaScript,
Starting point is 00:07:49 you could literally deploy out to Android, iOS, Windows Phone. You forgot NativeScript that you mentioned earlier. NativeScript, which is going to be a JavaScript-only thing. TypeScript. Now you've got Node.js, which is a server-side JavaScript. Hey, welcome to learning a thousand different modules that you'll have to use. I mean, it's insane. Yeah, buying even Windows apps now, you know, like the Windows 8 apps.
Starting point is 00:08:12 It's crazy. Unity, to make 3D games in JavaScript. So just one of those things I wanted to toss out because, I mean, I personally am a fan of JavaScript because of what you can do with it. I'm not in love with the language by any means, but there is a lot of things that you could do and do well just knowing JavaScript and nothing else. I have such mixed feelings about JavaScript because, on the one hand, I don't like it. Because it's a lot of the things that I don't like. You mentioned it being loosey-goosey. That's one of the things I don't like about it. I am a fan of the things that I don't like, like you mentioned it being loosey-goosey, that's one of the things I don't like about it.
Starting point is 00:08:46 I am a fan of the typed languages. I like the structure being there. And so JavaScript not having that, it's kind of like, whoa, whoa, whoa, wait a minute, wait a minute, wait a minute, wait a minute. We've got to have some rules about how we do this. But at the same time, it is so wildly popular. It is so fast. It does do things incredibly well that it does make me want to do more of it and and do it well but i just it's not it's not my preference well i'll say this so i
Starting point is 00:09:16 just recently and i know i'm way behind the curve on this one but i just recently started messing with node.js and the other day it's totally been replaced by like three times right yeah yeah it's like you know two years old now yeah but i mean i took node.js yeoman and was able to scaffold up an angular edon.js oh my god it's ridiculous but i was able to scaffold up an application and like seriously it took me less than 20 minutes to scaffold an entire application using yeoman node and and some base install packages and it's done so it so i know i mean there's obviously a place for javascript it's not going anywhere html5 was trying to be the answer to a lot of things but javascript is here for a long time to stay and it it's just growing. Yeah, I mean, absolutely. It's definitely, okay, so I remember a few years back,
Starting point is 00:10:08 Perl was often called the duct tape of the internet, right? But I think that that has definitely, now JavaScript has definitely owned that one now. So I agree, it's definitely not going anywhere, and there are some things that it does fantastic, but it feels like you can't even use it successfully if you're not using some other package. Agreed. You need to be investing in libraries, some third-party library, in order to make it worthwhile.
Starting point is 00:10:34 Nobody should be writing it. Other than learning purposes, I will say, nobody should be writing JavaScript code from scratch to do much of anything. Unless they are trying to build a library. Because at this point, you've got all these cross-browser compatibility issues and all that kind of stuff, unless we're talking about server-side type stuff. But I guess at its core, that's part of what bothers me about it, though. Because you, like, name another language that you would say that about. Crickets.
Starting point is 00:11:06 No, I don't know. I mean, so I'll say this. Like, even in Java, one of the things, and we're going to go further into this later, but one of the things about Java that drove me crazy is there were all these frameworks and libraries. And so it's the same type thing. Yes, you can do a lot with Java. Those totally, I see where you're wanting to go with that. Okay, so let's just call out like Spring as a prime example, right?
Starting point is 00:11:33 Right. But I view that separately, though. That is like a practice that Java developer, the Java community has picked up on and carried on with. But you can still, without Spring, write good Java code, which might sound like an oxymoron to some, without a problem.
Starting point is 00:11:56 Now with an IDE, the IDEs are so built around Maven or other build tools now, it's hard to just kind of notepad and JVAC it. Well, now, okay. I mean, if we're going to go talking to Java now. Like, we go into a whole different. No, but, I mean, I guess that's where I'm getting is you can say the same thing with most any language.
Starting point is 00:12:14 If you want to get the most out of the languages, you're going to be using third-party things. The most out of it. I would absolutely agree with that. So, like, you wouldn't do.NET. You wouldn't use, you know, you wouldn't roll your own logging in.NET net you'd use a log for net or or an equivalent in java uh you know log for j you wouldn't yeah i'm i'm a hundred percent on you you agree with you on that uh like a newton soft for for json yes absolutely you would more often than not you're not going to roll your own but what i'm saying though is like is with JavaScript, it seems like the default is you're not even writing pure JavaScript nine times out of ten.
Starting point is 00:12:50 You're using jQuery, or at a minimum, you're using some other third party. But jQuery is more like a bolt-on, though. It's just an extension to the language, as opposed to... Well, can you say that about any of them? You could say that about groovy and java but you gotta go like if you go angular you gotta go angular all in there's no sprinkling it here and there yeah i totally agree there there's definitely some packages where you're all in but let's get back to just the javascript portion of it another couple examples that i have like if you want to write a Chrome plugin, you can pretty much do it in JavaScript, right? And now Chrome OS
Starting point is 00:13:28 is big, and you can pretty much do the same type things that will go cross application type stuff. It does make me wonder, too, though, like if some of its performance is just because, like so the very thing that I like, that I like about like a C Sharp, for example, the structure,
Starting point is 00:13:44 the type language aspect of it makes me wonder if the fact that that's not there in JavaScript is the reason why it performs so fast and so well you know because it is smaller maybe I would think it would actually be slower though because anytime
Starting point is 00:14:00 you're doing conversions or anything like it's having to figure things out behind the scenes right like you're anytime you do a plus it's going to assume concatenation unless you're telling it to do a parse float or parse it so it seems like it would be slower and more memory inefficient than anything else so that's a good point um but the thing is is the the engines behind it have gotten so fast like google's what is it it, something V8 is just incredibly fast, which is what Node.js runs off of. And apparently they're even improving upon that more.
Starting point is 00:14:33 Yeah, even within Firefox, there's like a set standard set of library calls that if you use that, then it can compile it down into native code. So, yeah, I mean, it it's definitely it's like a necessary evil see i don't see it as an evil i like it my biggest problem is it's so um fragmented right now because there's so many js libraries out there and picking one is literally like sticking your flag in the ground saying this is what i'm But this goes exactly to your Java point, though. You were talking about so many different frameworks and packages in Java.
Starting point is 00:15:09 JavaScript is, now hold on. JavaScript is way worse. Yeah, it's on a whole other level. It's frustrating. You can't even go three weeks without a new library coming out. It's like, oh man, you're still using that one? No, we've totally moved on.
Starting point is 00:15:21 And they all define the dollar sign. Yeah, I mean, you've got Durandal, you've got AngularJS, EmberJS mean you've got durandal you've got angular js ember js you got handlebars knockout uh booch i mean there's just backbone there's so many and picking them is mind-numbing but from just a pure learning perspective i i have to say what they threw out on that language though so but on a first because here's the thing you can cheat oh oh in javascript and and several of the frameworks do that for you and so you can learn basic concepts granted you're flying without any kind of safety net because there's interfaces you don't really have interfaces but they they actually cheat things in various different libraries.
Starting point is 00:16:05 But this goes back to your point, though, from our last episode, Joe, where one of the complaints about things like these patterns are the lack of functionality in the languages. Yeah, they're just making up for deficiencies in C Sharp and Java. Or you don't need that crap in JavaScript. Yeah, and that's the whole thing. I guess that's the beauty of JavaScript is people have built it in there because they miss it or because they want to use it in a particular way. But JavaScript's main purpose is to get things done, right?
Starting point is 00:16:41 It's almost like you throw the craftsman stuff out of the water, which you don't have to by the way especially if you're using frameworks but if you boil it down to nuts and bolts you can do a lot of stuff with that little language and that's the thing about it it's fairly simple right i mean made in 10 days well until it gets big if you're looking at working on a big project you can't f1212, find definition, go to usages, none of that stuff. No, you can. I mean, a little bit.
Starting point is 00:17:08 You can. Kind of. It's so easy to slip stuff into global, though. So if you do it correctly, all right. But, you know, if you don't, and that's why it kind of scares me a little bit as a first language, is that you can do stuff really in the wrong way. You can do the bad parts of JavaScript. Yeah, that's true.
Starting point is 00:17:24 That's true that's true it's definitely an interesting topic i mean it was it really got my curiosity when they said that because well because it can be the backbone for doing things like this new swift language that came out from apple which is very intriguing i mean this language runs faster than their native objective c but it's very much like a scripting-type language. So it's an interesting concept to start with that because it's easy to pick up. And here's the thing. You'll pick up some bad habits, but over time, I mean, how many of us ever started out programming perfectly? Oh, gosh.
Starting point is 00:18:00 We all started out with bad habits. Six months ago. Well, I think Joe kind of hinted on this because there's a good book that I know that I've read. I think Joe might have read it. I'm not sure if you've read it yet. I've gone through it a little bit. It's a good O'Reilly book that if you haven't already checked out, you should, called JavaScript, The Good Parts. It's by Douglas Crockford.
Starting point is 00:18:20 And it's a really good book, and it calls out things that you should do in JavaScript and things that you should avoid doing in JavaScript. There's a funny picture where it's got the good parts on top of JavaScript, like the entire language, and the good parts is a very tiny book compared to the full-on JavaScript book. But it's crazy that you've got to have that book, though. Yeah. Well, I mean, come on. There's bad parts to every language.
Starting point is 00:18:42 I mean, in all honesty, there's stuff that you should avoid. Equal, equal. Yeah. Equal, equal is pretty nasty. I like equal, equal. Not in JavaScript, you don't. Why not? What?
Starting point is 00:18:54 Why don't you like it? You're supposed to use triple equal. You're supposed to use triple equal. Yes. Yeah, because it does this weird coercion kind of stuff that has really weird results. Equal, equal is fine. No, don't say that. Don't tell him that.
Starting point is 00:19:03 Don't tell him that. But here's what I will say. I mean, even though we're doing a... I can't even get it out. Even though we're doing a fireside chat, I do want to throw something out there for anybody doing JavaScript. If you're doing things at a page level,
Starting point is 00:19:15 like putting function and then my function on a page, you need to get away from that completely. Yes, scope it. If you're going to put methods or anything on a page put it inside its own scope so create you know my page equal and then an object and put all your functions in that don't have it on the page because it's global and if there includes coming from other pages or modules that are on that same page you're likely going to run into collisions and overwrite your own functions so globals are bad yeah, just avoid global functions in JavaScript.
Starting point is 00:19:49 It's a bad idea. So, you know, if you had to develop a language, right, it would take some time, right? There's a lot to be done there. Like how long do you think that it took to create JavaScript? At least, you know. First version. A day or two.
Starting point is 00:20:09 A day or two? Really? You're aggressive, man. I'm totally kidding. It's just because I work fast. I mean, most people would probably take months, but me personally, like two days. Yeah, yeah. Really?
Starting point is 00:20:21 Yeah, yeah. You guys are putting that out there on the record. If I recall, Wikipedia, I think it's a week. Yeah, Outlaw's got the number. He's just dangling this carrot out there. Go ahead. Well, I was hoping to get an answer from you, but yeah, it was 10 days. That really is insane.
Starting point is 00:20:34 Yeah. I mean, that's fast. But really, again... And I'm not sure how... I know I'm going to butcher his... Man, I should not talk about names. Yes, Brendan. to butcher his uh man i should not brandon names yes brendan uh yeah he he was tasked with developing it and did it in nine and ten days i mean here's the thing really at the heart of it where it
Starting point is 00:20:53 started it was a very simple language yeah i mean and it's come a long ways like it does a lot more than javascript was never intended to grow the 80 heads that it has i don't believe but it just turned into when dhtml took off it turned into what you know people turn to well that's the problem with duct tape you end up overusing it but it's not duct tape it's actually fairly you forget that there's gaffers tape i like you should use i like it and instead you use the duct tape because it's everywhere and it's quick and available and it works about as good and you got duct tape on your duct tape and then it just all comes off but that's where the frameworks come in and they help you on duct tape yourself so yeah but so what do you what do you guys think of the original question what do you think about
Starting point is 00:21:38 javascript as a first language good idea i see i feel like you know someone coming out of college if they ask me you know the thing and you know i'm really going to dive in on javascript and i think that's a good idea i'd have to say yeah i think uh there's a certainly enough momentum in the industry i don't think you'd be wasting your time i'll put it this way um i i wouldn't even care so much as whether you're going server side or client side if you want to do node.js i'd say absolutely if you wanted to go client side i'd say pick one of the popular frameworks like angular because you won't be hungry for a long time so that i would say that it's definitely not a bad choice to get familiar with well okay
Starting point is 00:22:17 wait a minute are we talking about this from the point of view of you know telling somebody from like marketability or are we talking about this from the point of view of like a school trying to put together a curriculum in which should they use? I'm talking about earning. Because when we talked about, when we said like, you know, teaching it as a first language, I thought we meant at like a school level, which they typically don't care about marketability so much. No, I would not say Scholastic has anything to do with it.
Starting point is 00:22:41 I would say from a marketability and being able to get yourself out there and market yourself to to to work to work on projects yeah great first language yes i think it's perfect for that stay behind that but let's go to my take conceptual like how much you want to hate your life from a from a you know from a classroom perspective should it be the language of choice for teaching purposes no absolutely not no i still think i still think which one scheme see uh structure isn't something in computer programming i still think that c++ was excellent for that simply from the um concept that you actually had to care about memory and all that whereas java was a better oo type because i mean it was like the granddaddy of
Starting point is 00:23:27 it all yeah but oh it's kind of over now right we're on the functional uh yeah i mean that does seem to be a hot topic nowadays um but i i definitely say from a scholarly position javascript should not be your baseline from a if you want to start working on projects, it could be something that gets you into a position somewhere fairly quick. Yeah, I feel like JavaScript is great for rapid development, but not something you want to be maintaining a giant legacy JavaScript app. No way. It depends on how well it's written.
Starting point is 00:24:02 Have you ever seen one? Yeah, yeah. The problem is in four weeks your app is about to be legacy code. uh it depends on how well it's written well yeah have you ever seen one yeah yeah no the problem is in four weeks your app is about to be legacy code yeah well that's pretty much everything nowadays so yeah all right well so hopefully we hopefully we beat up javascript i mean don't get me wrong i like it but i like what you can do with it yeah and there are some things that some people do that it's just flat out amazing i'm like wow i can't believe you did that javascript but you pulled that off quite nicely yeah oh uh so speaking of that one of the ones that uh people should check out that is um fairly new uh i think it's
Starting point is 00:24:36 famo.us well god i hope it is now yeah um so there's a new javascript library that came out that's like all about like this hour uh within the past month i believe that's not new then they've been working on it for like a year but it's insane it's all about 3d uh rendering using javascript which scares me to death but um it's actually really cool if you look at the demos like some of the stuff that they're doing with it is beautiful so So that's one to look at. And of course, AngularJS is huge. And we mentioned some
Starting point is 00:25:10 of the other ones. We have now obliterated JS. Murdered JavaScript. While we got your attention, I want to remind you to leave us a review on iTunes. We really appreciate it. And thanks to Trent and Brock for doing that this time.
Starting point is 00:25:26 So we really appreciate that and lets us know how we're doing and what we need to improve on. Yeah, and seriously, if there is something you'd like for us to improve on, please drop us a comment at comments at codingblocks.net
Starting point is 00:25:37 or go up to our site and hit the contact us button and fill that out. And you know what? If you do us the favor of giving us some feedback, we'll return the favor. Drop us a line and we'll be sure to mention you.
Starting point is 00:25:48 Yeah, tell us your preferred mention or shout out and we'll drop you some time on the show. Yeah, so it sounds like we all kind of agree that JavaScript sucks. No, no, no, no. I thought that was the takeaway. These two guys. So if you were kind of going for
Starting point is 00:26:03 a traditional kind of oa language like c java um then you know how do you know which one to pick and how do you really get started with that nowadays all right so just so you guys know we actually restrained ourselves from talking about this before the show because we we wanted to really get these ideas out there because like you could see all of us like no no no i can't say anything do we put on the gloves now and like duke this out well i mean the answer is clearly java right it's open source it's got a huge community and if you didn't know any better if you didn't know the sweet sugary kisses that c-sharp will give you then you would probably be
Starting point is 00:26:40 fine with java your entire life okay so so so this was uh let me put some background to this this was kind of spurred by there was a reddit uh article that was uh you know um in both the c-sharp red subreddit and in the java subreddit you know why would why pick c-sharp over java and then why pick java over c-sh Sharp? And that's what kind of got me thinking about this when I saw this because there was actually a lot of – there wasn't as much hating as I thought that there might be, but there was some good interesting information out there. And it was more along the lines of if someone who is getting into this
Starting point is 00:27:22 from the start and they didn't pick JavaScript, and they had decided on, okay, it's one of these two languages that I want to focus my career path on, which one should I go down? C Sharp or Java. So what would be your decision, your deciding factors? Not your decision. We know what your decision is is but what would drive you so so joe okay so it is interesting because we haven't talked about this already and he already hinted on something and that was the sweet sugary goodness
Starting point is 00:27:54 that is c-sharp so if you were already ignorant to that right and i don't mean that in a rude way but if you just didn't know you haven't coded in about it, then I would have to recommend Java. Because there's a large community for it. There's a plethora of jobs for it. All kinds of different platforms that you can be on. From both a developer point of view, you could develop in Windows or Linux or Mac. But from a target point of view, your application could run on a multitude of targets. Android?
Starting point is 00:28:32 Yeah. Not the same app. No, no, no. But what I mean, though, is that depending on what you're writing, you could target multiple platforms for whatever the purpose might be. With the same skill set. With that same skill set. But also, the Java community as a whole, though, there are, what would you call them? Fanatics? No.
Starting point is 00:28:59 Well, there are those. But I meant like programming good practices that the Java community is far more entrenched to than a.NET community, for example. AOP, dependency injection, these things are like second nature. Spring, a moment ago, that's a no-brainer on a Java project. But yet in a C Sharp project, it's like, whoa, wait a minute, you want to do what? Even unit testing Microsoft started pushing unit testing just a few years ago and Java guys were like what do you guys do before that?
Starting point is 00:29:31 So if you were just starting out then I would say yeah go ahead and pick up you know start with Java and pick up a IntelliJ or whatever you want to use but because then the problem is going to be, once you start using something like a Visual Studio,
Starting point is 00:29:50 that does have all the sugary goodness, as Joe put it in, plus combined with a language like C Sharp that has a slew of syntactic sugar just built into it. It's elegant. It is like, oh my God, it's like crack cocaine. You cannot stop. stop yep so let me put my twist on what you just said as far as how i would choose this and mine again comes from more of the marketability side of things so we live in the atlanta area if it were me i would be looking
Starting point is 00:30:21 at the job boards to find out hey hey, what are people looking for? And this is just purely not even looking at the language. This is saying, okay, if I invest my time in mastering one of these two technologies, which one is going to see that I have food on my table, right? And in the Atlanta area, fortunately, there's good of both. I would say that Java's probably a little bit more in demand in the Atlanta area, but it's not such a disparity to where you're going to be having problems finding something to do. So that would be my first thing. The next thing that actually did drive me more towards.NET versus Java was, while there are these fundamental things that they almost
Starting point is 00:31:07 take for granted, like Spring and that, what was infuriatingly frustrating for me was when I was first looking to end doing Java, like I would look, hey, what should I use, this or that? And there were nothing, it seemed like there were no fewer than 20 different answers and just flame wars broke out on all of them and so it was like okay in dot net you pretty much have or in c sharp will say you have a couple of ways that are pretty much standard that you do things like if if you're doing a web app you have web forms at nbc that's it like you don't really think about it much you don't have all these extra things stacked on top and And if you're looking for an ORM, you got, you know, in Java, you have in Hibernate, you have this MyBaddest stuff,
Starting point is 00:31:51 you have you have all these different options. And.NET, what have you got? You got Entity Framework, like you don't really have to look far for those extra things that you want to do. And it seemed like it was more of a standard. And that was one of the things that was really nice for me is i didn't have to worry myself about am i investing in this technology that is going to phase out next month versus in dot net it was like hey this is standard practice this is what everybody uses just go for it so those two things for me really were key in both marketability and ability to just ease myself into the language because everything was already kind of standardized i do feel like we should point out though before you get a bunch of hate mail in hibernate it's actually a dot net technology i meant hibernate i'm sorry not
Starting point is 00:32:37 hibernate geez that's that's what otherwise the hate mail send your hate mail to you yeah no hibernate my baddest There were several other ones. And don't get me wrong. There's a few ORMs in.NET, but pretty much if you talk to anybody, it's entity. So that was kind of my take on it. Well, I mean, and even you mentioned MyBaddest. I mean, that exists for.NET. There's a.NET port as well.
Starting point is 00:33:05 And that's the thing. A lot of Java technologies, there are similar or competing technologies or even just straight-up ports of it. But they're just not as widely adopted. Yeah, there's more of a defined... In the.NET community. Right, there's more of a, you can see this path in front of you and you know that path is the one you're going to take
Starting point is 00:33:24 because that's what the standards are. So that's kind of interesting. you know that path is when you're going to take because that's what the standards are so that's kind of interesting but the other thing is again like you guys that joe brought up is once you start programming in c sharp some of the niceties in that language just they really captivate you and then and then visual studio in my opinion is probably the best ide that's ever been created yeah ever what about what's your take on this, Joe? Yeah, I can't go back now. I'm stuck on C Sharp. But if I was starting over again,
Starting point is 00:33:52 I think I would probably go Java, realistically. For what reasons? Oh, just, you know, it's open source. It's prolific. You know, Android's huge right now. And even from marketability, you think, like, Google, IBM. Oracle. Oracle's what I was looking for.
Starting point is 00:34:09 Even Amazon. Like, these are big Java shops, you know. Like, Java's not going anywhere. And C Sharp is Microsoft and everybody who uses Microsoft. Yeah, I mean, I'm 100% on board with you. But there's just so many, it's the little things that start to add up over time. So, like, you know, even, okay, so I can tell, I brought up IntelliJ as an example, right? Like, in the Java world, you know, if you have a bunch of unit tests in, okay, let me go back.
Starting point is 00:34:38 If you're in Visual Studio and you have a bunch of unit tests, you can very easily just run the single unit test that you're working on and trying to you know verify or debug or whatever it might be but in the java world you know if you're like in a great old project you're running everything in that module before you you know and you might only want to run the one test in that module it's things like that that just frustrate me a little lack of polish? There's a total lack of polish. But yet it makes up for it because there's just so much of it everywhere. Well, I will say one thing with Java
Starting point is 00:35:16 is because it has been around longer, there are people that have built things on top of it, like Groovy. I've taken a look at Groovy recently, and a lot of the syntactic sugar that we like in C Sharp, they pretty much made, like Groovy. I've taken a look at Groovy recently, and a lot of the syntactic sugar that we like in C Sharp, they pretty much made available in Groovy. It's a very truncated or
Starting point is 00:35:32 very shorthand form of being able to code the same type stuff. You're referring to the Project Coin pieces, where they made languages on top of the... Like Scala's huge, Clojure. You can run JavaScript on Java. they like made uh you know languages on top of the the like scholars huge closure yeah you can run javascript on java yeah so they've got a lot of stuff there and and again there's no hate there's
Starting point is 00:35:53 no hating on it but there are just so many not like link well i mean i do like to make my java jokes yeah yeah yeah but but i mean seriously after Link, would you ever want to not have to use Link? No. Yeah. I mean, we did a whole episode on it. That's how much we liked it. That's my thing, though. In terms of synthetic sugar, though, that's what I'm saying.
Starting point is 00:36:14 You get so spoiled in C Sharp,.NET, and Visual Studio, auto properties. Yeah, absolutely. That one will auto properties. Yeah, absolutely. That one will spoil you. I think it's C Sharp now. I have to translate that to whatever language I'm working in. It wasn't my first language, but now it's the one that I think and dream in.
Starting point is 00:36:37 Imagine life without VAR. No. But if I was recommending it to somebody who was just starting out the java would be the one i don't know like i said it would depend on to me i would say hey look at look at where you want to be and what's available in that area listen you don't start your drug habit with heroin you start with an entry level like you know marijuana and you work your way up to the heroin wow there goes the pg-13 rating yeah it's all off like instructions on how to get addicted to drugs go ahead and slap the explicit tag on this um so what if you do want
Starting point is 00:37:15 to switch it up though what if you want to you know cross over to the other side or you know see a shop and job are pretty similar but what if you are really into go and you're like i want to start working in go now or i want to start working in javascript like how do you do that all right you know what i one of the things that i've always said is you know people say yeah you got to get a book okay first you got to have a reference book right we all have them but you're not going to learn how to do things with a reference book now you got to do it and fail and fail and fail. And honestly, one of my favorite ways of learning more advanced ways of programming is to pull down an open source project. I mean, if you really want to learn how people are doing things
Starting point is 00:37:55 and doing things in a scalable way, typically speaking, not all of them will be, but pull down somebody else's code where there's 200 developers working on it. Because if it's bad, it's you know 200 developers working on it because if it's bad it's going to get really bad but if you find one that's popular then you should be able to see some good structure and find out how people are actually coding things open source is a great way to get your feet wet in any kind of language but to recommend you know someone who's just starting out a language like go though i don't know about go. I mean, I'm not trying to dog on it, but it's a little early to see how well that's going to go over.
Starting point is 00:38:33 It was nice to see how do they set up their folders, how do they set up their... Go's not a great example. They have kind of conventions for a lot of stuff like that. Even Angular has a lot of conventions. But just getting started on the little things like that can be a real speed bump for people who are used to programming and just want to kind of get going.
Starting point is 00:38:50 Yeah, honestly, that's one of the big frustrations when trying to pick up a new library language or whatever is what Joe just said with the folder structure. I mean, that can be maddening. It seems so trivial, but you'll see all these tutorials on how to... You don't like that in Java you have to have 20 nested folders before you get to the file? No. Here we go.
Starting point is 00:39:10 And you don't want to look like an idiot by not having that either. Yeah, man. You got to have your com.net.org.companyname.www.mypackage.thisiswhatitdoes. Refactor.org. But we've all seen these tutorials where they teach you how to do something, right? And you're like, well, where do I put that? Like, does this go in the same file? Or is this in the same folder? Wait, is this the same package? Where does this go?
Starting point is 00:39:38 So that's why I say, like, open source projects, a lot of times, if you can find one that's got some decent traction. I'm not talking it has two developers on it all doing things however they want. If you can pull that down, look at the structure, see how they're laying things out, and use a good IDE to be able to navigate through the thing, you can pick up a lot of tips that way. And it's a good way to learn the language and learn how to avoid pitfalls that you would have done starting out. I bet user groups is really good, too, for new languages. You just kind of show up and see what they have to say.
Starting point is 00:40:10 And if you do start some sort of side project or something, you can kind of probably show somebody there and be like, all right, how bad did I do? I would say also meetups, right? Meetups are a great place to go to learn a a new technology and and you know at least kind of get the concepts the fundamentals and while you're there if you'll come out of your shell and you know shake some hands with some people and you know get some names get some contact information then that way hey when you've got a question maybe they'll hit you up and you know and while you're out of your shell maybe you can like write a review about the uh you know about the meetup all the time where someone
Starting point is 00:40:45 goes to the go meet up and you know they go a couple weeks in a row and then next you know that guy that they've been talking to is like hey you know we've got a position and i know you're you know still starting out but i can tell you know i like how you think and uh i think you should come work and go yeah so i mean there's definitely a lot of avenues to do it but i i think the key takeaway from this is you can't just sit down and read a book you have to put your hands on the keyboard and actually try and do something if you don't do it i mean even if you create your own little mini project to do something you gotta struggle through it because everything that people show you in demos
Starting point is 00:41:19 looks so easy and then you sit down and do it you're like wait a second they didn't tell me about that right so wait a minute, you were saying there's something to Apple's demo of Swift? Hmm. I actually want to get my hands on Swift. Yeah, it's pretty. It looks like Link to me. It's faster than Objective-C, man.
Starting point is 00:41:37 So wait, all this stuff you're talking about, is anyone thinking about switching to Swift? Is that what's going on here? No. We've all got Apple computers. I mean, this should think about it. I mean, this goes back to why I would recommend Java, though. With Java, you're
Starting point is 00:41:52 going to have that cross-platform portability, and with Swift, at the moment, you're not. So would you want to recommend someone a platform that they're locked into? Well, I mean, you could go with Adobe Air for that matter. I mean, you you could it's cross-platform hey 2000 call they uh they want their air back yeah people still use it for mobile development yeah i know so it's i don't know like the
Starting point is 00:42:19 cross-platform thing is huge for me and it's actually really frustrating. Xamarin, uh, is something that I'm really interested in. And actually we're, we're all headed to a, that's right. Speaking of meetups. Yeah. We're actually headed to a meetup tomorrow night on Xamarin and, uh,
Starting point is 00:42:35 pretty excited about it. I mean, the only downside is it's fairly expensive, right? I mean, if you want to deploy to two different app platforms, you're, uh,
Starting point is 00:42:42 you're looking at some cash. Yeah. But how much would you be willing to pay if you were you know to basically not have to spend the next six months working in java or or objective c right yeah yeah oh gosh depending on your application if you're willing to take the hit for that license cost that license cost might be you know nothing in comparison to the time that it might take to rewrite your application in Objective-C or in Java and have a C-sharp version if you wanted to be in every app store. Yeah.
Starting point is 00:43:11 But if you're writing the 400th Flappy Birds clone, then maybe you don't want to spend that money. Yeah. I mean, but if you actually have a business case for it, I mean, it makes a lot of sense. You write one code base, and then it compiles across all platforms natively. That's the big thing, natively. My only thing is that I wish that it was more accessible to the developers. The individuals. That's the problem.
Starting point is 00:43:34 There is a free version of it, but there were some restrictions and some limitations as to what you can get away with with the free version. We've talked about a lot of stuff tonight. We've talked about JavaScript, Xamarin, Java, C Sharp, Go. One thing that we've talked about a little bit before is wide versus deep. We had Vlad on the show a while back, and we've talked to him about this too. He's more of a deep kind of guy. He wants to go and really learn something and just kind of feel it in his soul, whereas I tend to be more of a kind of a deep kind of guy. He wants to go and really learn something and just kind of feel it in his soul, whereas I tend to be more of a kind of a fan of wide.
Starting point is 00:44:09 I want to play around with all sorts of different stuff, and I feel like playing around with that new stuff gets me new perspectives on the things that I kind of go deep on. So what do you guys think about that? Yeah, again, from my background, wide was the nature was the nature of the beast because it was, you know, it came from more of a services background. So, you know, you always had the challenge of picking up something new, whether it be hardware, software, whether it's, you know, a server application or language. You know, there was always challenge, you know, new challenges there that you were being presented with to pick up something new. So in that, you know,
Starting point is 00:44:51 in a services background, why it is just the de facto standard. Yeah. And for me too, you know, I spent a long time, like too long working in ColdFusion. Now that's basically, you know, kind of dried up in a big way. And so I think if I had gone deep on that and you know really committed myself and you know that that would have been a very bad thing so for me part of it's just kind of being safe and so i think it's good to go a little deep and so knock knock who's there 2000 whatever i also was ruling the world yeah i also came from cold fusion which is probably why i like JavaScript a lot because it's another, you know, doesn't care about types. But on the wide versus deep going into a language or technologies,
Starting point is 00:45:33 I also prefer the wide because I like working on, you know, back-end processes. I like dealing with databases. I like messing with the UI. I like it all. And the only way to really do that, I don't ever want to be in a position where they're like hey you're working on this form over here really seriously that's that's what that's what i'm doing and so in in i'm i'm i love performance right and you can eat performance out of every little piece like you can go to the
Starting point is 00:46:04 database side and you can you can squeak a little bit of performance out of that and go to your ui and enhance things and i just in in much like joe said i feel like there are definitely you need experts in in technologies like people soft people they're gonna have jobs for a long time to come if you if you specialize in salesforce you're probably gonna to have jobs for a long time to come. If you specialize in Salesforce, you're probably going to have a job for a long time to come. But I also feel that if you're that guy that has a broad knowledge of things, that's when you become the architect. If you're very deep on one thing and not everything, it's hard to become an architect. Yeah, I mean, I agree that you do have to have an understanding. I remember many years ago there was a friend of mine who was – he had his language preference and he was willing to change jobs for that language. And I remember thinking at the time and I even commented to him that I didn't have that same opinion that I was willing to write you know, write in like a C sharp today and a Java tomorrow or whatever it only because
Starting point is 00:47:08 the language to me that you were writing in, it wasn't, I, you know, who I was so much as that language was just another tool in the toolbox that I used. Now, do I have my preference? Oh, absolutely. And I'm sure that anyone can guess what that might be. Yeah, but kind of at the same time, do I regret that month I spent hot and heavy on Python and then forgot about two years later because I never touched it again? Was that a waste of time? Maybe. At the same time, if you go deep on something, you do get diminished returns for that investment.
Starting point is 00:47:43 Each hour that you put into something you've been doing for 10 years you know how much are you really getting out of that hour yeah i mean i've definitely been you know like like prologue for example am i going to find a use case for that no but i i say you know i know for at least me when i'm working on something and they tell me they have to use different technology I enjoy solving problems yes and I enjoy solving them in a way that works now and for people who are going to come in behind me as well right I mean that that that's why we got into this right was because the fascination of like trying to solve the problem and making this work right yeah I mean as as most everybody knows who listens to this podcast now, that we both, we know our technologies, but we also try to become better at them, right? So we're craftsmen, but we are ultimately always trying to solve a problem.
Starting point is 00:48:37 We're always trying to either enhance or make things better in some way. And so that's why the technology or the language to me is almost secondary and that's why i don't mind going wide i'd rather i'd rather be able to solve the problem with the tools available and you know so so let me ask this then how do you draw the line how do you how do you know that like when you think to yourself you know what i'm going too deep it's time that i like try to pick up something else or when do you think to yourself you know what i've gone too wide i need to go i need to pick something and dig into it more so i would say um there's this notion of like a t-shaped person or t-shaped developer and that's where you have a deep specialization
Starting point is 00:49:18 because we're all skinny oh but uh that's what you also right so it's basically wide and deep and so it's kind of like, for me, I think like, you know, let's spend the time in the day job going deep, you know, day in, day out. That's a great place for that. You know, you focus on kind of one area, but in your own time, when your own side projects and the user groups go out and do the weird stuff, see what's out there, you know, bring some perspective back. And so for me me it's all about doing the kind of um you know day jobby stuff in the day and then the weird stuff at night yeah i could see that i i don't have as much time at night now that i have kids um i know days were different when i didn't have kids but so how much time do you spend in your free time
Starting point is 00:50:00 doing java or java no i said the weird cool stuff or jython or go or oh now now the go and the ruby and the messing around with design patterns i don't know that's it's in the hobby range probably somewhere in the 10 hours now unfortunately i never actually finished anything uh so you know it doesn't really work out too well for me but but that's not necessarily a bad thing i mean it becoming familiar with these type things doesn't necessarily mean that you're creating the next great application right it means that you are putting your hands on the keyboard seeing what they're all about right but i will say the things that i actually have finished have paid massive dividends okay so it's just like man
Starting point is 00:50:40 if i had you know you know 30 less projects but I finished that 60%, then I think my life would be a lot better. Yeah, I could see that. So that was some good advice, though, as to how to go wide and deep. But really the question is when do you self-evaluate? So I'll say the Cold Fusion thing that he brought up a little while ago. At one point I looked around and i was like oh wow you know there's there's this is a job market in atlanta that's actually fairly hot for technology but yet there's you know three buildings in a 50 mile radius that have this
Starting point is 00:51:15 technology it's time it's time to do something else and so that's one way right economic change or environmental change with the technology stack that you're working on. And then the other thing too is like, to me, once you get bored, then that's probably also a good indicator that you either need to go deeper so that you have a better understanding and maybe can craft your stuff better or you go wider and expand your, your technology stack so that you're dabbling in things that, that pique your interest again. Yeah. I think that's the right answer is when you get bored,
Starting point is 00:51:59 you know, that's, um, that's how you're not necessarily time-based, right? Yeah. So when you just start thinking, you know what, it's time to move on. Maybe you end up kind of changing where that specialty lies
Starting point is 00:52:08 or maybe that kind of specialty ends up kind of fading away. I guess I was thinking about it more from the point of view of like a Mablibs fill-in-the-blank. If you haven't programmed in a new language in X amount of time, you're too deep. I don't subscribe to that. Yeah. Time-wise for me, it doesn't matter. It's more about interest and and and market it pretty much that's how i'm looking at it right because
Starting point is 00:52:31 if if you if you have a job a lot of people get into programming either because they think they're going to like make a lot of money or because they like to problem solve it's usually one of the two um either which way if you run out of problems to solve because your technology disappears then then you haven't you haven't done what you need to do to go wide enough the only problem that i have with the board theory though is that you could remain not bored for a long time right this is me personally and and which just makes you too deep but not is that if you wanted to if you wanted to yeah to be t-shaped i don't know i think if you're still excited and having fun solving new problems and then at that point it's not the
Starting point is 00:53:10 technology that you're having fun with it's the solving problems and i think maybe that's your t is solving the problems not necessarily the technology right and also okay so you're redefining why then is not being uh like like technical right yeah maybe you're maybe you're you know vertical is solving line of business problems or you know like 3d graphics or you know whatever it is it's not necessarily a technology or a language i think once you hit that complacency so some people may not get bored but some people might become complacent like they just know what to expect right as soon as you hit that then pretty much pretty much you should start reevaluating what you're doing, whether you need to look at other technology stacks or, or, you know, go deeper into what
Starting point is 00:53:54 you're doing. But once you become where it's like almost cruise control, then it's time to kick it up a notch, whether you go wider or whether you go further down into what you've already got. So what if, um, you know, your day job just kind of got erased and you, you know, were out there in the wild and you had some sort of new project and you got to do anything you want. And basically for that month, you know, you got to pick whatever technology, whatever project you wanted. Race car driver. In the technology field. Oh, oh. What would you do?
Starting point is 00:54:23 Dang. I, no, go ahead. What would you do? Dang. I – no, go ahead. What would you do, Joe? I was totally serious about race car driving. You posed the question, Joe. What would you do? Well, I know video games is always cool. There's a lot of stuff going on in an independent scene,
Starting point is 00:54:37 especially on Steam and Project Greenlight, stuff like that. I always thought it would be really cool to make a video game, but I also think it could be really boring to be the one making the game rather than playing it. But I also think Go is really exciting right now. Also, there's a lot of stuff going on in JavaScript, and while I don't really like JavaScript too much, it would be awesome to be able to participate and do these things that are user-facing and kind of have real projects that people can use rather than just libraries.
Starting point is 00:55:05 Oh, and hardware. Oh my gosh. Sorry, I just got to say Raspberry Pi, the, what do you call it, the $35 Linux computer. That's freaking awesome. You can hook up machines and do things in the real world.
Starting point is 00:55:20 I think if I had to define, basically, if I wasn't where I was, like, what might be something of interest? I kind of think, like, drones and robots, like that kind of automation. I think it sounds pretty neat. Mine, I think, would be – Swarms of drones. That's cool stuff. We need to leave some YouTube links on that. I think mine would be swarms of drones that's cool stuff we need to leave some youtube links on that
Starting point is 00:55:46 uh i think mine would be home automation oh very cool because i i totally dig like home audio video stuff and the whole idea that you walk into a room and say all right i want to watch a movie lights dim your projector screen comes down your freaking curtain slide closed like that whole that whole idea and then like you know audio but then the control surface for that i think that's where there's a lot of things that could be done because everybody has ipads and smartphones and all that have you seen the ring the ring yeah you can wear like a ring and kind of do hand motions not the movie you do these cool kind of hand motions and that'll know like you know turn the light on turn the light off whatever and it's just this ring so it's unobtrusive you
Starting point is 00:56:29 don't have to go fishing in your pocket for it more gestures you gotta do that would only work for non-sports fans your lights are going off your projectors flickering on and off yeah that'd be a problem but not so i think that's what i do um i don't really know i but i don't know what language anyway she's in that ring it's on their left hand like for right-handed people never mind yeah bad thought all right so yeah anyways uh yeah i think that's what i do do. And I don't know what... I would probably try something like Xamarin or... Yeah. One of the cross-platform ones because I'd want to be able to do it on a tablet of some sort or a phone.
Starting point is 00:57:15 So that's probably where I'd go. Interesting you guys didn't say mobile. Well, no, that's kind of what I'm getting at. Okay. Yeah, that's why X what i'm getting at yeah okay yeah that's why xamarin would be there um maybe maybe something like absolutely mobile are you kidding oh yeah you'd have to have that on tablet right so yeah that's cool oh another one that i'd probably be hot in uh that you were talking about with the uh the drones. I like the whole idea that now, like movies,
Starting point is 00:57:45 people rent these quadrocopters and put cameras on them and get these flyby scenes. I would totally love to write some interfaces for that kind of stuff. Yeah, they're actually using those quadcopters for a lot of stuff. Yeah, I mean, they're replacing what used to be thousands of dollars to fly around a helicopter to do the same type thing. Flyovers of just about anything. anything yeah pretty cool stuff so yeah um yeah i i think that's that's pretty much was there anything else we missed with this these were kind of topics that just came up
Starting point is 00:58:17 throughout the week yeah i think it's been a pretty good uh water cooler discussion so yeah i mean these are all things that we were like oh we need to write that down that'd be a good good discussion so hopefully you guys got something mean, these are all things that we were like, oh, we need to write that down. That'd be a good discussion. So hopefully you guys got something out of this. Yeah, and if you did or didn't, leave us a comment or give us a review or something. Let us know. Oh, yeah.
Starting point is 00:58:34 Oh, also, first off, Outlaw has a killer resource. Yeah, so Joe had introduced me to Programmer Humor on subreddit, which how I missed that one, I don't know. But I strongly recommend you head over to Reddit and find the Programmer Humor subreddit. But while looking through that, I stumbled upon this Tumblr called
Starting point is 00:58:59 lifeofasoftwareengineer.tumblr.com. And oh my God, is there some comedy gold on that account. I was in tears. Oh, absolutely. It's a bunch of animated GIFs. It's just absolutely fantastic. Wait, they're animated what? GIFs is for choosy GIFers. They're GIFs? GIFs are for choosy
Starting point is 00:59:18 programmers. The point being is that you need to head over to lifeofasoftwareengineer.dumblr.com. And if you are not in tears laughing at one of those, then there might be something wrong with you. You need to have your heart checked. You got some medical problems going on because I promise you there is some comedy gold. Go here.
Starting point is 00:59:40 You will see sloths. You will see Eddie Murphy. You will see Simpsons and weird Russian cars driving backwards. You're going to like this. Trust us. You'll see Gandalf. Oh, man. My favorite was the Indiana Jones one that we tweeted out. Oh, about mocking?
Starting point is 00:59:56 Oh, my God. That one was just so hilarious. We've tweeted our favorites. Yes, so you definitely if you want some of these random humorous things that come up, you can follow us on Twitter. Yeah, every now and then you need to take a break and laugh. Yeah. I'll give you a taste.
Starting point is 01:00:10 I'm looking at one right now. It's titled Getting a Compiler Warning. And it's got a police officer holding up his hand like a stop sign, letting this motorcyclist know, you know, don't go this way. And the motorcyclist zooms by and gives the cop a high five so that's just a taste of what what you'll be seeing on the site it's awesome now it's it's beyond stop the car pull over get on your phone life of a software engineer at tumblr.com yeah it's fantastic um that's it for resources we like really yeah yeah that we didn't have much on that this week yeah well i mean there wasn't really a lot that applied to this week's topic
Starting point is 01:00:49 no but there's a lot of really funny things on the website yeah you gotta go the gold mine oh wait i will say one of the resources uh outlaw turn me on this one this week it's also from reddit it's battle stations oh man we talked alan had uh never experienced the uh the the underbelly of people's uh incredible workstations and gaming stations that they've built and they call them battle stations it is so apropos yeah i said this to my wife and i just assumed she was gonna love it and i got home i was like hey you didn't write me back how'd you like battle stations and she just said you're not getting love it. And I got home and I was like, hey, you didn't write me back. How'd you like Battle Stations? And she just said, you're not getting six monitors.
Starting point is 01:01:27 But if you really want to torture yourself, what you need to do... So, okay. So there is the Battle Stations subreddit that Alan's referring to. So you can head over to Reddit and look for that. But do yourself a favor and go to Google
Starting point is 01:01:42 and search for best of Reddit Battle battle stations top five and oh my god oh they're there there's like one of the top results that came back i think it might have been the top result that came back and uh it's got like top 10 uh you know battle stations that were listed on reddit and i think it's it's kind of old you know that that story might be it's a year old yeah but uh still they're beautiful my god you'll want them you'll want all of them and you'll want a room in each each room of your house to believe that like this is the computer that some people just like come home to yeah it's incredible oh man it's it's truly fantastic stuff so yes apparently i've been lost on the interwebs for a long time and found that. It also makes me want to program a battle station simulator where you could just kind of create your dream setup and hardware and take screenshots of it and post it on the internet.
Starting point is 01:02:34 Here comes a SketchUp article. There's my next startup idea. Yep. All right, so now we're getting into the tips of the week. Yep, and I get to go first because I was the first one to write this down, but Gliffy is an awesome free tool for making things like flow charts, UML diagrams, wireframes, network charts,
Starting point is 01:02:56 sitemaps, all sorts of stuff. And it's only really free for kind of limited type things. You can't really have a lot of private graphs and stuff like that, and there's some cheap accounts. This is the Atlassian product, too, so that's awesome. But yeah, gliffy.org.com?
Starting point is 01:03:13 I think it was.com. .net.org.info. And gliffy.package.java.helloworld. Spelling gliffy is a little weird. I guess I should spell it wrong. It's gliffy.comlloworld. Yeah. Spelling Gliffy is a little weird. I guess I should spell it. It's G-L-I-F-F-Y.com. Yep. All right.
Starting point is 01:03:29 So with that, we went to another meetup. When was that? Last week. Last week. For SpecFlow. And got a really great presentation there and introduction into spec flow so if you haven't heard of spec flow it's a it's both a um a plug-in to studio as well as an add-on into your project that allow you to well let me let me start the the goal is to allow the business owners to be able to define
Starting point is 01:04:01 the uh you know criteria for your your application that can then later become your unit test. So it allows the business owners to write things in a given when then type format. And using spec flow, you can translate that quite nicely into your unit test. And then there's also some tools where in the presentation that we were given where using Yotta.js, they were able to take the same specification file, same file, and have it work for both test cases in JavaScript as well as C Sharp. And based off of that specification file, it's generating the structure of your unit
Starting point is 01:04:54 tests for you. So you're only filling in the blanks of your unit tests. Yeah, it was pseudo-readable English type business cases that got turned into unit tests. It was really neat. Yeah, there's a Pluralsight video out there as well that talks about, I think it was called Test First Development. And during that, they talked about SpecFlow. But you can find more information about it at specflow.org. Yep. And my tip of the week is actually a SQL Server Management Studio tip
Starting point is 01:05:30 that a lot of people don't know about. If you have a table, and a lot of times you're trying to figure out what columns are in the table. Actually, I'll leave two tips on this because they're both kind of related. And that's because autocomplete doesn't work. Autocomplete sometimes works this is because there's no described function yes this is actually the kind of trick for described so what you can do is you can highlight the table name in your editor and then hold down alt and
Starting point is 01:06:00 then push f1 and it will actually bring up a list of all your columns and some descriptive information about the table. And then another little quick tip about SQL Server that you can do in Management Studio is say that you want to do a select or you want to do an insert into a table and you don't want to have to type out all the column names on your insert into, you can actually go over to the left where you expand your table and then there's that columns folder if you drag that columns folder over into your editor it will automatically give you a common delimited list of all the columns in that table so it will basically copy those
Starting point is 01:06:36 into your editor for you wherever you place them nice so two little tips for working in management studio just always like you know use the right click, select top 1000, and then refactor that query. You can do that, but this is actually much quicker. You don't have to refactor anything. It just brings it in. So those are my tips. Alright, so with that, we'll be putting the links in the show notes,
Starting point is 01:06:58 and be sure to subscribe to us on iTunes and Stitcher, and we'd really appreciate your reviews as well. That really goes a long way to help us out and help us find new listeners. And again, if you do leave us a review, we'll mention you on the podcast. And just, again, leave your preferred method of shout out. Visit us at codingblocks.net where you can find the show notes, the examples, the discussion, and more.
Starting point is 01:07:22 And this will be www.codingblocks.net episode 12 and you can also send your feedback questions and rants to comments at codingblocks.net and make sure to follow us on twitter at codingblocks where you can see us linking to many
Starting point is 01:07:40 funny life of software engineer posts absolutely and we do also do other things no it's mostly just it's not as good any funny Life of Software Engineer posts. Absolutely. And we do also do other things. No, it's mostly just rehearsing to Life of Software. It's awesome. Yeah, so that's it, guys. © transcript Emily Beynon

There aren't comments yet for this episode. Click on any sentence in the transcript to leave a comment.