How to Build a Strong Career in Technology?
02:30 PM, 25 Nov 2020
A career in the technology sector is varied and rewarding, with great job prospects, personal development opportunities and high-end salaries available for the best candidates. The new requirements of our living and working life have accelerated the necessity for digital-first business models and advancements in security, cloud and multi-cloud strategies have created a need for technical expertise across most industries. From developing next-gen video games and apps to defending networks from a cyber attack, there has never been a better time to get a job in technology, than now.
What will you learn in this Webinar?
- Career Opportunities available with reputed tech companies
- Frequently Asked Questions in the interviews of reputed tech companies
- Technologies used on a regular basis by tech companies
- How to build your resume for interviews of tech companies
A guide for 1st Year Engineering Students
Entering college is without a doubt, equivalent to starting a new chapter in our lives. With new determinations to equip oneself with the right skills, come the confusions of how to acquire those skills. Even more so, when you enter an engineering college, you constantly face the dilemmas of what to start with, how to do it, and setting that long list in order of relevance and priority. Let's address all of these confusions through this article. While there are many agendas that the above questions apply to, the major one, being a student of engineering is that of coding. But before we get to the 'what' and 'how', the more important question is
“Regardless of WHAT we do in our lives, our WHY—our driving purpose, cause or belief—never changes.”
-Simon Sinek, Start with Why
Today, more or less, our lives are full of problems and we are constantly in search of solutions. While most people these days are dependent on google for that purpose, it really helps to astronomical extents if you have strong analysing, reasoning and problem solving skills. These skills do not just develop over night, they require a process. And well, coding is the perfect catalyst for this process. Thus, whether you are aspiring to be a mechanical engineer, software engineer or even pursuing a career in non-technical streams, learning to code, will only boost your development.
"Everyone should learn how to code. It teaches you how to think"
- Steve Jobs
Apart from skill development, programming also paves the way for a career that attracts high salaries and opens up a wide plethora of possibilities and opportunities. Below is a piece of statistic to help you visualise the numbers.
We have talked about the technical skills that coding helps you acquire, but it will be wrong not to mention that coding also has a creative aspect to it. Programmers come across a problem in the real world, and then it becomes their purpose to visualise all sides of it, come up with possibilities of solutions and then choose the most feasible one. Every programmer has a different approach to the same problem. How creative yet optimal the approach is, is what makes the difference.
Next arises the question of when.
When is the right time to start coding?
If you have just entered college as an engineering student, now is the time to start coding. Frankly, the answer to this question for anyone who really wants to learn to code would be to start now. There is no age for learning and as mentioned in the above section, coding is not just something that you will use to build programs, it is much more. All the skills that you thus acquire will undoubtedly boost your overall development too. Today, children at an age as young as 7, are coding. Not only young people, even people you would consider to be "old" are learning to code. The numerous questions on platforms like Quora by people from parents to 10 year olds, to 60 year old women and men asserting that they want to learn how to code, aptly justifies that fact.
How do I get started?
Warren Buffet has said it, Steve Jobs has and every other person who we call successful has said it -
Don’t do too many things at once; start with one, master it and excel at it.
This is exactly what you need to apply when thinking about which programming language to start with. There is no such thing as a perfect language to begin with. You can start with the one in your course syllabus or you can start with some other. Although C, C and Java are strong in terms of the speed of execution and are a major agenda in interviews and competitive programming (more on this in the coming sections), it doesn't make much difference if you choose to go with a different one. Because a programming language is just a medium to instruct the computer. Once you know one programming language, it is easy to instruct the same commands in any other language. But it is really important to stick to the language you begin with and don't jump ships in between learning multiple language. Keep in mind that perfecting a language doesn't just refer to the knowledge of syntax and how to solve a certain problem in the particular language. It refers to the ability to solve a given problem with a proper workflow and in a way that it consumes the least amount of memory and time, is optimal and that a third person can understand the solution with ease.
Once you are familiar with a programming language of your choice, the next step is the perfection of a major topic which is "Data Structures and Algorithms".
Why "Data Structures and Algorithms" ?
Let us understand first what Data Structures and Algorithms mean individually.
While coding, we may need to compute data, store data, restore data or perform operations on it. Data Structure refers to the named location that we can use to store and organize this given data. More specifically, Wikipedia says that a data structure is a collection of data values, the relationships among them, and thefunctions or operations that can be applied to the data. Now, to build these codes and perform computation on this data, we follow some steps. An algorithm is this set of well-defined steps or instructions. To solve a particular problem, we develop an algorithm that will be the most feasible in order to reach to an accurate solution.
After getting familiar with this basic explanation of it, we should be able to see why Data structures and algorithms are an inevitable aspect of coding. While coding, you require knowledge about some technological tools. You can familiarise yourself with them as you build the programs, but data structures and algorithms are something about which you need to have in-depth knowledge before-hand only. They help to make your code more optimal and save memory and time. Thus, you are required to apply them whenever possible because memory is not abundant and time is precious. For this, you need to get acquainted with the types of data structures and algorithms properly.
Apart from this, knowledge about this topic also opens up great job opportunities for you. Big companies these days, need programmers that can design the most optimal algorithms that will save resources like number of servers, computation power etc. Companies like Facebook, YouTube and Twitter that have such large number of users across the globe, require their data to be handled in the most optimal manner. Thus they prefer to focus on hiring people who are good at applying data structures and algorithms.
While fancy skills like Machine Learning and Hacking might attract you as a person standing far away, as you reach the back-end of programs, things start getting complex and realistic. This is where most people lose focus, get bored and decide to quit midway of learning. To understand and manage effectively these complexities, the basics must be clear. Thus all in all, Data Structures and Algorithms are the topics you must master firstly in order to be a good programmer.
Where do I learn coding from?
Now that you know what to learn, you need to figure out from what platform can you learn it in the best way. Let's talk about the various options point-wise:
University/College: While pursuing higher education, we are taught the basics in class but are motivated to explore the in-depth concept on our own. Thus depending solely on the education you are provided as part of college syllabi is not a very good idea. Moreover, regardless of when you are taught Data structures and algorithms in college, you must learn it as the first topic you need to master after getting familiar with the programming language you started with.
Online Courses: The web of the internet is expanding at a faster rate than ever and so is the variety of information and platforms on it. There are a lot of platforms online that take you through a well-defined course of learning that is very industry oriented and focusses on equipping you with the right skills in order to establish yourself properly in the industry.
Other Resources: Apart from the above two, there are also some good books you can refer to for learning concepts. But there is the thing that one book won't have all the concepts explained properly. For example, you will have to refer to one book for data file handling and another book for studying arrays.
As we have discussed in the previous sections, programming involves not just finding the solution to a problem, but also doing that creatively yet logically to get the most optimal solution. A programmer must examine a problem from every possible angle and look for the easiest and fastest solution. Doing all this while competing with other programmers on the internet creates a sport, known to the world as 'Competitive Programming'. Many big firms like Google, Facebook and Apple have their recruitments via Competitive Programming competitions. They don't need only those who can find a solution to an unsolved problem but someone who can find the solution while following the most optimal and lucrative path.
Perfecting Competitive coding requires all the steps mentioned in the article to be followed whole-heartedly. Apart from following the aforementioned steps, the thing one must keep in mind is regular practice. Without regular and timelypractice of problem solving skills, one cannot become a master in Competitive Programming. Here, it is also important to emphasise yet again, the importance of data structures and algorithms. Only after you have acquired knowledge in this area, you can do well in competitive programming.
This being said, competitive programming is not a pre-requisite for most companies apart from the ones mentioned above. But if the idea of competing, testing oneself and development in problem-solving skills attract one as ways to get better at what one does, one should definitely try their hands at it.
When you prepare for a certain exam, you are always advised to take enough number of mock exams in a similar environment. Why is that? It is to help you to understand and analyze what you're going to face and prepare yourself in terms of what skills you are going to require and also to identify what areas you need to work on to maximize your potential. This is also exactly why internships for an engineering student are a required aspect. Getting exposed to the environment you are going to work in, in the future and developing your knowledge and skills to be an asset to the industry is something that internships fully address.
Apart from this, internships are also something that will make a great impact on your CV. While trying to convince someone to hire you, the evidence of experience goes a long way. Paid and unpaid internships are an excellent method of proving that you have experience of working in the industry and have an understanding of what is expected from you. Internships mentioned in the CV leave a great impression on the interviewer and greatly improves the chances of being hired. Internships are also necessary for making contacts in the industry with various people of the same goal. This improves your overall professional network and you get to know about the competition thus motivating you to further work on your skills.
While mentioning internships in your CV, don't just mention the names of your internships, but list down what you learned from them and the projects you undertook. This makes a greater impact in terms of demonstrating your value and how you would prove to be an asset to the company. Next comes the question ofhow you can manage to grab an internship. Opportunities sometimes just come to you but most of the times, you have to look for them. You could explore internshala.com which is a platform that finds for you the best opportunities that would suit you. Other than this, developing your Linkedin is a must. It is the place where you will build your network and explore the various opportunities that you could grab.
Specialisations within Software development
While software development is an area itself under computer science, it is also further branched into various subjects. It really pays to develop your skills in one area. The better you are at a specific field, the more valuable an asset you are. But yet again remember, jump into specialisations only once you are thorough with data structures and algorithms. Software development offers a lot of specialisations and which one you want to choose is your decision to make. Consider your interests, future scope and skills required while choosing your specialisation. If you are still unsure of it, you should go with Web development. Below, we discuss some of the specialisations and the parameters you would like to consider before going with them.
As the name suggests, this is essentially an area where you work on developing websites and applications for the internet or intranet. When we talk about "development", we are not referring to the design of the website, but to the programming and code behind building it. Web development consist of three aspects -
Front-end: It is also sometimes referred to as Client-side development. As the name suggests, in this area, the programmer works on the aspects of the website that are accessed and used by the users or the people who surf that website. This can include menus, contact forms, layouts etc.
Back-end: Also known as Server-side development, it involves developing the aspects of a website that are not visible to the users. Storing data, computing it, organising it and making sure that the front-end experience is running smooth comes under back-end web development.
Database technology: For a website to work properly, there is a need for a database that contains all the files and content. Moreover, the data is also required to be edited, retrieved, organise and save. This is what comes under database technology.
Web development is a specialisation that opens up a wide variety of opportunities to have a good career. Below is a piece of data on the salary of a web developer in India.
Today is a time when more and more people are switching to mobile applications to carry out all their tasks. In a time like this, android developers are in much demand. An android developer is responsible to build, develop and design applications that run on androids. This specialisation also opens up a lot of opportunities and has high scope. the average salary of an android developer is given below.
According to IBM Cloud Education, "Machine learning is a branch of artificial intelligence AI focused on building applications that learn from data and improve their accuracy over time without being programmed to do so." Speech recognition, virtual personal assistants, e-mails going to spam folders, self-
driven vehicles, applications that predict parameters, everything uses the principle of machine learning. Great need for machine learning has been felt by companies because finding patterns in huge reserves of data is something that helps them to analyse their work better. The average salary of a machine learning engineer is given below.
Software development is a huge area and offers innumerable amount of specialisations apart from the ones described above. Cyber Security, Data Science, Data analyst, Cloud computing, Data Mining, Ethical Hacking and Networking are some of them. Honing skills in a particular area is important and makes you a more valuable asset to the industry. Make sure you consider your interests and not just the renumeration while choosing what you want to specialise in.
Through this section we try to answer some common doubts that students come across.
What is more important? Honing my skills, or maintaining a good GPA?
While what you will apply in the real world, once you get into the industry are your skills, maintaining a good GPA is also important. Some companies set a minimum CGPA for a candidate to take part in the hiring process. So even if you have good skills but do not have that minimum CGPA, you will not even get the chance to show your skills. Now looking at it the other way round, if you have a good CGPA and are eligible to take part in the interview but are not able to display the skills that the company requires, the CGPA will lose all its value. Thus the need, is to balance the two and that would require you to have good time management skills, a sense of prioritising your tasks and the will power to work hard but smartly.
What kind of an impact do co-curricular activities have on my CV?
When preparing yourself for a career in software engineering, co-curricular activities in the area of technology are what stand out in your CV. Participating in hackathons and other such competitions definitely do that job. In addition to this,co-curricular activities are something that help you explore yourself and boost your overall development. Thus participating in any such activity, even if it isn't from the field of technology, will only develop positive traits in you. Teamwork, leadership qualities, soft skills and sportsmanship are some traits that will go a long way in benefitting you when you step into the professional network and start working on real time projects.