tio407

tio407

Bad programmer seeking mastery - no passion for programming

Hello all,

I graduated school with very little programming knowledge and got my first job as an Elixir engineer. I have enjoyed using Elixir in production so far. However, I struggle to keep up with my peers. I have no passion for programming (being honest), but it pays the bills for my family and so I am stuck. I do want to love it because there’s an intellectual part of me that is still interested (I like watching Joe Armstrong and Rich Hickey talk about programming). However intellectual interest is not enough; I have to force myself to code.

Now that I have to make the best of my situation, what is the best way to gain mastery? I feel as though I will enjoy it more if I get good. I have no ideas for a side project and I’m not sure how much doing leetcode will make me more skillful for a production codebase.

I would appreciate any advice on this :slight_smile:

Most Liked

Dusty

Dusty

When I started medical school there were 100 in my class. I’d like to say that everyone made it through, but the truth is that we lost a few along the way. So what was the difference between those who made it and those who didn’t? Was it intelligence? Toughness? Altruism? Love of medicine and science? No. It wasn’t any of those things. It was student loans. Every single person that dropped out of my medical school came from a background that made it possible for them to enroll without taking on hundreds of thousands of dollars in debt. For most of us, stopping simply didn’t feel like an option, and it kept us going through the toughest moments.

Right now, you feel trapped in your job. But perhaps your situation is doing you a favor, keeping you in your job through a tough period where you might be tempted to give up. The way you feel about your job is cyclical—it’s the same for all of us, even if our careers are very different. If you had the choice to easily walk away, you’d miss out on all the good times that are coming up—and they definitely are coming.

You said “I feel as though I will enjoy it more if I get good,” and you are absolutely right. It’s insightful, but it’s also only part of the equation. About a decade ago, Daniel Pink began giving short lectures to promote his new book, Drive. In that book, he explains that research has identified three factors that motivate people and improve their performance:

  1. Autonomy

  2. Mastery

  3. Purpose

One of my personal observations over the years, is that it’s very easy to acquire one of the three elements when you already have the other two. And in real-world scenarios, we see fluctuation in these three elements many times in one career. For example, during a period of strongly-felt purpose, you might feel comfortable returning to a beginner’s mind, seeking mastery in a completely new arena. You might be willing to sacrifice some autonomy during that period, and then suddenly seek it out again by starting a company with your newfound skills.

Perhaps your work situation isn’t currently the place to provide you with fulfillment, but that could change. Imagine this: You use your free time to build a static website for a local charity, or a lifelong friend who is starting their dream business from scratch. The website itself isn’t anything special, but the cause is close to your heart (purpose). Over time, you add more and more features. You can do whatever you want, because the recipient is appreciative and you’re working alone (autonomy). You end up adding heaps of functionality, and in the process you start pushing some of your tools to their limits (mastery). Let’s say that those tools are open source, like Elixir or LiveView. Now suddenly you find yourself with a skillset to give something back to those open source repos. So you start contributing there. People are grateful—they’re using your code, you’re building relationships, people see you as a mentor. This new code is different from what you write at work. This code gives something back to you.

What happens then? The answer is that you bring all of that with you when you go to work. You have a lot more to offer your employer, and if they are smart, they will start to give you autonomy in exchange for your mastery. This autonomy may allow you to find or create purpose at your job that wasn’t there before. Or maybe it will be time for a new employer, self-employment, etc. You never know where your head will be down the road.

JorisKok

JorisKok

I was in a similar situation, where I did everything to try and escape coding. I tried learning a new language (not a programming languages), tried getting a different education. But having nowhere else to go, I did coding in between, and am now at a company that I really enjoy working for, and will probably keep coding for a long time. Even though I consider myself a (reliable) mediocre coder.

Things in short that made me realise I do like coding:

  • 3± year experience in the same area will get you over that bump, where everything is hard, to where everything is more easy. Then you can put in more of your creative mind.
  • (personal) Accepting that you are a geek. I rejected being OK with loving games, coding etc, and not loving parties etc. Now I am more OK with it. Much better quality of life.
  • My first job was pretty horrible. Toxic colleagues mostly. Which made me think all coding jobs would be like that, while it was actually the company itself that was the issue. Took me a while to get over that.
  • The company might not suit you. Good colleagues are super important :heart_eyes:
kip

kip

ex_cldr Core Team

I think this is a good point from @JorisKok, the joy of programming isn’t the entry of code into the editor. It’s the joy of using data structures and algorithms to represent the solution to problems - the more creative part of the process. So if you get sufficiently proficient at the translation of data structures and algorithms into code it becomes more enjoyable to program - being the higher level creative process. And in addition, your code itself will probably get better too. Just my opinion of course.

Last Post!

mkunikow

mkunikow

I didn’t wanted to offend anybody … :slight_smile:
My point is you want be coding 100% … maybe doing some architecture deign, doing technology radar for your company , managing teams … there are other things beyond coding …

Where Next?

Popular in Discussions Top

AlexMcConnell
The reason that Rails is as popular as it is is because it’s very easy for relatively inexperienced developers to get a lot of work done....
588 20142 166
New
rms.mrcs
A couple of days ago I was discussing with a friend about different approaches to write microservices. He said that if he was going to w...
New
boundedvariable
I am going through the kafka architecture. All the features what the kafka is providing are already in Erlang. I would like hear your opi...
New
lorenzo
Hey everone! I created a prototype for my app using Nodejs for the api. But the framework I chose wasnt great (in general theresnt any g...
New
Nvim
Elixir appears to be a superior language to Python. I don’t see any advantage of Python over Elixir. Are there any?
New
AngeloChecked
What learn first? Rust or Elixir Hi Elixir community! I’m here because i want learn a new language. I’m a junior developer and mainly i ...
New
paulanthonywilson
I like Umbrella projects and pretty much always use them for personal Elixir stuff, especially Nerves things. But I don’t think this is ...
New

Other popular topics Top

lanycrost
Hi everyone! I need implement if…else if…else condition from my elixir code, and anymore of this control flow structures not work proper...
New
aadeshere1
I have a another noob question about loop. Since elixir is immutable, while loop is not directly possible. total = 10 while total != 0 ...
New
sen
Hi All, I set a environment variables in dev.exs , like below code. when i start server, how can i set the ${enable} value? thanks. d...
New
gausby
I asked this very same question on twitter and got some interesting feedback, but I thought it would be a good question to ask here as we...
1207 40165 209
New
msaraiva
Surface is an experimental library built on top of Phoenix LiveView and its new LiveComponent API that aims to provide a more declarative...
564 44265 214
New
Harrisonl
We have an ECS cluster with 4 services, where each task joins a single cluster, via discovery ECS discovery service. Currently when I de...
New

We're in Beta

About us Mission Statement