Lifelong Learning Is A Must For Developers
When people think of learning, they often associate with the idea of going to school. 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 formalized than the institutionalized schools.
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 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 unique when it comes to learning is it's high rate of change. Software changes quite often and any developer worth their salt have to keep up by constantly learning.
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.
Learning for a software developer can take many modes and typically a developer will experience each mode at least once in their lifetime. The duration of each mode of learning varies from developer to developer.
College or University
Some developers will enroll in a formal institution to study a 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.
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 this 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 answer is no. I was already a developer when I attended my undergraduate degree program 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. 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 meetups with several companies in Cape Town, South Africa and 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 is not necessary to be a developer, how do you go about becoming one? The answer is you teach yourself.
When I started on my path as a developer, all I had was a book and an old computer 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, 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 tutorials or courses and having a very minimalist budget.
Learning on The Job
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 specialize. For example, you might choose to be a web developer or an app developer, or 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 only 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 resolve issues that you overlook.
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 tools because if you encounter an issue, it is likely you will find someone who has encountered the same problem and had it resolved.