5 Things I Realized About What It Means To Be a Developer
There's more to being a developer than just writing code... Before I got into programming, I didn't know that at all.
2nd last time you'll see this cover art, I swear.
Hello everyone! This is the 7th article of the #2Articles1Week Series Challenge on Hashnode. I'm ecstatic to read all your amazing articles! As for me, I think I'm progressing well into this challenge. But this time, it was quite hard to think of a non-technical post. That's why it's a challenge after all.
As the last non-technical post for the challenge, I want to reflect on my developer journey so far by going back to the time before I started programming my first "Hello World". The time when I didn't know what being a developer is about. And from there, I will list what I've realized being a developer means to me today. So here's the last non-technical article for the challenge.
What it means to be a Developer
Front-end, back-end, full-stack...
These words seemed very alien to a 15-year-old girl who is taking triple sciences and double mathematics courses in school, assuming she will have nothing to do with those words.
At that time, this is what she thinks a programmer does:
She thought programming was for the brilliant, intelligent, gifted people because it seemed like a difficult and complex task to do. Although she is very curious about software and technology, she thought being a developer was a career she never can see herself doing.
It was then when she changed schools. In her new school, there was no Biology, Chemistry and Physics courses to take. Only 'Science'. There was no Advance Mathematics course to take. Only 'Math'. She had many empty slots to fill with courses and so she picked...
Introduction to Computer Science (and psychology, accounting, economics).
It was intimidating at first and she doesn't know if she'll be as good at it as her Math and Science subjects. But the moment she started learning the basics: variables, functions, etc. Programming was all she could do all day. Every day, she would get up early to work on her coding assignments, go to school and then end her day building extra projects or adding more features to her assignments that was not required. Even after the course ended, she still continued to code whenever there is something she wants to build for herself.
Fast forward to today, there sure is a LOT of misconceptions and exaggerated media about what programmers/developers do. Even my parents think that all kids these days can make a fully responsive website, as if it's a basic skill like typing on Microsoft Word.
But it's not. And only we - the insiders, know that it takes effort, hard work and time to make a fully responsive website (and other cool stuff).
Beyond the code, I realized that a developer is someone who is...
1. A Passionate Learner
The tech industry itself is known for its fast-paced and constantly changing environment. It will spare no mercy to anyone who is not passionate about continuous learning and updating their knowledge stack.
This is aligned with the statistics from the 2020 HackerRank Developer Report, where over 59% of developers view new learning opportunities as the most important form of professional growth.
Throughout your career as a developer, you'll often find that you need to learn something new, fast. That's why professional developers often make it a habit to learn and self-teach themselves something new (i.e. framework, language, etc.) every few months. This cannot be done if they are not passionate about learning. Just because they already have a job and are out of school, it doesn't mean that they can stop learning. Excellent developers take responsibility for their own learning and always try to improve themselves.
Source: 2020 Stack Overflow Developer Survey
2. An Excellent Communicator
When you work as a developer, you will likely work in teams. And sometimes, you need to explain things clearly so that non-developers will not look at you like:
It's often the case to bump heads and get into conflicts with both non-developers and other developers. Consistent and productive communication is key to understand the concerns and issues everyone has with the process or product.
Recognize that everyone has something important or valuable to contribute and it all comes down to the ability to communicate, understand and compromise to reach a solution as a team.
Communication becomes even more important as a freelancer. Working closely with your clients and following up after the job is essential for your personal business. Asking for testimonials, referrals and maintaining that relationship can go a long way for independent freelance developers. That's definitely something I didn't realize web developers had to do before I got into programming.
Any fool can write code that a computer can understand. Good programmers write code that humans can understand. – Martin Fowler
3. A Non-Conventional Architect
Architects are people typically focus a lot on the design and feasibility, being highly detailed yet strategic in how they can design and structure buildings. Before I started programming, I have no idea that designing is a part of becoming a web developer. Usually, you will work with a designer but you will also need to make a lot of design choices.
After all, designers do not understand the underlying technical aspects that goes in the code. Being involved in things like functionality, responsiveness, page loading time, accessibility, security and other stuff are expected from you so that you can implement and maintain scalable code.
Furthermore, bringing code and web design together to cohesively build a website is no easy feat. In addition to potential internal conflicts between stakeholders, project managers, and various teams, there are also plenty of external factors to consider. Such as defining the user goals, keeping the design minimalistic and intuitive to navigate, understanding the market (i.e. competitors, barriers, etc.) to deploy the product at the right timing. All these are things I didn't notice that being a developer entails.
Writing code is not production, it's not always craftsmanship, it's design. - Joel Spoisky
4. A Creative Thinker
Before I started, I always imagined those developers would sit all day coding. But that's not the entire picture. Problem-solving and planning solutions will take up more time than coding itself.
First solve the problem, then write the code. -John Johnson
Most of the time, the solution you thought of doesn't need to be perfect. You'll have deadlines to meet, stakeholders to satisfy and that all takes a lot of time out of you. Your code just needs to satisfy the requirements stated, passed all the tests and integrate well with the existing codebase.
And as a developer, ideally, you do want the most efficient and optimal solution but it is important to recognize trade-offs and balance them with your company's as well as your client's values. Ultimately, as a developer, you need to be creative in how you approach and solve problems while trying to balance your code's feasibility and what your client wants. This ties in back to point number 2 about communication because it can help you understand the requirements and goals you need to meet for the project's success.
5. A Persevering Person
Despite the challenges all developers face: the impostor's syndrome, the ever-changing landscape, poor working environment (sometimes), lack of understanding from non-developers and all those other BUGS, being a developer is about perseverance. We do fall sometimes, but we will always get back up.
Perseverance is stubbornness with a purpose. - Josh Shipp
After I become a developer, I realized what sets the good developers from great developers apart is their level of perseverance. Not giving up when things are tough and having the strength to keep going is how developers can grow. With that said, being a developer requires some initiatives to do on your own because...
If you don't ask for feedback, no one will give it to you. If you don't ask for clarification, everyone assumes you understand the problem completely. Ask questions, no matter how stupid it seems. Be thick-skinned and get feedback. At the same time, be humble and open to learning new things. Accept that no one is perfect and that you can make mistakes. And persevere, because that's what keep you going.
Becoming a Developer
It is not simply about learning how to code and building your tech stack. We often see those "2020 Developer RoadMap" circulating everywhere on the internet. While that is helpful and true to a certain extent, developers also need to hone soft skills that can help further accelerate them to success. Like the 5 things I mentioned earlier, these are essential roles that a developer must participate in and prepare for.
If you are a new developer, I hope this article will not deter or intimidate you, but rather, help you expect what it truly means being one.
If you have some experiences or points to add, please feel free to comment below. I love to hear from others' opinions. Thank you for taking the time to read. I hope you enjoy and love being a developer too! I have one last article to go before the end of my #2Articles1Week challenge. If you have been following my journey in this challenge, please stay tuned for the final article! Have a fantastic day, cheers!
Excellent! Agree, very much agree with all the points. These are so essential skills to have as a developer! You know what I believe? Along with any new technologies, methods, future advancement, these core skills are going play very critical part.
Thank you for sharing!
I also like to mention that, unlearning could be an aspect we need to learn as we grow in experience as developer, architect, designer, whatever. Holding a learning tight what is not relevant today(rather creates ambiguity), may create confusions for a developer and to his or her growth.
Thanks again, great reading..