News for hackers. Stuff that matters.
Re:How to Design Programs (2014) by wjossey on Friday March 19, 2021 @12:45AM (#26510224)
Once a SE discovers that they can learn, quite significantly, in a language that may have very little practical day to day use, it's a powerful moment.

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.

Re:How to Design Programs (2014) by dopidop on Friday March 19, 2021 @01:06AM (#26510310)
Well said.

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.

Re:How to Design Programs (2014) by doom2 on Friday March 19, 2021 @09:43AM (#26513206)
I'm sort of experiencing this myself. Currently learning C even though it's not practical in my day to day. My main language is Python and sometimes Scala. Learning about memory management, pointers, etc., has been eye opening to me (I studied math but not CS in college) and I've taken the opportunity to start digging into the CPython code base to see how Python handles things under the hood.
Re:How to Design Programs (2014) by lanstin on Friday March 19, 2021 @12:09PM (#26515029)
CPython is an excellent C code base to learn from. Readable despite being battle hardened and functional. Lisp tho is a wonder of a deeper kind - towers of dazzling beauty and power. I still recommend On Lisp by Paul Graham. And no, one won’t be using it day to day. But it will carve grooves in your brain that make you forever a deeper thinker about the possibilities of software.
Re:How to Design Programs (2014) by tartoran on Friday March 19, 2021 @01:04AM (#26510302)
I've had that moment and it's a paradigm shift in thinking. I'm still on my first leg of my journey as I started learning Racket/Scheme relatively recently but I've already started seeing things in a different light. I almost don't care about performance (at this point) as I know that could be attainable somehow once a solution is fleshed out but I simply enjoy the understanding of the concepts and the patterns that arise. At this moment I see possibilities all around and feel quite electrified.
Re:How to Design Programs (2014) by Hendrikto on Friday March 19, 2021 @05:16AM (#26511358)
> I almost don't care about performance (at this point) as I know that could be attainable somehow once a solution is fleshed out

It rarely is though.

Re:How to Design Programs (2014) by zelphirkalt on Friday March 19, 2021 @09:06AM (#26512827)
I've not read HTDP, only very little of it. However, I find it hard to imagine, that they would not introduce data abstraction layers, like they do in SICP. So, if you relate to the usage of single linked (nested) lists, I quite sure, that improvement by switching out the data structure and putting in an appropriate one can be had. Furthermore, they'll probably teach mutation as a last resort, not as a standard thing to do, which allows for easier parallelization, provided you choose an appropriate data structure.

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.

Re:How to Design Programs (2014) by bostonsre on Friday March 19, 2021 @09:39AM (#26513168)
It's a cs101 book, they keep it simple and focus on functional programming without mutation. I was a bored business major that took the class at neu and it was a pretty amazing intro to cs that i credit for making me love cs. They got into the more advanced stuff in future courses. I love oop now, but think functional programming was a great way to introduce programming.