Lately, I've been thinking about what it means to be a professional in our line of work. It seems that being a professional, in our jobs and a lot of others, is about making money. You make enough money to sustain yourself, then you're a professional. Or, you have a certain degree or certification, there you go, you made it. Does the knowledge or money aspect of the job makes someone a professional ?
After thinking about it, it looks like being a professional is more about a mindset, a behavior. Which would mean you could act and think like a professional one day, and be an amateur another day. So, here are a collections of thoughts, let's talk about it.
If someone shouldn't be considered a professional based on the money they make or the degrees they obtained, how would we define a professional ?
I believe the notion is very subjective. While we may agree on certain key points, each person will have a very different opinion on the matter. To me, I think the list would include ( and not be limited to ) :
- Having principles.
And humane ones. You could have the principle to always fuck over customers to get as much money as possible. That works, a lot of people/companies do it. But I believe a professional has principles that will benefit the greater good. Even if the greater good is always a debatable concept, I believe each person's conscience can somewhat be guided towards it.
- Doing what is right
The previous point could be the only one, really, but it implies a lot of others things. If you have those principles, always wanting to improve the world around you, it would mean you have to say No to certain people when you are asked things that do not comply to your principles. That might mean saying No to your boss, colleagues, clients or customers. Saying No also means you will have to face the consequences, whatever they may be. Because those principles shouldn't be concepts a professional gives up in the face of adversity.
- Taking responsibility
It also means that when a professional fucks up, that person owns it. No excuse, no bullshit, no trying to blame anyone or anything else. A professional has the right to make mistakes, but a professional always brings solutions to problems he created.
- Not being perfect.
A professional is not synonym with perfect, or never wrong or 10x or ninja or whatever... A professional is not immune to failure and mistakes. A professional does not know everything. I believe the difference between a professional and an amateur is that the professional will admit, hell, even embrace those shortcomings. They have to be viewed as opportunities to grow and learn. Not opportunities to lie about the knowledge we wish we had. Don't know the solution to a problem ? Tell the truth, and find a solution.
I also think a professional will always strive to be better, to improve his skills. Now, some might want to improve their weaknesses, other might only want to improve their strengths. And I think it is perfectly fine. As long as you are honest with yourself, and to others, about what you know and don't know, there are no right or wrong path to improve yourself.
This would also imply that a professional is predictable and reliable. The truth always comes out, we know what to expect. A professional should be someone you can trust. You wanna trust your doctors or your mechanics, you should trust a software developer the same way.
Well, here comes the tough question. With all that in mind ? Do I consider myself a professional ?
I've been making money with this craft for more than 3 years now. I'm better than I was when I started. But my choices, attitudes and behaviors have not been the ones of a professional.
The first job I had as a paid software developer was the toughest one for me. I had little idea of what I was doing. I had little knowledge of the company I was working for. And my principles were non-existent. I've always been pretty honest about what I don't know, and I'm proud of that. But, after a while, I discovered in details what kind a product the company I was working for made, and how they marketed it to their customers. It wasn't illegal, but it was definitely unethical.
It should have left. Right there, right then, I should have started to look for another job and get the fuck outta there. I didn't... When you have shitty principles, or when you are ready to compromise on those principles, you give ground. I was well paid, I had bills to pay, so I decided to stay. The boss and colleague ended up being douchebags and I never said no to anything they said. I was an amateur, I did the job. Even if the job didn't feel right to me, I did it for the paycheck...
Doing it for the paycheck... Never again
I stayed more than 2 years. I was miserable. I barely wanted to get out of bed in the morning... I don't think that being a professional means I should have left my job right away. I couldn't. But I should have saved more money, look for a job, and leave as soon as I had the opportunity. I chose to stay, and that was a mistake, an amateur's mistake.
Since then, I've been extremely careful about who I work with. I do extensive research, make sure the people are respectful and that we are building something that brings value to the world. But I wouldn't consider myself a professional yet.
I wish I could say No when I'm asked to do stuff I don't believe in. Even if the occasion has not presented itself yet since the last shitty client, I'm not sure I will have the strength to do it. I wish I could say I will not compromise the quality of my work under any circumstances, because it's not what a professional should do, but I don't think I'm there yet.
But I'm working on it. I get better every damn day. I learn new things that allow me to be a better problem solver. I ask questions to understand why people want me to do certain things. I'm slowly building the habits to become a professional I can be proud of. It will take time, and will most likely be a lifelong journey, but I'll make sure to be proud of that journey and the decisions I make along the way.
Are you a professional by your standards ? If yes, why ? If not, why not ?
I think we all have the proper values inside ourselves to make sure technology makes the world a better place. But it takes a lot of courage to follow our hearts, follow our minds to build that place. Because it's easy to believe that giving up those principles, at the scale of one individual, means nothing, that we can afford it. I don't believe we do anymore.
Technology makes this world run. And we have some knowledge to make the technology work. Come to think of it, we have some power in this world. At my very small scale, in the small circle I have full control of, which includes only myself, I can at least make sure that I won't write code that could do harm to anyone or anything.
I've been caught once, won't happen again.
Than you for reading, and if you have a different take on what it is to be a professional, I would love to read it.❤️
Soft skills are as critical as technical skills for a software engineer. No one works in isolation. Each person has to deal with teammates, colleagues, managers, etc. Therefore team interpersonal skills are essential too. Soft skills include things like good communication, honesty, teamwork, integrity, organization, empathy, etc.