Infra code and Clojure/script full-stack app code.
In my previous blog post Real Full-Stack Developer, I was pondering the concept of a full-stack developer. I also wrote a blog post on the Metosin site regarding how developers co-operate together as a superorganism. After spending time with these thoughts, I was also thinking about what makes a good developer. On the same day, I listened to an interesting Finnish podcast about Impostor syndrome (Huijarisyndrooma on kettumainen ilmiö) All these things boiled in my head, and I got an idea: I must write a short blog post with the title “Good Enough Developer.”
What Makes a Great Developer?
In my personal opinion, anyone can be a great developer. You don’t have to be a virtuous programmer. What is essential is to have an open mind, a lot of curiosity, and be a relentless learner. And to have the courage to enter new areas in which you don’t have much experience - the work itself will give you experience.
In addition to those qualities, if you are a superb programmer by God’s mercy, that’s a plus. I have seen a couple of really, really good programmers. It is an absolute joy to work with a virtuous programmer since you learn fast with that kind of mentorship.
Everything is Interpretation
Working with a really, really good programmer can also be a bit intimidating experience. E.g., in my previous project, I worked with one of the best Clojure programmers on this planet (read more in my earlier blog post My First Project at Metosin!). That’s the moment when you can choose between two different narratives. In the sad narrative, you tell yourself: “I’ll never be as good a programmer as this guy. All hope is lost. I might as well quit and start a new career flipping burgers.” Or you can choose a more positive narrative and tell yourself: “Gosh, this is just great! One of the best clojurians on the planet is reviewing my every PR - what a great learning opportunity this is!” Remember: Everything is interpretation - choose a narrative that is easier to live with.
When working in a company full of great programmers, you might feel that you are not as good as the other programmers, and they soon see through you. You will be exposed. An average programmer. That’s the Impostor syndrome talking, don’t give it any power over you. Once you choose that negative narrative, you will teach your brain that you lack something and are not worth enough. That’s bullshit. If you are working as a programmer, most probably someone already is happy with your work. Relax. Create a more positive narrative for yourself.
You can tell yourself: “It’s pretty darn sure I’m not the most talented programmer in this company. But that’s ok. I’m good enough. With the help of these great programmers, I can be pretty productive, bring food to the table and enjoy my work. And I can learn every day! And if I really want to grow as a programmer, isn’t it good to be among better programmers you can learn from than with some programmers who have nothing to teach you?”
Being good enough is a comforting feeling. In most jobs, you don’t have to be the best of the best of the best - usually good enough, is good enough. I think I’m a pretty good example of this. I don’t consider myself a great clojurian. But with my experiences creating infra code and also be able to implement full-stack apps using Clojure/script (with occasional help from my colleagues in our #tech-clojure Slack channel) - I’m pretty productive member of our company. I enjoy my work enormously, and I can also give back to our community with my IaC knowledge. Now that I think about it, I kind of like being a generalist. I’m not a superhero of any specialty, but I’m good enough in IaC and various programming languages so that I can be a Good Enough Real Full-Stack Developer.
Be merciful to yourself. Don’t create negative narratives about your competence and your career. Be positive. Most often good enough, is good enough. And you can learn every day to be a better programmer.
The writer is working at Metosin using Clojure in cloud projects. If you are interested to start a cloud or Clojure project in Finland or you are interested in getting cloud or Clojure training in Finland you can contact me by sending an email to my Metosin email address or contact me via LinkedIn.
- Kari Marttila’s Home Page in LinkedIn: https://www.linkedin.com/in/karimarttila/