Share On Facebook
Share On Twitter
Share On Google Plus
Share On Linkdin
Contact us
Categories Menu

Digital path to a career in Software Engineering

Posted by on Oct 9, 2015 in All Articles, Custom Post | 0 comments

Author: Amit Swami

Published on: Oct 9, 2015

Digital path to a career in Software Engineering

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
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.

Some of the other popular frameworks are Apache Spark , SOLR , HBase etc.

Data Science
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

Usability Engineering
Usability engineering allows you to design and implement user interface or user experience for a software that makes is easy for a user to get started with the software and work with minimum disruptions. The tools to learn for this are Photoshop, GIMP, HTML, CSS, javascript, bootstrap, sass, coffeescript etc.

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.

Javascript Frameworks
In the past Javascript was primarily a scripting language that was used to make the user experience interactive. However in the recent years Javascript has fast emerged as a mature scripting language that can be used for developing software for both  frontend and backend. Technology to follow in this area include Node JS , Angular , Ember , Meteor etc.

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:

Start early
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.

Related Articles

  • Improving skills through Online CoursesImproving skills through Online Courses Move beyond the traditional classrooms to the world of online courses to gain specialized skills.  In this competitive world we are under constant pressure to improve our skills or to learn new skills to perform better in the current role and also to prepare for the next role. Most of the institutes that we attend for graduate and postgraduate courses give us the basic education […]
  • Compete Online to learn and get hiredCompete Online to learn and get hired Online Challenges, a new hiring paradigm in the software industry. It is a well known fact that software industry is one of the biggest recruiters of fresh talent coming out of engineering colleges. However it is equally well known that 75% or more aspiring engineers do not get hired by the software companies because they lack the required skills. The competition gets stiffer when […]
  • Jobs galore at engineering colleges, pay offers up 15%; highest at Rs 39L – Business StandardJobs galore at engineering colleges, pay offers up 15%; highest at Rs 39L – Business Standard Business StandardJobs galore at engineering colleges, pay offers up 15%; highest at Rs 39LBusiness StandardThe biggest of the industry players generally recruit candidates in the early sessions of the placement season to garner the best talents. While the IT firms will focus aggressively on hiring product developers, software engineers as well as product ... Full Article: - Jobs […]
  • The Demand for SEO is exploding. How can you become an SEO Expert?The Demand for SEO is exploding. How can you become an SEO Expert? With the proliferation of Internet connectivity and mobile devices people are increasingly using the web to not only search for products, services and information but also to conduct commercial and social transactions. This has led to the development of whole new field of digital marketing that aims to leverage the web, social networks and other digital media to promote products and […]
  • How smart freshers use LinkedIn to land their dream jobsHow smart freshers use LinkedIn to land their dream jobs Is your presence in the digital world limited to social networks? Many of us are permanent residents on social networks such as Facebook, twitter and Instagram. However, when it comes to LinkedIn, the professional network, most freshers do not share the same enthusiasm. If you aren’t familiar with LinkedIn until now, it’s time you acquaint yourself with this one-of-a-kind network […]

Post a Reply

Your email address will not be published. Required fields are marked *