Wednesday, October 22, 2014

Continued learning for Software Developers

There are a lot of jobs out there which require a fairly static knowledge base. Software development on the other hand requires lifelong learning for an individual pursuing career in that field. Technology is always evolving, so software developers need to evolve too if they want to be the best in their field. Continued learning is an important aspect of one’s career and in a way it’s almost part of the job. The amount of changes and updates that happen in the Software industry can rarely be topped by any other industry sector. There’s no central regulating authority responsible for coming up with all the changes.

Looking back at my own career, I started with basic C++ during high school. As soon as I started college I switch to Matlab & Java because those were the languages offered for basic computer science courses at Stevens. Since freshmen year, I have been exposed to programming languages like C, C++, Scheme, Erlang and C# by just taking a different a variety of computer science courses at undergraduate & graduate level. Even during internships, I got introduced to a variety of new tools and proprietary software. I have been constantly involved in web projects which involve a lot of new frameworks like NodeJS, AngularJS, jQuery, EmberJS etc. By learning new technologies, languages & frameworks, I have been able to maintain my competitive edge and diversify my resume. While going through interviews, one of my biggest advantage over other candidates has been the breadth of technologies I have experience dealing with it.

A common problem that I have found during my internships is the reluctance by many software developers to learn new technologies. Granted my experience has been mostly in Financial Services sector, most software developers who have been working for more than five years seem to have lost their edge. They no longer keep themselves up to date with new languages like Apple’s Swift or frameworks like AngularJS unless it’s required as part of their job. Majority of times software developers point to the fact that they have don’t have time outside of their job or family priorities for not spending enough time on research. As the time passes software developers lose the drive to learn themselves. Most software developers prefer if the company they work for will allow them to take on side projects or tuition reimbursement for taking classes at local colleges.


One way for employers to encourage their employees is to support company driven education solutions which are easy to implement and affordable. Partial compensation is also a good motivation if the company cannot afford to fully compensate their employees. Companies can also formulate a policy where employees can take some time during the day to read latest Technology News or go through tutorials on new technology that can benefit the company. With the advancement of online classes, companies can also suggest their employees to take online courses on sites like Udacity, Code School, Code Academy etc. Another completely free solution is to encourage pair programming. Not only is this proven to minimize bugs and improve code quality, but seeing first-hand how another developer solves a problem is one of the best ways to learn. Additional benefits of encouraging developers to pursue further education is the impact they have on the products and the company’s longevity as a whole.

1 comment:

  1. Unfortunately I find myself afflicted with the same issue as a computer science major. I think the main issue for me is that there is just an overload. There are too many hip new languages/frameworks that everyone tells me I should know already and it's unfortunately gotten to the point where I don't even bother anymore. If I need to know a language for a job then I will learn it while on the job like I did for my last internship. I cannot possibly spend all my free time programming and trying new languages and still have time for my own hobbies.

    ReplyDelete