DEV Community

How do you handle lack of self-confidence and career-numbing doubt?

Mohmed Jasim on October 06, 2017

I quit my first (programming) job almost two months ago after realizing that I was extremely burned out and wasn't really getting any work done. I ...
Collapse
 
kspeakman profile image
Kasey Speakman • Edited

Just want to say that I applaud your bravery and transparency in posting this. This seems like Imposter Syndrome. Did you see this article?

Overcoming Imposter Syndrome

Points of note on the cycle of Imposter Syndrome from the article

  • Anxiety, self-doubt, worry
  • Ignore any positive feedback
  • Feeling like a fake, depression, anxiety

Realize that in this very young field, we are all making it up as we go along. There is also an inordinate amount of concepts to learn in the beginning. You don't have to (and in fact can't) know everything up front or code perfectly. Free yourself from thinking like that.

Look for people in whom you find mutual support and encouragement, and make them a regular part of your life.

Collapse
 
mohdjas profile image
Mohmed Jasim

Thanks for the kind words and the article, Kasey. I'd read about Imposter Syndrome when I started out in tech, but it never crossed my mind again, nor did I think that I'd have it (always thought I wasn't working as hard as the others).

I'm trying to recalibrate my expectations of myself, and try to do this as a marathon and not a sprint.

Collapse
 
jess profile image
Jess Lee

Echoing what @kspeakman said because this does sound like imposter syndrome, especially if you were receiving positive feedback from managers.

For me, issues of self-confidence and doubt stem beyond programming so I've been dealing with these issues by going to therapy, which I highly recommend for everyone.

Collapse
 
mohdjas profile image
Mohmed Jasim

I've also tried M D Burns' 'Feeling Good' handbook after seeing many recommendations on Reddit for it - would recommend it as a good read into reshaping or neutralizing negative thought processes.

Collapse
 
rossbates profile image
Ross Bates

Hey Mohmed - what you are feeling is not uncommon. And as others have mentioned, you're already on the right path by recognizing how you feel, and being open and honest in addressing it.

Dealing with issues of self-confidence and doubt is a complicated issue. The root causes might not have anything to do with the quality of your code, or your levels of productivity.

The first 2 questions that pop into my head when reading your post are these:

  1. Is writing code something you love doing?

There's no right or wrong answer here. I know many incredibly talented programmers that consider coding their "job" and don't spend any time on software outside of their 9-5. It would help to understand where you draw your motivation from.

  1. How are you defining failure?

You mentioned failure twice. What leads you to believe you are not making progress? What sort of expectations are you placing on yourself and are they realistic?

Something that helps me when feeling overwhelmed or discouraged is to remember that there is always a path forward to a positive outcome. Even if you can't see it, it exists... like right now. Don't see it? That's ok, it's still there.

Collapse
 
ben profile image
Ben Halpern

Software development is incredibly complex, and nobody knows the whole language, the whole system, the whole API, the whole codebase. EVEN IF THEY WROTE IT THEMSELVES. It's just complex.

When people talk about software development confidently, they really are only talking about the sliver they understand. And if they're smart, they'll know it really is only a sliver.

I still feel nervous talking about software in any capacity IRL because there is so much I don't know. SO MUCH and it feels like everyone else knows more. Logically I know I know a lot but I'm still not great at the terms. I am bad with CS concepts, git, patterns, and lots of other stuff. It's really hard to define what I'm good at. I know I'm good at stuff, but I still can't even describe what I'm good at.

I'm more comfortable than ever with my doubts because I've come far enough that I can look back at a year ago, two years ago, etc. and see a lot of progress. It's really hard to see any if you don't zoom out.

But this stuff ain't easy and a lot of people make it look easy. But it isn't. Your feelings are totally normal, and it gets better.

In a year, two years, three years, or so, you'll probably feel more comfortable. For now, try to imagine yourself exuding the average confidence you will have over the next decade in this field and some of the feelings you're having now are going to be offset in the future by increased abilities and capacity to look back on this time with a whole new perspective.

Collapse
 
imthedeveloper profile image
ImTheDeveloper • Edited

It's perfectly fine to need a break. It's perfectly fine to find you have 0 inspiration and a complete lack of drive to start something new or even continue on with something you have half completed. The important part is recognising that this "downtime" is normal and infact you are probably learning more about yourself during this reflection period than you give yourself credit for. I have hundreds of failed and half finished ideas and projects. I feel a bit guilty sometimes but also I recognise that I need the space to think about other things too.

I think a large factor to self doubt is stemmed from the fact you only really see two things in life. The very good and the very bad. Social media and especially my own Twitter feed is full of this kind of stuff. I see so many awesome projects built by people who I think are some programming god. I see some failed start up tweets from techcrunch but most importantly I don't see anything about the people who are spending hours trying to code the simplest of tasks, failing, learning and stressing.

This does not mean the "trier's" don't exist. Trust me.. they do but they are observers and are probably sitting there just like you worrying about where to go and what to do next. This is the vast majority of the population. So don't let the top 10% and the bottom 10% make you think you have to be doing something to have worth.

The above is precisely why I've become a big fan of this community. I get to see the awesome projects and the inspirational ideas, along with threads just like this which are so relatable that you get a huge sense of grounding that you can't find elsewhere.

Collapse
 
lpasqualis profile image
Lorenzo Pasqualis

In any field where the complexities grow to be greater than anyone's single brain can handle, the feeling of being inadequate is normal, real and expected. Nobody knows everything or even 10% of what there is to know. Programming and computer science are endless fields of knowledge that you could study all your life and feel ignorant the entire time. Ther is always a sea of things you don't know and don't understand.

I have a few suggestions and views that help me deal with all of this:

  • 100% confidence is impossible. If you were 100% confident, you'd be 100% misguided and unaware. The fact that you have insecurities is not only normal, is good.
  • Focus your learning on only a very few things at the time. If you try to learn everything at once you'll get burned out and depressed. It is far better to methodically focus with a clear goal.
  • Don't measure yourself against others. Even after having spent most of my life coding, I still see what others did and think "wow, I can't do that." Remember that most software is built by more than one person, collaborating with others. It is also built on top of libraries, operating systems, frameworks, etc. If you look at what somebody else is doing and don't understand it, that's healthy and expected. You will never get to a point where you look at other people's work and think you can do it all. You'll always feel like you wouldn't know how to do it.
  • Measure yourself against yourself only. When you can do things that you couldn't do before, notice it and give yourself credit.
  • When your manager or other co-workers tell you that you are doing well, that's how they see it. They believe it. It is similar to how you feel about other people that you think are doing well. They might be insecure, but you recognize their brilliance the same way your manager and co-workers recognize it in you.
  • When you have doubts, share your doubts and ask for advice, especially from people that you trust and respect.
  • Software development is teamwork. Ask questions to people that you respect, and try to get behind their way of thinking. Doing so, you'll add tools to your toolbox, and you will start using them in different situations.
  • If you feel tired all the time, unexcited about things you used to like, uninterested in learning new things, unmotivated, or if you don't find joy in things you used to like, you might be experiencing the symptoms of depression. Therapy, medications, consistent sleep patterns, eating healthy, exercising, etc.. are wonderful tools that you shouldn't shy away from using. Look at them as career-boosting tools (and more).
  • Join a team that is compatible with your level of seniority. It is good to have senior developers around to help you but is also good to not feeling like everybody else is way ahead of you all the time. It can get depressing. Try to find the right team, and find a solid mentor that can help you progress and learn. Mentors are a shortcut to confidence.
  • Find a team with a boss that cares about your growth, and about you as a person. Somebody that is there for you, and is supportive. It makes all the difference.
  • Every company is VERY different. If you only had one programming job, you might have been in a bad environment, or at least bad for you. Changing environment is a good thing. You might find that in a different company you'll feel totally different.
Collapse
 
cschmitz81 profile image
CS • Edited

A couple of things.

First, understand that you are only part of what makes you a successful dev, your team is the rest. If you've only had one programming job there's a chance that you weren't growing well because you weren't working at a place that properly encourages growth of jr devs. It's not to say that the place you worked at was bad necessarily, but if the development of jr devs is not a priority for the company then it could stunt your growth.

Another thing you can do to boost your confidence is to work on small things in your personal time to gain quick wins and focus your learning. When I say small, I mean small. Something that you think you could tackle in an afternoon or over lunch. Those small wins can def be a confidence booster and can help you build up your skill set.

The last thing I would say could sound discouraging but it's 100% not meant to be: make sure programming is what you really want to do. Really, the real advise is: make sure insert any job here is what you really want to do. It programming isn't really your thing and you're feeling pressured into doing it by peers or society, don't be afraid to try to do something else. This is coming from personal experience. When I first got out of college it took me six years of doing other jobs before I realized development was what I wanted to do. I probably could have figured it out sooner but I felt pressured (mainly from my boss at the time) to keep doing the job that was grinding me down. Eventually I got a development job and I've been happy ever since.

I'm def not trying to tell you to not program if that's what you really want to do. I'm just saying it's really easy to get stuck in a job that you don't really like so make sure you really enjoy what you're doing.

If you've only worked at one place and you really do want to be a developer, I'd say switch your scenery, work on things that will give you small quick wins and build your skill, find people who can help you on your way, and keep at it. Everyone grinds at first, you just have to keep at it.

Collapse
 
cathodion profile image
Dustin King

I don't know if it's possible to really know how you measure up in a general sense (only particular things you're good at). But on the bright side, everyone else is probably having the same problem. My advice is to focus on what you can do, rather than trying to know the unknowable:

  • Keep learning (always)
  • Keep trying to get the job done, even if you don't know everything about it
  • Try to enjoy what you do
Collapse
 
maj_variola profile image
maj_variola

Read sw stories, learn that your situation may have been f'ed from the start.
Remember your triumphs, your debug, your design and implementation.
Remember your boss may have been an incompetent demanding asshole.
Learn from your bugs and read good code and find a good place then grow.

Cheers

Programmers are the source of most wealth.

Collapse
 
paayaw profile image
Derek Owusu-Frimpong

This I have to accept is really normal. I try to dwell on the things I know more than on the things I lack. I also note the things that I lack and apportion time to learn them. This cycle is infinite. you will never stop learning.

Collapse
 
sqlanodyne profile image
Cyn Jo

Experience. Being willing to jump into problems and figure things out will lead to being given more difficult problems and gaining more experience. As experience grows, feeling like an imposter will decrease.

Collapse
 
cjm4189 profile image
ChrisM

I spent my first 15 years in the industry thinking I did not belong for similar reasons. It has nothing to do with programming - as it was with me, this all you and your demons. You need to learn to love your self, get your ass into therapy, and keep grinding. You can never unwring the bell of your past but you can come to terms with it and be at peace with yourself and the past. Best, chris

Collapse
 
eljayadobe profile image
Eljay-Adobe

My experience echoes what Ben Halpern said.

When I first learned programming, I had no idea as to the limits of what was possible. Everything was new and amazing.

When I had gotten a bit more experienced, I felt like I was a know-it-all hotshot. My fellow coworkers must have been saints.

After I got more experienced, working on harder, larger systems, I'd feel like a tiny boat in a hurricane. Thrown hither and yon. Anxiety, self-doubt, depression.

Now that I'm older and wiser... or at least older... I've come to realize that I know about half, and if you know about half, hopefully we can put our two halves together to get stuff done. So the important part isn't as much as knowing everything, but it is far moreso about working together and communication. And for someone like me who is terribly introverted and shy, I've had to work very hard at communicating... and it never gets easier, it's always stressful, but I've learned to try really hard to overcome my own impediment. Successfully, I think.

So even though I'm not a consultant, I think The Second Law of Consulting is very applicable: "No Matter how it looks at first, it's always a people problem."

Collapse
 
curiousdork profile image
curiousdork

I had to accept that I’m not alone in the way I feel about my insecurities and struggles. Staved off my pride to not admit that I’m alone and that no one understands. I had to go back to those days when my curiosity grounded me: it was because I precisely knew so little that I realized that I’m always learning something. I had to learn to take compliments just as well as I had to learn to take criticism. Criticism alone isn’t enough, you need to be applauded for your strengths as well. I had to be okay about raising my hand to ask questions and to not be a Lone Ranger at everything.

Collapse
 
bgadrian profile image
Adrian B.G. • Edited

Slap out of it
slap

Trust a seasoned developer that met many peers for whom programming is just a job.

The fact that you have a dev.to account, and asked this question proves that you are (or at least want to be) better than many people that deliver code daily.