Surprising skills that will make you a better software developer

Automatic Summary

Introduction

Hello, everyone! I'm Yanna Peno, a front-end engineer at Rex Group, a blogger, and initiator of one of the largest groups in Poland for women interested in coding. I'd like to commence this session by sharing some surprising skills that I have found to be invaluable in my career as a software developer.

Emphasizing Non-Technical Skills

When most people think of programming, undoubtedly, technical skills come to mind immediately. Yes, we build our programming careers on technical skills. However, today, I'd like to share with you a different perspective. I want to take you on a journey, exploring skills which, although are not technical, can significantly improve your proficiency as a software developer.

The Power of Listening

In the programming world, you often hear about soft skills such as communication and presentation. However, I strongly believe listening is even more crucial. Always remember, your users, customers, and stakeholders are more important than you are. The goal is to understand their needs and build something to fulfill these needs. It's not just about using new technologies or adding features, but about addressing user requirements effectively.

Empathy: Walk in Your User's Shoes

As developers, it is crucial to put yourself in the user's shoes while creating a product. I worked as a mystery shopper and realized that what might seem obvious to me could be complex for others. After building something, step back and consider how users will interact with your product. If something seems overly complex, it might be a red flag that the feature needs to be simplified.

Attention to Detail

Having an eye for detail is immensely beneficial in programming. This skill can help you spot errors and identify small improvements in your code. You can catch small slips that could easily be missed. Not only can you spot errors, but you can also highlight small progress or wins. This can be helpful during those frustrating moments in programming.

Mental Stability: Learn to Separate Yourself from Your Code

In programming, it is essential to understand that you are not your code. Criticism of your code is not a personal attack but a way to improve the product. In this industry, you will receive comments and suggestions for your code. In a healthy work environment, these are not personal. Your job includes applying changes, engaging in discussions, and improving the code while keeping your mental health intact.

Concluding Thoughts

In my journey as a software developer, I've learned that there are no strings attached. You can pivot, explore different languages or frameworks, and change your tech decisions. If you've made some mistakes, remember, you can always fix them. Just remember, these are experiences that aid in your growth, not setbacks.

Share Your Experience

I'd like to leave you with a question: What would you add to the list? Was there an ability from your previous work experience that you found useful in your IT career? Perhaps, from people you know or experiences outside work. I'm very curious about your answers. Please drop a comment below or reach out to me via email or on Twitter. I hope we can all learn from each other.

Cheers to your growth and learning as a software developer, and remember, you are not your code.


Video Transcription

Uh Thank you. Thank you, Anna. Uh for this opportunity to talk to you here today. I hope you can hear me well.Please let me know on the chat if everything is fine, if you can hear me and if you can see my presentation and um let me start right away with a question. Uh Let me know or you can even uh reply in your head. What comes to your mind first? When you hear this word, a good programmer, what is it? What pops in your mind as a first thing that you see, I will give you three seconds, you can reply in the chat and you can just think uh by yourself and I bet this is something actually related to tech skills. And I agree, technical skills are essential in a programming job. We actually build our programming careers on tech skills. But today I want to take you on a little bit different journey and this will be a journey of surprising skills that will make you a better software developer.

And these are not technical skills. Let me introduce myself first. Uh I'm Yanna Peno and I work as a front end engineer at Rex Group. I am also a blogger and initiator of one of the Polish biggest groups gathering women interested in coding. And I am big enthusiast of a deep work concept and lifelong learning. If you want to get in touch with me, you can reach me out via my email on on my Twitter account on on the linkedin that you can find in this uh profile on the hopping that we have in conference on. So let's start. These are actually not random words that I picked up from the dictionary. These are things that I worked with that I learned and that I had experience with, I don't have a CS degree and I've been experimenting a lot in my career to find out the things that I actually like. I don't know if you know that feeling that everything seems to be OK, you go to your work, everything seems to be fine, but you have this feeling that it's not right that this is not the place you want to be like, I had this feeling many times.

So I really experimented a lot and I changed my mind a lot and I changed my career path, like the whole career path. And one day I discovered programming and I fell in love with it and I became a software developer. And that day I thought, OK, now everything that is here, I can just throw it away because right now my job is only like technical job, so only technical skills matter. But I started to walk. And every day I kept asking my further question, is it just about tech skills? Because I've started to find out that actually I can use so many things from my different work experiences in my programming job. And today I want to share a few abilities that I found useful in a programming job that are actually from my previous work experience. First thing is listening, you hear a lot about soft skills, communication, presentation skills. They are essential, they can help you presenting your ideas, presenting during demo meetings, for example. But listening is more important. I believe I work, work in sales and you know that like sales people can sell you basically everything. But the idea of salesman or sales women will sell you only things that you need. I work in a bank and we actually have the biggest bonuses, the biggest rewards for selling credit cards.

But sometimes I knew that people that, that this particular person don't, doesn't need credit card or maybe he or she won't understand how it work. It, it wasn't, will won't be just useful for this person. And I want to do the same thing in programming. So actually here users, customers, stakeholders, they are more important than you. So you have to listen what they need. If you build something only for building, it really doesn't matter. Like for us as programmers. If no one uses our software, our software is really useless and there is no point in building just for building. So uh users just won't use the product uh that they won't need. So your goal is to actually understand their needs and then build something on that. Uh So using new technologies may be tempting uh having clearly the newest uh the best things in your app. But sometimes this is not the point and this may be controversial, but uh sometimes think that uh customers need the most that actually for you means no coding. So sometimes you have to say, OK, I believe that the best solution will be not to add the speed because it won't add anything to the flow, it will mess up the flow or things like that. And by users in this uh point, I also mean uh stakeholders, so colleagues from other teams that will be using things that you actually build. So be careful when it comes to.

Uh of course, it's great to use new technologies, but be careful of like what needs uh of your users just try to fulfill here. And another thing is actually related to listening. So it's putting yourself in their shoes and by them, I mean, users, customers as I said before. So I used to work as a mystery shopper and I had a chance to work with the different banks and uh they help me with my account with my credit card, all this stuff. And actually, it was great experience for me because I found out that things that I found obvious may not be obvious at all to different people. So when you're building software, it's always uh crucial to remember that you have a different perspective, you have different knowledge, you have to have a knowledge to build the product. But your uh the ma the majority of users that will use your software won't have this knowledge.

So after building something, you always have to step back and think what users will see how they will lose your product. And if you see things like for example, something is complicated. Uh There is a need for a lot of explaining. For example, you have to explain 15 steps to, to test your uh feature to a tester. This should be a red light for you that actually maybe uh the feature is too complex, maybe you should uh build it simpler. Maybe you have to think about it a little bit. I believe that good software developer not only code stuff but also sees areas for improvements and know where actually you have to improve something. And if you're um talking about improving, there is another skill and I for details.

Uh this is not crucial. I agree, but this can can be really, really helpful. So thanks to uh having an eye for details, you can spot small errors, small, you can see small improvements that may be needed in your code. But it can also help you with code reviews, for example. So you can see small tweak that can be done. And thanks to that, the code will be uh will be better. And this is of course, they can be negative like they could be small errors that can be easily missed. And I actually learned that when I was working as an analyst, uh we were uh in a team, we are creating a lot of Excel powerpoint reports. We had not no software for that. So I learned how to support things like double space missing comma messed up numbers. And thanks to that right now in the code, I can actually, I can see it. Uh but uh when it comes to IOD days, I believe that this is also for positive things. So thanks to that ability, uh you can see some small things to improve, you can see small wins. Let's be honest. Programmer job can be really, really frustrating. We may stuck with something for hours. So seeing a small win may be better for us. Good for us. For example, like uh some error method changes. So you can be less frustrated a little bit because you move a step, a step forward.

So it's really really important to see this, this small wins. And actually I know that some people say, OK, I just don't see it. I don't see the details. I don't know how it's done, but you can practice it. If you practice it, you can, you can be better at it in it. Like every day you just have to keep practicing. And if we are talking about frustration and sanity and insanity, let's talk about mental health a little bit. So, next, um, ability that you should have I believe is actually knowing that it's not about you. Uh I used to work in sales as I mentioned before, but I also work in a call center. And as you may imagine, sometimes you have to speak with people that are really angry that are frustrated and they just uh yell at you with no reason. I mean, like I maybe they have reason, they have some problem but you are not this problem. And I've learned that I have to cope with the situation somehow I have to handle it. I have to talk to people or I just have to uh actually sometimes step away and, and to keep my mind sane. And I believe that this also applies to programming, especially in the beginning. You may treat every comment, every criticism you receive regarding your code. You may treat art really personally and you should really practice separating yourself from your code.

Um because uh it is not your fault that someone criticizes your code and in a healthy work environment, co comments to the code shouldn't be personal. So if someone says that she or he would build it differently. That simply means that she or he would build it differently. So part of your job is to actually uh apply changes, apply suggestions, uh engage into discussions, but don't treat it personally like you goal is to have better product, better code ways and sometimes requirement may change because of product, because of business, because of tech decisions of some limitations.

And sometimes your feature may even not be shipped. So you work something on something for months and in the end, like the project gets dropped. So these things happen, you shouldn't treat it personally because it's not against you. Actually these comments, all these things that are for you.

So just learn, learn from it and, and move forward. And the most important thing here to remember is that you are not your code. The code is just your work, something you produce and try to separate yourself from your code uh to keep your mental health and to avoid burnout because imagine that you're getting frustrated every time that someone comments to your code, like after a month to after a year, you will be really frustrated.

And like you, you can actually suffer burnout because of that. So it's really healthy to keep this um line between you yourself and your code. And for the end I prepared something special for you for me, I believe that this is actually the most important thing that we should know. We all should know uh working in a it industry that there are actually no strings attached. So um I, as I said, I changed my job a lot. Uh And I tried different things and like this really helped me that I can always change my mind. I can change my career. Uh And this is not a problem. This may require a lot of work, but this is possible. And this actually, I learned the hard way because for a few years, I was studying Hindi language because I want to translate things. They want to translate poems. And I wanted to learn really pure language. I know there are many people from India here. So you will probably understand, I really want to speak pure language. So no English words, strict Sanskrit words. And then I started talking in India and nobody could understand me because I spoke so strange language of them. And then it, I just had to drop everything basically, maybe not everything, but pretty much um majority of the things I learned and I have to learn from scratch and this is just how life goes.

So going back to programming, you can make errors, you can try different things, you can change your mind. And it's even OK to have a feeling that uh you don't like your job now and you did like it before. This is fine. You can, you can always change uh change your mind. And the same thing applies to tech decision, especially in the beginning. You may have this feeling that right now you are choosing the only language like the only programming language that you will use till the end of your life. No, this is not true. You can change the language. You can just uh experiment a little bit. You don't have to uh pick one thing and stick to it for, for the rest of your life. You don't have to actually fight it. You don't have to defend the thing that you picked in every battle. So you can always say that you're changing your your mind like this uh technology today, like the technology world is changing so fast and things easily get outdated, they get uh useless or even you can simply get bored with something. So you can always change your mind and just remember that this is an option because sometimes it may feel like everything is forever. Uh But it, it is not.

So uh as like last sentence, I would like to say that it's OK to say that you to change your mind even for a senior person. So even if you are a senior developer, you can always also say that you change your mind or that you are wrong. And this is basically it, this is everything what I've prepared for you today. I want to leave you with a question. So what would you add to the list? What is the ability from your previous work experience that you may use in it industry. And if you actually are in the same uh job, uh for example, you were working in the programming from the beginning. What is like uh what from people experience from family, friends? Maybe you have some outside experience like in the conferences, all that stuff. So what you can add to the list, what you can use in your everyday job? I'm really curious what you would add to the list. So please share it with me. Please share on the chat. Maybe you can always reach me out via my email or on Twitter. Uh I'm really curious, what will you uh add to, to my list? And I hope that you learned something new today and that you will have a great day.