I recently graduated with a Master's in Math/Engineering (dual degree) and I was hired as a junior/freshman software engineer in a consulting company, working in the financial software industry. It was an incredible opportunity and I did well during the phone interview, but informed them point blank about my lack of experience and I was more than honest with them about my coding background. I've done a few projects on GH and have done coding in University, but I do not come from a CS background and have been very honest in my own personal assessment. In spite of that, they hired me and figured they could train me to develop anything/everything I'd need to know.

To make a long story short, it has been difficult. I was hired in mid August, but didn't start getting my hands dirty (coding..) until September because there were issues with my credentials. I was given minor/medium level programming assignments and topics, and while I did complete all of them, some took me a bit of time. At first, this was acceptable; now that it is 2 months down the line, the time I'm taking is starting to grate on my supervisor's nerves. He is very busy most of the time and although he has set aside time to train me, sometimes I ask him how to do something more than once, which can annoy him sometimes. The system I'm working with is relatively complex and I've already developed about 20+ documents on how to troubleshoot through some common errors/steps, code workarounds and basic debugging. But I still lack fundamentals and basic coding skills, which I've been working on, but I sometimes struggle with basic introductory problems that I shouldn't be having an issue with by this time. I'll be moving into another environment soon where I'll be expected to do much, much more and be able to solve any/all problems within a handful of minutes. I am also being asked about and he is defending me to supervisors, but I do not want major expectations placed on me afterward.

I'm learning more and more everyday, but it isn't fast enough. I've asked him, point blank, if I'm a right fit for the company or not; I've also asked if I am not moving fast enough and he said I should, I need, to move much quicker. Sometimes, it takes me a while to process information to know exactly what I need to do and I've been like this since University (even if I got 100% on my engineering/math exams, I was the one to typically use ALL the time and I rarely, if ever, left early).

How should I proceed? I want to succeed in the field of software engineering, but I don't know what to do. Studying at home is helpful, but it seems to not be enough because I just, point blank, don't have enough experience. In the next few weeks, what can I do to make myself better? Sometimes, when he speaks very quickly or goes through a complex series of steps in 2-3 minutes, I try to ask for clarification but, again, I sometimes get the impression he is annoyed and feels I should just know after him saying it once.

  • 1
    BTW What is GH ? Oh, google hangouts :/ – Fattie Nov 7 '18 at 6:41
  • 3
    @Fattie More likely GitHub – Philip Kendall Nov 7 '18 at 6:56
  • 1
    @Brandin I think there is an answer, in software the "single greatest sin" is to basically ask for help or clarification. "Doing software" is literally about "taking on" the problem; it's an inherent contradiction to go back for "help". This is why nothing is more annoying in software than someone coming back for "help" or "advice" or "tips". So that's what OP should stop doing. – Fattie Nov 7 '18 at 7:01
  • 3
    @Fattie Having spent the last forty-plus years of my life doing software at several places, I have never seen the attitude you mention. It's the developer's responsibility to get the job done, but not asking for help when needed doesn't get the job done. "Taking on" a problem doesn't mean having to solve it completely solo, but rather accepting responsibility. – David Thornley Nov 7 '18 at 17:06
  • 2
    I just don't know, @DavidThornley. The OP is indeed literally describing what I am saying. Consider, it's (far and away) the most aggressive, money-oriented, results-oriented biz, it's not like tinkering around at a cloud shop or a social media; they just hired a full-on Masters (!) bloke; the manager guy in question wants results and nothing but results, he doesn't want any talk. Also, why would that guy be able to help? If you and I hired a guy to .. build a bridge .. we give him a pile of $ to build a bridge .. he keeps coming back to US with questions like, is this a girder .. – Fattie Nov 7 '18 at 17:48

I disagree with some aspects of Fatties answer.

You don't have to start programming at 13-14 years old to become a good programmer, you just have to compress the programming experience into a shorter time.

And I absolutely disagree with the statement

Precisely, in software when you set a task for someone, the definition of failure is when they ask questions.

If you don't ask the right questions, you will make the same mistakes every beginner makes. It will take you the same amount of time (read: several years) to become a "good" programmer.

You want/need to absorb years of programming experience and internalize them in a short time. It won't be possible in 3 weeks and you should state your lack of experience clearly when talking about your future responsibilities. But lack of experience is no reason to give up, it's an incentive to learn.

  • Google, google and google. If you have a problem that is not specific to your companies product, internal interfaces or policies, it's almost guaranteed that someone out there had the same problem before. Asking a colleague "how do I write a loop" involves 2 people, takes 5 minutes, but also pulls the colleague out of his productive mode. If it takes your colleague 20 minutes to get back into his productive train of thought, it's adding up to 30 minutes. Googling involves only 1 person, so as long as you don't need 30 minutes to understand a loop, googling is more efficient.
  • If you feel like you searched for too long but still didn't find a solution, ask your colleagues if they know a solution rather than what the solution is. If your colleagues don't know the answer themselves, even an hour of googling on your own is more efficient than involving more clueless people into the search.
  • If you don't get the right search results, it might be more efficient to ask colleagues for better search terms than for solutions. Finding the right search terms for a problem and knowing the right name of technologies and methods takes experience, too.
  • If you have questions google cannot answer, don't concentrate on your supervisor alone. If there are other programmers around and you need help with a rather basic concept, ask them. If they solve the problem in a minute, ask them to explain to you how to approach a problem to find the solution as fast as they did.
  • Another good idea is to ask colleagues where they encountered the same problem or where they solved a similar problem before. If they can point you in a rough direction in the code, delve deeper into it to find the existing solution. Don't expect your colleagues to point at the right line of code, you have to find it yourself.
  • Reading books and other materials is a good start but not a solution. They often contain decades of experience from some of the best programmers out there. Try to internalize their approaches but keep in mind that reading alone won't make you a good programmer. My personal advice is to learn about "solid code" rather than "coding for dummies".
  • To clarify. (1) Don't ever go back to the manager and ask anything because (as I point out) that is utterly missing the point of programming - which is to solve problems. (2) By all means constantly and aggressively seek information online/etc. YES. Never reinvent the wheel. (3) Sure, when your manager is literally briefing you, of course ask "dumb questions" to simply clarify the job ("Do you mean THIS server?!") DON'T ask "how to" solve it. The single most irritating thing in S/W is when someone you have given a task to..asks you how to do it. It instantly marks them as an intern. – Fattie Nov 7 '18 at 7:40
  • @Fattie This was not meant as an attack on your answer but as a second oppinion. I think your answer would be greatly improved if you incorporated this comment (especially number 3). The way it reads now is really misleading... – Elmy Nov 7 '18 at 7:50
  • Sure, I edited it in, thanks. The harsh reality is the OP (1) "can't program" and is (2) working as a programmer in (3) simply the most demanding, harsh, high-value software field. My answer basically says "It takes decades to learn and you'll struggle". It will attract downvotes from anyone who wants a happy ending :) – Fattie Nov 7 '18 at 8:18
  • "as long as you don't need 15 minutes" - I'd say that should be closer to an hour (if not a little more). Asking someone a question takes them out of what they were doing, and it may take some time to get back to being productive. And figuring it out yourself will mean you probably understand it better for next time, and you probably improve your ability to figure things out yourself. – Bernhard Barker Nov 7 '18 at 8:31
  • Rather like the confusing comments below my unpopular answer ("It's Not Like That! I worked at companies!"), note that the OP is literally, word for word, saying what I'm describing. An hour? 15 minutes? "he speaks very quickly or goes through a complex series of steps in 2-3 minutes, I try to ask for clarification but, again, I sometimes get the impression he is annoyed and feels I should just know after him saying it once". Anyways. – Fattie Nov 7 '18 at 18:02

The best way to succeed is build yourself strong knowledge. Quit the job for a new computer science degree. Train yourself better. No excuse.

  • 3
    Most people don't have the luxury to stop working to get a second degree, best case scenario is that he can get his company to pay for him to take night classes. – imdannyboy909 Nov 7 '18 at 15:50
  • 3
    This is ridiculous. You don't need a degree to be a good programmer, for one, so I don't see how this answer has any meaning or value at all. – user91988 Nov 7 '18 at 17:44
  • 1
    Another answer that won't make happy those readers who are looking for a happy ending. – Fattie Nov 7 '18 at 18:00

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