1 year of LeetCode as a beginner
1390

Hi everyone, today is my 1 year anniversary of joining leetcode & solving Two Sum for the first time!
Since then, I've solved ~1000 problems & spent a lot of time using this site in general, so I thought I'd write a bit about it.

image

Background

I don't come from a programming/tech background, I'm a part-time classroom helper in the UK.
I've been learning to code for ~2 years after a DJ Set made me want to try making an image classifier in python with tensorflow.

Before LeetCode my only experience coding came from making this image classifier & solving the first 50 Project Euler problems.
I'm hoping to go to university for Computer Science as a mature student.

I didn't set out with a specific goal or a set number of problems/day.
Before a session I think about how much time I have available, how I feel & set myself a goal that feels achieveable.
There have been days where I spend upwards of 5h leetcoding, though mostly I aim for ~1-2 hrs each day.
In April I realised I might be able to hit 1000 solves in a year & started pushing for it.

image



Suggestions & Advice

  • Pen & Paper - I like grabbing fresh lined paper every session. I track questions solved & make notes or drawings to help me find a solution.
    It sounds silly but after closing the site & powering everything down, it's nice to have a real-world reminder that I did something.

  • Don't exhaust your pool of Easy questions - I did this & ran out of solveable questions for my ability level in October.
    I had thought solving all Easy problems would prepare me for Mediums but they still felt impenetrable at the time.
    For Oct & Nov, I ended up doing Google's APPASA cert. instead of LeetCode, which taught me some SQL!
    Then I came back & bought a month of premium for more Easy questions. X(

    • I had 500 Easy problems solved before 50 Mediums (500/50/0)
    • I think it's much better to aim for a 1/1/0 ratio & transition towards 1/2/1 over time
  • Give contests a try - Contests have become my favourite thing about LeetCode.
    I'm glad I took part as a beginner; comparing old contest results with new gives me a tangible sense of improvement.
    Having to sit infront of the same problem for 40min+, completely in the dark about how to approach it, really helped me push myself.
    Go give yourself a data point to be better than in 3 months' time.

  • Keep track of when you needed help - I keep a list of questions I couldn't solve without viewing the solution/discuss section.
    If you like coding alongside tutorials or needed the solve now (!!) for a study plan/daily challenge, it can be good to track problems you didn't solve alone.
    I like revisiting this list sometimes to reattempt a problem that's been collecting dust.



Site Roadmap

Finding the next doable problem after a solve can be trickier than the problems themselves!
With only 3 categories of difficulty, trying to find a new suitable problem can get discouraging at times.

Explore Cards > Study Plans > Lists & Contests

LeetCode does offer some direction with a mix of related problems in Study Plans & woven into their Explore cards.
Lots of the "Learn" explore cards are available without Premium & these can be a great way to learn new topics while tackling problems at your own level.
That said, they aren't arranged in a suggested order, so I've tried grouping some together in tiers of progression below:

Arrays 101 × Array & String × Linked List × Binary Tree
Binary Search × Queue & Stack × Binary Search Tree × Recursion I
Hash Table × N-ary Tree × Trie × Recursion II

I haven't completed all of these but if I were to start over, I would go through each in turn, followed by the related Study Plans.

Beyond this, I'd recommend using Lists & (Virtual) Contests to find new problems.

image

Recently I've started adding some filters on the Problems page & then hitting "Pick One"
This selects a random problem from the problems you were browsing, keeping your selected list & any filters in mind!



Outside of LeetCode, the main resources I used were the following books;

Python Crash Course - Eric Matthes
Competitive Programmer’s Handbook - Antti Laaksonen
Algorithmic Thinking - Daniel Zingaro

For now I'm looking to finish the Explore cards & Study Plans I have access to.
I want to keep attending the Biweekly contests & hopefully someday reach more Mediums solved than Easys :x

Comments (3)