This got me thinking... when it comes to learning other paradigms, what has made things click for you? (or not)
For me:
- Reading a language's Wikipedia page, seeing how it implements a "hello world" program => Does not work for me
- Doing little iterative coding exercises in Codecademy or something => Does not work for me
- Building class projects in some language => Does not work for me (maybe I didn't have the scaffolding to understand a new paradigm when I was in school)
- Getting used to something, getting really stuck, then deep-diving on the paradigm => Works for me (but the upfront investment is massive)
- Reading a book that illustrates a way of thinking => Works for me (I went through 1/2 of SICP and I took away some very low-level ideas. `car` and `cdr` were new to me, and it was interesting how far you could go with those primitives when it came to list manipulation. I think the best book I've read is Grokking Simplicity, which, if you haven't read it, I could write a whole other paragraph about why I think it's a great teaching book and how it avoids the common pitfalls)
This got me thinking... when it comes to learning other paradigms, what has made things click for you? (or not)
For me:
- Reading a language's Wikipedia page, seeing how it implements a "hello world" program => Does not work for me
- Doing little iterative coding exercises in Codecademy or something => Does not work for me
- Building class projects in some language => Does not work for me (maybe I didn't have the scaffolding to understand a new paradigm when I was in school)
- Building an actual project that I care about => Sort of works for me? (I'm currently working in Vue, and I became fairly proficient in component-based programming by just... getting used to it? (I'm reminded of the JVN quote - https://www.azquotes.com/picture-quotes/quote-young-man-in-mathematics-you-don-t-understand-things-you-just-get-used-to-them-john-von-neumann-35-54-07.jpg). And I didn't really understand the paradigm or how it differed from other ways of building websites)
- Getting used to something, getting really stuck, then deep-diving on the paradigm => Works for me (but the upfront investment is massive)
- Reading a book that illustrates a way of thinking => Works for me (I went through 1/2 of SICP and I took away some very low-level ideas. `car` and `cdr` were new to me, and it was interesting how far you could go with those primitives when it came to list manipulation. I think the best book I've read is Grokking Simplicity, which, if you haven't read it, I could write a whole other paragraph about why I think it's a great teaching book and how it avoids the common pitfalls)
That's a really interesting question! [Some thoughts](https://programmingsimplicity.substack.com/p/on-programming-paradigms?r=1egdky)
I'll add: reading Alan Kay's papers got me to understand OOP