/leetcode_workshop

Repository containing code prepared for Leetcode Workshop

Primary LanguageJupyter Notebook

💻 YNC Hacks Algorithms/ Leetcode Workshop

This repository houses the notes, code, additional workshop for the workshop for the Algorithms/ Leetcode workshop. I sincerely hope that this resource helps you with your technical interview preparation and in turn open new doors for you to join your dream company!

❌ Foreword

This workshop is meant for aspiring software engineers who'd like to join a Technical Role in a company and would have to prepare for interviews as a result. During my younger years in Yale-NUS, I was extremely lost in how to prepare for interviews. Thankfully, Ivan Leo helped me very significantly in this, which helped me secure my first Software Engineering internship.

I'd like to pay this forward by organizing a workshop for people who'd like to secure a Technical Role, but don't know how. I hope that this serves as a springboard for you to kickstart your software engineering journey!

📂 Navigation

Each folder contains the code, supplementary material and schedule for this workshop. You may access the workshop schedule in Assets/training schedule.docx. If you'd like to copy this entire repository to your computer, run the following command:

git clone https://github.com/virtuoso98/leetcode_workshop.git

Due to ongoing COVID-19 social distancing measures, I am still thinking about the best way to deliver this workshop. For now, rely on the respective README.md files each week. If you'd like to get the best experience, I do recommend you come to workshop as much as possible.

⚙️ Pedagogy

For this workshop, I'll try to provide some readings (and demo files, if applicable) before the start of the workshop. Please give them a read before coming. Coming into the workshop, I'll usually start on a short lecture on the week's topic before proceeding to some practice questions.

If possible, I'd like to enforce Pair Programming (If COVID-19 Measures allow for it). Here are a few reasons for doing this:

📚 More Resources

If you'd like to go further, here are some addition resources you can use to up your programming game:

Blind 75 - Essential 75 questions collated by experienced programmers that are frequently tested

Tech Interview Handbook - A comprehensive guide on how to get into your desired software company from the resume writing, interview process, post-interview and algorithms.

For the more ambitious ones, I highly recommend trying Competitive Programming out. It isn't exactly like Leetcode, but it'll make your mind a little more nimble in solving algorithmic questions. You could practice these questions in platforms such as

  • AtCoder - A platform that is targetted towards beginner competitive programmers. I've tried a few of their contests and I managed to solve a few.
  • Kattis - Very frequently used by NUS. Also a benchmark if you'd like to try out for CS3233 Competitive Programming, which has very high bars.
  • CodeForces - A pretty veteran competitive programming platform relative to Atcoder

To be very honest, there is no one-size-fits-all guide that'll make you wholly proficient in Technical Interviews. In the end, it is about your due diligence in coding regularly. Results will come to fruition if you try.

❗ Disclaimer

I understand that my Java files are named extremely poorly and clearly does not follow the classic Java Convention. However, I'd like to say that these files are not meant to be compiled and ran locally. Instead, For those who would like to try out my Java solutions, they may copy and paste the code to the Leetcode IDE Instead.