Essential Software Development Skills

3 Essential Software Development Skills I Learned on My Own

While an undergraduate computer science degree may be a good starting place for learning how to be a successful developer, it’s the real-life application of these skills that will set you apart from a typical graduate. Although I don’t expect the university setting to be able to teach everything, there are still some areas that I found my education to be lacking. Here are three skills that I consider fundamental to software development that I ended up teaching myself outside of the classroom.

Debugging

If you’ve ever worked with C++, you know that trying to track down a segmentation fault without debugging tools is much like trying to find a needle in a haystack. As an undergraduate, I spent countless hours commenting and uncommenting regions of code and writing variables to the console when simply loading the binary into gdb and entering the correct series of commands would have pointed me to the exact line where my error was. With a little direction, students could save hours of time and learn valuable debugging skills by using modern visual debuggers.

Testing

Not surprisingly, when students don’t learn how to debug their code they rarely know how to test it. I didn’t start writing out test cases myself until I was a teacher’s assistant in grad school. It was out of necessity rather than convenience; a reliable way to grade homework assignments from students who used the phrases “it works” and “it compiled” interchangeably. If agile patterns like Test Driven Development are to gain a foothold, it is imperative that developers learn testing as a cornerstone of their curriculum.

Version Control

Tools like Git and Subversion are wonderful for working on teams, but I hadn’t even heard the word “Git” in university until explaining to an instructor how I’d lost a project to a hard drive failure. When I started an internship at RSI, one of my first fumbles was to commit merge conflicts into my mark-up, but thankfully the commit was easily reversed. Considering how I pieced together group projects with copy and paste, I’m disappointed these tools weren’t taught as an alternative.

Overall, I’m very happy with the knowledge that I obtained as part of my undergraduate education, but I encourage those in school now to take the opportunity to be open to beyond what they hear in lectures and labs and continue to learn outside the classroom.

Related Blogs
See All Blogs
Blog
Feb 12, 2024

From Legacy to Leading Edge: Advancing Healthcare Through Legacy App Modernization

The modernization of legacy applications in the healthcare industry represents a particularly acute concern, more so than in any other sector. This article explores why legacy application modernization is a significantly bigger issue in healthcare compared to other industries and outlines strategic steps healthcare organizations can take to address this pressing challenge.

Read More
Blog
Feb 12, 2024

How Can Banks Improve Products for Small Businesses?

Banks are recognizing the growing needs of small businesses are intimately tied to both technological advancements and shifts in consumer behavior. In doing so, they're beginning to tailor their business banking solutions to meet these emerging requirements. In this article, Delivery Executive Kevin Ashworth shares six tools that banks can use to improve their products for small businesses.

Read More
Blog
Jan 29, 2024

Harnessing Technology to Steer Trucking Companies Through Global Supply Chain Uncertainty

A brand new wave of global supply chain challenges is set to significantly impact trucking companies this year. Now, more than ever, companies need to leverage technology to help them navigate these uncertainties. In this article, learn five ways trucking companies can harness technology to manage the challenges they'll face in 2024.

Read More
Blog
Jan 23, 2024

Unlocking the Potential of AI in Enterprise UX

Generative AI use has become widespread for many teams, but have you considered using AI for UI/UX design? For these types of projects, using AI will allow for deeper learning, higher insight and more efficient creative and production processes. In this article, Principal Consultant Ken Otte shares aspects to consider when implementing AI tools in an enterprise UX team.

Read More
See All Blogs
noun-arrow-2025160 copy 2
noun-arrow-2025160 copy 2
See All Blogs