34

Sorry about the long winded nature of this post:

I have started a job as a web developer (4 weeks in) which requires the ability to code in PHP, JavaScript and jQuery - which I thought I was capable of doing if it were basic snippets. I have been tasked with converting sites created by my manager into more modern responsive websites. After surveying the code created by my manager I have quickly realised this is beyond my abilities/skill set, which has caused severe anxiety and stress. (Crying on day of birthday and this weekend).

My manager, who is the only other developer, expects me to be able to work independently and find solutions to any issues I encounter during the working day. I have managed to cope with basic development tasks involving HTML and CSS and hacking at some PHP as part of building the new websites. Programming certainly does not come naturally to me though, I realised this the hard way after my first web development role following university did not work out. I find the problem solving aspect particularly difficult.

I am finding the working environment I have been placed in highly difficult to deal with. I am positioned alongside my manager in the middle of a very busy and a very noisy call centre. I don't think that I will be able to last at this work place due to the expectation of working completely independently, the noisy environment when trying to complete a technical role and my lack of ability. Is simply telling my manager as soon as possible the right thing to do? I want to be professional and state that I entered the job with the best intentions, but I don't think I am good enough and have quickly found myself to be out of my depth.

I would like a reference if the role ends as I can quantify just how hard I have worked for them - early starts and staying late. Along with work I have completed so far to the best of my ability. I feel I need to state this in the most diplomatic way possible.

Finally I am gravely concerned and worried at how toxic 1 month at a company will look on CV's and applications. I can either omit this role or just be honest about it.

6
  • 7
    If the noise is bothering you, are you allowed headphones? I work better when I can have music going to drown out the other noise. If you want silence, you can invest in some noise cancelling headphones. Regardless of where you end up, they will be helpful. Commented Jul 7, 2014 at 16:06
  • What did you go to university for? Is it something that would be expected to take a position like this?
    – corsiKa
    Commented Jul 7, 2014 at 21:33
  • 1
    *comments removed* Remember what comments are for. For extended discussions, Get a Room (a chat room).
    – jmac
    Commented Jul 8, 2014 at 3:26
  • As a comment that is not worth posting an answer for, if you decide to make a go of the job: noise and distraction are unacceptable working conditions for the job you are being expected to do. You need to be able to concentrate if you are going to have any chance of actually accomplishing the task. I don't see how that is possible (irrespective of your ability) in that environment. Commented Jul 8, 2014 at 11:47
  • 4
    It sounds like you should find some other job functin that does not involve doing web development. I will give you some frank advice. If you cannot problem solve then its unlikely you will be sucessful as a programmer. I should add something. Being able to solve problems and do critical thinking is a skill that can be learned.
    – Donald
    Commented Jul 8, 2014 at 16:08

9 Answers 9

56

Being out of your depth is one of the best ways to learn new things quickly. If you have specific technical issues that you're stuck on, I'd suggest asking some questions on stackoverflow.

And perhaps the term was just used inaccurately, but typically responsive web design is primarily a CSS-driven affair. Are you sure you really need to do any of that PHP hacking?

More generally though, I think you need to evaluate whether or not you are on the right career path. Specifically, these comments:

Programming certainly does not come naturally to me... I find the problem solving aspect particularly difficult.

...aren't what you'd generally hear from a programmer/web developer. Programming (and web development, at the level you are working, is programming) is at least 90% problem-solving. If you can't increase your skills in that area, you'll find it extremely difficult to succeed at any sort of programming/web development role.

So what can you do about the current situation? I think there are two basic options:

  1. Try to swim. Everyone ends up in the deep end sooner or later. The successful people rise to the challenge and learn to swim. There are resources available to help you:

    • Stackoverflow - It's extremely unlikely that you're the first person to hit whatever stumbling blocks you're up against. Break your task down into smaller problems and when you can't solve one, post a question and get some help.
    • Your Manager - He wrote the original codebase, and no reasonable manager expects a new developer to make sense of a foreign codebase without a little help or a lot of time. You may be expected to work independently, but I doubt you'll be turned away if you approach your manager with some intelligent questions that will help you better understand the codebase.
    • The Codebase - Well-written code should be self-describing and accompanied by comments that explain any counter-intuitive bits. Hopefully your codebase is like this. If not, you should feel further entitled to press your manager for information on how things work and how they'd recommend making changes to existing features.
    • The Manual - When all else fails, usually the answer is buried somewhere in the manual, or one of its distillates such as Wikipedia. Being a successful developer means learning how to use these resources, at least occasionally.
  2. Call it quits. You can resign, stating whatever reason(s) you prefer. You can be honest, and say that you don't feel capable of performing the work required. Or be more vague, and just say that the job isn't what you thought it would be. Or whatever.

    But if you're going to call it quits on this job, you probably also have to seriously consider calling it quits on a career in programming/web development entirely. You'll encounter the exact same sort of challenges at any other position in the industry.

As far as your resume goes, a 1 month stint at a company isn't the best looking thing. I'd suggest just leaving it off your resume entirely if that's what it comes to. It's better to just leave a 1 month gap (particularly if you start looking for a new job immediately, since then you can simply say you've been trying to find the right role for that entire span of time) and then explain it if asked.

If your current job doesn't work out, you may want to seriously consider a different career path. In which case your 1 month stint as a web developer wouldn't be relevant to your resume anyways.

2
  • 1
    *comments removed* Remember what comments are for. For extended discussions, Get a Room (a chat room).
    – jmac
    Commented Jul 8, 2014 at 3:26
  • 1
    As aroth points out. Leaving off a 1 month job is nothing. If the job does not benefit you it shouldn't be listed. Just be prepared to explain what you did during that timeframe ( if were a longer amount of time ).
    – Donald
    Commented Jul 8, 2014 at 16:11
17

First of all, the company hired you after assessing you throughly. Secondly, only senior consultants should be expected to jump into a code base and start performing. You having trouble getting up to speed is certainly not your fault!

I've been at the other end a few times; when you are really busy you kind of just throw work at the new hires without thinking whether they will be able to do it, or even what kind of help they need because you are too busy to think about it. This is obviously a very bad thing to do, and is entirely the management's fault. I learned it the hard way when one guy left after a week. For the ones that stayed, we gradually figured out what their skills are and what help they need, and we started to re-arrange assignments.

In a nutshell, if this company is worth staying, they will come up with solutions if you give them three month or so. If they can't, then they are not good enough for you, and you should look elsewhere. What you need to do during these three months is really simple.

  1. When faced with a problem, try to solve it to the best to your ability for maybe an hour
  2. If you still can't solve it, ask your manager
  3. At peace times, report your progress frequently to your manager. Probably a daily email before you leave is a good idea. Don't worry if the manager doesn't respond. Strive to make your deliverables accessible as early as possible (committing the code etc.)

If you do decide to look elsewhere, do it while on the current job. Unless you told gross lies during the interview (like saying "I'm a PHP guru with extensive experience in porting legacy applications") it's not your fault that you are not getting enough support. When you do find a new position, just make sure that you give them proper notice. As long as you do that they won't give you bad reference.

As for a month stint on your CV, you can just not list it. It's unethical to put things that didn't happened on your CV, but it's perfectly OK to not list everything that happened in your life. I think the general advice is don't list experience that are shorter than 6 months (except when the role was contracting).

1
6

I think it is only natural to sometimes feel out of your depth in a role. You're probably under far more stress than you are used to.

Let's consider the part of you that really does feel like giving up. The more time you put into this role, the more you'll learn, and the better you'll be able to handle stressful situations in the future. The less you put into the role, the more likely you'll be viewed as flaking under difficult situations, which will make it more difficult to get hired in the future.

You were hired because they believe you can handle the job. The stress you are under is quite possibly healthy and natural, and as you build experience, you are likely to find solving the problems you are presented with to be increasingly easier. Software development is not an easy role, but I doubt you would have made it this far if you could not be successful at it. In all likelihood, your boss feels that you are doing the best you can with what you have, and is willing to be patient as you grow into your role.

On the other hand, let's suppose your boss does not feel that you are working out. Regardless, if you quit now, it will signal that there may be problems with your ability to create value for a future employer. You should continue learning and growing in your role as much as your current employer will allow. If your boss has issues with your performance, you should talk to him or her about it so that you can better manage their expectations of your performance, but at no point should you give the impression that you're giving up. If you do give that impression, it will greatly undermine their confidence in you.

The role you're filling is difficult. But it has great rewards if you stick it out. Tell yourself you can do it, and believe you can do it, and do it to the best of your ability.

4

Honesty while at this job is good. You might want to slightly tailor the approach, though: instead of just telling your more-technical boss what you can't do, why not tell them what you can do, and suggest that you divide the labor that way until you're more up to speed? Meanwhile...start looking for a new job. It sounds like neither the skillset required, nor the environment, are a good fit for you.

When looking for your next job, stick to honesty about the short duration of this role, your reasons for deciding to move on, your approach to problemsolving while working in this role, and where you want to go / what you want to do next. Being honest lets people know what your strengths are, what your areas of interest are (and aren't), which will mean that you'll find a good fit, that much faster.

If web development is not what you love and not where you want to take your career, be firm: don't accept any more roles that go anywhere near "web development." Be honest about what you are able to do, what you're not able to do, and what you don't want to do. This may mean turning down lots and lots of roles, telling lots and lots of recruiters to please stop calling you. But if you don't, you'll find yourself back in this situation again and again.

When applying for other roles, be honest. Say that the role required more programmatical skills than you had, and that there were not the internal resources to bring someone slowly up to speed, and so you began looking elsewhere for something more suitable/more rewarding for you.

3

Another possibility is to tell the manager you're having a problem, and what you think you need to solve that problem. For example, you could say you need:

  • Up to 30 minutes of their time, once per day, for them to review the code with you
  • Four times as much time allocated per assignment (e.g. a week instead of a day), because they're over-optimistic about how much you can do, because you're new to the programming language, programming tools, project requirements, and existing implementation
  • A quieter workspace (or permission to wear headphones)

They might say 'no' ("we thought you'd be able to work as fast as your manager does, without any extra help or time; if you can't do that then this isn't the right job for you."), but they might say 'yes'.

In any case, they might prefer being in on the decision-making, instead of you making a unilateral decision. I appreciate that you're feeling isolated from your manager at the moment and therefore feeling obligated to make decisions without consulting them. Is there anyone else you can talk with (e.g. HR, or your manager's manager, or one of your manager's peers)? Is it possible that your manager isn't really a manager at all (instead they're a 'senior developer' and not used to mentoring new hires), and if so is there anyone at the company who is a manager that you could talk with?

3
  • 1
    Not sure if this is good advice: Because of such requests, they could decide to just fire @Chris, a situation much more difficult to deal with than a voluntary resignation.
    – Vector
    Commented Jul 7, 2014 at 21:22
  • If I knew one of my co-workers were going to my boss to have their work reviewed every day I wouldn't think highly of that co-work and I can't believe my leadership would either. One has to at least show the ability to grow.
    – Donald
    Commented Jul 8, 2014 at 16:13
  • 1
    @Ramhound If I were a manager and were in charge of a new hire whose job was to improve the source code I had written, I would encourage them to mix a lot of "work it out for yourself" with at least a bit of (e.g. 1/2 hour a day of) "let me introduce it to you until you're familiar / up to speed with it."
    – ChrisW
    Commented Jul 8, 2014 at 16:22
0

The first job is always hard. There is so much to learn as a software engineer especially if you just starting out with basic programming skills. Learning to program, learning the tools, learning frameworks, learning how to do self-manage small projects. However you have to learn these things regardless of the company you work in. This is part of your job.

However in your current job you have too much responsibility for your current skills, which makes it really stressful. The best environment to learn is a bigger team with senior programmers between you and your manager. A lot of responsibilities of designing the high level structure of the project and the technical difficult problems get done by senior programmers. Also senior programmers are more available and less busy then managers so they can better coach you. In these kind of environments you can focus on easier things like basic programming and getting familiar with the tools and the work environment of your company.

Having said that, you have to make the best of your current situation and try to learn as much as possible. Sometimes in the future you will be expected to perform you current role. Try to list the things that are your responsibility now but you cannot yet handle. Then if you find a job that is better suited to your skill level you have a sort of career path where you can grow towards.

0

Considering the technical side, there are big differences in "web design".

  • First you should know HTML, I think nobody comes around that part.
  • Second is how to style the HTML with CSS, here the web design part stops in my opinion.

  • Now comes the question, how the HTML is generated, for example by a PHP script or Perl or Ruby or some crazy CMS system. I would consider this already belonging to the bigger web development world, not only the web design, ymmv on this definition, but it's basically how it works instead of how it looks.

  • Then you can make the page react dynamic, either with classic HTML forms and links or by using Ajax and Javascript, talking to the server through an API.
  • These requests need to be processed on the Server, again by PHP and Co., or by some API generator like Node.js or a program written in java/c++.
  • And then there is the storage of the data in a database, be that some SQL language like MySQL or a NoSQL like MongoDB.

That's already 6 totally different areas where you have to gain expertise before producing good results on your own. You can assume around 2-4 month to get to know each one of them, maybe around a year or more for each to really learn most about it.

If you now get thrown into a project, where 2-3 of those areas are covered and you are not building the system from scratch yourself, you not only have to fight learning the languages as you need them to solve your task. But you also have to work your way through the "elegant" tricks, simplifications and workarounds your predecessors have left you. So you don't only have to learn things like how to sort a list in PHP, but also to figure out why they use one of the parameters as a function call or what the cryptic 3 line long bit shifting regex replace call exactly does before changing it.

Then your biggest problem might be identifiying where exactly you need to make changes and then what exactly to do there. In a grown system that is almost impossible to find out yourself, you need to get a map and clear instructions from someone who has the overview.

If you invest more time and after that still feel like you are out of your depth, you should consider changing jobs, but if you want to go for web design or development you need to know that it's not an easy thing to do and definitely not to be learned completely in a month or two. Would give it a try, it might be something you like after you learn more.

0

One point which has been underemphasized here- ** get headphones ** Very few programmers can achieve the concentration necessary to code well with significant outside noise.

2
  • without an explanation, this answer may become useless in case if someone else posts an opposite opinion. For example, if someone posts a claim like "most programmers can achieve the concentration necessary to code well with significant outside noise", how would this answer help reader to pick of two opposing opinions? Consider editing it into a better shape, to fit How to Answer guidelines.
    – gnat
    Commented Jul 8, 2014 at 6:55
  • The quality and look of the headphones counts. White apple in ear ones are an eyesore and they leak horribly. Neon green over ear fashion cans would look unprofessional. High quality noise cancellation headphones (in ear or over ear) are better as you don't need the music turned up high to drown out background noise so they can be set at a low level to just soak out the other noises so that you can concentrate but still hear someone behind you who is trying to get your attention. They are also amazing on a plane on low or playing silence to cancel out engine noise and baby crying to get sleep.
    – simbo1905
    Commented Aug 8, 2015 at 6:38
-7

Unfortunately, if you are TRULY AND IRRECOVERABLY out of your depth,

Then the one and only path is to (this hour) tell your boss "Sorry buddy, I'm out of my depth on this - it's unfortunate you hired me as it wasn't clear what was needed. Let's call it a day, I won't take any legal action for my time wasted."

Since there is simply an infinity of jobs available at the moment in every field of development, there is zero hardship on your end as you can have a new job the same day.

So that's it.

There's no other course of action if you are TRULY out of your depth.

However as everyone has said:

(1) Programming is incredibly hard. Even worse, programming is the only human skill where you have to continually completely re-learn everything. If you're just a brain surgeon or if you build suspension bridges - that's nothing. You spend a few years learning how to do it - and from there it's a yawn until you retire. Unfortunately programming is constant mental torture. No human way of life, has ever been like this before, you're on the absolute cutting edge of socio-consciousness evolutionary difficulty.

(If you're not up for this - forget it and find a totally different career. There are any number of much much easier ways to make the same money, so don't hesitate if that's your choice.)

(2) As everyone has said, don't panic and just work harder to learn the problem at hand. Just cadge between buying more time, getting advice, and (like any programmer) fit more hours of work in to the seven days available each week .. utterly forget concepts like "eating" "free time" etc.

(Programmers have no life: zero. Utterly nothing. It's so difficult it's an every-waking-moment thing. So, squeeze in an extra 30 hours a week studying the systems at hand, and keep doing that until you retire or die.)

However NOTE THAT all the people here who are suggesting (2), are in fact excellent programmers - ie, they live their entire life, 24/24, 365/365, from age 15 until retirement, in a blind searing panic trying to learn Swift, CSS, functional programming, bAAs, Mecanim, or whatever totally new, utterly different pile of nonsense has just come along and (effectively) put us all out of a job until we can get up to speed. So, you could say, it's easy for everyone here to breezily say "oh, that's life in programming - come up to speed!".

Footnote -- "I would like a reference if the role ends as I can quantify just how hard I have worked for them" This is dreamland material, forget it. As soon as you tell them you're quitting they'll politely escort you to the door, they have clients paying millions of $ waiting for them. Secondly nobody really cares that much about references or cvs for programmers - you just have to be a superb programmer. "just how hard I have worked..." you haven't worked hard, every programmer works simply constantly (90 hour weeks are nothing, that's completely normal). The reason many software engineers now work independently at home is it's easier to get in 13, 14, 15 hour days rather than 12, 13 with commuting.

1

You must log in to answer this question.

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