Should you learn to code?

Default avatar.
November 22, 2012
Should you learn to code?.

ThumbnailI earned my BFA in ’98. Learned to layout feature pages and create infographics for the local daily paper. I earned a Photoshop ACE in ’03. My most recent full-time contract was pure mock-up design work.

Yet for the last year and a half I have debugged code 40–50 hours a week. I read about code, I wrote about code, I talked to other people about code. Imagine that: a non-coder figured it out.

Still, “write code” is a broad phrase. Some languages are easier than others. Some languages require an understanding of how software “talks” to the computer. The most important part of learning code is keeping the correct mindset. It’s not telling yourself “I can do this” or hunting for the right books.

Here’s how it works.

Hold it — should you learn to code?

Literacy in any computer language, from simple HTML to complex C++, requires dedication not only to the technology, but to changes in the technology. There’s a reason HTML5 ends in a number. When enough browsers support HTML6, developers will have new things to learn.

Possible reasons to put yourself through the learning process include:

  • To gain confidence: I’ve had rare clients who think that if they master a language then computers will intimidate them less. While that may be the case, it rarely sticks without dedicated practice.
  • Necessity: technical problems will arise whether or not one's job description fits the bill. When problems must get solved, there’s a time to pass the buck and a time to buckle down and solve it.
  • The thrill of it: some people just like to learn new skills.
  • To understand what’s possible: a developer says “it can’t be done.” Do they mean it’s impossible? Or that it’s more trouble than it’s worth? A designer says “I want it to do this.” Did he or she just give someone a week’s worth of headaches? Can technology be used in a more appropriate way?

Stay curious

I’ve seen it. You know, that look. Not quite panic, not quite despair. It’s the look someone gets when they realize the appeal of letting someone else do the heavy lifting. The look that says, “That’s a windshield; I don’t have to be the bug.” I’ve seen it in co-workers’ eyes, students’ postures, and staring back from the mirror.

In my experience, it isn’t fear of failure that intimidates people. It’s fear of getting lost. Overwhelming hopelessness encourages feelings of inadequacy. That cycle will beat anyone down.

Courage or persistence are not antidotes for feeling overwhelmed. Stopping before feeling overwhelmed is the solution.

Pressure

Pressure image via Shutterstock.

My favorite technique is to tackle a project with three traits.

1. Find a topic that irks you

Deadlines and paychecks are fine. But nothing drives people like an itch they can’t scratch. In the long run, learning code must not be an end in itself. It must become a salve for some irritation.

Way back when, I got frustrated that I couldn’t find a good book. There’s no shortage of book discovery websites, but intuition told me there was a better way. So I started my own website. I never finished the project, but I learned many ways to organize novels. On the way, almost incidentally, I learned more code.

2. You should be rewarded for incremental effort

Having found that proverbial itch, people learning to code should also find relief.

No tutorials, tools, or outside praise will give people the mindset to conquer code better than “I wrote this and… look what I did!” and leaving with a sense of being greater than the obstacle you overcame.

It sounds silly until you try it. Seeing code perform gives people a micro-rush of self confidence, a validation that they can master the machine.

Code

Code image via Shutterstock.

Last week someone looked at my screen and shook his head. It was full of code. Three open windows of colored tags and function calls. He said: “I could never do that.” Years ago I would have agreed. I didn’t want to look stupid or break something that I could not fix. Who knows what damage one wrong keystroke would cause?

3. Your project should conclude while your brain still has an appetite

This one’s critical. When learning something that intimidates you, you must approach but do not exceed your limit.

“Exercising your brain” isn’t an appropriate analogy. When working out, trainers encourage people to push just past their limits. But learning is a hunger. Your brain has an appetite for knowledge. Filling your brain to the brim (or worse, exceeding its limit) will hamper your ability to learn, erode your self-confidence, and kill a kitten. Please, think of the kittens.

Better yet, think of mental exercise as one workout that happens to last a while. Say, one week. Sure, you take breaks between reps (called “getting sleep”). But rushing ahead works against your goal. The kittens will never forgive you.

  • Part one: warm up by mixing something you already learned with something you don’t know. Leave yourself at least one question. 1 day.
  • Part two: practice. Experiment. Practice repeating experiments. And always end on a cliffhanger. The goal is to hit your stride and break on a high note. By “break” I mean sleep, eat, or talk to fellow humans. 3 days.
  • Part 3: cool down by improving what you’ve already covered. As always, get your brain to a point of enjoying the exercise, then let go for a while. 1 day.

Sprinting does not train you for a marathon. A hundred pushups will improve your shoulders better than trying to lift a truck once. And cramming tutorial books like shots of tequila will impair your ability to think.

Practice daily

In my newspaper days, I refused to use stock art. Deadlines came five days a week, but I insisted on hand-crafting my own vector art. Six months later I was the go-to guy for any custom graphic work. That one skill that earned me a senior position at a startup company. Even today I love fiddling with bezier paths.

Learning any skill, including how to debug code, works much the same.

The only way to learn code — and make it stick — is to practice every day. Like learning any new skill, a consistent schedule with manageable goals gradually improves performance to the point of expertise.

“I can” is not “I should”

Part of learning to read and write code, be it HTML, jQuery, or C++, is learning one’s limits. Another part is explaining one’s limits. The curse of understanding a language … rather, the curse of people thinking you “know code” is they’ll expect you to do it.

Technology

Code image via Shutterstock.

HTML is not CSS. CSS is not PHP. PHP is not WordPress. WordPress is not server administration. Server administration is not fixing people’s clogged Outlook inboxes. Yet I’ve been asked to do all of that. Me, armed with my expired Photoshop certificate and the phrase “I don’t know, but maybe I can help….”

Those without code experience often don’t differentiate between one $(fog-of).squiggles+and+acronyms; or <another/>. Not that we can blame them. Remember what it was like before you threw yourself into learning by

  • finding a topic that interests you;
  • getting incremental rewards;
  • learning without getting overwhelmed.

Knowledge of code is empowering. Reputation as a coder is enslaving. At least both pay the bills.

Are you a designer who codes, or a coder that designs? Should the disciplines be kept separate? Let us know what you think in the comments below.

Ben Gremillion

Ben is a writer and web designer who worries about not experimenting.

Read Next

10+ Best Resources & Tools for Web Designers (2024 update)

Is searching for the best web design tools to suit your needs akin to having a recurring bad dream? Does each…

3 Essential Design Trends, April 2024

Ready to jump into some amazing new design ideas for Spring? Our roundup has everything from UX to color trends…

How to Plan Your First Successful Website

Planning a new website can be exciting and — if you’re anything like me — a little daunting. Whether you’re an…

15 Best New Fonts, March 2024

Welcome to March’s edition of our roundup of the best new fonts for designers. This month’s compilation includes…

LimeWire Developer APIs Herald a New Era of AI Integration

Generative AI is a fascinating technology. Far from the design killer some people feared, it is an empowering and…

20 Best New Websites, March 2024

Welcome to our pick of sites for March. This month’s collection tends towards the simple and clean, which goes to show…

Exciting New Tools for Designers, March 2024

The fast-paced world of design never stops turning, and staying ahead of the curve is essential for creatives. As…

Web Tech Trends to Watch in 2024 and Beyond

It hardly seems possible given the radical transformations we’ve seen over the last few decades, but the web design…

6 Best AI Productivity Apps in 2024

There’s no escaping it: if you want to be successful, you need to be productive. The more you work, the more you…

3 Essential Design Trends, February 2024

From atypical typefaces to neutral colors to unusual user patterns, there are plenty of new website design trends to…

Surviving the Leap from College to Real-World Design

So, you’ve finished college and are ready to showcase your design skills to the world. This is a pivotal moment that…

20 Mind-Bending Illusions That Will Make You Question Reality

Mind-bending videos. Divisive Images. Eye-straining visuals. This list of optical illusions has it all. Join us as we…