Project Title

student picture

Sonlam Nguyen

Contact: LinkedIn

The ideal route for an up and rising software developer is to get an internship in their early years and then leverage that experience into getting a job in the industry. Companies such as Microsoft, Google, Amazon and Facebook all have internships targeting students who are juniors pursuing their bachelors. The problem is that many students do not have the confidence to attempt to take on some of these infamously difficult interviews, nor do they have the skillset if they’re only studying within their coursework.

A resource heavily used by individuals studying for the technical interview is a book called “Cracking the Coding Interview” by Gayle Laakmann. According to her, the concepts needed for the interview are: Linked List, Trees, Graphs, Stacks & Queues, Heaps, Hash Tables, Breadth First Search, Depth First Search, binary Search, Merge Sort, Quick Sort, Bit Manipulation, Recursion, Dynamic Programming and Big O Time & Space. The interviewer will ask a question that will involve a number of these concepts in one problem so it is extremely important to have complete mastery over all of the subjects.

Although the CSSE department includes two data structure and algorithms courses, these courses only scratch the surface of data structures and algorithms. They generally only give one program per data structure for students to master them. This does help in giving fundamentals, but it does not always help with how the data structure will apply or when to use them when given a technical interview problem. In addition to this, the duration of the two fundamental courses span past the peak hiring periods that companies have in the late Fall to the early Winter.

To help with this my team T4G LeetCode Programming created the Stepik learning course. This is a fully self paced online educational course. Problems are pulled from LeetCode, the world’s most popular website for developers to practice their coding skills. The problems are then solved and dissected by team members to write in-depth lessons about. As group members, we solve each problem from scratch and write lessons geared towards students who are also not familiar with the concept. We as team members are not special by any means. We are students who struggle with these problems as well and take long periods of time to figure some out. By doing this, we know where students receiving the lesson are struggling and common pitfalls they fall into.

The lessons are written into “steps” which the user can either follow from start to end, or skip to steps that they feel lost on. There is also active engagement through steps that require engagement from the user, and a comments section. We hope that by writing these lessons students are able to gain confidence in their coding skills and challenge the unknown.