Sometimes the best tools for teaching aren't the tools we need in our day to day work, and that's ok. When you're in learning mode, it's about discovering those foundational blocks upon which all else is built. Those fundamental blocks are never the actual programming language itself.
On the day job, I wish for the level of expression of a different paradigm.
I sigh at the entanglement of information that is presented to my kind.
And when comes the evening, I’m relying on cheap tricks and iterative steps because I’m fried and human.
That’s a bitter sweat thing, that you describe.
It rarely is though.
Once a fundamental understanding of the problem solution is achieved, one can think about refactoring steps like this. Depending on how well one wrote the code, these refactoring steps become easier or more difficult.
I ordered a paperback from lulu and it was a great decision, I use a marker and write on the margins. It is absolutely worth it.
https://www.lulu.com/en/us/shop/nils-m-holm/logic-programmin...
I ordered a paperback at:
https://www.lulu.com/en/us/shop/nils-m-holm/logic-programmin... in-scheme/paperback/product-1z82nmng.html?page=1&pageSize=4
It was absolutely worth it.
Seriously though, they are fun. Racket's way of programming with pictures is great. Maybe following the book at your own pace would be more rewarding.
The two intro courses that use htdp are not nearly as rigorous as the book, you never get to see anything difficult enough to warrant using the design recipes where the book you begin to appreciate that style more and more as it gets harder.
[1] https://www.edx.org/micromasters/ubcx-software-development/
That indeed is the course the top comment is talking about.
The instructor Gregor Kiczales has a youtube channel named 'Systematic Program Design' [2]. His 5 minutes intro video [3] is really good IMO - one can send it to ones relatives or friends who ask you what the heck you are doing in your job.
[2] https://www.youtube.com/channel/UC7dEjIUwSxSNcW4PqNRQW8w
“Lisp is worth learning for the profound enlightenment experience you will have when you finally get it; that experience will make you a better programmer for the rest of your days, even if you never actually use Lisp itself a lot.”
I dream of getting into legal tech and combine my passion for computers with my hard earned law knowledge at some point. But it's just a dream at this stage as I can see no way out.
I was always obsessed with computers since childhhood, I somehow got into law school and faked my way from there.
My problem is taking the plunge to do something else other than law. I try to live day by day and focus on other things besides computers.
I'm not sure if it's still on the platform, but about a year into my self studying I took a series of courses on edX that used this system. I think it was called Systematic Program Design, but I could be misremembering. Anyways, the courses were incredible. I completely credit them with beginning to turn me from a coder into a software dev. The system they provide just locked into my brain like it had always been there.
I almost didn't take it because it used Racket, and I questioned its general applicability for that reason. I'm so glad I pushed those concerns aside, because in addition to introducing me to software design principles, it introduced me to Lisp in a way that also completely changed my thinking about what programming itself could be.
I've now been a paid dev for 2.5 years. I don't really explicitly use the system from the course in my daily work, but the knowledge contained within it has molded my entire understanding of the field.
The course literally changed my life.