8

I'm a web developer and have been for 10 years. Currently I work in a large company that treats their employees pretty well. I get along with everyone and like the culture here.

However, about 2 years ago there was a change in direction with the technology (code libraries) my company is using. At first I was fine with learning the new tech and getting on top of it, but I just...didn't. For one reason or another this new tech is just not sticking.

Of course I have done courses outside of work, but they're incomparable to what we actually do at work. It's one thing building a little website in a course on a site like Udemy and a total other thing to work in a large multi-national company with dozens of other employees. Our work is so customised Googling a solution or asking a question on Stack Exchange is pretty useless.

I've spoken to my bosses about this and their advice has always been to get training from my peers. This doesn't really work - as they're not skilled or qualified trainers and they themselves are very busy. I've picked up a few things, but really still don't get the broader picture - it's like writers block that has lasted 2 years.

I've also talk to my bosses about changing roles slightly, but that doesn't seem to be on the table.

I'm at a point now where I am really quite stressed and depressed. I don't want to leave the job, but I am worried I will have to due to my mental health.

Has anyone ever had this before? How did you handle it?

7
  • Can't you find a new opportunity in the same organization? Given the description (large company), there should be other department / business units working on the related fields. – Sourav Ghosh Feb 27 '20 at 7:45
  • 11
    Are you sure that you are actually underperforming? The work might just be relatively difficult compared to your past assignments. – Matthew Gaiser Feb 27 '20 at 7:53
  • 3
    An inescapable truth: a developer's career is at least three times as long as the lifetime of any particular "technology stack." Continuous, and lifelong, learning is a big part of the developer's job. Please don't be too hard on yourself. Everybody struggles to learn new stuff. Keep plugging; you'll get there. – O. Jones Feb 27 '20 at 11:38
  • 2
    @O.Jones One can get lucky. The first programming language I learned, over 50 years ago, was Fortran. There are still Fortran programming jobs. – Patricia Shanahan Feb 27 '20 at 13:15
  • 1
    Agreed. I started as a FORTRAN programmer too. Back in the days of 6-character variable names and COMMON blocks. That language has come a long way in the past half-century. I still believe that peoples' careers are longer than technology lifetimes. And today I'd choose some other tech stack (numpy?) for a new numerical / scientific project. – O. Jones Feb 27 '20 at 13:24
3

Don't lose hope. This feeling is usually one of being left alone too much. Things really are hard sometimes. The key is to make knowledge exchange part of your workflows:

  • Look at code reviews / commits by your colleagues. If code reviews/pull requests are not part of the everyday workflow at your company, make them one.

  • When a team starts a new task, it should be prepared / refined together, so that everyone has a clue what it is about and open questions are addressed in a group.

  • Pair up. Establish pairing up as a normal working technique. Some workplaces even go further and do mob programming (whole team works together on one task in front of one big screen). It's extremely effective.

  • Don't be embarassed to ask for help from more experienced colleagues.

  • Organize knowledge sharing activities, if possible repeatedly. This might be something like a seminar session (one of your colleagues explains a certain architectural thing or some algorithms in a meeting room) or a more informal "tutorial pizza" team lunch & talk about some specific thing. Sometimes volunteer to talk about something you know that others might not :)

6

What I am reading here is that you are learning the technology and are able to build simple things but are overwhelmed as soon as you need to dive into the complex code.

Think of learning music: You have learned a few scales and can do a decent rendition of Chopsticks and now someone plunks some sheet music in front of you that looks like someone tossed an anthill through a fan, turns to the audience and goes "and now Meltingdog will delight you with his rendition of Chopin's Fingerbreaker in Aaaargh". Of course your question will be : but can't I try some easier pieces first?

And you would be right. Learning is a a scale and you can't go from A to Z without touching at least a few letters in between. You are at B right now, try to find C before you go for D or E.

So my recommendation: Keep increasing your skillbase until you can can make the leap. You will likely need some help. self-learning is all well and good but after a certain point no longer a efficient use of time. 1. Ask your manager if your work could sponsor some courses. Many places have some form of employee-betterment program and there might be money and some time available for you to join a local evening-college 2. Bother your colleagues more. There must be work in your codebase that is easier. Maybe there are boring jobs that everyone has been postphoning, maybe they are the tickets that are snapped up first.

3

You seem to have avoided having to create solutions yourself, depending on Google and Stack Exchange instead.

I suggest working on that skill outside of work. Go back to writing simple programs. It is OK to read language and library specifications, because presumably you have those things for your work environment. Do not use Google or Stack Exchange, because they are not effective for your work. Build up the difficulty and complexity of programs you can write without them.

Learn new libraries in simpler environments than your work, again without using external resources that are not available for your work libraries. Read the documentation, think, experiment, and repeat as necessary. The purpose is not to learn the particular library, but to build the independent library learning skills you need for your job.

0

You can take a break. Try to rest for a while, and discover new things.

Doing that you can have better creativity which is quite valued in Software Engineering.

As you've contributed to Stack Overflow, you could try answering question-related to tech-stack that your company has. By answering the question you exercised on your problem-solving skills and ensure that you could explain to others what you understood.

When I'm stuck in a problem that I can't googled or find the answer in Stack Exchange networks, I do my own research referring to manual or documentation. It could take quite some time, and I try to take a break once in a while to keep my mind and mood refreshed and ready for creative works (code and more codes).

0

OK, I had something somewhat similar recently. I'm not really a front-end dev, but I do work on web applications so it seemed useful to pick up some modern front-end framework.

1) Make sure you really, really understand the basics. I was trying to learn Typescript + React + some side things like Redux all at once, and it was too much. I spent too much time stumbling over syntax, which kept me from really learning the React/Redux/etc. parts. I finally went back and spent some time on just Typescript. Once I was able to read that more fluently, understanding all the other examples got much easier.

2) Look for training/resources that relate what you're trying to learn to what you already know or know best. OR search for "complete beginner" lessons. In my case, searching "TypeScript for Java developers" and "React for Java developers" was very helpful. Most of the available tutorials were comparing, say, React to Angular, which got me bogged down in stuff that I didn't know either side of.

3) Put on your developer hat and come up with good Minimal, Reproducible Examples. I sat down and reminded myself that even for the stuff I'm good at, I still have to look up things occasionally--and none of that has direct "this is how to write xyz" answers, either. So I used all of the techniques I already had for finding comparable problems or writing questions on here.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .