Anyone can code, but there are no short cuts to true success.
- 28 February, 2017
- Article - Software Best Practices
Today, just about anything can be learnt via the internet, enabling people all over the world the chance to develop skills in virtually any field. Considering the fast growth of the technology industry, this presents exciting opportunities; placing opportunity in the hands of anyone dedicated to learning a new skill. As such, the rock stars of today are no longer traditional jocks, they are geeks with laptops.
This shift is even more relevant in the software industry. Anyone technically inclined can learn how to write software if they spend enough time on Google. And with a keen eye for innovation, anyone can come up with a great concept that has the potential to disrupt life the way Facebook did.
No doubt, there have been some truly amazing software solutions built in this informal fashion, but the difference between a great concept and a beautifully built piece of software that complies with best practices and quality standards, is a lot of hard work.
The media and Silicon Valley glamorize stories of the ‘lone genius coder’, those superstars depicted in films such as The Social Network and Mr. Robot. But the truth is, there is no shortcut to building great software.
Like any industry, there are isolated geniuses who build out products that fundamentally disrupt our lives. But, like football millionaires and music artists, these stories are exceptional and are only a fraction of the people who contribute to their industries. Silicon Valley for example, employs only 8% of coders in the US.
So, what does the bigger picture look like? For starters, while many coders and engineers across the world are self-taught, most have had formalized training behind them.
Secondly, most software engineers in the industry build out products that answer a business need. Many work for businesses, big or small, or consultancies where a large part of the job is helping to identify the problem and best fit solution.
Do they receive the same glory and recognition on the global stage? No. But often the solutions that engineers develop to resolve various challenges provide a greater sense of purpose.
As traditional industries shift towards technology solutions, engineers can find themselves working to build time-effective, secure banking solutions that help make your day-to-day life easier; or healthcare solutions that help people identify early onset of diseases, or agriculture solutions that help farmers monitor the health of their crop or livestock.
Often these are small shifts, but they can have a dramatic impact on the livelihoods of the communities around us.
However, within these environments there can be inconsistencies between the capabilities of those software engineers with formalized or non-formalized training. Not every company requires a graduate degree for example. Equally, even within academia, there can be discrepancies regarding the different levels of practical experience obtained, making a significant difference to the engineers’ ability to build the right solution for the problem at hand.
When building software, engineers need to consider issues such as maintainability, quality, stability, performance, consistent standards, security, and scalability. To build a perfect solution requires the engineer to do all these things in parallel, which is true craftsmanship and takes years of experience. It requires significant thought to be applied to the architecture and design, the ability to apply computer science principles (such as OO), and a strong problem solving ability. As such, mastering the skills required to deliver great software is a highly adapted talent.
Entelect understands the complexities of todays’ business challenges in software engineering, and this has informed our hiring strategy. We believe that a degree in Information Technology, Engineering or Mathematics equips a prospective candidate with the foundation required to become a great software engineer.
For our graduates, we build on their academic learning with an intensive 6 week graduate bootcamp to convert the academic learning into practical real-world experience. We then invest heavily in continued training to ensure all our staff are constantly at the forefront of software engineering trends and best practices.
Unfortunately, however, in South Africa the software engineering field is predominately unregulated. Compared to traditional engineering disciplines and law, there are a lack of governing bodies and professional organisations. This makes it harder for potential clients or employers to spot the average coders from outstanding talent.
While this is improving globally, we are in the midst of a societal shift towards citizen-driven access to knowledge that is up-ending our traditional regulatory systems. Legislation needs to understand how to work with these shifts and apply quality controls accordingly, but this will take time.
That anyone can teach themselves to code via google is fantastic. It gives this growing industry a low barrier to entry, making it inclusive and meaning that anyone can discover their potential. However, transitioning from a self-taught coder to a software engineer capable of true craftsmanship takes years of experience and formalized training.
If you’re determined to become a superstar coder, then you should commit to continued learning including some formalized training and understand that there are no short cuts, just a lot of hard work and true dedication to your craft.