To all those don’t meet you yet. How do you describe yourself?
I’m assuming you mean in the “work” sense. :-) I’m a designer who codes. I was schooled as a designer, did print design and later art direction for several years. Then I started doing web design and learned frontend technologies. Currently I use that knowledge and experience to help organisations figure out how to solve web-related problems in the broadest sense. I do this through design and code, but also through workshops and temporarily joining teams on specific projects. The past several years, my projects have dealt mainly with responsive design. I also do quite a bit of speaking and writing about responsive design, design process and UI/UX, CSS, and anything my experiences lead me to.
When you started developing, what were some common mistakes you made along the way?
That makes it sound like I’ve stopped making mistakes, haha. I often joke that my career is really one long thread of mistakes. :-) I make them all the time.
As far as development goes, one of the biggest mistakes I made is not insisting on being involved in the design phase of projects. When developers are involved early, they can start thinking about possible solutions, signal when the see a red flag and brainstorm with designers for possible options. They are also better able to estimate the effort that will be involved in development. It avoids surprises.
There are many more mistakes; I could probably fill a book with them.
Frontend seems to be easy until you start to learning. How do you face the challenge of learning new things?
Lately, I’ve been trying to really look at whether something is important for me to learn at all. If you do frontend, what’s really important? I would say HTML and CSS. I would also say JavaScript, though I’ve met plenty of capable JS developers who show insufficient knowledge of even the most basic proper usage of HTML. So: HTML, CSS. Then basic web accessibility, WAI-ARIA. Javascript. Other fundamental technologies like SVG are great, too. If you know these things, you can do frontend. You might not know the newest fad framework, but you have a solid foundation. Also, note that I’m still learning those basics, since they’re being added to all the time. I don’t know a single person who everything about all of them. Fundamentals first, then whatever you like. But you’ll never be done learning the fundamentals.
Accepting that it’s okay not to know everything is hard, but necessary.
What would you qualify as the top few problems facing developers today?
Communication and other people problems. Teams not actually working together, not talking, not sparring with ideas. The waterfall mentality of large organisations. Or even worse, pseudo-agile, which is just waterfall in the form of bi-weekly sprints.
How would you recommend somebody to start learning web development?
Again, focus on the fundamentals. Create a structured document using a tutorial such as those found on MDN. Opera Software also has excellent articles, as does the Chrome team. But to start, just mark up a document. Try and understand what the different elements are and what use cases they might have, how you might combine them. Understand how these elements create a tree structure. Start looking at this structured content in as many devices as you can.
Then start learning to apply style using the same resources. Keep looking at what happens on devices. Learn about inheritance and the cascade. See if you can use these to your advantage. Don’t worry about CSS “methodologies” or pre- and post-processors for now. Learn as many ways to do layout as you can. Have fun and play around. Learn about media queries and responsive design.
That’s the start. Then comes JavaScript. Again, the same resources are very useful.
Also, I’m severely oversimplifying. :-)
What are the things you would have known when you first started?
There was less to know back then. I’m glad I got in when I did, because I was able to learn gradually.
When starting a new project, if you feel stuck where do you look for inspiration?
I sketch. I step away from the screen and ask myself, “if I could start over with this particular problem, how would I approach it?” Then I sketch. If nothing comes out of that, then I’ll just fill my brain with as much information about the problem as possible, and then go do something else. Usually, ideas will come after a day or so when I sit down to sketch again.
What was your first development job and how you faced it?
My first one professionally was when I was still at an agency in the late ’90s. Even though I knew HTML, I drew out the design in Photoshop, sliced it up into bits and pieced it back together with tables in Dreamweaver. At least I think it was Dreamweaver. Dirty little secrets.
What was the most challenging project you ever faced and why?
I don’t have one. Every project is challenging in a different way. But the most challenging projects aren’t the ones that are technically difficult. In many ways those are fun. But the projects in which people don’t get along well or don’t communicate well… those are the toughest. That said, I once did a site where we had to take a CSV file, have it generate about 800+ custom graphical charts on the fly; that was challenging back when we did it.
Can you describe your workflow when you create HTML, CSS and JavaScript from scratch?
It took me a whole book to describe that process (Responsive Design Workflow), but in description: get real content, structure it with HTML, slowly build up styles based on small screens first, then add layout and changes for larger screens, then add behavior/logic/whatever with JavaScript. This works for web “apps” as well as web “documents”.
What excites you most these days?
Pretty much everything. At the moment SVG really has my attention. I’m also fascinated by animation and also frontend performance, but I see new things every day that I find interesting.
What is the most important thing you’ve learned?
That it’s all about learning, and it’s all about people.
Do you have any favorite books, videos, or resources that you could share with the readers?
Sure. Anything on A List Apart. Any book from A Book Apart. Perhaps my own book. Aaron Gustafson’s new version of Adaptive Web Design. Smashing Book #5, as well as many articles from Smashing Magazine. Jeremy Keith’s blog Adactio.com. Brad Frost has lots of good articles and resources on responsive design. I could go on and on. In fact, I might have to go and make a must-read list.
Do you have any advice for new developers just starting their career journey?
Don’t try to learn everything at once. Start with fundamentals and everything you learn will have a cumulative effect. When you learn something, try to use it at the first opportunity.
And remember that basic web standards will stick around longer than methodologies, frameworks, libraries, buzzwords, and bandwagons. If you haven’t learned any JavaScript yet and someone says you should “just install npm”, run. Run like the wind. You’ll learn about that later.
What can we expect from Stephen in the future? Anything you want to share?
Two things interest me a lot right now: design simplicity, and knowledge management for web projects. And I’m also learning “proper” programming, so I hope to make some cool things outside of client work in 2016.