A Guide to increasing employability in the software industry, while and after the college life.
One of the major concerns that a student has while in college is whether he is ready for the industry? Whether he has the required knowledge and skills to secure employment in a good organisation with a good salary.
On the other hand a recruiter is looking for fresh talent that has adequate knowledge and skills required by the industry, and can become productive after minimal training. Other than the technical skills a recruiter also looks for soft skills like maturity to work in a team, effective communication, learnability, initiative and time management.
It is widely accepted that there exists a huge gap in the knowledge and skills imparted by formal college education system and requirements of the software industry.
This article focuses not only on how students can proactively bridge this gap using online resources while they are in college, but also leverage various online platforms to exhibit their skills and distinguish themselves in a crowded space.
This article limits itself to the area of technical skills, soft skills will be taken up in a different article.
1. Augment college education with MOOC (Massive Open Online Course)
Online Open Courses have evolved both qualitatively and quantitatively in the last decade and have democratized education across colleges, universities and nations. You are no longer limited to the boundaries of your college, and can now attend courses offered by renowned professors and industry experts from Stanford, MIT, Harvard, CMU and many more. Your co-students in the class are from around the world.
The MOOC platforms that have emerged leaders over the last few years include Coursera , edX and Udacity to name the top few. You can use the courses on these platforms not only to understand the concepts taught in the college but also to learn things that are emerging in the industry but are still not part of the college curriculum.
Given that courses are available from top professors and experts, the quality of these courses with respect to content and delivery is simply excellent. The lectures cover sufficient depth and are still easy to understand. Here is a list of some of the good courses that may be of interest to you:
|MOOC Platform||Course Title||Faculty|
|Coursera||Algorithms, Part 1||Princeton University|
|Coursera||Algorithms: Design and Analysis||Stanford University|
|Coursera||Data Mining||University of Illinois|
|Coursera||Cloud Computing||University Of Illinois|
|edX||Introduction to Java Programming||Hong Kong University|
These platforms not only offer you a place to learn new things, but you can also earn Certificates on successful completion of a course. These certificates can be used to make your profile stronger for final year placements, and career growth.
2. Improve programming and design skills through online competitions and challenges
Online competitions and challenges are fast emerging as popular platforms for learning programming and design skills, and to compete against peers in the industry and exhibit one’s skills to a prospective recruiter. Some of the most popular platforms that conduct online challenges for the software industry are:
These sites expose you to interesting problems, widen your perspective around problems, understand industry expectations, and benchmark against peers. You can create your profile on these sites to showcase the challenges that you have solved. An added bonus is that many of the companies have started hiring people from these sites, and they run sponsored challenges directed towards hiring.
3. Follow experts on social media
Following experts on social media (like twitter, blogs etc. ) and visiting popular blogs lets you know what is happening in the industry. You can get exposure to the latest trends in the industry and might find something interesting to work on.
For example the following two sites contain the latest information on technology trends in the industry, new startups, funding received by startups etc.
4. Follow and contribute to Open Source
Open-source software has emerged as a very powerful model for a community based collaborative development of software which gives the right to the people to view the source code, make contributions to it, and download it for free. One can consider it as the software of the people, by the people and for the people. Some of the most popular software of today such as Linux, Apache, WordPress, MySQL and Mozilla have emerged from the open source movement.
Github has emerged as the most popular public source code repository and hosts most of the popular open source softwares like jquery, angularJS, nodejs, ruby, scala etc. You can follow the Github repositories which you find interesting, study the source codes of the popular tools and learn from the code which is written by the experts. You can also contribute to the source by creating changes and submitting to authors for the review and become a committer. Sites like Github give an overview of how software is written, what are the best practises, what are the right tools to use and helps you understand what is required to perform in the software industry.
A submission to a good open source project adds greatly to your resume in terms of employability.
If you don’t have interest in any of the existing open source project, you can start your own project and collaborate with your fellow students to create something new. Working together as a team is essential part of working in industry.
5. Share your learning
If you have learned something interesting, created something new, or liked some article then you can share it with your network by tweeting it or by sharing on facebook or on LinkedIn. Sharing the learning will allow you to communicate with the fellow learners and will improve your writing skills.
If you have expertise in certain technology or product then you should participate in the community or forum related to that technology or product, solving problems being faced by other developers or users. Stack Overflow is one good example of such forum where people post their problems, and experts provide solutions to these problems. Stack Overflow is not restricted to a specific technology, but there are forums focused on particular technology or products. For example there are forums Salesforce, Android, and Ruby that are related to a specific technology.
6. Create your LinkedIn Profile
LinkedIn has emerged as a very powerful digital social network for professionals. It enables you to build your professional profile and connect with professionals around the globe. You can exhibit your academic qualifications, work experience and skills as part of your profile. People can write recommendations for you, and also endorse you for skills. You can mention your MOOC certificates, Github projects etc., which will make your profile rich. You can follow people or groups to keep you updated on what is happening in your professional circle and field.
7. Explore areas in Software Engineering
Software Engineering has a very vast scope, and you can not develop expertise in all areas. You need to identify certain specific areas that are of interest to you, and then build your expertise in those areas.
Some of the areas that are currently drawing lot of attention are briefly outlined below.
Big data is the art and science of dealing with huge amount of data for which the traditional approaches for capturing, analysing and processing are inadequate.
The challenges in big data are expressed in terms of “three Vs” (given by Gartner analyst Doug Laney); namely volume, velocity and variety. The volume of the data being generated by modern applications is extremely large. For example the daily edits done on a Wikipedia Site measures in TeraBytes. Similarly the speed with which the data is getting generated is tremendous. For instance Twitter generates huge amount of data in just a second; and this is even more when we consider the data being generated by Internet of Things (IoT).
Another challenge is that data is being generated from a variety of sources (applications, devices etc) in a variety of formats (csv, json, xml, binary etc.).
The modern approach that has emerged to address these challenges is to store and process the data on distributed connected machines, instead of doing it on a single very large machine. This improves both scalability and robustness of data storage and processing.
Apache Hadoop has emerged as one of the most popular framework that allows storage and processing of large volume of data spread across the cluster of low end machines. Hadoop infrastructure consists of a number of components such as:
- HDFS (Hadoop Distributed File System) for storing large amount of data
- YARN for managing resources in the cluster
- MapReduce for performing analysis on large amount of data.
Data Science is the academic discipline that explores ways and means of extracting knowledge or patterns from large volumes of data. Wouldn’t it be interesting if a computer could analyze data from social media about what people are saying about different political parties in different regions and predict how many seats each party is going to win in the parliament? Or for a computer to pick social, activity, health and other data for a person and predict what health risks he is facing. Data science borrows the techniques from a number of areas like mathematics, statistics, machine learning, probability models , data mining, data visualisation.
R and Python have emerged as fairly popular languages for data science applications. R contains a number of libraries for data analysis and visualization like dplyr, data frames and ggplot2; while Python has numpy, pandas, matplotlib and scikit. Weka is another popular data science toolkit.
A very good high level of understanding of data science can be found in this link
Given that users today access applications through variety of devices, the biggest challenge in designing contemporary user experience is to make the UI responsive, that is the UI should adapt itself to display optimally on various devices such as desktops, laptops, tablets and mobiles with different screen sizes.
Cloud based development platforms
Software is now being increasingly developed on the cloud for the cloud. Having knowledge of at least one of the cloud based development platforms helps you understand the philosophy of cloud computing. The popular cloud based development frameworks include Google App Engine, Amazon AWS, Salesforce, Azure, and Heroku .
8. Closing Remarks
The lessons that can be taken from this article are:
Software industry offers great career prospects, however you need to prepare yourself to become eligible for these opportunities. You need to start investing into building your skills and profile early rather than waiting till the last semesters.
Be ahead of the competition
Learning and showcasing the extra skills while at college will make your profile stand out from your peers. The added advantage of these extra skills is that it also shows your commitment to learn and willingness to explore and master various aspects of the technology.
Leverage online resources
Leverage online resources to learn and build your digital profile. It will also exhibit your ability to explore and learn new things independently through digital resources, which is primarily the norm once you join the industry.
Learn and practise
Just acquiring new knowledge is not sufficient until it is put to practise. Participate in online challenges, contribute to open source software, collaborate with colleagues to build something substantial as part of your graduate project.