Urban75 Home About Offline BrixtonBuzz Contact

Learning to code/changing career

I'm convinced that some people's brains simply aren't wired the right way to ever become competent programmers.

I used to have a member of my team who wrote the most truly awful code and no amount of explanation resulted in improvements. There was a company restructure and - thankfully - he was moved into someone else's team. However this meant we had to support applications he'd worked on.

One such application needed a small change which fell to me to do. I looked at the code: it was fucking diabolical.

One piece of code had to decide where to route a message. He'd managed to write something so appalling (many, many nested IF this ELSE that ELSE IF this OR that AND NOT, etc) it was actually a thing of terrible beauty. I was so impressed that I printed it - it completely filled a sheet of landscape A3.

I replaced it with a function which was:

if A return X
if B return Y
return Z

Just. Three. Lines.
We spotted a 350+ line switch/case statement recently, each of the cases of which was an if/then/elseif/elseif/etc with multiple duplications, sometimes right next to each other.

In a React component.

This was written by the team that now tells everyone else what to do.
 
If you want some encouraging opinions, all the best developers I know have not come from a straight computing background and had lots of formal training. I'm a bit unusual in that I have a computer science degree, but in my defence I fucked about through a lot of it just doing things that interested me and going to clubs, and got a 2:2.

One reason for that (the background thing, not me fucking about) is that while learning to program is challenging and takes time, getting to a competent state is perfectly manageable for most people if they're interested in what they're doing, and there are lots of resources for the tech side. What are way more valuable are the "soft skills" - so-called by sneering techbros - like being able to work with other people, knowing what you're supposed to be doing before you do it and knowing when you need to ask for more information, being able to express what you mean and also understand what other people mean, and being able to take what you learn, interpret it and draw conclusions. These are hard to teach but can be learned in lots of different ways.

This is not to say that employers necessarily appreciate the above, and also not to say that software development can't be insecure, lowly paid, and with no opportunity for advancement. The latter is particularly true, though at least the salary tends to top out at a reasonable level.
I used to refer to my job not as project manager but as an interpreter.
I'd speak to the techs and translate what they were saying into words the business could understand then take what the business said and translate it to the techs.
If you let them talk to each other the end result was a useless waste of time and resources that had to be done over.
 
I would suggest some sort of course that brings in other stuff like gui design, databases etc that are important, it would also touch on things you wouldn't think about if you were learning it yourself. Preferably with other people so you can swap ideas etc.
 
I used to refer to my job not as project manager but as an interpreter.
I'd speak to the techs and translate what they were saying into words the business could understand then take what the business said and translate it to the techs.
If you let them talk to each other the end result was a useless waste of time and resources that had to be done over.
Not surprised you're a pm.
 
Some really good advice on this thread, so I'm reluctant to add yet another recommendation, but...

I'm a big fan of this book for absolute beginners: Automate the Boring Stuff with Python

It will show you how to program simple tasks in Python, and assumes no prior knowledge. It's probably not the best general introduction to programming, but if you're just putting out the feelers, then it's great. You'll learn how to build lots of useful things, that you can use in non-programming jobs. But most importantly, I think it inspires people to see what's possible with programming.

When people say programmers are wired differently, I'd agree. But I don't think it's innate. I think by learning programming, you think differently. The amount of times I see my colleagues doing really repetitive tasks that if they knew a tiny bit of Python they could do it in one click....
 
That's a great little resource for anyone fancying a little tinker with coding.

When you talked about being 'wired differently', I was expecting something silly and platitudinous at first, but I commonly see programmers at my place doing things which I would always get bored and see if I could automate after about 10 minutes of tedium.

I think that's an 'engineer mindset', really.

Or what used to be called 'laziness'.

I've shown loads of people how to do basic GUI automation - they seem to think it's really cool at the time, but then they just go back to doing things the boring way. I find it hard to fathom. :confused:
 
Last edited:
If you want to be always in demand, without having to be a shit hot developer, get into testing. Developers hate testing & are usually bad at it, but every dev firm worth the name needs competent QA.
 
I'm having a lot of trouble with Microsoft azure notebooks at the minute. It's consistently unresponsive when I try to run any sort of code. At the minute I'm spending most of my time restarting kernels and trying different browsers rather than actually learning anything. Any suggestions?
 
Alternatively 1-877-696-7786. To speak with a live agent, you need to press 3 at the first prompt, then press 6 at the second prompt and press 6 at the third.
 
Back
Top Bottom