Succeeding as a Software Developer: The Essential Mindset Shift
Tags: webdev, career, programming, beginners
Published: 2023-12-05 12:36:09

My developer journey began in an era that's hard to imagine.

No social media, X (Twitter), YouTube, or online courses existed.

I couldn't compare my skills to anyone because I didn't know any programmers in real life or online (you didn't really "know people online" back then).

I didn't know if I was a bad, average, or good programmer. I believe this, alone, helped me more than anything else.

It was 2001, and I bought a book about C a couple of months ago.

There was the book, and I started writing my first program.

I didn't share my progress because I had nobody to share it with, but I was happy when something worked. Okay, this is not entirely true; I demoed these programs to my parents. Although they showed signs of interest, it was probably because I was sitting in my room writing code instead of driving without a license.

I loved experiments because I had a lot of questions, but I haven't had anyone to ask.

You could run indefinite experiments with this thing called C, change variables and inputs, and see the results instantaneously. It was kind of a miracle for me.

"Will this thing work? I have no clue, but let's give it a shot!" I learned a ton by experimenting and building many apps.

Three years later, when I entered high school, I sold my PHP app to a local company. I never quit programming since (although I considered it once) and built pretty much everything that's the basis for anything we use today.

Some points originate from the difference between the Fixed and the Growth mindset, which inspired this post. Many books were created on the same topic, but here's the original I recommend reading.

[Mindset: The New Psychology of Success](https://www.amazon.com/Mindset-Psychology-Carol-S-Dweck-ebook/dp/B000FCKPHG)

The book at places might sound like it was made up, and it's just another self-help crap, but hold tight during those parts. I'm sure you'll read something new or understand why you did things in the past.

My career is probably not even at 50%, but I feel there are some key elements of a successful programmer mindset that I wanted to share with you. Here they go.

# Be The Beginner

Two years ago, I wrote about the advantages of seeing yourself as an [amateur](https://akoskm.substack.com/p/akos-weekly-hash-be-the-amateur-4-790634). Studies in the book I recommended above show that prejudice affects people's decisions negatively. This is the result of the fixed mindset.

If you assume you're a programming genius, your mind will try everything to keep this status.

First, to appear as a genius, you don't make mistakes. This implies that you never try new things and never experiment, withdrawing yourself from the opportunity to grow.

And that's how you stop growing as a programmer.

# Advice is Plenty

In programming, wherever you look, you get advice for free. You just have to see it as advice. And I'm not talking about self-made senior developers who earned internet points and are now telling you how to be a millionaire.

I'm talking about other developers and teammates, carefully reviewing your code, and helping you.

With a fixed mindset, these comments could feel paralyzing. The "X requested changes" might feel ashaming.

"What I didn't get right this time, OMG".

But there should be no question whether it's good that someone is requesting changes from you. It's someone else's knowledge applied to your stuff. Someone else's mind, seen in action. It's not something you want to fight although a healthy conversation about whether they were right or weren't is more than welcome you should _grab_ that advice.

# Quit at 5

Hustling was super popular in the Gary Vee era, and now people who were his avid followers are coming at you with a different tactic: _drop things at 5 PM_. Don't spend any more minutes working than you absolutely have to.

Here's what [Dave Cutler](https://en.wikipedia.org/wiki/Dave_Cutler) has to say about this:

{% youtube https://youtu.be/n1VcqmSceMw?si=yNV0d98o4zSH4eBZ&t=35 %}

During my early years at my first employment, I don't remember there was a thing I said no to, although I was employed as a front-end developer. Write a new backend service? Sure, why not? Design a DB Schema? Okay, do I need a pencil or paper for that, or ...? I asked many, seemingly stupid questions.

But now, without a second thought, I hear this from beginner developers and contractors I work with: "I prefer not to do x and y".

I get it. You don't like it, and that's fine.

But remember that the things you use today, including this blogging platform, weren't built because people said, "I'd rather do something else".

# The Money

We do programming for a living. However, in my experience, how much money you make at a given moment could be less important in the grand scheme of things than you think.

If there's a learning opportunity and your life circumstances allow, I'd take a job for 20% less than I would typically do and think of it as paying for a course.

When I started freelancing, I was happy to take on projects where I could _earn and learn_.

But be careful not to use _"I'm still leaning"_ as an excuse when someone is paying for your services.

Learning doesn't authorize you to do anything less than your absolute best work, which might mean you go way below your hourly rate anyway because you have to do additional research, but time showed me it's worth it.

# Giving Back

After working in various industries, such as healthcare and construction, for personal reasons or through client engagements, I see now that the growth of programming has been greatly influenced by the inherent mindset of sharing knowledge and educating others.

Think of open source and just how many free tools you use today.

Programming is a self-sustaining perpetual mobile that functions because people are thought to give back to the community in some form because that's also how they became programmers.

Without being paid or expecting any future returns on it, because I bet there is a programmer who you set out on an incredible journey than you did your part.