Depiction of software engineers are scattered upon media knowns to man. From movies to memes, to social media posts. All these pieces of information about software engineers often make a misunderstanding towards the job. It made rumors, hearsay, gossips, I don’t know the correct term 😂 It’s basically what a lot of people say and believe, but it is actually incorrect. So in this story, I would like to share what we (software engineers) are actually doing.
1. Typing All Day
Most people assume that software engineers are in front of their laptops, typing thousands of lines of code from 9 to 5 on a daily basis. I can understand tho… since most Hollywood movies or popular American tv shows are portraying a “computer guy” as the role of a “hacker” (or should I say “cracker¹”). As in real-life scenarios, the job of a software engineer is far from it.
Yes… we do have to write codes for our software, but we don’t do it tirelessly. Are you insane?
The truth is, we spent only 20% of our day writing codes. Whereas for the other 80%, we spent on reading codes. Almost all of the software products are the result of a team of software engineers. This means as a software engineer, you almost never work alone. You always have a team who contributed and writing codes in the same codebase. Sometimes you need to read a bunch of code first to give you a general idea where the best place to start your implementation. In the refactoring² scheme, you need to read the previous code to get the gist of what the previous engineers want to achieve and/or avoid. You also need to give a review to someone else’s new code implementation before it’s getting merged to the codebase almost every day.
Another thing that we also that most people don’t know about, is that we sometimes had a “pause” moment. It’s when we’re put our hands away from the keyboard, then staring at the blank slate or thru our office windows.
It’s mostly because we are in a deep thought kinda situation. Software engineers’ job is basically problem-solving. This state is the actualization of the activity itself. We were actually thinking inside our heads! How do I explain it ya… It’s like we’re running a “simulation”, weighing up whether our code is the correct one while simultaneously asking ourselves: “Do this code good enough? Will it break in the future? Is there any case that we miss out that can cause our product to burn in flames?”.
So if you happen to encounter a software engineer that seems to be lost or staring at the blank slate, no… they’re not high — they’re just thinking.
2. Lack of Human Interaction
“You’re so lucky, you’re a software engineer. You don’t need to deal with people — just the computer” is a common phrase that I often heard. There’s this belief that a software engineer's job is to only type a bunch of code as soon as they received the requirements.
I can confidently say that this is completely wrong, it’s actually the other way around.
Software engineers are actually still deal with a bunch of people. In fact, we regularly deal with people on a daily basis. People that I can think of are the  product managers whose the owner of the product  the designers responsible for designing the product and  the QA who test our code.
We don’t just accept requirements, we also discussed the requirements thoroughly with them: What’s the goal of our product? How we measure success metrics? What’s the product’s expectation? What if a certain edge case happens? And many more!
Even if you don’t work closely with them, let’s say you’re a junior developer — you still need to also communicate with other peer engineers.
As I’ve said above, software engineers are working in teams. Large tech companies tend to have a dedicated team that has specific objectives. You need to be able to understand how to reach this cross-functional team. You need to be able to state your request and work collaboratively with them.
So if you pursue a software engineer career and expect to not have human interaction at all… sorry mate, you’re in the wrong lane.
So yeah… I guess that’s wrapped it up. Those are the things that I would like to debunk on this occasion. We’re not typing in front of the computer all day (altho it’s the most thing that we do), we’re not a robot. There’s a lot of occasional staring or pauses throughout the day. We are not lacking in human interaction, it’s actually the opposite. Software engineers are demanded to be able to work collaboratively in a team, so there’s no way we only have to deal with monitor and keyboard.
Hope you like this story 😀 Thank you for reading.
Cheers 🍻 — Ferzos