Any developer, or anyone working in the IT environment, is privileged compared to most other professions. Why? It is easy to find a new job, and those in IT are free to choose between jobs! IT professionals have the luxury of thinking about self-fulfillment and the feel-good factor of their work. As one of those professionals, I feel fortunate with my career choice. When I started, IT sounded interesting and fresh. Today, when IT has become integral to companies, it is a booming employment market.
Software developer: General perception vs. reality
When I tell people what my job is, I'm often met with a surprised look. "You're a computer scientist?" Unfortunately, people still imagine programmers as unworldly nerds. This often incorrect stereotype implies a lack of social skills, introversion, and a lack of interest in communicating with beginners or non-specialists. Thank God I am not like Sheldon from The Big Bang Theory. 😉
In reality, my image of a software developer is the exact opposite. One movement that deals with this topic is "Software Craftmanship." Personally, I don't want to be just a programmer. I want to deal with the innerworkings of programming and its constant improvement. This also includes sharing knowledge with newcomers, discussing, and practicing with others. We practice brainstorming and knowledge sharing actively at Nagarro. I appreciate this because it brings valuable input and inspiration to our daily work.
I like to introduce myself as a "professional software developer" at the start of any lecture I give. What do I mean by that? For me, what I create is particularly important. Programming is not an end in and of itself. My job is to translate the customer's world into IT, to understand their challenges, and provide solutions. On one hand, this means producing exceptionally good code. But on the other hand, this involves fulfilling customer demands, fully understanding a problem, and collaborating effectively to prompt exchange and discussion. Nagarro’s client-centric and agile CARING approach helps us exceed customer expectations and provide innovative solutions to their challenges every time!
My learning as a software developer
I remember my first computer science lecture well. The professor said it is necessary for computer scientists to be lifelong learners. That's when I knew it was the degree for me. To become and remain an expert, we must constantly learn new technologies. Almost every developer is aware of this.
Developers like to delve into microservices, a new Java version, AngularJS, Elastic Search, blockchain, kubernetes, and other buzzword-heavy new tech. But we frequently ignore less tech-driven aspects, such as:
- How do other programmers work?
- Why are unit testing and TDD (Test Driven Development) important?
- What do other teammates do and how?
- What interesting coding katas could I try to really challenge myself?
- How can I convince my manager that pair programming gives us an edge?
The path is never-ending. But keeping even the non-tech aspects of tech work in mind, pays off. After all, as software developers, we collaborate on projects with different colleagues. Everyone brings different skills, experiences, and ideas to the table. It isn’t about sharing my knowledge with those interested, but learning from them too. I am convinced that only this kind of active collaboration will help us develop software professionally, today and in the future.
What kind of developer do you want to be?