When people think of learning, they often associate it with the idea of going to college, or university. However learning can take many forms, and for a developer, going to college, or university is just one of the ways to learn.
We go through different modes of learning at different stages in our lives: from primary, and for some, up to tertiary education. Some of the education we undergo is less formalised than the institutionalised learning.
Without being too particular about it, even travelling can be a form of education. Travelling exposes you to new ideas, or even new cultures, which enriches your knowledge, and in my book, this qualifies as education.
As a software developer, you are learning all the time. The subject matter changes all the time, such that it is a must to keep on learning. And I do not even mean casual learning: I mean deep, immersive, and engaged learning.
Despite being a highly technical discipline, what makes software development unique, when it comes to learning, is its high rate of change. Software changes quite often, and any developer worth their salt, has to keep up by constantly learning, or get left behind.
As long as someone is developing software, they have to keep learning. Some software packages go through development cycles that are as short as 6 months. This means that a different major version comes out every 6 months. A developer therefore has to keep abreast of these changes in order to stay relevant.
Learning for a software developer can take many modes, and typically a developer will experience several of each mode of learning at least once in their lifetime. The duration of each mode of learning varies from developer to developer.
Some developers will enrol in a formal institution to study a software development related field, such as Computer Science or Information Systems. This is as formal as it gets, when it comes to the education of a software developer.
In the formal setting, the programs are highly structured, and take the developer through 3 to 4 years of training. The courses are often balanced to include other fields of study, such as Accounting and Economics. For me, the addition of non technology courses to my curriculum was refreshing when I went through my undergraduate degree, since it exposed me to more than just the technology.
Is a formal degree necessary to become a developer? The short answer is no. I was already a developer when I attended my undergraduate degree programme, but I believe the experience made me into a more rounded individual.
The requirement for a college or university degree varies when it comes to hiring though. Before going for my university studies, I managed to land an interview with Google, who did not care that I did not have a degree at the time.
After my university studies, I was looking for possible employment and had meet-ups with several companies in Cape Town, South Africa. And it was interesting to me that, some of them valued degrees whilst others didn’t really care.
Whilst it’s not a requirement to get a college or university degree as a developer, I would say developers should get one, if they have the opportunity and the time. It is certainly an added advantage in certain scenarios.
If formal training and education are not necessary to be a developer, how else then, do you go about becoming one? The answer is you teach yourself with the aid of online resources.
When I started on my path as a developer, all I had was a book and an old computer, of sorts, that we used to connect to the TV. Yes, it was a really old machine, and I had at the time never heard of the Internet.
Then I discovered the Internet, and a whole new world opened up for me. I started with Google searches for tutorials, moved on to e-books and more recently graduated to videos on Udemy.
Software development is within reach for anyone with the self-discipline to stick with learning through tutorials, or online courses, and even someone who has a very small budget.
The body of knowledge for software development is huge! Of course as a developer, you get to choose areas of the whole, in which you are going to specialise. For example, you might choose to be a web developer, or a mobile app developer, or even both, but you cannot take on too many areas of expertise.
During the course of a software project, there is a lot of learning that takes place. sometimes you might be working with a package or framework, that you have never encountered before. The package or framework will be completely new to you, and you get thrown in the deep-end.
The best way to tackle a new package or framework, is to go through the documentation. Typically, software has documents that document how the software functions, and how to use it. This documentation can be extensive, and as a developer new to the software, you have to go through most of it and learn.
During the development process, it is typical to encounter issues and bugs. Some of these can be figured out and resolved by referring to the documentation. The documentation will sometimes quickly show you where you went wrong.
At times referring to the documentation does not help. In such cases you engage the assistance of other developers. Usually, a fresh set of eyes on a problem can highlight issues that you might have overlooked.
A fresh pair of eyes can be other members of your development team, or it can mean going to online communities such as Stack Overflow, where developers help other developers who are in a bind.
These online communities are a great source of help, and it is easy to find previously asked questions, with the help of Google. I cannot imagine how software development was like without these online tools and resources because, if you encounter an issue, it is likely you will find someone who has encountered the same problem, and had it resolved.
These are all effective ways for a developer to learn on the job.
As you can see, there are many routes a prospective or even a seasoned developer, can take to learn the craft, apart from going the traditional route of formalised education.
Whether you are already a developer or not, there are numerous resources available to someone who wants to become a better software developer. The most important thing to bear in mind is that, a developer needs to adopt the mindset of continuous learning in order to progress and stay relevant.
Want to hear some more from the Webmobyle Blog? Please