DCR: Traits of Being A Great Developer (Recap)
Published 10/4/2017
In today's episode, we conclude the DCR Traits of a Great Developer series with a review of all of the traits we've discussed.
Today's episode is sponsored by Fuse! Build native iOS and Android apps with less code and better collaboration. Head over to spec.fm/fuse to learn more today!
New Promo Code: “dt” will give you listeners 70% off for 12 months. 70%!!! The code must be redeemed by December 31st 2017.
Transcript (Generated by OpenAI Whisper)
What differentiates you as a developer? So many of the problems that we solve with code are not necessarily complicated, and so much of what we do isn't about managing the code itself, but it's about managing ourselves. It's about managing the creator of the code, and setting us up, setting your own teams up, setting up yourself, your patterns for success, setting you up to deal with people who need that code, setting you up to understand the people who need that code, the users, the clients, the people you work with. These are all so much more of what you will spend your energy on throughout your career as a developer. This is not to downplay the importance of code, this is not to downplay the importance of technical understanding, because truly to be a great developer, you must not forget those pieces. But for the majority of developers who are listening to this show, your career will demand more from you in personal interactions and more from you in understanding the psychology of helping other people and the psychology of productivity and the psychology of learning. Your career is going to demand more from you in those areas than it ever will demand from you technically. Of course, this is heavily opinionated. This is my own perspective on this subject. There are certainly jobs where this is not true, and there are certainly parts and days of your career where this isn't true, where truly the most value that you're providing is in the technical sphere. But for the most part, these interpersonal connections are going to be the difference maker for you. You're listening to Developer Tea. My name is Jonathan Cutrell, and my goal on this show is to help you become a better developer. Most of that is about talking about these traits we've been talking about. This episode is a wrap-up episode of these developer career roadmap, traits of a great developer. We're going to talk about each of these traits very briefly and hopefully kind of inspire you to go back if you haven't listened to them yet, inspire you to go back and listen, but also really just to start in bringing this stuff in. We kind of kicked off with an informal episode that really could have been included, the introspection episodes. We talked about the importance of interrogating yourself and understanding the things that you value. I recommend that you listen to those before you go through these developer career roadmap, traits of a great developer episodes, which has been basically the last eight episodes or so. In fact, it is eight traits, and one of the episodes we did the deeper dive. We'll talk about that in just a moment. But it's important to understand here that these traits are things that you can develop and you can work on. I don't want you to get the idea that by using the word traits, we're saying that this is something that you're born with or you know, a part of your personalities. This isn't trying to identify the types of people that will become better developers. That's not the point here. Instead, what I'm hoping to do is inspire you to kind of develop these traits in yourself. Everybody has the ability to develop these traits. Let's talk about the first couple of traits and then we'll talk about our sponsor for today and then we'll close it out. The first trait that we discussed, and once again, I recommend you listen to the introspection episodes because it will kind of prepare you for the rest of this. But the first trait we talked about is humility. In that episode, I mentioned the idea that humility is the foundation for good software development practice. That's because humility is the foundation of lifelong learning. If you don't remain humble throughout your career, then it's very likely that you will reach a place where you feel like you've kind of arrived and you have no more changing that is necessary. That you've changed to the point that you need to change to. That is the lack of humility that can cause, that can really be toxic for your career. Furthermore, humility allows you when used properly to collaborate better with other people. Because the truth is if you lack humility, then valuing others' opinions becomes more difficult because it's very possible and, I would say, perhaps totally impossible to not encounter someone who has a differing opinion from you. If you have an extreme lack of humility, you may actually never recognize that they are actually right. So humility is kind of the foundation for all developers. The next trait that we discussed is the grit of a scientist. This quite simply means that as you go throughout your career, it's going to be laden with failure. You're going to experience failure over and over and over. It's important that you realize that your success is typically correlated most directly with your ability to continue, to keep putting one foot in front of the other. That is kind of the definition of grit. But we're not just talking about grit for the sake of grit. We're talking about grit in the face of constant failure. Recognizing that that failure can either propel you or it can suppress you if you can recognize that reality. Then continuing with the grit of a scientist means that failure is always an option to you and that you will take that failure and learn from it and refine your ongoing experiment. Not every project is going to feel like an experiment, but truly, if you treat your practices and you treat your career with the scientific method and continuously iterate and continuously learn and look back at the past week or whatever iteration amount that you choose and you say, okay, what have I done that I could do better? Where did I fail? And how can I adjust the way that I'm working? That's conceptually the same way a scientist runs an experiment. So the grit of a scientist is the ability to recognize and validate failure and turn around and learn from it. So that's incredibly important as developer to work on that grit of a scientist. The next trait of great developers is the ability to have an expanding perspective. And we don't say an expansive perspective because that's a fixed position for that perspective to live at. And instead what we're talking about here is a constantly expanding perspective. This means getting out of your own head and recognizing the value, for example, that other people in your team are providing to what you're doing. This means being able to empathize with the people who are using whatever you're building. It also means being able to think well in advance of the thing that you're building. You can think towards the future. You can think about what this product or this particular piece of software might need in seven months or seven years from now. And there's plenty of other ways that expanding perspectives can have a positive effect on the way that you work. It can have a positive effect on your relationships. So that's an incredibly important trait as well for developers. The fourth trait before we take a quick break to talk about today's sponsor is becoming a communications expert. Now this is kind of bending the rules here. It's not really a trait. But becoming a communications expert. This is something that every developer can benefit from. And in fact, I want to be very clear here. We're not talking about doing a little bit of light studying on communications. Instead, I want you to take the time to rigorously study communications models and the way that people communicate with other people, that people communicate with machines and the way that machines may communicate with people. Before any kind of studying, before any kind of actually intentionally engaging this content, it's very likely that you believe that communications is a relatively simple subject. And the reality is a lot of the code issues that you're going to have through your career are related to communications. They're related to our lack of ability to correctly communicate with another person through code. So I encourage you to go listen to that episode. We did a deeper dive. We talked about a few of those communications models. And I really encourage you to listen to that and to actually do some of that research on your own. But understanding communications, understanding how people communicate with each other, understanding how something can be misconstrued, how can I actually miscommunicate, even though I'm saying something very clear, it seems to be clear to me. And in fact, it's not clear to you. So I encourage you to go and listen to that episode. Once again, communications expert is the next trait, the fourth trait that we discuss in this developer career roadmap series. I'm going to take a quick break here and talk about today's sponsor Fuse. If you have ever used Unity for building games, or if you've never seen it, I'm going Google Unity. It's a really cool program. But Fuse is actually doing for mobile application development, what Unity did for gaming development. More specifically, it's bringing you closer to the product. You can see what's happening when you update things. And in order to get something done, in order to be productive with Fuse, you don't have to write as much code as you do with these other platforms. Now, if you've been developing mobile applications for very long, you know these other platforms haven't really changed very much in maybe 10 years or so. And Fuse is constantly updating their product. Fuse works on both Mac OS and on Windows. And the Fuse installer comes with everything you need to get started. So there's no lengthy set of process. It's all kind of in one package. And you can build for iOS and Android inside of that same package. And here's the kicker. All of this stuff is free. A Fuse has a paid plan called Fuse Professional that you can try out as a Developer Tealist, and you can get 70% off of that paid plan for 12 months. 12 months. All you got to do is use the code DT when you check out and you get 70% off for 12 months. You got to use that code by December 31st, 2017. And head over to FuseTools.com slash plans to see what they have to offer. But the professional plan for example, it includes their the Fuse built UI kit. It has camera components, tons of stuff extra on top of this stuff that's already useful. Now Fuse is actually noted that most people don't even need the paid plan. So you can get started with that free plan today by going to FuseTools.com slash plans. Thank you again so much to Fuse for sponsoring today's episode. So we're doing a recap episode today on the developer career roadmap traits of a great developer. We've already gone through humility, grid of a scientist, expanding perspectives and communications expertise. The next trait on the list is having a growth mindset, having a growth mindset. We mentioned Dr. Carol Dweck in this episode because this is certainly not an original idea that came from my mind. This is research that Dr. Dweck has done. And essentially what we found is that people are much more likely to succeed if they focus on their efforts rather than on their abilities. This is exactly why I started out this episode by talking about these traits not as something that you're born with, not as something that's a part of your personality, not as something that's built in, but rather as something that you can work on and develop that you can increase in your own self. And it's so important that you have this mindset because this is going to be what basically determines your aptitude as a developer. One of the expressions of having a growth mindset is that you are committed to learning. You're committed to being a lifelong learner. And this plays right back into a previously discussed trait that is humility. You must have humility in order to be a lifelong learner. You must have an expanding perspective. As your perspective is expanding, you're going to continue learning. If you are aspiring to become a communications expert, then you must have a growth mindset. And the opposite of a growth mindset, by the way, is a fixed mindset. And a fixed mindset and a brief summary is one that sees everything as kind of predetermined, as concrete, as you know, you can't really influence your own aptitude. You're not going to be able to influence your own intelligence. And this is something that bites a lot of developers because developers see that they're unable to solve a problem. Maybe they fail a couple of tests in their computer science program, or maybe they're going through internships and they're not getting hired. And they go through two or three and they feel like they're not smart enough to be a developer. And this is a very common problem that we see especially with people who come out of computer science degree programs and they're trying to get a job. And if you are in that scenario, I encourage you to begin developing a go-and-by, you know, Dr. Carroll's wax book. It's called Mindset. Go-and-by copy that. And I encourage you to start developing this growth mindset in yourself. Start looking at your efforts rather than, you know, labeling yourself. Don't ever put a label on your own abilities. Always see them as fluid and consistently growing. And that's such an important factor of becoming a great developer. The next trait of a great developer is the owner mentality responsibility, owner mentality responsibility. This is very simple. If you are owning something, if you are kind of responsible entirely for something as your boss or as your co-worker or as even just as your friend, I am much more inclined to trust you. I'm much more inclined to believe that when you say something about that project, you've thought about it. You've thought it through. If I'm your boss, for example, I'm more inclined to give you autonomy because I know you care about the outcome. It's so important that you develop care for the work that you do. And that is what it means to have an owner level, an owner mentality responsibility. The next trait of a great developer is having an open-minded curiosity, open-minded curiosity. And what exactly is curiosity? Well, it's the hunger for new input into your brain. The constant drive to add new information into your brain. Curiosity is quite simply forcing yourself into new situations that you haven't been in before, forcing your mind to encounter things that you haven't encountered before. And not as a result of a rigid structured kind of thing, although having a scheduled way of doing this may help you become and develop more curiosity in yourself. But rather developing the appetite for those things. Right? Developing an appetite for new experiences, developing an appetite for new information. This is such an important part of becoming a good developer because everything around you in this industry is changing. This is something that we've preached over and over. I won't beat a dead horse. You've heard this. I'm sure not only on this show, but everything in this industry changes so quickly. And while you don't necessarily have to keep up with every single thing, you're not going to learn every single language. You're not going to learn every single framework that comes out. That would be impossible. They're coming out at a rapid, rapid rate. It is important that you stay aware, that you stay kind of in that stream of consciousness and gaining a little bit of that inspiration through curiosity that can help you become a better developer. And while you may be able to go throughout your entire career, writing only one language, right? Or you may be able to go throughout your entire career with very few new experiences, very few new pieces of information. You may be able to succeed that way, but great developers share this trait in common. Great developers are understanding and appreciating the new things that are coming out. They are looking at what is happening in this industry. What is happening around me? Let's move on to this last trait, this last trait. We talked about in the last episode of Developer Tea, the trait of bravery. I said in that episode that if learning and focus are two pillars of this show, then bravery is the third pillar. Bravery is the ability to do something that you've never done before, without knowing whether you'll succeed or not, and be ready for that failure if it occurs. It's very simple. And what bravery allows you to do is even in the face of a lack of experience, it allows you to develop experience and ultimately that experience is going to drive your confidence. You can't develop confidence overnight, and you can't develop experience overnight. You can't wake up tomorrow and add five years to your experience. What you can do tomorrow is say yes to something. You can start preparing yourself so that if a failure occurs, you can handle it. You can start saving up in your current job and developing an emergency fund, and then start doing night jobs as a developer, a new developer, developing your experience at night. You can start doing things that require bravery because now you're prepared. You're ready. You know that failure is an option, and this goes back to having the grid of a scientist. You know that failure is an option. You also know that you can fail because you're humble. You've developed a sense of humility. You know that you are susceptible to failure. These are all so important to becoming a great developer. You don't focus on that humility only. You don't focus only on your bravery. You don't focus only on becoming a communications expert. All of these things are brought together, and they balance each other out. They feed each other, and this is what it takes to be a great developer. You can't only focus on code. You can't only focus on one of these soft skills. Allow them to develop together. Combine these traits and see what that describes. What does humble bravery look like? And that's exactly the exercise that I think you should perform is take some of these traits, you know, understand how well you are doing with each of these and combine them and see what comes out on the other side. How do each of these traits interact with each other? And I guarantee you that if you work on developing these traits in yourself, at the very worst, you're going to have a happier healthier life. These are going to help you in your career, but even if I'm totally wrong, becoming a braver person or developing humility and developing curiosity, these are not going to make you a worse person. Thank you so much for listening to today's episode of Developer Tea. As it turns out, being a good developer is largely overlapped with being a good person, being a productive and positive and excited and driven person. These are things that are not unique to being a good developer. Thank you so much for listening to this show. I really appreciate the stories that I hear from developers who are listening to this that tell me that, hey, this is actually doing something good for you and that really energizes me. I love hearing from you. Please send me your emails and your tweets. You can email me at Developer Tea at gmail.com. You find me on Twitter at jkattrel, as well as the podcast-specific Twitter at developert. Thank you so much for listening. Thank you again to today's sponsor Fuse. Remember, you can get started with Fuse for free if you head over to fusetools.com slash plans. Of course, if you want to upgrade to their paid plan, you can hit 70% off as a Developer Tealistener for the next 12 months, by the way. It's not like one month of 70% off. It's the next 12 months, 70% off by using the code dt at checkout. That has to be redeemed by December 31st of 2017. Thank you again to Fuse for sponsoring today's episode. Thank you so much for listening. If you don't want to miss out on future episodes, I encourage you. The best way to keep up is to subscribe in whatever podcasting app you're using. There's a lot of great ones out there. All of them had that subscribe function because it's very easy to get kind of left behind, especially with a show link Developer Teawhere we're putting out two or three or four episodes in a given week. Thank you so much for listening and until next time, enjoy your tea.