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 thought to travel and take time off from anything tech-related for three months, recuperate, learn some new stuff and then start applying for jobs again.
However, looking back on how little I've grown and accomplished in the 2+ years at my old job, I have zero confidence in my skills (if I have any) and myself. (My three managers said that I was good at the things I did, but I've never felt that way.) This has in turn sapped my willpower to try to learn.
I guess my lack of confidence is holding me back, but I don't know how to break free of it. Each time I try and fail, I look at my past failures and conclude that programming is not for me.
How do/did you deal with issues of self-confidence and doubt?
Top comments (17)
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
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.
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.
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.
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.
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:
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.
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.
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.
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.
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:
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.
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:
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.
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.