For the entire video interview, please visit https://youtu.be/0DpV7jQLodE
Accelebrate: Tell us a little more about yourself.
Craig: Well, I'm based out of Columbus, Ohio. I live in a suburb of Columbus, Ohio and I've got two boys. One is 13 and one is 10 now as of, actually a day before yesterday.
Accelebrate: What got you into programming originally?
Craig: I was more on the business side. What I like to tell people, "The Internet didn't exist when I went off to college," because it pretty much didn't and so when I noticed it was going to be a big thing, working in the business world when it first came out that there was, you know, going to be a lot more technology involved in the workplace. So, I think I was just always interested in it from what it could do to further my career, like everybody at a young age and also just interested in how it could make processes more efficient and add value to a company.
Accelebrate: And how did you end up working with the technologies you're working with today? Like Angular?
Accelebrate: That's quite different from being a day to day software developer. What have been the biggest differences for you?
Craig: I think the biggest difference has been the ability to kind of scale your knowledge or influence much more effectively. I feel like a lot of software developers will try to kind of treat it equal. I think, eventually we are all equal, but there's different points in our career where we know more or know less and a lot of times people are just trying to get things done so much in software development, that they don't take the time to sort of train their employees and invest in their employees.
I think that the ability to influence more people and really use the other kind of part of me, I think I was always a sort of a more gregarious person, okay with being in front of people, good at explaining things and so forth. So, when, you know, given if you're a programmer, you basically get none of those abilities are used. All you get to use are your technical expertise. I think it was a nice chance to use both of the sides of both sets of skills that I have.
Accelebrate: Can you tell us a little bit more about Angular? What's new, and what should Angular beginners know?
Craig: There's so much to Angular. It's pretty big. In terms of what's new, there's some exciting stuff coming up with a new rendering engine that should be coming out this year, called IB and they're currently using it internally at Google. What it means to software developers is kind of nice, because a lot of people are already using Angular. In practice what it's supposed to come out as is, you don't change your code at all, but it renders much smaller bundles or makes your app more performant or efficient and it also makes the bundles just generally more efficient. They're going to run more efficient and debugging will be easier in the applications.
Angular community is looking forward to that in general. As far as what someone should know about Angular, I think it's important to understand that it's just different. I came from a heavy .NET/Java background and it's so different from server-side programming. So, a lot of developers coming into it, they're very good developers on the server side, including myself, but it's just a change in mindset. You really want someone who can kind of expedite that, who's gone through it themselves, and I saw that. That's why I think a lot of times I can add a lot of value to a company, because I was the person that was in their shoes just four or five years ago and so I'm able to explain how to get from Point A to Point B.
Accelebrate: And how about Angular versus React? What are your thoughts?
Craig: That's always a tough one. I was kind of slow to the React bandwagon. I think part of that was because it came out about when I finished writing my first book, so it was like, "Oh no," you had another framework to learn and work on it and so forth. People like to talk about the differences between these frameworks, but they both borrow a lot from each other, particularly the new generation of Angular, not the AngularJS, but the Angular and the React. They're a lot more similar than they are different. My gut feeling is, in general, that particularly Java developers or more enterprise-y developers tend to often prefer Angular, because it comes with kind of everything in a box. It's a framework. It has a router. It has an HTTP library and so forth, whereas people who might be leaning more towards the front end in their background, will like React because it's easier to kind of get into, because it doesn't come with all those batteries included and so forth.
That makes it much more approachable and it's kind of a best of breed approach. I like to often compare and contrast it to, you could buy a suite of software like SAP or whatever, a few years ago and would have all the different packages that would be nicely integrated in them, but each package might not be the best in, I don't know, Human Resources or in a certain area of your business. I feel like React does that sort of thing. It's just a library. It's just the view, and things keep evolving around it to be a best of breed. You pick whatever you want to use with React, whereas Angular tends to come with everything included in a box. It just depends on your preference and your requirements and so forth, which works better.
Accelebrate: Do you ever have companies come to you asking for which they should use? Can you help a company decide that?
Craig: I definitely can, but I always like to say, "In a perfect world there are imperfect acts." I cannot predict the future. I'm a big believer that people can't really predict the stock market and so forth. I think that what I can give people is a perspective on the industry and let them make their own decisions. I don't like to be too prescriptive about it.
Accelebrate: What tips and tricks do you have for Angular or React?
Craig: First, I think it's important to step back and understand how the architecture of the applications are changing. I'd like to show in my courses like diagrams of, "Here's what a traditional server side rendered web application looks like that be like a Java Spring application or ASP.NET, MVC application are probably two most common technologies that people are moving over from, but that could be a Ruby on Rails application.
The big tip I'd give around that is that, it's much more traditional. The single page applications are much more like a Windows form application or a desktop application or some sort of native application written for a mobile platform than they are like a traditional web application, because of how stateful they are on the client side.
Accelebrate: Now I know the best way to learn, is to teach. How else do you learn? Do you have any favorite resources online? Do you do books? Do you do videos?
Craig: When I'm trying to learn something, like now I've taught React before, but I'm working on new courseware for React now. As you know, I publish the courseware that a lot of Accelebrate and other company's instructors use to teach Angular and the best way I find to learn something is, I kind of want all perspectives I can get, so I try really hard to look at, like read every resource that's out there or not just read. I watch videos for like Angular; I've watched every Angular Pluralsight video and every video that's on Udemy and I've read every book possible and I tried to pull out the nuggets of gold out of each of those resources and kind of combine them back into a coherent picture.
One mistake a lot of people make is when they're doing like online or video learning or something, they often just kind of veg out like they're watching TV, like couch potato, they're relaxing for the day and a lot of times that's because they're learning late at night, that sort of thing. The way I've found to be much more successful, that is to take copious notes when you're watching something online, no matter what the resource is and to try to recreate what they do.
One thing that's missing there on a lot of those video sites is that they don't come with sort of step by step directions. It's often hard to reproduce what they do, which is good in that you run into some problems. In a lot of the Accelebrate classes, like in my material, I try to lay out step by step directions so that you're kind of learning as you go and you can't really get lost, even if you're in a bigger group.
Accelebrate: Definitely. Another good thing to know is to write things down. When you write notes, they say to write by hand, right? Because just by doing something like note taking physically, your brain thinks it's more important to remember that thing.
Craig: That's a very good point. People don't realize that, and I also try to stress that. I'm like, Even if you never look at the piece of paper again, that there was no value in it or that if it looks kind of like a mess when you're done and you can't really understand it that well, but what happens is, you like see things in your mind a lot of times. You can see the piece of paper. When I studied in college a lot. I would literally see, I mean I'm sure everybody's had this experience, where you can see the piece of paper with the note on it.
Accelebrate: What about frequently asked questions? Is there anything that comes up more in your classes when you're teaching things like Angular?
Craig: There's definitely a lot of repeated questions. Trying to decide which ones to highlight, but I think a lot of it centers around architecture and best practices. I think people, at the end of the day, especially when we're teaching more experienced developers, they realize, "I can go look up the syntax online or go through a tutorial online, but what I'm really missing is, how do I put these pieces together the right way? Like, "What's written in between the lines that I can't figure out?" And a lot of times, I think that falls into architecture and I moved that further and further up in my materials in the course, because people are really, at the end of the day, that's what they're waiting for. As soon as they hear that, then they can start asking the next question.
Accelebrate: Absolutely. We're really teaching people how to think like a programmer, even if they've been a developer for years, right? It's about structure and orchestration. Like you're saying architecture, it's really the fundamentals and thinking.
Craig: Right, and I think that's really what everybody wants. They can figure out the newest language or the newest syntax for this framework or that framework. What's really important is how you organize those things.
Accelebrate: As your boys are getting into their teenage years, do you have any advice for people, children, or teenagers, who want to get into the tech industry when they grow up?
Craig: You know, it's either, repeat what you know, kind of the thing I said earlier, which is I went into my son's class for, when he was in fifth grade a few years ago, for maybe like a "Day of Code," that Obama was pushing at the time, which was really good, getting everybody just exposed to code.
One thing I found that was funny, is the females in the room were running circles around the guys, right? And like, you don't see it in the tech industry, but it's clear that there's just some unnatural imbalance there that's actually going to be corrected, because it was pretty comical to see them without all the baggage of life and the politics and stuff around them, just doing great. But you know, what I said to them, well it was this whole, "When I graduated college, the Internet didn't exist, right?". I think it goes back to the, "How to think" thing. I'm a big proponent of liberal arts education in that, who knows what's going to exist in the future, in terms of it's going to be totally different than what we have now. I think that there's a lot of value in not just learning the specific skill that's hot at the time with a specific trade. I remember really not understanding that when I was young. I remember getting out of my liberal arts education and I was struggling in my first job using a spreadsheet and thinking, This would have been the most valuable thing they could have taught me in college - how to use the spreadsheet.
The truth is, what they taught me was how to teach myself how to use the spreadsheet and then the next thing that came up and the next thing that came up and so forth, and it just took longer for that to play out in life. I really recommend people just in learning to think and learning to be open and enjoy learning.
Accelebrate: What do you like to do outside of work?
Craig: Well, a lot of it is focused on at this stage and my kids are still pretty young, I'm focused on my children. It's been about two years ago now, one of the trainings I was flying back and I changed my flight and we'd been debating about getting a dog for a long time, so I got this cute little cavalier and poodle and the thing looks like an Ewok. They're combinations of two breeds. They used to call them mutts, but now they call them designer dogs right now. It's a big thing.
It's been good for me on the weeks that I'm home, to kind of get out of the house and bounce in place a little bit. I'm a big NBA fan. So that's another thing that I like. I'm not too big into sports in general, but really enjoy basketball. I think that's just something from when I was younger as well.
Accelebrate: Thank you so much, Craig. It's really good getting to know you and thank you for your time. I think I speak for myself and everyone at Accelebrate when I say that you are a fantastic trainer and we look forward to continuing working with you.
Craig: Yeah, thanks. It's been great working with Accelebrate. I love working with Accelebrate. Very fair, and they understand what it's like to be a trainer, which is great.
Accelebrate’s training classes are available for private groups of 3 or more people at your site or online anywhere worldwide.
Don't settle for a "one size fits all" public class! Have Accelebrate deliver exactly the training you want, privately at your site or online, for less than the cost of a public class.
For pricing and to learn more, please contact us.Contact Us Train For Us
New York City
Salt Lake City