Q: Have you had your first cuppa joe yet?
Actually, I don’t drink coffee; I just never acquired a taste for it. That’s probably a good thing, though—the last thing anyone wants is me on high doses of caffeine!
Q: It feels like you packed years of Web developer experience and wisdom into this course. Can you talk a bit about how first you learned to program and how you began your career as a developer?
It ain’t the years…it’s the mileage. I “lucked out” in that my dad got in on the ground floor when computers for public consumers first started hitting the market. One room downstairs was always full of a half-dozen TRS-80s and, later, IBM clones. My dad started programming games as a hobby, and eventually created a program to help his administrative staff manage his office (which, years later, he turned into another business, selling the management software to his colleagues across three states). Being around all of that, I got a very, very early start.
By middle school, my friends and I were pushing Apple BASIC about as far as it could go (maybe farther), creating games and educational programs. Whenever there was an opportunity to learn a new language, I took it. I’ve always felt that there’s never a good reason to stop learning. Maybe valid ones (like “I’m really hungry, I need to go eat something”), but never good ones!
Then I lucked out again—I got to college right when the World Wide Web started trickling out to the whole wide world. It was just really good timing, and I was the right guy in the right place at the right time.
Q: Your course does a great job of encouraging students to think like programmers. What kind of mental attributes or practices do students need to develop or acquire to become professional coders?
Coders, mechanics, carpenters, plumbers, electricians…there are a lot of professions that all have something in common: they put things together, and those things have a clear and useful function beyond the aesthetic. If you want to do this kind of work, it’s not enough to know what those things look like—you need to know what makes them tick. You want to know what makes them tick!
Users look at the surface, ’cause that’s all they’ll get to see. Developers are under the hood, welding joints and swapping wires. If you want to do this stuff, you’ve got to get greasy! Cerebrally speaking, at least. Let’s call it “brain grease.”
Q: This is one of, if not the, funniest courses we’ve ever seen. What role does comedy play in making challenging concepts less intimidating?
There’s a hypothesis (I read it from Stephen Pinker) that humor is the sudden connection of two mental concepts that weren’t previously connected. “Why did the chicken cross the road? To get to the other side.” The first time you hear that joke, your brain suddenly connects the concept of “chicken” with the concept of “volition,” and it opens up a whole new world of chickens actually doing things because they have a goal in mind.
The thing is, it’s not just conceptual—the hypothesis is that you’re actually rewiring your brain when you make these new connections. So there’s a significant overlap between funny people and smart people, because they’re people who tend to be good at making new mental connections, and making them quickly.
If you extend that logic, then learning and humor are really the same thing! I figure if you can warm up those gears with something that everybody appreciates (the funny) then our brains are ready and willing to keep working on making new connections for the more challenging stuff (the smart).
Change the world, man.
Jokes aside, the important bit is that once you learn some code, learning more code gets easier and easier. From a classical programming perspective—the one that all your computer science teachers are coming at this from—coding is quite literally about finding solutions when faced with a goal to achieve and a list of resources and assets you get to apply towards that goal.
What that really means, without all the fancy talk or technical jargon, is that being a good coder means being a good problem solver. Picture that scene in Apollo 13 when they throw a pile of junk on the table and say: “Here’s the only stuff we get to use. Now how can we keep our astronauts alive and get them home safely?” Ideally, that process of taking things apart, analyzing the logic behind them, and making them work better (or just differently!) than before can be applied to pretty much anything: school, work, home repairs, planning a party, running an economy, establishing a government…nearly any field can benefit from a good, solid foundation in problem solving.
So, really: not a joke after all. You can change the world with that kind of thinking.
Q: I still can’t believe you wrote a jQuery plugin specifically for the course. What inspired you to do that?
I did what now?! Oh! Right, sorry—that part’s still kind of a blur. Maybe I should start drinking coffee.
Seriously, though, I went ahead and wrote that plugin for two primary reasons (one of which I mentioned in the course).
First: I couldn’t find the right parallax plugin to teach. For the other two effects in the lesson, I found great plugins by other developers that were both really well done and relatively easy to convey to students, who might not have that much experience with this stuff yet. That was an important factor – if the plugin wasn’t easy to use, I’d have to teach that plugin specifically, on top of teaching about plugins “in general.”
Most of the parallax plugins I found were either not cool enough to get students excited about using them, or far too complex to fit into a mere third of the lesson material on plugins. Weighing my options, it seemed a much better plan to simply write a cool plugin that would be quick and easy to teach.
The other reason, which I point out in the course itself, is that writing plugins shouldn’t be quite so impressive. Technically, you could say you’re writing a plugin every time you write a function! It might be a small one, sure, but it’s something you can use over and over again to accomplish a specific task.
The upshot is that by that point in the course, the students themselves know enough code to write some simple plugins…even if they don’t yet realize it. My writing one on the fly, just for this course, was a sort of demonstration of that principle.
Q: Can you talk about the course projects? They seem designed to provide experience in some practical, real-world development tasks.
Right! When you and I were talking about developing the course, one thing you asked stood out in particular, and made a strong impact on me: “What would a company hiring our students want to see in their skill set?”
That was the impetus to get into some real code work, stuff that might be simple within the confines of the course, but reflects tasks a professional developer would actually be called upon to do (by a boss, a co-worker, a client…).
By tackling all of those now, the student can prepare to take on some real-world professional assignments. Better yet, when a prospective employer asks “Do you know how to…?” our students will be able to smile back and say: “You bet I do.”
And thanks for the insightful inspiration, by the way!
Mobile devices are one of the most astounding demonstrations of Moore’s Law I’ve seen in my time as a programmer and general technologist. Not long before I moved to Los Angeles at the turn of the century, it was still a big deal that I had a cell phone—you know, a bulky one with a plastic antenna, a one-inch monochrome LCD screen, no Internet, and no real apps to speak of.
By the time I was back in New York less than a decade later, smartphones with full-color high-resolution screens, WiFi, and more RAM than my first laptop were considered an indispensable prerequisite for getting about in the modern world. “There’s an app for that” has become such a universal punchline because it doesn’t need to be said anymore!
Since nearly everybody is at least as likely to be viewing a site or app on a mobile device as on a desktop machine—and each successive generation of users is even more likely—the best way to reach a wider audience is to make your content accessible on a whole new level. “Cross-platform” is an archaic term, now—anything that isn’t cross-platform is a dinosaur. (And not one of the cool ones, like a T-rex or something.)
Mobile changed the game, and in almost all cases, it made it better. Not only does it give consumers constant access, and vendors ubiquitous channels, but it’s upped the game for manufacturers and developers too. Amateur hour’s over, the browser wars are a thing of the past, and everybody has to get with the program if they want to keep up—passive-aggressive battles over standardization and proprietary code are now a complete waste of time, which means we all get to participate in making a brave new world instead of arguing over where to put the equator.
The short version: I’m a fan.
With all that in place, the projects that clients require have to be sleek and efficient, powerful and portable—all the things we’ve been inching our way towards since the giant vacuum-tube behemoths of the 1940s. Today’s systems are practically an order of magnitude orders of magnitude (no, I didn’t stutter!) faster and more powerful, but today’s users are actually capable of using up that space and processor load with all the cool apps and widgets on the market. Tight footprints and agile, elegant code are key, and modern development tools help modern developers meet those demands.
Q: The world needs more Web developers more than ever because:___________
…I’m quitting and moving to a remote private island with no Internet connection.
Kidding! I sunburn too easily. But despite the fact that veteran developers like me will be sticking around for the foreseeable future, there’s going to be plenty of room in this field because it keeps expanding.
Look at the Web in the mid-1990s—the way I remember it, half the sites out there were search engines (presumably searching the other half…?). You had some personal sites, some ambitious little projects that ended up really taking off, and a lot of start-ups with rinky-dink layouts and blinking GIFs. That was about it.
Flash forward to today, and you’d be hard pressed to find any serious business, whether a restaurant or a pottery school or a petting zoo, that doesn’t have a Web site. That’s because, frankly, it’s difficult to consider yourself truly in business unless you’ve got one. It’s become de rigueur for participating in our global economy.
Yeah, we’ve got a lot of prospective clients out there who think they can DIY their sites to save on costs. Flat out: they’re wrong. There’s a titanic difference between a site made by a developer and a site made by some Scrooge who didn’t want to pay a developer (or even Scrooge’s nephew, working for free). The most non-Web-savvy consumers sense that difference, even if they can’t quite put their finger on it.
Generally speaking, a first-class chef or an expert ophthalmologist shouldn’t be developing their own Web sites any more than I should be making onion soup or shooting people’s eyes with lasers. If we swapped jobs like that, the results would be the same across the board: tears and bloodshot eyes.
Tools like Dreamweaver or Wix or WordPress can help a non-developer get a site up; but those tools won’t magically turn that non-developer into a developer, and won’t guarantee that the site is any good! There’s a lot more to making good onion soup than putting onions in broth, and there’s a lot more to correcting myopia than pointing a laser and pressing a button. Web development’s the same way: WYSIWYG apps only go so far when WYS isn’t seen by a trained, skilled developer, and WYG is (as a result) an unfortunate mess.
So even though there are more developers than ever, there’s also more development to be done than ever! Web presence has become just a part of doing business; the developer will make that happen. Just like the mechanic will keep your delivery van working, the electrician will make sure your computers have power, the plumber will see to it that the toilets flush, and the carpenter will put a roof over all of it. Pretty much everybody needs this stuff, so there’s plenty of demand; and sites and apps are just the same.
All of that merely means: if you’re a designer or developer just starting out, don’t think you’ll be out in the cold. There are a lot of us prospectors on the mountain, sure, but the whole thing’s made of gold. You can stake your claim, big or small—it’s just waiting for you to show up with the right know-how and equipment.
Sessions Staff is a restless soul who loves to share Campus News stories with current and prospective students.