The Non-Technical Qualities of a Great Developer By: Corey Leung At Lighthouse Labs, we see students of varying levels of coding knowledge come through our doors on the path to becoming a Software Developer. Some have Computer Science degrees and coding experience, while others come from non-technical backgrounds and have not coded at all. What we look for in our prospective students isn’t technical knowledge but an aptitude for development. As a Bootcamp built by developers, we know that being a Software Developer is so much more than just an ability to code. There are a variety of interpersonal and non-technical skills that are just as crucial to success. Below are several key “soft skills” that can prove to be beneficial for Developers. Leadership and Project Management We see software development as a craft industry. This means that much of the learning is done on the job and is provided by those senior to you. Therefore, coaching and mentorship are not only intrinsic to the community, but key to becoming more senior. The capacity to teach and be a leader is something that we greatly value in our prospective students because we know they will become assets in our bootcamps. We also know this will allow graduates to contribute in a variety of ways when they enter the development industry. A great developer not only does their own work at a superior level but has the ability to help and teach others as well. In many cases, the difference between an intermediate and a senior developer is this form of leadership. Most of our part-time courses are taught by our bootcamp alumni, something that we love to see! We know that many of our alumni are great mentors by the time they leave our courses and they genuinely enjoy the process of teaching. For the alumni, teaching the part-time courses becomes a part of their post-Bootcamp journey. It makes them masters of their craft faster and strengthens their abilities as developers. Beyond the ability to coach, strong project management skills go a long way for developers as well. The ability to estimate the time it takes to complete a project, coordinate a multitude of moving pieces, and see the bigger picture are all things that become more valuable as your career progresses. We put a lot of effort into setting a foundation that will allow our students to learn project management skills they can utilize once they join the workforce. Abstract Thinking and Problem Solving If there is one thing you want to be good at as a developer, it is the ability to debug. A good debugger can learn new skills faster and figure out how to solve problems easier. We put a lot of effort into making sure that all of our students learn best practices to use when they are coding; we also know that mistakes are inevitably going to be made. That is why we spend a lot of time teaching structured debugging skills to make sure our students have a process to figure things out when they encounter issues. On the other side of problem solving is quality assurance. Being a great developer means that you need to be committed to project quality, which also means you should have the foresight to discover all the ways something could go wrong before going live. This goes beyond just technical issues. It could be a project management issue or an user experience issue. A great developer should be able to see the end goals of a project and consider all the technical and non-technical issues that can occur from the parts they are directly working on. Finding issues is not a job for one group or person, but the responsibility of the whole team. Relatability and Inclusivity As a developer, it’s important to remember that not everyone you work with will be as technical as you. A little bit of empathy can go a long way and it’s important to adjust your language to fit your audience. If you have the patience to fully explain complicated concepts, the whole team will be better for it. That type of relatability will truly make you a valuable member of your team. Furthermore, as someone that builds software that will eventually be used by others, having empathy for the user is an important step to take. Traditionally, developers work in isolation and they can fall into the trap of making products that are more tailored to themselves. A great developer can figure out who they are making their product for and customize it to fit the needs of the user. A great developer should also be inclusive of differing opinions and backgrounds when working with others. Diversity is a fact but inclusion is a choice. A great developer chooses to be mindful and open to others because there's a lot to be gained from the sharing of ideas. With more than 1,500 Lighthouse Labs graduates, we know developers come from a variety of backgrounds with differing problem solving styles. In coding, as in life, there are usually multiple ways of solving a problem and only by being open to a process that differs from your own can you learn something new. It is for this reason we emphasize bringing together students, mentors, and staff from a diverse set of backgrounds and cultures. The sharing of ideas that come from this diversity is one of our greatest strengths as an educational institution.