Skip to main content
•3 min read

Unlearning Everything I Thought I Knew

lifeuniversitylearning

here's the thing about being self-taught: you develop habits. some of them are fine. some of them are... not.

uni is teaching me which ones are which. and it's humbling.

things i thought i knew

1. algorithms

me before uni: "i know algorithms! i can write a for loop!"

me after algorithms class: "wait, there are efficient for loops and inefficient for loops and it matters a lot?"

turns out O(n²) vs O(n log n) is the difference between your code running in 1 second vs 1 hour. i have been writing O(n²) code my entire life and just... waiting.

2. code structure

me before uni: "i know where my code is. it's all in main.py. all 800 lines of it."

me after software engineering class: "functions. classes. modules. separation of concerns. oh no."

apparently "it works" and "it's maintainable" are different things. i'm going to pretend this revelation doesn't invalidate 90% of my previous projects.

3. testing

me before uni: "i test my code. i run it and see if it works."

me after uni: "unit tests. integration tests. edge cases. test-driven development. testing frameworks."

there's a whole science to this. who authorized this.

the unlearning process

step 1: realize you've been doing something wrong step 2: feel embarrassed step 3: resist the urge to keep doing it the wrong way (it's comfortable!) step 4: suffer while learning the right way step 5: realize the right way is actually better step 6: forget you ever did it differently

i'm somewhere between steps 2 and 4 for most things.

it's not all bad

some of my self-taught instincts are actually useful:

  • i google things confidently
  • i'm not afraid to try stuff and break things
  • i've been debugging for years so error messages don't terrify me
  • i'm genuinely curious (this counts for a lot apparently)

my algorithms professor said "the students who taught themselves first always have the best intuition." which made me feel slightly better about my messy main.py files.

the biggest lesson

formal education isn't about learning things for the first time. it's about learning things properly. there's a difference.

i knew how to drive a car (metaphorically). now i'm learning why the car works the way it does, and how to not crash it, and what that weird noise means.

it's harder this way. but i'm becoming a better developer.


now if you'll excuse me, i have to go refactor a project i wrote last year. it's bad. it's so bad.