Back to basics of programming: OOP, Data Structures, Algorithms

Back to basics of programming: OOP, Data Structures, Algorithms

Nov 29, 2022
Data Structures

updated (2022.12.06): my notes on OOP

[1] Intro to Object-oriented programming - classes, objects, constructors, keywords
[2] Intro to Object-oriented programming - All about the “static” keyword
[3] Intro to Object-oriented programming - 4 Basic Principles of OOP
[4] Intro to Object-oriented programming - Access control and about the Object class
[5] Intro to Object-oriented programming - Abstract classes and Interfaces in Java

going back to basics

Get the fundamentals down and the level of everything you do will rise - Michael Jordan
It’s been 2 years since I took Algorithm Analysis course (final grade: A+), 3 years since I took the Data Structures course (final grade: B+) and 4 years since the Object Oriented Programming course (final grade: A0).
Not that I’ve completely forgotten how to apply the concepts I learned as a CS major - but honestly when working in the industry, I find myself googling simple concepts that I should have memorized? before
I understand that there’s a reason why software companies and university courses require you to have a strong technical understanding of data structures, algorithms and OOP because it helps you immensely when tackling a problem.

the actual reason why

As someone who aspires to
  1. be a great above-average full-stack developer (so that includes back-end in addition to my current skill-set)
  1. apply for MEng in Computer Science courses at top US universities (courses which are industry-oriented rather than research-oriented)
I should be familiar with the topics which are considered prerequisites:
Cornell MEng in CS prerequisites
notion image
UC Berkeley MEng in CS prerequisites:
notion image
(technically, I have finished the prerequisites in university but I feel the need to strengthen the fundamentals further which will hopefully make me a better problem-solver 😁)

my study plan

I have designed a course for myself to revise the important courses I took years ago, and re-activate the logical reasoning part of my brain 😂
All the resources listed below are free, available on YouTube.
With each video lecture, I will be posting my notes on the topic on this blog - stay tuned for that! The code will be provided in GitHub repos and I’ll be mainly using JAVA for coding.

Object-oriented programming:

Following is the playlist I’ll be using:
Language used: JAVA or C++

Data structures

Language used: JAVA and Python and maybe even TypeScript

Algorithm analysis

This playlist helped me SO MUCH when I had trouble understanding the concepts taught in class (yonsei’s online lectures make me sleepy 😆🤡)
ISTG this professor is one of the best on YouTube
Language used: JAVA or Python

my expectations

  1. strengthening my technical background further,
  1. practicing having a clear language to convey or express logical ideas,
  1. preparing myself to be successful in a MEng in CS course
  1. future employment at big tech followed by becoming a founding member of a startup (either in Korea or the US)