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.

Where Next?

Popular in Discussions Top

matthias_toepp
I’d love to hear what people think about Wisp, the new Gleam web framework started by Gleam’s primary creator Louis Pilfold. Gleam, alon...
New
Donovan
Hello everyone, I’m so glad to have discovered this awesome community. Thanks for creating it! This is my second post, and apologies for...
New
arcanemachine
https://nitter.net/josevalim/status/1744395345872683471 https://twitter.com/josevalim/status/1744395345872683471
New
nburkley
AWS re:Invent is on at the moment with some interesting announcements. One new feature in particular is the Lambda Runtime API for AWS La...
New
AstonJ
If a newbie asked you about Phoenix Contexts, how would you explain the basics to them? Feel free to be as concise or in-depth as you li...
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
chulkilee
Here are the list of HTTP client libraries/wrappers, and some thoughts on HTTP client in general. I’d like to hear from others how they w...
New
joeerl
I’m playing with Elixir - It’s fun. I think @rvirding does give Elixir courses these days. Re: files and database - when I given Erlang ...
New
scouten
I’m looking for a host for the server part of a small (personal) side project that I’m working on. It’s currently written in Node.js and ...
New
Markusxmr
Since Drab has been developed for a while in the open, introducing the Liveview functionality in a way it happend appears to undermine th...
New

Other popular topics Top

gshaw
What is the idiomatic way of matching for not nil in Elixir? E.g., First way: defp halt_if_not_signed_in(conn, signed_in_account) when...
New
dokuzbir
I want to highlight html closing tags when i click a html tag. That works in .html files but doesnt work for html.eex templates. How can...
New
jason.o
In the code below, if the create action is not set to accept “extra_key” as an input, it errors out with a message shown above. Is there ...
New
saif
Hello everyone, Long time lurker first time poster here. I’ve recently begun working on Elixir full-time again! :raised_hands: It’s been...
New
KronicDeth
Elixir plugin for JetBrain’s IntelliJ Platform (including Rubymine) This is a plugin that adds support for Elixir to JetBrains IntelliJ...
289 36128 110
New
romenigld
I am trying to run a deploy with docker and I successfully runned with this command: docker build -t romenigld/blog-prod . but when I t...
New
klo
Got a question about when to concat vs. prepending items to list then reversing to achieve appending. So i know lists boil down to [1 | ...
New
joaquinalcerro
Hi there, I am working with Ecto-Postgresql and I need to call all of the records from a specific table but the table has 40,000 records...
New
hariharasudhan94
I would like to know what is the best IDE for elixir development?
New
Qqwy
Update: How to use the Blogs & Podcasts section You can post links to your blog posts or podcasts either in one of the Official Blog...
3271 126479 1222
New

We're in Beta

About us Mission Statement