DEV Community

majoko
majoko

Posted on

Supposed to be a senior developer but feeling like fake and junior

First: Thank you for your time to read the following text and apologies for the long text. It's longer than I thought at first.

I need some support because some things are too much for me at the moment.
Currently, I am almost around ten years into software development. Therefore, I would assume that I am some kind of senior software developer. To be honest: I don't feel like one.

I am 32 years old and I have been seven years into .NET development and now around three years into Java, mainly Spring Boot, and some TypeScript / React.js development.

For sure, I can develop solutions to certain problems. But I feel I’m severely lacking in skills like design patterns, architecture, and other big-picture type stuff. I don’t know how to build large-scale systems. I live in fear that the day is going to come where I get assigned something I won’t be able to deliver on, and the house of cards that is my career is going to come crashing down.

Further I am always feeling like the worst developer in our company. There are colleagues where I think that they are more skilled and are able to find better and quicker solutions than I do. It seems like they know everything!

The reason is that I do not think I am good enough for the IT sector, especially for software development. This has been going on for a few months now. The big problem is that I am totally inhibited by it, and I am worried about making mistakes. This in turn leads to the fact that I have started to be less independent and try to approve all my ideas or implementations in order not to make mistakes instead of coming up with an idea, implementing it and seeing what happens.

The trigger for all this was a colleague who is with us for a limited time in our team. This colleague is, I don't know how to describe it, simply a natural talent. For every problem he finds a solution within the shortest time or finds an idea for a solution within the shortest time. Moreover, he seems to be familiar with every subject area of SW development. For example encryption and cryptography methods. No matter what it is about to implement - he knows directly how, why and why. Unfortunately I can hardly describe it - he knows about topics I never had anything to do with before. He seems to know every corner of a framework. I, on the other hand, have to look up many things, need much more time to find a solution and sometimes generally have the problem of finding a solution for a problem or a requirement. He also always finds some corners in the code that can be improved or adapted. That's just amazing - in a way, I just envy his abilities. This makes me even more conclude that I'm just not suited for this job. Big-O Notation? Never heard of it!

Surely it is great to have a mentor in the team from whom you can always learn something. On the other hand, it is totally frustrating for me to see that, unlike him, I just feel like a complete loser. This frustration then leads to inhibitions, bad mood and "fear of the future" in relation to my job. Yes, some days it actually makes me so depressed that I want to cry because I realize that I have so many gaps in my knowledge that I think it is simply impossible to ever reach such a level.

The colleague and I are of course the same age. However, I only completed an apprenticeship as developer, and he studied computer science. What is more, of course, is the fact that everyone in my team, except me, has a degree in his pocket. Of course, I don't. That saddens you as well and I just feel inferior to the other colleagues in the team. As if one could do without me in the team. Only the fact that most of the team, despite their studies, are not better developers keeps me happy sometimes.

Besides that I feel overwhelmed with all the topics in software development. There are so many frameworks and topics you can get into that I don't know where to start. This leads of course to the fact that I don't start at all because I don't know with what.

Now, if I wanted to go back to C# .NET development I wouldn't know how. So much has changed in time. I would never get a job.

Sorry for the long text. However, I don't know with whom I can discuss it. I'm just worried that I'm not good enough for the job and that I'm just a dummy. Hopefully someone can help me or give me some food for thought.

Top comments (17)

Collapse
 
sargalias profile image
Spyros Argalias

The degree is not important. I've met people with degrees and people without degrees and it has almost 0 relevance for how good a programmer you are. You mentioned the same thing.

Don't flame on me on this, I'm not recommending it, I'm just stating the facts. From a professional standpoint, it doesn't seem to matter if you're incompetent or fake. I've met developers who had been working for decades, were in their 40s and 50s, and literally could not do even basic things. They were definitely junior level, being paid extremely good money and hired on CV experience alone (obviously). As I said, I don't suggest accepting this and not improving, but at least you probably don't have to worry about your career.

Now onto the real problem. How long have you studied / practiced outside of your work over the last 7 years? If the answer is 0, then it's going to be very difficult to change your situation. But if you're willing to study and improve, you are guaranteed to improve. The choice is yours.

What should you study and improve? You should definitely go by what you consider to be priority. Need to learn a new package for C#? Cool, go read the docs or do a course on it and practice for a few hours.

Here are some suggestions:
Professionalism and mindset: Read books like The Pragmatic Programmer or The Clean Coder. These are really important because they teach you the mindset of "always care about your work" and "always try to improve".
Want to improve at programming in general (including architecture) - I highly recommend starting by learning clean code and programming principles. E.g. Clean Code by Uncle bob, or his numerous YouTube videos. I've also got my own programming principles series as well.

Hope that helps. Good luck!

Collapse
 
kallmanation profile image
Nathan Kallman

Now onto the real problem. How long have you studied / practiced outside of your work over the last 7 years? If the answer is 0, then it's going to be very difficult to change your situation.

I'll add on to that having a job that pushes your skills helps tremendously. Squeezing 2-10 hours of additional coding into your week outside of the job is great; but being forced to have 10-40 hours of learning is a whole other level.

Many companies merely want "code monkeys" who just type the code into the computer according to the spec and architecture dictated to them. No thinking just typing. That is the type of job that will keep you stuck at the same skill level and you should try to avoid it if you can.

Collapse
 
majoko profile image
majoko

That's really a good point.
If you can't apply the things you learn in your freetime in your current job then it is difficult to keep up all those things.

On the other hand: The companies that offer this jobs mostly have a high expectation to their applicants. So this is a chicken and egg problem :)
Further you will never find a company or a job where you can always apply new things, mythologies and toolings

Collapse
 
sargalias profile image
Spyros Argalias

Yeah that sounds awesome, great suggestion.

Collapse
 
majoko profile image
majoko • Edited

Thanks for your reply.
I really thought I would get some replies like "You are a lost idiot"

To be honest : Sure I have done some learning and practice within the last seven years. I have read:

  • Code Complete
  • Clean Code
  • Clean Coder
  • The Pragmatic Programmer
  • Clean Architecture

But I do not remember every aspect of these books.
And further: These books cover so many topics which leads again to the problem: What to learn next or what to go deep with?

Further I have build some Alexa Skills or some other simple programs in my free time. I have also started to get in touch with python as I like the simplicity of the language.

It's not the point that I do not know anything. The point is that I have the feeling that I do not now anything and that everybody around me is better in every aspect. This leads to the problem that I sell myself badly because I consider myself to be a dazzler. Maybe I also have Imposter Syndrome, who knows. Further the frameworks today are so damn big. Spring for example. That's just overwhelming to learn all this stuff. And if you have learned something then there comes another big wall of stuff to learn.

What should you study and improve? You should definitely go by what you consider to be priority. Need to learn a new package for C#? Cool, go read the docs or do a course on it and practice for a few hours.

Currently, I would like to focus more on Java and Spring. I've been thinking about changing my job back to C#, but that's nothing concrete yet.

I love my job. Really. I love it to be developer - but I don't want to be just mediocre. I want to become a better developer in every aspect. If possible.

Collapse
 
sargalias profile image
Spyros Argalias

You're definitely not a lost idiot. Programming is serious work that not anyone can just pick up and do. It's easy to feel like you're really bad sometimes, but you've got to remember that as long as you can complete your tasks, then you're extremely valuable to the company. Also as you mentioned, you have similar skills to most of your colleagues, so it's not really that bad. It's just a feeling but it's probably not as valid as you think :).

As for getting even better, just keep up the learning. It might be slow, but you'll definitely get there. Any time you do something, you'll be able to do it better next time, and any time you read you'll learn something too.

Thread Thread
 
majoko profile image
majoko

Thanks - I'll try to do my best.
As I already said: Sometimes it's really hard and sometimes I doubt being a "good" developer and I doubt the decision to become a developer.

For example: If I look at such repositories github.com/kgrzybek/modular-monoli... - Damn! I would never get this done this way. And that's one thing that scares me a lot regarding requirements or expectation when applying for a new job. But that's my problem. Need to handle this somehow with my brain ;)

Collapse
 
lallenfrancisl profile image
Allen Francis • Edited

Well one thing you can do is get better at algorithms, which I think is what you feel like you are not good at from what I have read. Here's a Coursera course that I am currently doing after having the exact thought process.

coursera.org/specializations/data-...

But it is paid. So if you don't have a requirement to get a certificate then you can do the one Princeton provides, I like this one more but sadly they don't give a certificate. This one is free too.

coursera.org/learn/algorithms-part1

And also it's alright to feel like we do not know enough and when that hits you just be mindful and do what's necessary. If you really think about it, these are the situations that actually show us that we have room for improvement, it shows that we need to learn something. So rather than panicking just learn the damn thing. Simple.

Collapse
 
majoko profile image
majoko

Thanks for your reply. I really appreciate that walking through this wall of text.
No I do not really need a certificate.
I just want to learn to get better to strengthen my self-confidence.

I'll take a look at the posted links.

Collapse
 
kallmanation profile image
Nathan Kallman

It sounds like you've got a bad case of imposter syndrome. Many, many developers experience it.

It's rough; I had it when I first started my current position. My then manager said something that helped me, "We hired you for a reason. Don't worry about others".

There's no magic bullet to overcome it; but there are things you can do to help yourself. Just keep doing your best! dev.to/ice_lenor/one-useful-advice...

Collapse
 
majoko profile image
majoko

Thanks,
I already have heard about it - sure.
But to be honest: When reading about imposter syndrome I always think that "You do not have imposter syndrome. You are just bad. That's all" Sounds hard - yea.

I agree that I have to deal with this topic.

Collapse
 
mukaofssn profile image
Karthik Murali

Bumped into this when I was personally feeling the very same and searching on how to overcome the overwhelming feeling as a dev. I see your situation and it’s like seeing myself in a mirror. The team with everyone else better then you, the intermittent genius who was a walking Stackoverflow, the fuzzy nature of all the Tech surrounding us, not to mention the plethora of thing in a tech to-do in order to keep up with the masses...

I fall into a pool of anxiety almost a few times every week for longer than I can remember. Having worked at my company for the past three years, I realised that I probably rank last in the group but I guess that’s just it. It’s the bottom so I see it as an one way system to growth. I try to acknowledge that and tell myself that it’s okay to be so. As long as we like being a dev, you can learn a topic 30 min a day or a course over a week and scale up. I also have a hard time remembering them so I re-take some courses and the second time around, it feels better than the first time.

It feels like a big race and we are among the last. But I heard this somewhere to consider it as not a race but our situation more like that of a planet that goes around it’s star. Different planet takes different amount of time to revolve around their star.

A mild bunch of bs but I hope it’s sets the context. Good luck to you fellow dev :-)

Collapse
 
avasconcelos114 profile image
Andre Vasconcelos

Hi, thanks for sharing your experiences with us here

As another (mostly) self-taught developer I gotta say I can relate to how you feel when it comes to feeling behind the curve for being the only one in your team not to have a degree, and lacking knowledge in a few fundamentals of computer science

I also briefly had an extremely talented co-worker who seemed to have knowledge about any and all things, and seemed to always know the how or why things happen.

That made me feel really out of place because him and I had been working for about the same number of years.

At the end I figured the best I can do is not worry so much about others, and try to use online resources to try to fill whatever gaps bothered me the most (some free resources are surprisingly very good)

Collapse
 
avasconcelos114 profile image
Andre Vasconcelos

Sorry I couldn’t offer you a solution but I just hope you know you’re not alone

Collapse
 
mentoruby profile image
Ruby

Hi, there! Thanks for expressing your feelings here. I believe your post must have touched many developers’ soul, which I am sure I am one of them. Honestly, I’ve been through the same situations as yours. Sometimes, I diminish myself, e.g. I have short-lasting memories in my mind; I am so stupid like a 56k modem while other people are now like 5G network!? Blah, blah, blah…Even I have been working as a developer for almost 15 years; I am still overcoming such a hard feeling and impostor syndrome.

Here are my thoughts. Think positively. Well, it sounds like water is wet. What if I have a sad, pathetic personality? Um…I might first remove my discouraging factors, e.g. don’t compare too much between you and your colleagues or friends. Some people may have great technical skills, but poor communication or interpersonal skills. Some people may find solutions quickly, but the solution may not be the best fit to the problem, somehow tricky or short-term. In reality, no one is perfect. Everyone has flaws. Your flaws are simply part of you; they can make you unique and beautiful only when you realize them, cherish them, not reject or resist them.

Going back to C# .NET development is like going back to your comfort zone. Ask yourself and imagine, are you sure you want to go back, stick to your comfort zone and never come out again? After the three years of Java development, is there truly no room for you to grow further, what is the blockage? Try not to freak out by the new technologies or other strong developers. In fact, you are lucky that your fellows left you many great comments to follow. You may first choose some interesting topics to learn, or some simpler ones, don’t immediately jump to advanced level unless you are confident to. It doesn’t matter if you learn slowly (single core processor? I admit). The main point is you are upgrading yourself, bit by bit. Keep your progress. Don’t give up. One day, you will respect yourself as a real developer.

Superhuman Determination + Right Kind of Training = Road to Success

Collapse
 
majoko profile image
majoko

Thanks for your reply. It is not about C# or Java. It’s about the fact that other co workes build crazy generic solutions which I would never come up with. That keeps me depressed and I don’t know what to do.

Sure I am learning new things day by day but I think that they are many years beyond me. Even if they work as developers as many years as I do.

I love the job but often I think and feel that I am just to dump for that job and should look for something else. But to be honest. I don’t know which job exactly.

Collapse
 
lpaddikt profile image
Roger Dodger

Been 2 years but I'm right here feeling exactly like this. It was cathartic reading this, hope you are in a better place.