People usually think the work of a software developer is to write code in one or more programming languages to create computer programs, build a website, or an application, and it’s valid to a certain extent, but what’s the real work of a developer?
What do you do?
I hear this simple question every time I meet someone, and I’m sure you too, but at least in my case, giving an answer isn’t soo easy. When you ask a teacher, doctor, police, etc., you can immediately figure out what the other person does during the day. Their works are well-known by the people.
I could just say I’m a computer scientist or a programmer, trying not to give too many details and not to bore the other person with technical words. Still, the world of IT is too big, so I like to say that I’m a web developer, and most specifically, a WordPress developer. That’s what describes the most what I do.
Then, it’s very likely the person in from of me start imaging a guy in front of a computer, surrounded by multiple screens full of black windows in which you can see waterfalls of lines of code like you were watching inside Matrix.
The picture is quite funny but understandable considering the stereotype of the developers and hackers represented in films.
Other people with higher knowledge of development probably will reply to you: “Oh, I see. So, you write code in PHP.” Umm, yes, and no.
Let’s check out what Wikipedia says:
A computer programmer, sometimes called a software developer, a programmer or more recently a coder (especially in more informal contexts), is a person who creates computer software
Definition of Programmer in Wikipedia
Oops, it looks like Wikipedia won’t give me a helping hand this time.
After reading this, I ask myself: That’s all? Is the answer so simple? Can we reduce our work to writing code? Absolutely not.
Well, this is just my honest opinion and the point I want to discuss in this post.
It’s not about the code
Our own industry, including the companies and the people that work on it, tends to reduce the concept of programming to just, writing code.
Nowadays, the demand for workers with programming skills is so huge that, in many cases, we forgot why the code is necessary and why we write it.
You can find on the Internet infinite bootcamps, hackathons, masters, courses, etc. that promise you to become a full-stack developer in 12 weeks (or even less) although you don’t have any previous knowledge of IT.
Is this possible? I don’t think so. It’s true these courses are useful to many people that want to start in the world of programming and they help companies to find new employees, but the message they transmit is that: “You only need to know the syntaxis of this programming language and how to use this tool to become a developer.”
This kind of speech can be very dangerous because students may think in their future works the only requirement is to know how to write code, or even more, that there exists a correlation between the amount of work or how difficult a task is with the number of lines of code they need to write to accomplish it.
Honestly, it’s quite naive to think that learning the syntaxis of PHP makes you a PHP developer because programming is not (just) about writing code.
It’s about finding solutions
That’s it. A developer finds solutions to the challenges and problems that a company or client may have. The code we write, no matter the language, is the result of a process that requires previous work of analysis, documentation, and “try and error” to propose a solution to these problems.
And that isn’t all, the solution must be as efficient and cost-effective as possible within a predefined range of time and a number of requisites to accomplish.
I’m sure you heard this before:
You have two weeks to implement the feature X in the project Y. I know you have never done this before, but I’m sure you will make it possible.
Diary of a developer
Jokes apart, to me, the key is in all this previous work. That’s what makes the difference between a solution and another. And trust me, this is the most difficult part of being a developer. It requires an open mind and exploring different approaches to beat the problem.
Writing code should always be the final step, the conclusion of a process that started with understanding what you had to do.
Final thoughts
In my years as a web developer, I’ve learnt that just starting to write code and face problems only when they appear is not a good path to get the goals. The better solutions come after evaluating the problem and exploring different options you solve it.
Sometimes you will get stuck and will think it’s impossible, or you will be close to the solution to reach a dead end, but this is part of the process. A process that requires a lot of years of experience to be perfectioned. So, don’t despair and keep pushing.
One day, you will have interiorized this way of proceeding and there won’t be any problem or challenge you can’t solve.