How to Deal With Abstract Concepts in Programming? Revisit Your Basics

Kamil Nicieja

How to Deal With Abstract Concepts in Programming? Revisit Your Basics

I once asked a friend if he could teach me how to play the guitar. He had been interested in music for a few years and knew his stuff; I had just bought my first instrument.

I sucked at it.

It wasn’t that hard to play. Apart from getting to know the picking and the chords, I just had to move my fingers fast enough. Doable after a bit of practice. I couldn’t compose anything, though, and for a person who likes to create new things, that was hugely demotivating.

My friend seemed enthusiastic when I asked for his help.

“Beware: I don’t get any of it, even the basics. Won’t that bore you?”

“I don’t mind,” he replied. “I like to revisit the basics now and then. It helps me to remember what’s really important. After all, rhythm is the most basic thing you can think of. Without it, there’s no music.”

That got me thinking. Of course it’s nice to discover new things. But hasn’t relearning concepts that I already understand really worked out for me so far? At the time, I was more of a wannabe writer than a developer. I had already employed reiterating a text into my writing and reading routines; I knew a good book is a book you read many times and always learn something new.

But could this process also be used in other fields? I will show you 3 ways how elementary things can help you in programming.

Developers, it’s time to refactor your thinking

Jon Snow with a guitar

You know nothing, Jon Snow. Now go revisit your basics.

In a nutshell, revisiting basic ideas is a way to combine them with what you’ve recently learned. This may be especially helpful for programmers, who deal with a lot of abstract concepts on a daily basis.

Coding an application is a lot of fun for the first month or so, because that’s when you’re building a prototype. You’ve got your Minimal Viable Product and a clearly defined set of features. Implementation should be easy, right? But as time goes on, the team implements new stories; the existing features expand to the point when they no longer serve their original purpose; small, hackish one-liners pile up. Before long, you end up with fat controllers or methods you can’t read anymore.

That’s the time you should revisit the basics: the most essential design patterns. It’ll make you think like a beginner again, but with all your current knowledge available at hand. This process lets you really understand why these things are recommended for newcomers by the community.

You’re a solid programmer, I’m sure of it: you do your homework and have read a lot of articles about good design solutions. Now go reread them. Abstract concepts are just that — abstract — unless compared with real-life examples. That’s what you ought to do.

A tool for designers to nail the details

When we’re beginners, we take the most basic things for granted. Tutorials tell us what to do, often explaining why it’s a good practice. Even when we gain more experience and learn about the history, debates and failures behind it, we still don’t think about it that much.

Sometimes, that’s good — you can’t question everything all the time. Just do it like everyone else, then focus on the important issues. On the other hand, when you do decide to dig in with all the experience you’ve gained, you’ll be able to squeeze the very essence out of these basic ideas. And often, that’s what it takes to come up with the little things that make all the difference in design.

Just read the article about crafting link underlines on Medium, and ask yourself a question: who the hell spends a month on redesigning a 1px horizontal line every browser renders out of the box? It’s the most basic element of the entire web! The answer is: those who care. Those who nail things.

If you want to be that person, revisit your basics.

That’s right, links are the most basic element. But they’re also the most essential. Medium platform is all about great experience of reading, so when you find out that some studies suggest underlined hyperlinks have been found to hurt reading comprehension, you suddenly understand why it was necessary for their designers to perform such an experiment.

(I admire the effort, but am a little disappointed that they didn’t manage to clear the descenders. That’s the detail I would instantly fall in love with.)

Grow your company’s culture

Funny enough, a few years have passed and I still haven’t learned to play the guitar very well, but my friend’s lesson has proven to be very valuable for me. I try to revisit my basics with every new project, every fresh piece of code, every short story — because when you do it, it becomes a strong foundation to build upon.

These foundations, they’re called habits.

What’s important for you, however, is that companies have habits, too. As I wrote before: bad teams don’t control their habits; great teams choose them. All the little things you do every day shape your workplace’s culture.

Luckily for us, as Charles Duhigg explained in his book “The Power of Habit”, we can actively rebuild and shape our habits if we know how they emerge. Depending on your company’s culture, the rules of your workflow may be formal or informal, but it’s still obligatory to review them once in a while. That’s especially helpful when a new person joins the team. They’re new to your workflow; they have to learn it from scratch.

The truth, however, is that it’s you who should be learning from them. They give you an additional fresh perspective for feedback — the chance to reshape your team’s habits by revisiting your company’s basics.

So, ask yourself this question: what are you building upon?

As for me, I’m going to play some guitar for old times’ sake now. Perhaps a few songs by The White Stripes.

"I was an apprentice in an upholstery shop when I was a teenager, and there were three staples in a piece of fabric. After I stared at it for five minutes, I was thinking how three was the minimum number of staples it would take to hold that fabric on one side of the board. A wheel could have no less than three lugs on it. A table could stand with three legs.

I always return to the number three. I use it as a basis for everything I do. Red, white, black. Vocals, guitar, drums. Storytelling, rhythm, melody."Jack White, The White Stripes guitarist


Jack White’s pieces are so simple and so powerful at the same time. Learn from that. He knows his stuff.

 

Kamil Nicieja avatar
Kamil Nicieja