Hi everyone! My name is Henry and I'm a BSc Computer Science student currently approaching the conclusion of my first year at university (also, this is my first blog post 👋). The primary goal of this post is to discuss a feeling that I often get and to reach out to you all to see if it's common amongst my fellow computery people.
I've been programming properly for around 3 years now and I feel I have fairly extensive experience in VB.net (from college/high-school), Python and Java (both learnt on my current course). I love programming and the first year programming module has by all accounts gone really well, I even managed to achieve 97.5% on my latest Java project submission 😁🏆.
Despite this however, I still find myself worrying often that I'm not a "real developer" and would struggle in a professional environment, as I don't currently have any real-world experience in the field. I also don't have very much experience working on bigger projects. The programming projects I've had to do thus far on this course have been quite simple as it's an introductory module and I had over 2 years coding experience going in.
Is this an issue that any of you recall having at this stage in your developer careers? More specifically, did any of you feel this way at the start of university and if so did you feel better at the end? I'm hoping it's mostly an issue of confidence that will pass once I have some real-world experience under my belt.
Top comments (34)
Many people suffer from something called Imposter Syndrome, which is very common among developers & other careers where things are constantly changing & we have to be constantly learning.
Even professionals who have been doing it for decades can struggle with it. Even some famously brilliant people!
Reading a bit about this might help you.
But you aren't fake - you are new. We have all been there. I remember completing a 4 year CS degree & thinking I was pretty skilled ... only to learn that what you do in a job is very different from school. And you can even master one job then go work at a new company & be totally lost & out of your element.
Some of this feeling will fade with experience & time. Some of it won't. Don't think of your career as a developer as a path to mastery. You aren't climbing a mountain to some elite status of expert. Instead you will ride a wave of increasing knowledge , skill & confidence, then technology will change or your job or your life situation. You'll find yourself having to learn a new tech or language, or new way of using your current language or a new company process, or a new challenging problem....
See the pattern here? You will always be new at something, always learning.
Cut yourself a break & stop trying to measure up to some imaginary level & just enjoy the new challenges & welcome opportunities to be out of your element.
It's never boring. :)
Thanks so much for your insightful reply, I'm glad to know that what I'm feeling isn't uncommon. Also, this blog post was originally titled "Developer Impostor Syndrome" until I changed it to what I thought was a snappier title haha.
Hi Henry, I'm also a Computer Science undergrad, just finished my 3rd year. I've had the same experience as you until last year when I went for my first internship.
For me personally, I cross over from feeling that I'm a "fake developer" into a "newbie developer" after that internship experience. I recall pondering for a long time if I should accept the internship position mainly because I felt that I wasn't ready. Turns out I really wasn't ready and struggled in the first few weeks of work.
My takeaway from that experience is basically this. We probably will never be ready (unless we are doing something we already did before) but we have the ability to learn faster than we think, especially under pressure. And from trying and learning, we slowly build experience and confidence. Finally, this newfound experience and confidence will give us the strength to approach the next challenge.
I agree I think at times like this; it's important to remember we are always learning, especially true for engineers, scientists, and developers.
I hear and see people’s say 'be ahead of the curb' but in STEM it's impossible to be 'be ahead' as the development of the field is extremely fast. What was new two days ago is now replaced by something else’s just a new.
Thanks for your response, I totally agree with your philosophy. I'm hoping to get some job placement over the summer, it's been scaring me but what you've said helps a lot 😄.
That's totally true
Having a work experience for real gives an edge
I am now receiving like freelance gigs after my first Internship 🔥🔥
I used to be terrified to going to meetups, because I felt like a real developer when I had Google/Stack Overflow/docs etc. But in the nakedness of "standing around and talking", I felt like the fakest developer on the planet.
It helped to try and look back to a past self where I knew even less and realize how much more I knew now compared to then.
And eventually, weirdly, I stopped feeling this way altogether. Now I'm just a plain old real developer...like I always was.
I'm still no good at talking about programming. The terms are a lot to digest, but I can explain in layman terms or do better just showing you. But I feel even faker for not being able to contribute to Stack Overflow not to mention my lack of a GitHub presence.
Imposter Syndrome
It comes and goes but never goes away completely. Programming is solving problems, often times in unfamiliar domains with tools/resources you're not familiar with. If you get comfortable, the ecosystem could advance and suddenly everything your familiar with becomes obsolete.
Programming requires constant learning; ability to quickly learn new concepts is as important as ability to write code. Studying new conceps, trying new things, never ends. Unless you find some very specific niche and spend your entire career working on the same thing.
The best devs are the ones who never lose their appetite for learning. Imposter syndrome comes and goes but eventually it just becomes a signal that you're about to experience some growing pains as you progress into something new.
As uncomfortable as it can be, it's actually a good thing. If you never feel uncomfortable, doubt your ability, etc; you're probably not growing as a dev.
Seriously man, i've been coding for 8 years now and I still feel what you feel. Everytime I read medium articles about coding I always doubt myself and feel like i've been doing everything wrong and am I even worthy of being a senior dev. Fret not you are not alone. :)
Imposter syndrome! Its one of those things that goes hand-in-hand with the dunning-kruger (spelling?) effect... Many suffer from the former. Many, many others suffer from the latter (perhaps too many).
Trick is to understand that you dont know everything. You may not and most likely never will be one of those super-devs. BUT you could most likely still contribute very meaningful talent in other ways or areas. Perhaps you have the makings of an excellent team lead or product owner. Perhaps your interest lies in areas that are in more dire shortage and higher paying salaries that revolve around the programming world, rather than in it.
Point is, dont give up, keep doing what you're doing, learn more, play more, branch out and try different things. Get experience in the real world with some cool tech. Get a raspberry pi and some arduino stuff and get fiddling.
Build a robot. Build some funky home automation stuff. Build up a portfolio and some people and business skills. I guarantee you will get ahead if you can be generally good and keep improving yourself.
Thanks for the response, great advice 😄. I already do mess around with Arduino and Rasberry Pi as it happens, haha. Me and a friend are working on quite a fun Arduino project at the moment actually.
Yea, you definitely are NOT alone in that feeling! I noticed it's gotten a lot better for me now that I'm actually working in the field; I've been a professional software developer for about a year now. The first few months of my job felt like "wow, I tricked these people. How are they so blind! I KNOW NOTHING!!!" and some days still feel a bit like that.... but I'm learning to trust my abilities and thankfully I have a good manager that reminds me it's okay to not know everything.
One tip: Find yourself a mentor if you can. Hopefully that will be your manager or a senior developer at your company-to-be, but there are many local and online communities built around mentoring new devs.
Welcome to development! Nobody is perfect here, and anyone who says they is... is a liar. :) Embrace your ignorance and learn everything you can.
"Embrace your ignorance and learn everything you can" is a brilliant quote, thanks for the response/advice 😄.
What I see is Imposter Syndrome which is very common between software programmers, that problem with programming is that the more you learn the more you know you know less, but in reality you can't know everything that's why programmers are on a constant learning scale, and you won't be able to learn it all and keep it up, but that doesn't make you worse than other programmers since we all are on this track.
I was freelancing for 6 years, I thought I knew a lot. Then I got my first company job and then I understood I know nothing. A good mentor is an enormous help. You gain knowledge basically 10 times faster than on your own. Now I'm always jealous for junior devs that I'm a mentor to, jealous that I didn't have a mentor like me at that time. Could have learned so much more :)
I second the mentor notation. I've come across a few awesome people who really accelerated my understanding of various things.
I might add that it is always a good idea to be upfront about your experience level when applying for a job. Teams & users depend on this & it always comes out eventually. Good companies will have positions & training for novices.