DEV Community

Cover image for Remember why you love to code
Yoric
Yoric

Posted on

Remember why you love to code

Did you ever ask yourself:

  • Why do I love programming ?
  • How did I came into programming in the first place ?
  • Am I still connected with that first love ?

If you are in a transition or things get tough (quitting your job, midlife crisis, family matters), then you probably did.

Importance of Why

You may simply answer: I code for a living, to earn money.

That’s a good point.
However, your work may become a hassle if it’s your primary why.

Developer’s world is constantly changing.
If you don’t update your skills, you become obsolete, and competition will turn you into an has been guy.

Why would you update your OS to the latest version ? Why trying different OS like Linux, OS X, Windows ? Why learning new languages, new frameworks, new libraries ? Why optimizing your workflow with new editors, tools, utilities, config files ? Why even reading tech articles, blog or books ?

All of these takes time.
If you don’t have a beautiful and obsessive Why, you’ll have a tendency to keep playing around with the technology you already know.

How did you enter the programming world ?

Out of curiosity ? Friends’s influence ? Parents’s help ? School ? For developing your own game ? Your own business idea ? Your own website ? To impress friends, family ?

When I was 10 years old (30 years ago), all my friends owned a Nintendo, or an Amiga, Amastrad, Atari, Sega… Playing with them was highly addictive.
I never had any of those. Instead, my dad bought a Macintosh. For writing articles, and publishing magazines.
I won’t ever forget playing breakout on it, using a mouse for the very first time. And playing DarkCastle, the one game that compete with gaming machines of that time.

I also got passionate about using drawing application in those early days (MacPaint).
It felt like drawing on a paper, with the digital magic touch addition.
I could use the pencil, eraser, filler, change the brush size, and the filler pattern.
It seemed magical and I could play hours with it.

Then I naturally came to use Hypercard, which offered the same drawing tools as MacPaint, with the possibility to add interactivity.
You could draw a scene, let’s say a house with a tree and a pond fish, then add a transparent button let’s say on the pond. So that when you clicked on the pond, something special would happen, like the animation of a fish jumping in the air, and falling back in the pond.

You could actually trigger any instructions with events like mouseClick, mouseEnter, mouseWithin, mouseLeave, etc…
I didn’t realize it was programming at the time. I was hooked in trying all the possibles instructions to add interactivity to my drawings, play music, play animations…

I played hours with it, and was eager to show the results to my family. I wouldn’t have explore much if it was me alone.
I loved it to draw anything, then add hidden features that would surprise them.
It was more about creativity, and exploring new possibilities that nobody was really aware of at the time.

It was far from coding blocks of code in a text editor.
Gradually, I came to it, as I was eager to grow my one line instructions into more sophisticated code that could do more cool and surprising stuff.

At the time, I developed simple educational games, related to what I was learning at school, like how to memorize irregular verbs in English, or how to learn new English vocabulary in a funny way.

I also wanted to develop games like Tetris, Pacman, DarkCastle, but I soon realized I was limited and needed to switch to a more professional developing environment.
So I used Pascal and C language. They were way faster to execute, and the possibilities seemed infinite, although not as intuitive as Hypercard.

I finally could develop anything I wanted. Any game, and it looked fantastic.

I didn’t “learn” how to program, but I was driven by my desire to create good looking results, and exploring new possibilities. It was all about experimenting.

Eventually, I also played with assembly language. I remember I was playing SolarianII, a space shooting game, and couldn’t pass the three last levels. However I got thrilled when I discovered I could invoke MacsBug, a low level debugger, at anytime on that machine. From there, I could explore and modify the code being executed in assembly language. I figured out the memory location for the variable holding the number of lives, so I could modify it to whatever number I wanted. I was stunned it really worked. I finished the game that way, which was a disappointment for cheating, but clearly a cool hack to finish the game.

Why do I love programming in the first place ?

There’s something very rewarding in imagining something in your head, and then realizing it straight with your hands.
Could it be a game, an educational program, a system utility or a business oriented application.

There are two points to keep in mind here:

  • You need to have a clear view of what you want to do.
  • You don’t code for the love of coding in the first place, but for the end result. Then eventually coding will become enjoyable as you master the process.

The point is, you don’t code for yourself, you code for the result to be used by others.
Coding looks like a lonely activity, but good coders fuel their energy with emotions they share with others.
Could it be the end user, their team mates, the testers or business associates.

It’s a wonderful feeling to become confident enough to build anything you can imagine. The key point is to know what you want. And to be excited about it.

Conclusion

Remembering why you first came to love coding is important, because it’s so easy to deviate from it.
Before coding, ask yourself :

  • Do I have a clear idea about what I want to achieve in the next three hours, or the next three days ?
  • Will I be excited to show the result to someone I know ?
  • Why do I want to learn Python, Javascript, React, IA, Machine Learning, blockchain… is it because it’s trendy ? To get a promotion ? To get a new job ? To make my business idea come true ? Simply out of curiosity ? Learning with following a tutorial is cool, but it can be very boring if you don’t have your own Why.
  • When was the last time I enjoyed coding that I forgot eating or sleeping ?
  • When was the last time I was thrilled to watch people’s reaction about the product I made ?
  • Would I be enthusiastic myself using my application or website ?
  • Am I part of a vibrant community that is pulling each other forward ?

I wrote this article because I feel I somehow deviate from my initial passion. I took a year off to think about it.
Being a professional developer is cool (you get paid for what you love) until you get trapped into a daily routine with a foggy view of what to do, and why you’re doing it.

Top comments (5)

Collapse
 
emkographics profile image
Emko

Nice write up. Could you please elaborate more on the "somehow deviate from my initial passion" and "daily routine with a foggy view" parts? What sort of spark would reignite your passion? and what would you change in the daily routine to keep things more interesting?

Collapse
 
yoric profile image
Yoric • Edited

That’s an interesting question to dig in.
Loving to code, like loving another human being, is to be taken care of, or it might get weaken over time.
It relates with being active (new) versus being passive (used to) paradigm.

  • When you’re new to programming, or you get a new job, or you’re in a new relationship, or you move to a new country, you’re more likely to be proactive (you merely have no choice). It requires more efforts, more actions from you. It can be scary, but it’s also exciting, and interesting, because you never learn more than in such situations.
  • “Being used to something” on the contrary means daily routine. You’re already there for years, if not decades. You already explored your world around. You already setup things. You already know what will be the result of action A, B, C beforehand. So you’re more likely to be passive.

It doesn’t necessarily means you need to get a new job / a new relationship / move to a new place every year.
Just being mindful about it. To try new things, and tickle your comfort zone.

What spark can reignite your passion:.

  1. Socialization: I’m an introvert and it doesn’t come naturally to me, but I came to realize human relationships are definitely the #1 requirement to be excited about anything. Think about it, would you be happy if you were left alone on this planet, event though you would benefit all the food, entertainment and convenience for free ? Happiness comes from emotions, and emotions come from interacting with other human beings. Hence the importance of being part of a community, like dev.to, Stack overflow, GitHub, or any other. Advice to myself: be more active in a couple of online communities.
  2. Personal, side projects: once you’re not alone, you will feel more naturally engaged in all sort of side projects that will spice up your life as a developer. Advice to myself: If you don’t feel excited about any personal projects, work on 1/ first.
  3. Teach and learn. They really come together, empowering each other. You learn better when you teach, and you teach better when you learn. Advice to myself: As much as you can, write an article or make a video or tell a friend, every time you learn anything new.

Each point should come naturally, but we may tend to forget about it, like I did. I wish those could light up my passion again (time will tell).
Thanks for pushing my awareness into that direction.
By the way, it’s always nice to hear about other perspective / opinions.

Collapse
 
decadx profile image
decadX

I feel the same today. Took 5 days off, trying to convince my self to learn something new, but I can't find that Why. Money is good on the managerial level where all devs go to die...and going higher looks a long way to go. I need to find that Why again. Thanks for your write up.

Collapse
 
alainvanhout profile image
Alain Van Hout

For me, software development is not about languages, libraries or frameworks, but about creating structures and approaches that solve complex use-cases or problems, and do so in a maintainable/sustainable way. Though I immensely enjoy Java and (vanilla) JavaScript, these tools are exactly (and only) that: tools. It's the architecture aspect that I love.

Collapse
 
jaydar profile image
Ertis

I think that is a good article !thanks