The newsletter’s title was a Tweet published weeks ago by Amy. I wrote a short response, but the questions have been in my head for some time, so I wanted to discuss the topic further.
So, here’s the list of myths that I believed a long time ago. I wouldn’t say “before becoming a software engineer”, because I’m not sure when that happened. When I as Junior? When I became “Senior” (what does that even mean)?
That software can be finished
I believed software was something you start working on, and after putting in some hours, you’d finish it. Nothing could be further from the truth.
Software is like a living organism. It keeps growing, it needs feeding, and it eventually rots and expires. It also needs to be maintained, even if no one is developing new features on it.
Material fatigue is real, even in software development.
That software development is about writing code
Do you think that developing software is about you sitting in front of your computer, typing weird stuff? Well, think again.
That could be the case of small applications, or specific environments. Nowadays, software tends to be a core feature for most companies. It requires combined efforts from several people with several backgrounds. No way a single person can cope with it.
I’d say that software is about communication. It’s not only about coordination (obvs). It’s also about creating a shared understanding among parts, and spotting areas of improvement. More often than not, people will step into each other without even noticing. They’ll make different assumptions about the same issues.
Writing code 24/7 is working hard. Talking to your peers and reflect on your work is working smart. Developing software means (surprise!) dealing with people.
That I’d understand how the fuck does a computer work
I remember thinking that studying a degree and working as a developer would allow me to understand computers. To understand how electricity becomes 0 and 1s, and how they get arranged to create software. How software “layers” work together to create something useful.
Well, that didn’t happen.
99% of a computer is still magic to me. I might have a blurry idea of what’s happening in the inside, and I can throw in some words and look smart. However, the truth is that I can barely scratch the surface. The topic is too broad, and every bit (pun intended) is too complex.
That I’d need maths
Hey, I love maths. I’ve always loved them. Yes, maths might have helped me sometimes during my professional life. Yet, everyone said they were so important — and we studied them for sooo long- that I was expecting I’d be solving integral equations of the second kind daily.
As a developer, you might need to understand basic logic. Sure. Also probability, and some statistics. That might help. I’d say that 80% of times, that knowledge is enough. I’m sure some fields require a deeper understanding of maths, but that’s not usually the case.
Studying maths (and physics, and…) gives you the right “mind structure” to handle complex problems such as… well, programming. So, maths are still useful. I just had so much fun with derivatives, integrals, and limits that I wished I’d keep working with them.
Weirdo? Yes, so what.
That I’d need to remember everything off the top of my head
Ha. I’d still be in College if it wasn’t for Stack Overflow. Knowing all stuff without needing to check looks cool, I admit that. But a true superpower is knowing how to look for something. Understanding what’s the underlying issue, what’s wrong, and how can it be solved.
I don’t need to know regular expressions that much. I need to be able to identify situations where they can help me. And then know a couple of sites that helps me writing a solid, concise code. That’s it. It’s harder than it looks, thou.
Can you think of any other myth about software programming? Share it by answering this mail, or drop me a tweet at @afontq! I’d love to hear from you.