Job Dilemma

I am currently facing a decision as to the direction I want my career to take, between a product management role with some coding, and a software development role.

So far, my job history has taken some twists and turns – biochemistry degree, accounts assistant, events co-ordinator, marketing systems specialist and now CRM & Sharepoint owner. I’ve been very lucky that my current employer has been very flexible in helping me to work around illness restrictions, and supported me in moving into new roles.

I am currently responsible for the Microsoft Dynamics CRM at work, and for the last few months have been working heavily on a new customer facing project which has significant integration with CRM. It has meant a lot more coding than I have done previously (my first C# plugin went into production in May), so the learning curve has been pretty steep. But I have been really enjoying the programming in recent weeks, which leaves me with a difficult question to answer.

As the full release of the project is happening this week, decisions are being made about how the project should be handled in the future, and I need to decide where I would ideally like to fit in.

I could decide to stick where I am – doing some coding for CRM plugins, but mostly working with customisations. That would be the safe option.

Or, I could request to be part of the new team, and leave behind the ownership of the CRM for someone else. That would mean a lot more coding, but hopefully a lot more support & training to improve my programming as well.

It feels like a big decision which could have significant impact on my career for many years, and I’m unsure about how to make sure I come to the right decision. If anyone has any advice they could offer, it would be much appreciated!

Some of the questions I’m currently trying to answer:

  • Am I even capable of becoming a good developer?
  • Is learning on the job a sensible way for me to learn to code, given my desire to understand everything ever?
  • Can I really take a software job with my current level of programming experience?
  • Would I actually be a liability to the team until I had learnt more?
  • Would I be taken seriously as part of a team?
  • Would the constant learning mean I was always exhausted (which would affect my health due to my chronic fatigue syndrome)?

One Response to “Job Dilemma”

  1. Brad Says:

    I’ll preface this with saying that I’m an entirely self-taught developer who has worked all over the place (and am currently a CTO), and I’ve never found the lack of formal education to be a particular barrier. There’s probably something about privilege there, however, so I’ll try and focus deliberately on your situation below.

    > Am I even capable of becoming a good developer?

    My view is that anyone with a sufficiently pragmatic and patient approach to problem solving can become a developer. From your description of your current situation I think you probably have the right mindset to get into it, as you already have some technical leanings and have kind of “fallen into it” (as lots of people do when starting out). I find the best engineers (or at least the most valuable employees) tend to be pragmatic problem solvers who want to see things through for the benefit of customers, and know how to leverage (pardon my management speak) their skills to achieve those benefits. You’re already halfway there!

    > Is learning on the job a sensible way for me to learn to code, given my desire to understand everything ever?

    It’s how I taught myself, but it was only through mentoring and deliberate practice that I was able to lift myself from “hack something together” to “able to think abstractly about a problem and glue together patterns and experience to build a good thing”. That does require a certain learning environment and supportive colleagues (for example: I worked at Yahoo! which allowed me to absorb a lot of ambient knowledge).

    One often overlooked benefit of learning on the job is that it gives one a healthy approach to programming – we’re ultimately there to solve problems for real people, not create abstract ivory towers. Pragmatism again.

    > Can I really take a software job with my current level of programming experience?

    It’s hard to tell (since all the info I have is what was written above). I think if I was hiring a junior at your level I’d want to see some evidence of at least an interest in modern approaches like testing and abstraction (not necessarily experience, but an interest, and being able to explain the benefits of said things). I’ve hired loads of juniors off the back of a 16 week code course, and most of them went from no experience to a job in that time. You’re solving real world problems which is a plus, but it might be helpful to try and shoehorn in some best practice, er, practice to broaden your skills and approach.

    > Would I actually be a liability to the team until I had learnt more?

    Any sufficiently mature company will take on juniors on the understanding that they won’t be able to materially contribute for a while, and will have mitigations and deliberate practice baked in to their onboarding and learning programmes. I wouldn’t even approach a company that can’t take that seriously and state it up front – leaving aside the burden question, you’d have a miserable time of it.

    > Would I be taken seriously as part of a team?

    As above, in the right organisation, yes. If you can stay curious and find ways to add value between learning, you’ll be a valued member of the team.

    > Would the constant learning mean I was always exhausted (which would affect my health due to my chronic fatigue syndrome)?

    Can’t really answer this as I’ve not experienced chronic fatigue and the interplay between mental and physical exhaustion you mention, but it’s definitely hard.

    The upside is that constant learning gives you that nice endorphin rush of a problem solved and a level upped, so there’s a payoff for the effort (as well as the usual intrinisic/extrinsic benefits of getting better at your job).