DEV Community

Jefferson Matheus
Jefferson Matheus

Posted on • Updated on

Am I a good developer?

Well, I can’t say if this text is about Imposter Syndrome or not. Most of what I read about it, explains the definition and try to give some advice to the others as a way to help them out. But my words here are just about some thoughts and feelings from my perspective as a developer. I’m 30 years old and started programming about 8 years ago. I have worked with a bunch of different technologies in a few companies in different teams, here in my country and also remotely with international teams, which is my current format of work.

Throughout my career, since the beginning, I’ve always felt like I was a step behind the others. Even today, when I have an opportunity to have a conversation with another developer, there is a big change I’ll assume that the other person is a level higher than me, so I try to speak the less I as can. I feel like I’m surrounded by lots of fingers pointing at me judging my lack of knowledge. Even though I know that it’s all in my head, I can’t get rid of it so easily.

I know that nobody knows everything, but without realizing it I catch myself having thoughts like “Damn, I’m doing this for years so I should know how to use Docker yet”, “I should clearly know why to use the JS framework X over Y framework in that situation”, “Am I able to speak with confidence about why Object-Oriented Programming is better than Functional Programming and vice versa?”. After all of these years programming, I also blame myself because:

  • I don’t have vast knowledge in the current technology I’m currently working, when I think I should because “I’m an experienced developer”
  • I have some difficulties to keep some basic concepts in my brain and discuss them (I’m actually embarrassed to write some of them down here)
  • I’ve never worked with unit tests for real (I guess tiny projects on GitHub doesn’t count, does it?)
  • I’ve never used any design patterns (or at least I wasn’t aware of using them)
  • I don’t feel confident enough to do a code review properly (every time my pull request get some suggestions I think “OMG, how couldn’t I think this way? It’s so much simpler)
  • I have difficulties to think about a project architecture from scratch

After reading this list you may be thinking “so all you have to do is to study and then you’ll get better on those points”. But, as every day there is a new technology coming up, the more stuff you have to study. Personally, I can start doing something on React, for example, but I end up losing the interest quickly and I just can’t keep going on. I have plenty of courses on my Udemy account but never watched the most or haven’t finished them. The same happens with tons of PDFs with tutorials and courses I used to keep and I’ve never read them.

Nowadays I see some job positions like “Senior Developer”, “Senior Dev Engineer” and “Tech Lead” and I think to myself “After 8 years, do I feel like a Senior?”, “Do I really have 8 years of experience or did I repeat 1 year 8 times?”, “The HR interview seems to be fine, as well as the coding challenges, but could I pass the technical interview?”, and I end up not applying to those ones. I’m more interested in positions like “Software Developer”, “Frontend Developer” or “Fullstack Developer”.

Another thing that bothers me a little, is: as 30 years old person, I cringe when I see those kids in their 20’s having hot discussions with other developers, giving good suggestions in the Scrum meetings or creating amazing stuff, like Dan Abramov who created Redux in their 20’s (I guess). Damn, they seem to be so perfect. Yes, I know that everyone is different and each one of us has different experiences, different background histories, and different personalities, but this pill is still hard to swallow for me when it shouldn’t. And please, I’m not mentioning this as a bad thing, it’s the opposite, I would like to be like them and whenever I can, I try to learn from them.

Well, these are just some confessions, and though it may look negative, maybe every developer felt, or will feel, some of those points I’ve mentioned here at some time of his/her career. We’re not perfect and every day there is a new chance to learn and improve ourselves. Sometimes I think that it’s more about self-confidence and less about technical knowledge because self-confidence will help you to bring more technical knowledge.

And that’s all folks.
Be curious, and don’t forget to drink water.

Top comments (23)

Collapse
 
murrayvarey profile image
MurrayVarey

You are not alone with this problem! Be kind to yourself. There are so many ways to be a good developer.

I'm terrible at keeping up with the latest frameworks. However, I see that as a personal strength -- it allows me to focus on the user and communicating ideas and solving problems. Things that I would consider timeless.

Other developers enjoy keeping up with the latest and greatest technologies. That's awesome. They can help me, and I can help them.

Is there one part of development that you really enjoy? Or that you're strong at? If so, try building around that.

Collapse
 
jefferson227 profile image
Jefferson Matheus

I like when you mention about "focus on the user", there is another comment here about focusing in the user and it makes me think that sometimes it's like we're creating software for other developers and not for the users, whose should be the main focus.

A couple of years ago I was in a meetup which the speaker told us something like: "If you're more concerned about creating the next JS framework than making the people's lives easier, you're like a Civil Engineer that builds houses only for other Engineers to live. Programming is much more powerful than you think, use this power!".

Currently I'm working as .Net developer, but I like Frontend more. While I can't switch my position I like to give some shots on GitHub, building silly stuff for practicing my Frontend skills.

Collapse
 
murrayvarey profile image
MurrayVarey

So true. Programmers who can put themselves in the users' shoes are extremely valuable. It's just as valuable as knowing all the frameworks off the top of your head. After all, Google can find you frameworks. It can't find you empathy.

Also, don't be too put off by job descriptions. Often they're thrown together by recruiters, who ask for all technologies under the sun.

Collapse
 
mxmzb profile image
Maxim

I have plenty of courses on my Udemy account but never watched the most or haven’t finished them.

I LOLed. I don't think there is a single person walking the earth who has watched all their Udemy courses (or even a fraction of them) till the end. Udemy courses straight up suck 95% of the time because they always feature the obvious stuff for a prolonged time. They are made for absolute beginners.

Anyway, please realize the following: Dan Abramov isn't a better developer particularly because he created Redux. There are a lot of people who created some libraries or came up with some sort of technical implementation. Dan Abramov was fortunate enough that he did the right thing at the right time and it gained traction. That alone doesn't make him more knowledgable than you. You may close on this thought by saying he was at the right time at the right place.

Right now he is (re)learning JavaScript, particularly by teaching it to others. And by the way, the first sentence in one of his recent articles is saying exactly what you are fighting with:

During my first few years of using JavaScript, I felt like a fraud. Even though I could build websites with frameworks, something was missing. I dreaded JavaScript job interviews because I didn’t have a solid grasp on fundamentals.

What I would say though, is, that Dan is an excellent writer - maybe even better than he is a developer. I also think he has a few other, advantageous traits that helped him to get where he is now, but that's on another topic.

So relax. You're doing good. Dan is doing good. Everybody is doing good. Don't degrade or elevate yourself or anyone based on where you or anyone is. If you feel you lack some knowledge or some skill, isolate that realization from any judgment and expectation. Then go and look it up. Feel better afterward.

Collapse
 
jefferson227 profile image
Jefferson Matheus

Your words somehow brought some relief to my heart. If I feel like a fraud it doesn't really mean that I'm a fraud. This bad feeling makes me not see what the good stuff I've done so far and the skills that I'm good in.

We're here to (re)learn by our mistakes, and that's beautiful :)

Collapse
 
mbougarne profile image
Mourad Bougarne • Edited

Stop comparing yourself with others, each of us has it's circumstances, and a lack of knowledge doesn't mean you're behind someone else. I'm a self-taught developer, when I started it was just about how to write code and make it work, I wasn't care about what's going on? How the things wokrs out there nor why to use this over that? I was hungry of knowledge and learning, I was pushing myself to know a lot of things at once, but in the end I didn't catch any, so I stopped and I decided that I must go with what/where I found myself. I stacked with JavaScript, Vue using Nuxt in Front-end and Express in Back-end, PHP using Laravel. I have 4 years of experience as a professional developer but just two years as a full stack since I started with web design.

  • In design patterns I use just: Repository, Factory, Adapter and Singleton.
  • Testing: I just know and work with Unit Testing in PHP, I started playing with Jest in JS.

You're not behind anyone, in contrary what I see is that you have a passion a lot of it which makes you hungry to know more and seeking knowledge BUT don't let it put you down or make you feel that you are less or behind the others.

Collapse
 
jefferson227 profile image
Jefferson Matheus

So, this is like a daily battle with myself. I don't know where this feeling of competitiveness came from, so without realizing it I'm comparing myself to the others like we were in a race or something like that. But you're completely right when you talk about passion and it reminds me when I was learning how to code and enjoyed every line I typed, maybe I missed something about this passion during my career and should focus more getting this passion back and feel happy for being able to build something with the lines of code I typed.

Thanks for your comment :)

Collapse
 
sebbdk profile image
Sebastian Vargr

See it as a good thing, it sounds like you are surrounded by people that can teach you stuff and keep you engaged.

As long as you have interest in your work, I wouldn’t worry. :)

I think I might have felt the same around my 7-8’th year as a developer.

Now I am on my 13’th and seniority and accumulated knowledge just kinda snuck up on me.

Collapse
 
jefferson227 profile image
Jefferson Matheus

It's good to hear that from another experienced developer. In the end, we are doing a good work but this sense that "I'm a step behind everyone" is very bad. I think the secret is to know how to cope with this kind of feeling just by knowing that we can't know everything about all, and that's okay since you're doing what you love :)

Collapse
 
sebbdk profile image
Sebastian Vargr

Ps, I still feel humbled by others quite frequently, in fact, problably more now, since I am more aware of the soft knowledge gabs.

Collapse
 
spock123 profile image
Lars Rye Jeppesen • Edited

Don't worry, .. most of us feel this way I think.. in part because we are exposed to super smart people due to Open Source and the Internet. You get the feeling everybody are geniuses and that you don't know shit.

But trust me, you see the tip of the iceberg online.. most people would never dream of publishing anything.

The fact that you even wrote this article proves you are way beyond the average /s

Collapse
 
jefferson227 profile image
Jefferson Matheus

Your perspective is very interesting. We forget that not every developer has a GitHub account, give lectures or write articles, for example. I just wrote this article because I thought "I can't be the only developer feeling like this". But I couldn't imagine to reply any comments so soon. It's awesome.

And also it's good to know that even some of the "top of the iceberg" already felt like a fraud at least one time during their careers like I read in the other comment here.

By reading the comments I'm feeling I'm going on the right path by not giving up and trying to cope with those bad feelings :)

Collapse
 
cronokirby profile image
Lúcás Meier

I think it's a good idea to shift your focus on what technologies you know / don't know, to what kind of products you can deliver, and ultimately what kind of value you can provide to a business or other people.

Instead of thinking about how, well, you could learn X or Y stack, or improve deployment with Z, focus on what products you're capable of making instead.

Of course, you shouldn't completely stop learning, but focusing on what matters is a lot easier ;)

Collapse
 
jefferson227 profile image
Jefferson Matheus

Yeah, you're completely right. As I replied in another comment here, sometimes we are so lost in an open sea of technologies and JS frameworks, that sometimes we feel like we're creating software for another developers, whereas the main focus should be the final user

Thanks for your comment :)

Collapse
 
jefferson227 profile image
Jefferson Matheus

I like when you talk about a "great position to become a better developer because you see your blind spots". Maybe now, after all of these years, this is a good moment to see what I've done wrong, what I've done right and how I can improve even more as a developer (and as a person as well, why not?).

I guess I remained so much time in silence about those bad feelings that is good to receive a feedback like yours.

Thanks for your comment :)

Collapse
 
fullstackcoder profile image
fullstackcoder • Edited

Get the numbers out of your head.. "30 years old", "kids on their 20s", "8 years of development".. Years are important only if you are whisky..

I am 31 yo, I am coding since high-school, I worked on Web development and embedded systems but I don't call myself a senior developer or principal developer or whatever. I let the others play with those labels and I use my time doing what I love the most and this is software development. If you are able to list several ways to solve a technical problem and choose the most efficient, if you are able to handle the software development process in every stage, if you know what you don't know but you know where to look for it in order to get the missing bits, then (to my eyes) you are a senior developer.

All the aspects you mentioned, like the unit testing and the design patterns, you can all master them as along as you are willing to. Don't let the frustration distracting you. Although, if you like this industry but you struggle to feel comfortable with the programming part, then you should probably consider other roles as well (qa/tester, product owner etc). NOT because those roles are easier to master BUT probably those roles might suit you more.

In any case, I wish you good luck!

Collapse
 
jefferson227 profile image
Jefferson Matheus • Edited

I guess at some point I just missed that passion of writing code and enjoy the result. I ended up focusing on wrong stuff that keeps me away from what I like to do, which is to build software.

It's interesting when you talk about "consider other roles", even though I can't imagine myself in another position than a developer, but why not? I'll think more about that. Maybe it could be another way to explore my skills. Interesting.

But I think this frustration that you've mentioned is what is blocking me. Without it, everything would be SO much easier. I'll on that.

And thanks for your words :)

Collapse
 
etampro profile image
Edward Tam • Edited

I think we should take this question from a higher level perspective. I think devs like Dan Abramov are rare gems. We shouldn't use them as examples to generalize.

I think how good your as a developer is more than just having great coding skills and knowledges. Let's be realistic, there are tons of new tech/libraries/lauguage/whatever you can name every so often. No one can possibly be familiar with everything. Not saying technical skills are not important, but it is just one of them.

There are also some other very important traits, such as:

  • Scope of ownership (writing a function vs service vs entire system etc)
  • The end-to-end-ness of your solutions (tech stack, infrastructure, deployment, monitoring)
  • How many different types of problems you ran into and
  • How much you leverage your experience to avoid getting your stakeholders into trouble
  • Knowing the unknown
  • Mentoring others to become better

I used to be one of those cool kids criticizing other people's code and I wished there would be someone who could tell me all these earlier. I hope this help you or at least give you insights!

Collapse
 
jefferson227 profile image
Jefferson Matheus

In every profession there are those who does a bad work, others who does a good work and others that are exceptional like "omg, this person was born to do this!". The bad part of comparing yourself to the others is that you're aiming the perfection without taking into consideration your background, your feelings and not seeing the good outcomes you have done.

The points that you mentioned takes me to another level of perspective, showing that there's a whole world out there to explore and focusing on negative thoughts like "I can't do this" or "this is very difficult and I'll never learn it" can block our evolution.

Along our careers (and life as well), we'll commit lots of mistakes and I believe we can learn from them. And that's what I'm trying to do now.

Thanks for your comment :)

I'm currently trying to do my job and learn things at my own pace.

Collapse
 
gdenn profile image
Dennis Groß (he/him)

Jefferson you deserve a lot of credit for writing so open about yourself. I think that is very courageous.

I believe many developers deal with imposter syndrome at some point of their career. I was there too and it revisits me every time I take to long to finish a ticket at work or can't find the ideal solution for a problem.

That's normal, it is just a sign that you really care about your work and that you are a person that reflects a lot.

And it is also normal that you meet people that know more about a topic than you. Don't be shy or embarrassed by that, instead embrace it and try to learn as much as possible from those people.

Collapse
 
picogeek06 profile image
Gopal Mishra • Edited

Trust me, I felt each and every word in your Blog. As a beginner developer i constantly feel the same when i look at my fellow colleagues just scroll through tasks and complete them in a jiffy! The constant feeling that i dont have enough knowledge, kills the mood several times!
But what has helped me is socializing about it and being open to my colleagues. Asking for help is not a bad virtue, i believe it shows the learning atitude and thats what most of them want in their employees.... (I hope soo) :P.
Thanks for the Blog!

Collapse
 
garrett profile image
Garrett / G66

You’re a good developer if you put the users first.

Collapse
 
jefferson227 profile image
Jefferson Matheus

In fact, it's always good to be in the users' shoes and try to make the best product we can. Sometimes we are so addicted to develop the "happy path" that we forget about how the people will use what you're building.

Thanks for your comment :)