When I was attending an undergraduate program during the year 2009–2013, I had no knowledge about what to do in the engineering life, how to make a progress for a successful career in the IT field. Only things that I did in the college were attending courses, scoring marks greater than 60% to be eligible for placements, enjoying and surviving the degree programs. Also, Most of the Seniors had suggested maintaining a minimum 60% score so that one can be eligible for all companies for on-campus placements drive. We didn’t have much idea about what are the differences between service based and product based companies. This is the story of almost all engineering students in India who study at low-tier, private colleges and end up getting jobless or they need to compromise at minimum pay scale.
This blog post is to give those people some idea and proven path to becoming successful in the coursework and help them to land good career opportunities as they progress in their degree curriculum. This is written with the intent to make an impressive profile for product based companies.
Let’s first understand what is a major difference between product based companies and service based company.
Hope, by now, you must have understood which is better to go for. If you are interested in product based then continue.
Are you excited to know the path to become better? Go ahead and read!
To make a successful career in computer science or Information technology, you need to pledge “learn by doing” mantra.
This means that everything you learn, you need to somehow implement this somewhere and keep practising. That’s how learning takes place.
- Discrete Mathematics.
Computer science is all about mathematics.
Books to read: Discrete Mathematics by Kenneth Rosen
If you prefer video lectures then watch MIT video https://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-042j-mathematics-for-computer-science-fall-2010/
Note: If you are in the second year of coursework then you will find these topics in your coursework.
Time: During the second year(3rd semester) of engineering. It’s the best time get started as the first year is already gone in adjusting to new engineering student lifestyle.
Duration: 1 months
2. Learn python or java programming
In the first year, you would be having programming courses where you will learn basics foundations of programming. Learn programming language whichever is there in your syllabus. Otherwise, go for Python programming language as it’s modern age programming language and it has huge demands in the market. The idea here is to learn any programming language so that you can implement and execute logic through the codes.
Time: 1st year of engineering.
Duration: 3 months
3. Data structures and Algorithms
Once you have the foundation of mathematics and programming, you should go for Data structures and Algorithms course.
You can learn this subject at your college if you are in the third semester.
Alternatively, you can prefer the YouTube channel of NP-TEL (DSA Course by Naveen Sir). It’s an excellent course which will teach you how to program efficiently and optimally.
Note: Most of the product based companies hire candidates based on knowledge of Data structure and algorithms. So, you should be very comfortable with this subject. Although, most product-based companies don’t visit low tier colleges for placements. You can check out, mostly service based company’s name would be listed on your college site.
Other Video courses: https://www.coursera.org/specializations/algorithms
Time: 2nd year of engineering.
Duration: 6–8 months
4. Practice Coding | Competitive programming
Practice makes you perfect. There are tons of websites nowadays available to practice coding online like HackerEarth, HackerRank and GeeksforGeeks. These are called competitive coding. You can even earn prizes if you compete with others. It will hone your recently learnt algorithms skills. Remember, it will help you later in the interview process of big product based companies.
Time: 2nd year of engineering.
Duration: 3–4 months
In my opinion, this is very important to have for engineering students as it will add an experience to the resume for further employment.
With newly learnt skills, try to apply for an internship during summer vacation, most preferably after the second year and third year of breaks.
During the internship, interact with other employees and learn the industry skills, get advice and tips from them and implement/adopt them.
Time: the 2nd/3rd year-end.
Duration: 3 months/Part-time
Once you are comfortable with above, join this FreeCodeCamp group. Here you will learn web development and a bunch of practical projects which you can showcase in your resume. Remember practice is the skill.
Time: 3rd year.
Duration: 1–2 month(s)
Build projects during your learning process and publish onto free websites.
Few websites for hosting your works depending upon platform:
- https://pages.github.com/: Create your own portfolio for free, host your project pages describing your role in that project.
- https://github.com/: publish your work and code.
- https://www.openshift.com/ or https://www.heroku.com/: Publish your web-development projects online.
- https://medium.com/: Read, learn and write articles from best of authors from all around the globe.
8. Interview Preparation
During the start of the 4th year, starting the preparation for interview sessions.
- Revise algorithms & DS concepts.
- Join and Practice: http://interviewbit.com
No one care about how much you have studied and knowledge you might have gained unless you can express them in your thought. Therefore, revising and expressing your thoughts is a critical skill for the interview process.
9. Optional Content:
If you reached to this point and still hungry to learn more and explore new areas of computer science, there are few optional topics you can learn which will give an extra edge over other students.
- Machine learning
- Artificial Intelligence
- Data science
Having said all the above, it’s not the easy as I listed them out. It’s challenging and needs massive dedication. But, if you do it, you will have a better company, best of the pay scale and the better place to start your career in software development.