Earlier quoted context omitted.
I believe op is talking about the entire sequence where after those 2 you learn java and typescript. I also took the entire sequence the java one was really good at explaining aliasing problems, how to figure out an existing codebase by yourself, and all taught by UBC profs. 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…
The two courses of your parent comment are 2 out of 6 courses of this program [1]. It mentions Java and Typescript. It seems like all 6 can be taken for free if you click the individual links. Is this what you took? [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 D…
How to Design Programs (2014)
131–140 of 141 posts
Re: How to Design Programs (2014)
#132Earlier quoted context omitted.
I see two sides: the numericals and the algebraists. I've talked with people who also see these two sides but call them differently. As I see it, this book is closer to the algebraists side. Thus, you probably lean closer to the nuemerical side. I also like to think about it as the Turing perspective (numerical, algorithmic) and the Chruch outlook, which is more algebraic-symbolic. At the end of the day, it's both "c…
Some people prefer not to commingle the functional, lambda-calculus part of a language with the parts that do side effects. It seems they believe in the separation of Church and state. --Guy Steele
Re: How to Design Programs (2014)
#133Earlier quoted context omitted.
The whole series is very high grade. I don't appreciate the dialogue format all the time (too fine grained and a bit distracting after the first book). But high density of knowledge here.
Seriously these are not quick reads. If you don’t feel your conceptual space expanding every few pages you are surely missing something.
Re: How to Design Programs (2014)
#134Earlier quoted context omitted.
I never understood the appeal of this, or SICP, or Scheme in general. I learned much more about computer science reading algorithms and data structures textbooks, especially Knuth. There's a reason MIT uses Python for its intro courses now, after all.
> There's a reason MIT uses Python for its intro courses now, after all. Yes, and IIRC, that reasons were, roughly: a) Python is more popular, b) Python has better robotics libraries, which is what kids coming to MIT care about these days. Notably, I don't recall the reasons they given having anything to do with giving students a good fundamental understanding.
Re: How to Design Programs (2014)
#135Earlier quoted context omitted.
Knuth's TAOCP was originally written in an imaginary 60s-style CISC assembly called MIX (with some oddities like being decimal) but newer editions are in a RISC style one called MMIX (which Knuth claims is more practical but really isn't.)
Well, all I can say about that is that I read through the MMIX supplement and did a bunch of the exercises, and I know have enough knowledge to vaguely understand assembly. It hasn't been massively useful to me in my professional life (I'm a data scientist), but it definitely has helped me to gain a deeper appreciation of how computing works.
Re: How to Design Programs (2014)
#136Earlier quoted context omitted.
'Concepts, Techniques and Models of Computer Programming' by Peter Van Roy and Hadidi may be a better book than this and even SCP, since it presents a well organized "science" of computer programming..
I've read both SICP and CTMCP and would recommend the latter as a first read. Sure the language it teaches in is not practical, but I actually found that to take away the distractions of reading a book in whatever your target language is. Also its the first book that got me thinking about how programming languages actually work and what actually happens under the hood when you're writing code. Great book.
Re: How to Design Programs (2014)
#137This is a book that embodies its thesis, that learning to design programs is like learning how to write or do mathematics. In the same way that academic treatments of writing or math abstract out the things you might actually do with writing or math, HTDP abstracts out the things you might actually do with a computer program. Instead you work through exercises that illustrate the fundamental concepts. I don't know th…
Are you saying the examples in the book are insufficiently real-world (ie, they should be more like creating websites and less like Tetris [ https://htdp.org/2020-8-1/Book/part_two.html#%28part._sec~3a... ] or XML [ https://htdp.org/2020-8-1/Book/part_four.html#%28part._ch~3a... ])?
Re: How to Design Programs (2014)
#138If anyone is interested, there is also a YouTube course based on this book: https://www.youtube.com/playlist?list=PLA_-EWSPTJcuy5VyJyvem...
Re: How to Design Programs (2014)
#139Earlier quoted context omitted.
Well, all I can say about that is that I read through the MMIX supplement and did a bunch of the exercises, and I know have enough knowledge to vaguely understand assembly. It hasn't been massively useful to me in my professional life (I'm a data scientist), but it definitely has helped me to gain a deeper appreciation of how computing works.
By practical I meant it's hard to implement in hardware. As far as I know it's easy to learn, having register windows is just kind of weird.
Re: How to Design Programs (2014)
#140Earlier quoted context omitted.
What would be your advice to someone who's going through that frustration? I would love to get in touch to talk more about this. Thanks.
It really depends on what your current situation is. Sometimes a break or distancing solves the problem. Other times it simply is trying something else, job, language, hobby. Make changes until something clicks. It sounds cliche, each person has a different journey but journeys do have some common patterns. Not sure what your frustrations stem from but I could get in touch and talk more about this.