Taro Logo
Profile picture

Data Structures And Algorithms Q&A and Videos

About Data Structures And Algorithms

The computer science concept we all love to hate. However, it is vital to master them to pass tech interviews, especially those at Big Tech.

How to get internships as a Master's student with close to 2 years of experience?

Software Engineer at Taro Community profile pic
Software Engineer at Taro Community

Hello everyone,

I'm preparing for a potential career transition as I join the MS CS program at Georgia Tech this fall, while also working full-time. Given the uncertain job security at my current company, I am proactively looking to strengthen my position in the job market in the United States. Here is a brief overview of my background:

  1. Current Role: 2 years in a distributed systems role utilizing TypeScript and Rust.
  2. Education: Joining Georgia Tech for an MS in Computer Science; previous non-CS engineering degree in a tier 1 university in India.
  3. Internships: Completed two internships with local town US companies ( didn't learn much there).
  4. Publications: Co-authored an Android Dev (Kotlin) + AI/ML-based paper published in an ACM journal and presented at a conference.
  5. Research: Collaborated with professors on projects related to security, networking, and HCI.
  6. Side Projects:
    • Pet Marketplace and Grocery eCommerce Android App - Java
    • Multi-threaded mathematical solver and Sudoku helper in C/C++
    • DDQN-based AI game for an RL course project - Python
  7. Programming Proficiency: TypeScript (Node.js), Rust (p2p Networking), C/C++ (Operating Systems & DSA), Java (Android Development)

I had earlier applied to lots of companies in 2022 & 2023 when I was looking for jobs in the States. I had applied to around 300 companies each for internships and jobs. Only 10 reached out, I could only convert one then which is my current job. I had a really poor profile then with a non-CS degree outside of the United States. I had cold applied then. I do not want to end up in that same situation again. I have tried my best to improve my profile since then.

I'm seeking advice on how best to approach internship applications now with an improved profile. Specifically, I am wondering:

  • Is it more effective to reach out directly to hiring managers rather than recruiters, especially for internships?
  • What strategies can I employ to increase my visibility and chances of getting hired, beyond cold-applying and asking for referrals on LinkedIn?
  • What can I do beyond brushing up my DSA skills and Dev skills in the tech stack I am proficient in? [ My degree will also help me catch up on my basic CS foundation. ]

Any insights or advice beyond the scope of the questions would be greatly appreciated too!

Show more

How to navigate career after layoffs

Mid-Level Software Engineer at Taro Community profile pic
Mid-Level Software Engineer at Taro Community

I recently got laid off working as a developer working within an agency. I currently have around 5 years of experience working in the agency setting utilizing React, Next js, Vue, Liquid, and the Shopify API to create custom eCommerce sites. During my time at these agencies, I also had the opportunity to act as a lead, interact with clients, set timelines, and cross collaborate with designers/projects managers to meet deadlines.

I have been looking for new opportunities since January and I've been able to secure a couple of interviews, technical challenges, and one onsite. Most of my interviews have been coming from agencies, but my preference is to join a tech startup or maybe more on the brand side of things within the Shopify niche. Below are a couple of questions:

  1. Will working at another agency hurt my career in the long run? My ultimate end goal is to work for a bigger tech company if possible.
  2. If an agency does want to hire me right now, should I take the job for now or just wait for one of my preferences?
  3. I notice a lot of developers within the agency space freelance after their 9-5. Does studying for interviews or future jobs provide a higher ROI instead of freelancing?
  4. Lastly, I just finished (super helpful!). It seems like the best course of action for me is to apply a lot, work on side projects instead of grinding leetcode, and study system design. Does this seem correct?

Thanks in advance!

Show more

How do I prep for Frontend job interviews? Do I apply for Fullstack?

Mid-Level Software Engineer at Mastercard profile pic
Mid-Level Software Engineer at Mastercard


So, my job's getting outsourced this summer, and I'm deep into figuring out my game plan for interviews. I'm mostly a frontend engineer, working with Angular, SCSS, and ngRX for our app. I've dabbled in backend too, even went full-stack in my team, but my backend skills aren't great. My manager supports me marketing myself as a full stack person, but I'm wondering if going all-in on full stack jobs is worth the effort during the interview prep, especially since I'm not a big fan of backend work.

Then I wonder if the downside of applying for frontend jobs is that there are not that many and the barrier for frontend is lower (maybe because of coding bootcamps and it can be self-learned) so competition will be higher.

Now, I'm drowning in prep work - data structures, algorithms, frontend know-how, and system design. Recently got hit with a surprise system design coding round in an interview (an internal position I arrogantly thought I had in the bag) I thought was all about frontend and DSA. Did okay, but not stellar, and now I'm feeling unprepared for every interview. I feel crippled to even apply to positions. It's a bit of a mess.

So questions:

  1. Any tips on tackling system design questions, especially the coding part? Most online resources seem to focus more on design rather than coding specifics.
  2. How should I balance DSA, system design, frontend prep? What topics and how much time should I commit to each of them?
  3. Also, am I on the right track leaning towards applying for just frontend roles?

Appreciate any & all feedback!!

Show more

Learn About Data Structures And Algorithms

Data structures and algorithms (DSA) are fundamental concepts in computer science and software engineering. These concepts are essential for solving complex problems and are often used in technical interviews at big tech companies like Google, Meta, and Amazon.
Data structures are a way of organizing and storing data so that operations can be performed efficiently. Common data structures include arrays, linked lists, stacks, queues, trees, and graphs. Understanding data structures is crucial for designing efficient algorithms and optimizing the use of memory and compute.
Algorithms are procedures or formulas for solving problems or performing tasks. Algorithms are used to manipulate data stored in data structures, and they are essential for tasks like searching, sorting, and graph traversal. The efficiency of algorithms is measured in terms of time and space complexity, which determines how quickly an algorithm runs and how much memory it uses.
Data structures and algorithms are closely related because the choice of data structure can significantly impact the performance of an algorithm. Choosing an appropriate data structure is crucial for optimizing the efficiency of an algorithm. It’s also true that choosing the right algorithm can maximize the data structure that gets used.
Doing well in data structures and algorithms problems means you have developed the critical thinking skills required to solve technical challenges as a software engineer. As a software engineer, you encounter many challenges, and the ability to choose and implement the right data structure and algorithm is fundamental to coming up with efficient and scalable solutions.
Many companies assess their candidates based on their ability to solve algorithmic based problems during an interview. Learning how to solve these problems effectively can be the difference between getting hired and not getting hired. Make sure you work on coding exercises that let you apply your data structures and algorithms knowledge before you go into your technical interview, so you can be prepared to answer any technical question during your interview.
In summary, data structures and algorithms form the backbone of computer science and software engineering, enabling engineers to develop efficient solutions to complex problems, and they play a critical role in technical interviews for top companies.
Show more