The Best Web Technologies to Learn, with Craig Buckler

Share this article

Craig Buckler

In this episode of the Versioning Show, Tim and David are joined by freelance web consultant and prolific SitePoint author Craig Buckler. They discuss writing for the web, how the web has changed over time, and the best web technologies to focus on.


Show Notes

Versioning Show with Craig Buckler

Transcript

Tim:

Hey, what’s up everybody, this is Tim Evko …

David:

… and this is M. David Green …

Tim:

… and you’re listening to episode number one of the Versioning Podcast. This is a place where we sit down every two weeks to discuss the industry of the web from development to design — with some of the people making it happen today, and planning where it’s headed in the next version.

So today, we are interviewing Craig Buckler, of — well, of a lot of places. He is a very prominent author on SitePoint, and a freelance web consultant of the UK. So, how’s it going, Craig?

Craig:

It’s going great. Thanks for having me.

David:

You’ve been doing so much, and one of the reasons I know that we wanted to reach out to you is that you’ve been writing for SitePoint for — it’s more than four years now, isn’t it?

Craig:

It’s seven. I started in February 2009.

David:

That is amazing. You’re right, your profile online I don’t think goes back that far. How did you find SitePoint in the first place?

Craig:

Well, I’ve been using SitePoint since the very early days. I think it started in about ’98, ’99, and it was one of the best web resources there was — one of the only web resources. And it certainly covered topics in a very deep way, and had some great authors. And then in 2009, they asked for some bloggers, and I went through a series of interviews and tasks.

And I became a regular, along with a couple of others — Alyssa Gregory, who was doing the business side, Jennifer Farley on design, and me doing technical articles … which I always thought was slightly unfair on the others, because I had a massive choice of topics, and also I did a bit of graphical stuff and a bit of business stuff at the same time.

But yeah, that was seven years ago, and I haven’t stopped.

David:

Seven years ago. And then, looking at the range of topics that you’ve covered! One question we like to ask folks is, since this is the Versioning Show: thinking about your career, what version is your career right now? And why do you consider it that version?

Craig:

O crikey, what a question! Actually, I would probably say just out of beta — for many of the things I do. But actually I think version 1 was probably me just doing development on various things. I mean, I wasn’t into the web in the early days, and just really discovering what I loved — which happened to be coding and design work.

And when the web came along — I’m showing my age a little bit now — it was great. It combined those two. And so, that was version 2, and I went straight into it. And I watched various companies, and ten years ago I decided that freelance was the way to go.

And I’ve loved it ever since then. I’ve been able to change my own destiny and work on projects that really interest me. I’m very fortunate in that way.

David [3:06]:

The wide range of things that you’ve covered — how do you introduce yourself, how do you present yourself, what do you consider to be your focus?

Craig:

O crikey. In the early days, I would have been called a webmaster. That was the term that was bandied around, because you did a bit of everything. And I am a generalist. I’m primarily interested in the front end, but I do a lot of back-end work.

I work with databases, I do a bit of design, and I like that. I like having that variety, and some would say, yes, it makes me a Jack of all trades, master of none. But I think in the web you need to have a good grounding in a lot of different technologies.

And I feel fortunate that I was there right at the beginning and learned gradually. If it was today — if I was starting to work on the web today — I don’t know quite where I would go, and I would probably specialize a bit more. But I like the fact that I can sit down and I can write an application from start to finish.

And it doesn’t matter whether it’s on the front end or the back end primarily. Having that breadth of skills has really been useful to me.

Tim:

That’s really cool. So, speaking to that — the the length of time that you’ve been working on the web — what are some of the biggest ways that you’ve noticed it change since you’ve started?

Craig:

Going way way back to the very early days, probably the first site I ever did was incredibly complicated. Just because even to do just a hover effect you needed a Java applet. And I actually did write one. It took me days and days and days, and, you know, it was something that we can knock up in CSS in about thirty seconds now.

So, it’s got a lot easier. But there again, the ecosystem has got a lot bigger as well. So, in the early days, where you had HTML and you really had Java applets and that was about it — very quickly we had JavaScript, CSS soon afterwards, and the technology has just exploded exponentially now.

And even when I think back to when I started writing on SitePoint in 2009, we were just really coming out of a period of stagnation. IE6 was the most prominent browser. HTML5 and CSS3 weren’t really things yet, or certainly hadn’t been implemented in many browsers.

We didn’t use the tools we use today, and you certainly couldn’t write JavaScript on the server very easily. So, yeah, it’s just rapid change, and it’s always been like that, and if you don’t like change — well, the web’s not gonna be a fun place for you.

David [5:56]:

So, with all of the stuff that’s changing these days, where do you see the biggest areas of focus, where people should be paying the most attention to the types of changes that are going on — since right now you could focus on JavaScript frameworks, or you could focus on Node, or you could focus on new ways of using Sass.

Where do you think it’s worthwhile for developers to pay attention to that change, and where is it just noise?

Craig:

[Laughs] If I knew that, I’d be a rich man. I think it’s always a surprise. That’s the problem — that you don’t know where the next big thing is going to come from.

All I would say is, you’ve just got to keep learning. You’ve got to keep reading about the stuff. And stay curious.

So by all means if you’re a PHP developer, have a go with Node. If you’ve been trying Angular, then try React. It’s about challenging yourself, and learning something new every day, probably. And also I think, if I’ve learned one thing in this last seven years, it’s to write down everything you do. Make a note of something, even if it’s just for yourself. You don’t necessarily have to publish it in some article.

But if you write it down, you can remember it. And I’m getting to an age where I can’t even remember what I had for breakfast, let alone some weird CSS technique I learned three years ago. So, having those notes allows me to go back and see what I did.

David [7:29]:

It’s amazing how much you stay on top of. And when you read through your articles, what comes across is a sense of confidence in what you’re doing. And yet you couldn’t possibly be the master of all of those different topics at the same time. How much of that is learning as you go? I’m curious.

Craig:

It’s always learning as I go. I choose my topics because it’s stuff I’m working at the time — and that’s the only way you can really work. If I was to say, Well, I’m gonna learn about WebGL today, it would take me forever, and I wouldn’t be very good at it, and I wouldn’t want to publish an article about that.

So whenever I’m working on a particular application, or a website, or some WordPress theme — doesn’t matter what it is — if I find something that’s interested me, or I’ve got around a particular problem, and I’ve learned something, I write about it. And writing about it is the best way to learn yourself anyway.

So that’s why I do it. I’m also interested in the things that happen in the industry as well. So I do write some more conversational articles — things like Browser Trends, and news and events — because I think it’s good to have these discussions and to listen to the opinions of other people.

Tim [8:56]:

My question is — being that you’re writing a ton of articles these days — what do you think you’ll be writing about five years from now, if that’s a possible question to answer?

Craig:

Well, I write a Web Predictions article most years, and I get it woefully wrong. And you’re asking me! [Laughs]

So if I can’t predict 12 months ahead, I certainly can’t predict 60 months ahead. All I can guarantee, I suppose, is the future is never what you expect it to be. Don’t believe technology hype until something has proved itself.

There’s a few things that excite me. Certainly progressive web apps. I think we’re getting to a stage that we can reproduce much of the functionality in native, mobile/desktop apps on the web. And, within five years, will every app be browser based? Probably not, but we’ll be getting close.

As well as that, I think there’s a few interesting topics on the horizon. Virtual reality is a hot topic at the moment, and I’m looking forward to a time when I can strap on some goggles and code anywhere on some massive virtual cinema-sized IDE. And of course the Internet of Things is becoming a massive topic, and certainly if you read SitePoint — I know Patrick on SitePoint writes about a lot of weird and wonderful devices.

Although, how far it’ll go I’m not sure. I was reading the other day about some web-enabled clothes peg, which I think is probably taking things a little bit too far.

David [10:48]:

That’s going to be the future: you’ve got web-enabled-clothes-peg dot com. Go out and register it today.

Tim:

I’m terrified of the future now.

Craig:

[Laughing] But I think it’s going to be different to whatever we expect. We can only extrapolate what we know now, and it’s often the smaller things — the stuff that you don’t think has any importance — that suddenly take off.

David:

So, in order to do this kind of predictions, I’m curious what you go out and read. What do you follow? Who are the people you’re following and reading? Who are your influences these days?

Craig:

Crikey, I mean everything. You’ve got to keep the one eye on Twitter, one eye on Medium, and it’s a variety of people — everyone in the industry — there’s just so many people.

I’ll have to just share my Twitter account: there’s a few hundred on there, and they’re all people who have said important things. Or I’ve read an article, and I’ve thought that’s great. And of course, just everyone on SitePoint. I try to read pretty much every article I can on SitePoint.

And it’s becoming quite difficult to catch up, just because there are so many published now. But it’s a fantastic community of people, and they’re writing about some stuff that I’d never have touched before, and they’re doing a far better job than I ever could. I do listen to a fair few podcasts. Probably the main one is ShopTalk Show — Chris Coyier and Dave Rupert. That’s very good.

But also I’m old school, and I use RSS still, despite Google trying to stop me. So I just subscribe to lots of different sites — Hacker News, all the usual suspects — and just keep an eye on as much as possible. Because I think that, writing the number of articles that I have done, I’ve read far more.

And I just pick things that interest me, and fortunately — well, or unfortunately! — there’s a lot out there that is fascinating, and you can spend your whole life just reading articles.

David:

That’s absolutely true — although what’s impressive is you’re not only reading things, you’re going out there and doing things as well.

When you got yourself started in this, what was it that really attracted you to the technology?

Craig:

It’s really a combination of things I loved. I think in the early days — the very early days when I first started — it was just the design side. Certainly it was the fact that you could publish something and it could be seen immediately by — in those days — millions of people, and today, potentially billions of people.

And the fact that you’ve got a URL that you can distribute, and I come from an era where networks were rare. I started coding in the 80s, and if you wanted to get something in front of a user, you had to put it on a floppy disk. You had to take it over to them, get them to install it, and show them what you did. That’s not necessary, and now we’ve got the web, it just makes it so much easier. You can get something in front of somebody instantly. And I think that’s the the big attraction, and it’s why the web is never going to die — no matter what anybody else says. Because it’s just that instant deployment and instant gratification that you can give to users.

Tim [14:15]:

I definitely like hearing that the web will never die. That was actually the topic of my first article that I ever wrote for a SitePoint. So it’s very nice to hear.

Is there a technology, or a project, that you’re really excited about, that you’re working on right now?

Craig:

Well, I’ve worked with a lot of different technologies. I started in Perl — or certainly on the web in Perl. I did classic ASP, I did .NET, PHP — and I did PHP for a long time.

In this last year or two, I’ve actually been using Node, and it’s been a revelation really. I’m a bit of a JavaScript fanboy, I have to admit. I liked it even the days when it was considered a bit of a joke, and just the fact you can write JavaScript on the client and the server, and you’re not having to change mindset.

I know you’ve got to do different things — you’re going to be communicating with a database, or you’re going to be manipulating the DOM. But the fact that the syntax is similar just saves so much time for me. I don’t have to switch between modes.

And I think as well the Node.js ecosystem is very exciting. NPM has really changed the way I work. Things like Gulp and Express are just fantastic projects.

And that’s at the moment what excites me. But that’s only until the next thing comes along, of course!

Tim [15:52]:

Yeah, very true. It’s interesting that you bring that up, because I’m in the middle right now of launching a fairly large Node project, and I notice exactly what you noticed, where you’re writing JavaScript on both the client side and the server side. It’s the same language, but your concerns are different — and that paradigm is very interesting, because I’m used to a more classical I need to do something on the server; let me go look up how to do XYZ in PHP, and then send that over to JSON for JavaScript to consume and work with.

Craig:

Yeah, I love PHP. I still use it, and I still think it’s got its benefits, especially for just adding simple functionality to a website. And it’s very easy to get started with PHP. But I think the main benefit of Node — for me certainly, and it sounds like for you — it’s just syntactically, and I think it’s very terse as well. With JavaScript, you can do things in a very concise way. Just prototypal inheritance alone makes it very quick and easy to set up objects; you’re not have to define a class necessarily.

So I enjoy that part of it, and you can do some very rapid development — just even down to the fact that JSON is native both on the client and the server. There’s no translation: you’re not using JSON encode and decode all the time. That just save so much time.

Tim:

O yeah.

David [17:20]:

I think that Node is also getting more respect these days. I remember when it was starting off, it was very difficult to get even small companies to agree to do a project in Node.

I’m curious if you’ve had any trouble getting people on-board with with working with it.

Craig:

I haven’t, but that’s partly because the work I tend to do is led by me. So if I fancy doing a bit of Node, it tends to get done in Node. So yeah, I can understand that, and it is a relatively new technology. It’s only been around I suppose since 2009, but realistically it’s only in the past few years that people started to take notice.

But even the other day I was talking to a recruiter who had never heard of the technology, and certainly wasn’t actively looking for Node developers. So I think it’s going to take a little bit of time. Even PHP probably took a good ten years before PHP jobs were a thing.

And all I would say is — there’s no need to rewrite your whole system because Node has come along. But you should certainly consider it if you’re doing things like micro services, if you’re doing something new, then it’s certainly worth playing with Node, and testing it, and seeing what it’s like for yourself. It may not work for you, but I don’t know anybody who’s not enjoying it.

It’s a new way of thinking, and it can be a little bit unusual at first, just because you’re not used to using callbacks on the server and that kind of thing. But it’s a great ecosystem, and I think it’s going to be one of the most popular ones the next few years.

David:

I tend to agree, and I think it’s incumbent upon us as developers to keep experimenting with all of the new things that come around. It sounds like you’ve got yourself in a good position with your career, because you’re self-managing. You’re out there creating things. Did you always self manage your career, or did you come from an employment background and then move into that?

Craig:

Yes, it’s not something I’ve actively managed, my career. I think I’ve sort of fallen into it a lot of the time. I mean, even as a freelancer I wouldn’t say that I’m a particularly avid business person. I just take on projects that interest me. One of the odd things with being an employee and being a freelancer is that, when you’re a freelancer, people listen to you. You could be saying exactly the same things as an employee, but people don’t necessarily trust what you’re saying as much. I go into meetings as a freelancer and say I agree with whatever Bob is saying, and people then take notice, which is really bizarre.

David [20:18]:

That’s a very interesting point, and I think it’s something that a lot of our listeners can learn from in terms of how they manage their own careers.

Craig:

I think so. I mean, freelancing isn’t for everybody. I wish I’d done it years ago, and I’ve loved it all, because it just gives you whatever direction you want to take your career. And there have been times when I’ve probably had to prostitute my skills just to put some meals on the table! But really, in the last five or six years I’ve been able to pick and choose the sort of projects I want to do, and it’s all been good.

And you get to work with a variety of people as well. If something isn’t terribly interesting, you know that it’s only a matter of months before you’re on to something else, and you get to meet a lot people. And I think that’s a good part of it. And even one of the last big contracts that I did was actually working with Ruby, which taught me a lot.

I’ve never really used Ruby before, and it was a bit of a revelation. So you get that experience of doing lots of different things. I don’t know anybody who is a freelancer who didn’t enjoy it. I’ve known some people go back into full-time employment because they’ve had a good offer. But certainly if you’ve got good skills, you’ll never be out of work.

Tim:

Definitely! Can’t agree more with that.

So, Craig, thank you so much for joining us. How can people find you, learn more about you, read your stuff?

Craig:

Without a doubt, SitePoint. I’ve got quite a few articles there. I think it’s up to about a thousand and 50 now.

Tim:

O my goodness!

Craig:

[Laughs] So, SitePoint’s where you find me, if you want to read my articles. But Twitter, if you look at @CraigBuckler, people often start conversations with me there, or ask questions about particular posts. That’s probably the best place to find me.

David:

Fantastic. Well, thank you so much for joining us here at the Versioning Show podcast, and we’re looking forward to reading your next thousand articles.

Craig:

[Laughs] I’m not sure I’ll be around for that — especially because I’m only doing like three a month at the moment, that might be a few years away. But thank you very much. It’s been great to be on the podcast, and best of luck with it.


David [22:42]:

Wow, I had no idea that Craig had written 1,000 articles for SitePoint.

Tim:

Yeah. First off, I know sites that have been on for a while that don’t even have 1,000 articles, so we could just start there. He has out-written some sites that only focus on launching articles, which is pretty incredible. And a very humble guy, too, considering the amount of knowledge that he has.

Just talking about the amount of languages that he’s mastered over these years is incredible — starting at Perl. I don’t even know what Perl syntax looks like!

David:

Well, I’ve done a little bit of Perl, but I can’t possibly say that I’ve mastered it — certainly not well enough to write the types of articles he’s written.

Tim:

It’s really cool to think about just how much he’s seen the web change in a relatively short time — compared to any other industry out there. Imagine, in any other industry, just seeing that many things — like from writing a Java applet to get a hover effect, to now, when you just say element hover do everything.

David:

That had me laughing out loud. I remember those days when I was afraid to bother with hover effects, because you had to write all of this code in order to make them happen.

Tim:

Yeah, definitely. I tend to wonder — in some cases, you have new APIs and capabilities that are coming to browsers that make things easier, right? And then in other cases, you have things that get you much, much closer to bare metal, like for example Service Worker API, wherein you can intercept network requests as they go out.

But then you have other APIs where things can sometimes become a little bit magical, and just happen very quickly and easily. Do you think that’s a good thing, that’s a bad thing, there’s a dynamic between those two? What are your thoughts on that?

David [24:42]:

I think that’s actually one of the things that’s interesting about Craig, in particular — that his writing covers such a broad scope of those things. I think a lot of people, for example, might have come to the web through HTML, CSS and JavaScript — kind of the way that I did — and they may be terrified of some of that really low-level code.

And then there are other people who might come to it from a back-end developer side, where they’ve been doing database development and a lot of server coding. And that’s the part of it that appeals to them, and then they’re scared of the CSS.

Tim:

Yeah, very true.

In fact, I was looking at something like the upcoming Houdini project by the W3C, where they aim to release an API that pretty much allows you to write how the DOM handles CSS. For example, you could write your own layout module in JavaScript, and then in CSS write display my layout module, and then it would all work. In that case, it’s much less magical, because you’re literally writing how that thing works for the web. And I kind of like those. I like closer to the metal, as long as it makes sense.

What I don’t like is things like — at least from my perspective, and my perspective only — WebGL is super confusing and super hard for me to look at, because it’s very bare metal, and very technical and difficult. But to me, it just seems like there’s C syntax in some of that stuff.

David:

Well, the thing about it for me is that it always gets back to the question of — How much are you rewriting the same thing over and over again in order to make something happen? versus How much are you relying on a framework that somebody else wrote to accomplish something that’s not exactly what you’re trying to do?

And all of these frameworks out there — most of them were optimized to work on one particular type of problem, because they were usually written to solve one problem. And then somebody said — O, let’s break this out and make it into a framework, and it can solve everybody’s problems.

But it can only solve everybody’s problems if everybody’s problem is I want to write BaseCamp, so I need Rails, for example.

Tim:

Yeah, very true. And in fact, I find there’s a good dynamic in between that. Sometimes when I’m starting a new project, I’ll see something like — I’ve written this 3, 5, 100 times before. And sometimes, I’ll choose to write it again, because I know that maybe there’s a chance I can do this better, or just keep my skills sharp. And then other times, depending on what it is, I’ll say — You know what, I have this written, I have this in GitHub: let me just pull it down and use that.

David:

Isn’t this pretty much what happened with the whole left-pad thing — with NPM just a couple of weeks ago? And it has all of these implications for how much attention we pay to where our code is coming from when we’re using frameworks.

Tim:

Yeah, very true. And, not to beat a dead horse — there are a ton of articles saying this is fine, or this was a terrible idea, or look how easy you can write left-pad. But I think the point, as I’m starting to see now, is writing a string padding function is a fairly menial task, depending on your level of skill in the industry, right?

But that’s exactly why you would want to use something like left-pad, because I know exactly how to do this, I don’t want to do it 1,000 times, I need it in this module so let me just use it. So in the sense, where is the answer to something like that? Do you go grab the code from somewhere and store it, or do you write it yourself? What would you do in that situation?

David [28:20]:

Well, honestly, if I had been writing the framework it wouldn’t have occurred to me to look to somebody else to write left-pad. I would have assumed that I had to write it myself. But I understand the perspective they were coming from was — We’re trying to reproduce a Rails-like environment inside of JavaScript, and in Ruby we’ve got left-pad. So let’s just make a standard library for JavaScript. And until there’s that kind of standard library that everybody can really rely on having access to, it’s always going to be a question.

Tim:

Yeah, very, very true. Very interesting stuff.

David:

Yeah. Well, I tell you, it’s funny because we started this first by talking about the breadth of Craig’s background and how many things he’s worked on and looked at. And it ends up really getting into the fact that he’s looked at things from the bottom-up perspective and from the top-down perspective — from the front end and from the back end. And, as developers, I think we need to be thinking simultaneously in both directions. There’s so much to keep track of.

Tim:

Yeah, and keeping track is one of the hardest parts, too. I find that a lot of times I’ll wake up in the morning and I’ll think to myself — All right, I have ten email newsletters to read, and thirty blog posts to read, and then I’ve got to check out this new framework, and that’s another tough thing to manage. And sometimes I’ll just tell myself — You know what, I know what I’m working on right now. I know where that stands. I’m just gonna push everything else to the side. And when I need to use A, B, or C, that’s when I’ll look into A, B, or C.

David:

It’s true, because A, B, or C will probably have shifted positions completely from when you looked at them in the first place.

Tim:

Yeah, yeah definitely. It’s also tough, too, if your goal is to avoid burnout. There are some times where you’re just not going to be excited about the latest framework, and really just not going to want to look into it. But then there are times where, a few months in the future, your job is going to require you to look at that thing, and then you kind of have to.

So, right now I think I’m in a phase where things have been busy, and I’m not really excited to jump into new technologies at the moment. Just because I’ve been working on this massive project of late — a couple of massive projects. But I know the time will come — in a few months, maybe next year — where I’m going to be itching to start doing new things.

There’s an ebb and flow to that. So, to give some advice to our listeners out there, don’t expect to always be interested in the next thing. As much as we talk about how that’s a good thing to do, it’s not a bad thing to avoid.

You know, it’s also sometimes a good thing to just focus on what you’re doing now and learning that better.

David:

And that said, we can also take some advice from Craig, which is write down what you’re learning as you’re learning it. And then share it with people. Put it out there, let people learn from it.

It’s a great way to learn, it’s a great way to teach yourself. And you can refer back to it, and other people can find out about it as well.

Tim:

Yeah, it’s a great way to learn back. Especially because, I know for myself, I learned because of that — people just learning something and writing it down. And then I was the one looking at the stuff that they wrote down to make money for my career.

David:

Cool.

So, I think we’ve come to the end of another episode of the of the Versioning Show. Perhaps even the first episode.

Tim:

Yeah, that’s very exciting. It went by too fast, and I’m gonna miss it.


Well, thank you so much for listening everybody. We always enjoy getting to talk technology with all of you.

David:

We would also like to thank SitePoint.com, and our producers, Adam Roberts and Ophelie Lechat. Please feel free to send us your comments on Twitter — @versioningshow — and give us a rating on iTunes.

Let us know how we’re doing.

Tim:

We’ll see you next time, and we hope you enjoyed this version.

M. David GreenM. David Green
View Author

I've worked as a Web Engineer, Writer, Communications Manager, and Marketing Director at companies such as Apple, Salon.com, StumbleUpon, and Moovweb. My research into the Social Science of Telecommunications at UC Berkeley, and while earning MBA in Organizational Behavior, showed me that the human instinct to network is vital enough to thrive in any medium that allows one person to connect to another.

Tim EvkoTim Evko
View Author

Tim Evko is a front end web developer from New York, with a passion for responsive web development, Sass, and JavaScript. He lives on coffee, CodePen demos and flannel shirts.

craig bucklerPodcastsitepointversioningVersioning Show Episodesweb
Share this article
Read Next
Get the freshest news and resources for developers, designers and digital creators in your inbox each week