I know this may not be the typical post on Devrant and it may be a little off topic, but I could really use some advice from fellow colleagues here.

The thing is, I just finished engineering school and I got my first job as a software engineer. So far so good. I've never been a natural talent in this field, and I suck at writing code. I find things like architecture, system design, innovation, requirementsspecification, management and business development much more interesting.

These past weeks as a software engineer has been really challenging for me. I seem to be totally "in over my head", and fuck everything up. I can't understand how the code I'm supposed to write works, and can't solve even the simplest of tasks that are assigned to me if they involve any implementation of code, or fiddling with Github or build servers.

Is it normal to feel like this as an engineer with zero experience? Will things get better, or should I just resign or wait to be fired?

What would a natural next step for a software engineer who'd like to move more into business and management be? A MBA? Project management courses?

I hope to get some advice from you guys. Maybe you've felt like this when you started out as well? Anyway, any constructive feedback would be really much appreciated.

  • 0
    Yes, it could be normal. Depends on what you are writing code for.

    If you are doing web, then you should be able to produce from scratch relatively quickly. If it's some proprietary software, deep in business logic - then it takes time.

    Last job I had was with robotics. I was able to produce within a few weeks, but it took almost a year before I understood the whole system and was able to see big picture.

    Hand in there, don't give up. You can't really jump to system design and architecture before you've bled over code.
  • 1
    @viking8 Im struggling with simple things like Angular frontends and .NET APIs. I really don't understand the dependency injection stuff we are using, and can't follow what happens in the code. Might aswell have been written in Chinese!
  • 2
    Injection can be a little bit of a mindfuck in the beginning. Try out Autofac on your own, great tutorials and easy peacy, just to understand what is going on.

    Angular takes a bit to get used to, then suddenly is easy as f, until that special case..

    I've always advised the junior's I've mentored to try stuff themself. It's harder in an existing codebase, so start a new project, follow tutorials. Delete it, try from memory again and again. Do this both Angular and .net. Google stuff you are uncertain about.

    Use Google search a lot, all seniors do to.
  • 0
    Dude, same thing happened to me. Luckily in my first job they also need software testers. At the time, I was much better suited for testing software than writing it. I switched to QA, got promoted and received raises year after year.

    Fast forward a few years, I switched back to development because in that time of QA work, I learned so much about development that I could get by creating software.
  • 0
    @anon81 Also, I started to enroll in Udemy courses online for any subject/tool/language that I didn't have a good understanding of. I watched this videos on 2x speed until I learned enough to get by.

    After a while, I started to enroll in these courses not because I was struggling with something at work, but because I was bored and wanted to learn something else.
  • 0
    Thanks a lot guys. Your comments actually cheer me up! I really hope I get the hang of this really soon. It's really depressing and scary at the moment!
  • 0
    Keep at it. If you aren't going through pain you're not learning.

    I also recommend distilling your tasks down to simpler ones.

    E.g: 1. understand what dependency injection is. 2. Why do I need it? 3. What happens to my code if I don't use it?
  • 1
    Update: well, something funny happened today. My boss called me in for a meeting, and I was pretty sure that I would get fired.

    He said something like: "Well, be both know that development and coding isn't your strong side... but I've seen a great potential in your ability to lead and manage. How would you like to go in that direction?"

    An hour of negotiations later:

    New job title: Manager and scrummaster.

  • 1
    @anon81 Bro! That's amazing! In light of this change, I suggest you learn the hell out of software development lifecycles, agile vs waterfall, Jira, Confluence, maybe some configuration management stuff.

    Basically, learn everything else about developing a software product other than the actually coding. Because at this point, you'll be heading down a road where you'll be interfacing with developers and senior managers, so you basically need to understand the processes more than the actually code changes.
  • 0
    @anon81 And congrats BTW.
  • 1
    @wbunton thanks. I actually have a broad understanding of all of those things!
Add Comment