DEV Community

Am I a good developer?

Jefferson Matheus on January 04, 2020

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...
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 :)