๐Ÿ‘ฉโ€๐Ÿ’ป๐Ÿ‘จโ€๐Ÿ’ปWhat makes a Developer professional?๐Ÿ‘จโ€๐Ÿ’ป๐Ÿ‘ฉโ€๐Ÿ’ป

Daniele Scillia (Dan The Dev)
Learn Agile Practices
5 min readJun 8, 2023

Unpacking the Characteristics of a Respected, Successful Programmer in this Fast-paced Tech World. ๐ŸŒ

โฉ Introduction

The technology industry keeps growing, and the demand for skilled developers is increasing every day โ€” even after the rise of the AI and the No-Code industries. However, there is a long-aged debate on what it truly means to be a professional and highly valuable developer.

In a fast-paced and ever-changing tech landscape like the current one, developers are required to have a wide range of skills and attributes, not only including hard technical skills but also the infamous soft skills.

In this weekโ€™s issue, I aim to explore some of the most controversial and debated topics surrounding the developer job: from the challenges of writing tests to the importance of continuous learning, this issue wants to explore what truly makes a developer professional, valuable, and in-demand in todayโ€™s digital world.

A focused programmer typing on a keyboard surrounded by multiple screens โ€” generated by Bing AI

๐Ÿง‘โ€๐Ÿซ Be responsible, efficient, and proactive. But also technically great.

Hey there, fellow developers! โœ‹

Today weโ€™re going to talk about what makes a developer professional and highly valuable in the tech industry. ๐Ÿ’ฐ๐Ÿ’ป

Have you ever heard someone say that certain decisions within a company are always made by CEOs or CTOs? ๐Ÿค” I often heard things like:

We donโ€™t write tests because we are not given enough time to do it โ€” management thinks tests are a waste of time. ๐Ÿ˜ก

I donโ€™t study that much because our companies does not give us time or money to do it during working hours. โณ

I often receive wrong analysis and tickets are full of missing details, then itโ€™s impossible to avoid bugs and defects. ๐Ÿชฒ

Well, I disagree with this kind of thinking! As developers, we have the power to make important decisions, especially when it comes to technicalities and implementation decisions. ๐Ÿ“

Technical decisions must come from technical people, writing tests included ๐Ÿ”ด๐ŸŸข

Many people believe that management should be the ones making all technical decisions, but I think differently โ€” they should work with us to better understand the business needs and enable us to ensure the quality of the product. ๐Ÿค

Speaking of quality, tests are crucial! ๐Ÿ‘จโ€๐Ÿ”ฌ They guarantee the quality and dictate the success of our work. If anyone ever tries to discourage or question the tests, stand up for your work and explain why itโ€™s so important for the productโ€™s success. ๐Ÿ™Œ

Remember that quality of work is always given for granted: if things go well, itโ€™s considered normal ๐Ÿ™‚ if things donโ€™t work properly, someone will be disappointed. ๐Ÿ˜ข

This is ok because itโ€™s a valid assumption that the work of someone should be good. We must ensure that our work meets this expectation and to do that, we definitely need tests to make sure no one except developers makes the call of writing tests or not. โœ‹

We are the technical guys, we have the technical skills and expertise to decide how to do our work and we should let no one except other developers discuss that. ๐Ÿง‘โ€๐Ÿ’ป

๐ŸŽ“ Learning is a developerโ€™s responsibility, not the companyโ€™s one

As developers, we all know the importance of constantly learning and improving our skills. While it would be great if companies provided us with consistent training, itโ€™s ultimately our responsibility to keep up with the industry standards. ๐Ÿ‹๏ธโ€โ™€๏ธ

Letโ€™s be clear on this one: I strongly believe that companies should guarantee time and budget for a developer to be invested in learning during work hours. Companies must understand that learning is part of the job and consider it as a valid task during the day.

We are the developers โ€” so itโ€™s our responsibility to enforce this belief and make everyone understand how much important it is. There are two main things you can do as a developer to enforce this in a company:

  1. Make it clear during interviews: when you are discussing a new position, ask about learning and make sure to understand if the company offers time and/or money to support your learning. If you think itโ€™s not enough, be nice but say it and try to understand if you can obtain more.
  2. Make it explicit when you obtain something thanks to your learning: especially if the company still doesnโ€™t support you that much, and your learning came from personal time, be sure to make explicit that you were able to do better thanks to that โ€” this will give you arguments to ask for more.

Remember!

If the company offers benefits to support your learning, be sure to respect this and make the most out of it. Itโ€™s totally ok to fight to obtain benefits you think you deserve, but donโ€™t forget that you have to proof that you actually deserve it.

Still, I want to be sure that another concept is very clear: your learning and continuous improvement are your responsibility, not someone else. You should always invest time in continuous improvement outside of work, even if the company offers you some of it because itโ€™s up to you to invest in your career.

If youโ€™re not getting better youโ€™re getting worse [Joe Paterno]

As Joe Paterno suggests, if you donโ€™t get better you actually get worse, because things constantly change and improve, so if you remain stuck you slowly lose value. Be sure to find a sustainable way to constantly invest in your learning.

Solve problems, not simply write code โŒจ๏ธ

Avoid being a mere executor โ€” always ask questions, consider trade-offs, and understand the why behind everything you do. Itโ€™s not just about your coding skills, but your problem-solving abilities, too. ๐Ÿ”

Typically, this is one of the biggest signs of seniority for a Developer:

  • Junior devs are typically expected to simply get a task and develop the code required for it
  • Middle devs are expected to go a bit further and ask why we need that task and consider some alternatives
  • Senior devs are expected to do even more โ€” they donโ€™t simply ask why, but also try to understand the complete problem/opportunity that lies behind that task, entering the conversation way before the task even exists and considering all the aspects of the problem to find the best solution possible considering all the constraint (money, time, etc..) โ€” and also consider that the solution might even not involve coding at all!

By becoming able to solve actual business problems, youโ€™ll become a well-rounded professional developer, and thatโ€™s something that no AI or no-code platform can ever replicate. ๐Ÿš€

So, remember โ€” youโ€™ve got the power to create great work, make important decisions, and be a valuable asset to any company. Keep learning and keep pushing yourself, and youโ€™ll be unstoppable. ๐Ÿ’ช

Until next time, happy coding! ๐Ÿค“๐Ÿ‘ฉโ€๐Ÿ’ป๐Ÿ‘จโ€๐Ÿ’ป

Go Deeper ๐Ÿ”Ž

๐Ÿ“š Book

Professional PHP โ€” a book about being professional as a developer with a focus on the technical part. Examples are in PHP but are applicable to all OOP languages.

๐Ÿ“ฉ Newsletter issues

How to Get Better at Learning from Experience [Range Widely newsletter by David Epstein]

๐Ÿ“„ Blog posts

12 Essential Habits to Learn to Become a Professional Software Developer

๐ŸŽ™๏ธ Podcast episodes

Habits of Successful Software Engineers โ€” Getting to Code Quickly and Model Thinking [Developer Tea podcast]

๐Ÿ‘จ๐Ÿปโ€๐Ÿซ Online courses

Exercism โ€” the best online learning tool to learn programming languages and discover new Katas

๐Ÿ™ Thank you for reading this shortened version of my blog post. To read the full article, click here.

--

--

Daniele Scillia (Dan The Dev)
Learn Agile Practices

Software Engineer @TourRadar - Passionate Dev, XP Advocate, passionate and practitioner of Agile Practices to reach Technical Excellence