Web Development, App Development, Cyber Security, UI/UX Designing, Machine Learning, Artificial Intelligence, Open Source, Cloud Computing, Competitive Programming, Data Structures, and Algorithms, and so much more. All of this is available to you almost for free to learn on the internet and some things are also taught in college. But how does one decide on what skills to focus on, how much time to spend, and when to do what.
These questions often come up while thinking about our career, discussion with friends, and generally in our mind. If I say that I knew all this before starting my journey in tech, it would be wrong. Here in this guide, I have tried to share some pointers that may help you navigate better in managing different things that you might come across while starting a career in technology.
Finding Your Interest Areas
As you begin to start exploring different domains in terms of development, you will come across various instances where you will learn about what your interest areas are. Start with thinking of what you would like to create — any problem that you might want to solve or any new thing you might want to build.
Once you come across such an idea, think of how you can bring it to reality. For example, you might think of solving issues of increasing carbon footprints and you can do so by building an Android app using Kotlin/Java or using React Native to build it for cross-platform. Now that you have decided, you can start learning app development and building your application.
This way of approaching things practically will allow you to dig deep into real-world use cases and also help you understand technology better. You will also be able to find out whether your interest really lies in this field (app development, in this example) or not. If yes, then you can build a few projects to gain experience and add them to your profile. If not, then you’ll know what areas you are not interested in and try with other domains.
Building Up Your Basics
You would have heard people saying how important Data Structures and Algorithms are and how doing Competitive Programming is an added advantage during interviews.
Yes, there is no denying and there are reasons for it. Companies work on various different technologies and it is impossible for you to have experience in all of them to clear the interviews. Also, being a college student/fresh graduate, the company also doesn’t expect you to know it. Instead, they try to focus on the basics i.e. Data Structures and Algorithms (DSA).
Many companies now have an online assessment consisting of coding questions that check your basic understanding of DSA, and problem-solving abilities. Even during interviews, you can expect to have technical coding rounds where you will have to solve such questions on a whiteboard or a code editor/notepad. So, having a very strong understanding of various Data Structures and Algorithms helps crack these interviews.
While building up your basics, try to choose any language of your choice and stick to it. Best websites to practice it for interview purposes are Leetcode, GeeksForGeeks and InterviewBit.
Now coming back to the question of Competitive Programming on websites like Codeforces, CodeChef, etc — it is more like a sport which you may or may not participate in. From what I have noticed is, participating in contests help with time management which is useful during coding rounds. So, if you don’t care about the ratings, you can still participate to practice and improve your skills.
Grabbing Opportunities — Internships and Full-time Jobs
This part is where most students feel left out due to their college status and lack of awareness. Doing an internship is great for your profile, building your network and learning new skills. However, it is not compulsory and you can always look out for other opportunities in areas such as open-source, freelancing, mentorship/fellowships, summer schools, research projects, etc.
Focus on building and improving your resume from time to time. Your first few will not be the best ones but you got to start someday. There are tons of resume templates available online and many companies prefer one-paged, simple formatting, 12–14 font-sized resume. Some companies also use an Applicant Tracking System (ATS) to scan resumes… so make sure your format is simple enough to be scanned by it.
Here are free templates from resumeworded.com and you can also check out Overleaf for more. Resume Worded is a free tool that scores your resume out of 100 and also allows you to improve on the overall structure, bullet points, etc by giving feedbacks.
Now that you have a super awesome resume, don’t forget to apply actively. Trust me when I say this, rejections are a part of the process, don’t fear it. Apply to all the openings you find fit for your profile and do it consistently. Keep yourself updated on various openings, hiring drives, events, seminars, and coding challenges by being active on LinkedIn, signing up on the careers page of the companies you are interested in, and create email job alerts.
Lastly, don’t use the same resume to apply for different job profiles. Modify it as per the job requirements and skill set.
Cracking Internships and Full-time Job Interviews
During the interviews, make sure you are well-rested, calm, confident and have a smile on your face! While solving coding problems, think of it as a collaborative effort between you and the interviewer. Speak out loudly and let them understand your thought process. Walk them through your solution and ask clarifying questions.
In the end, remember to ask them questions about the role, company, etc as you are interviewing the company as much as they are interviewing you! They appreciate your questions and are always willing to share more about their journey and thoughts.
Hope this covers some things about how to manage time to prepare yourself for your journey into tech. All the best and keep learning!