[1]: https://merlot.usc.edu/cs402-s23/ [2]: https://pdos.csail.mit.edu/6.824/
Ask HN: What is the most challenging programming course you have taken?
71–80 of 83 posts
Re: Ask HN: What is the most challenging programming course you have taken?
#72What's great about it vs other courses is you had to understand an extremely complex thing and learn to modify it, instead of building something from scratch. In the real world, many things are not documented or misdocumented, so it's a vital skill to be able to understand how something works from the code.
Re: Ask HN: What is the most challenging programming course you have taken?
#73Most work in terms of hours spent: compilers (you had to write one from scratch)
Hardest due to inherent difficulty of the material: theory of computation. Turing Machines and the Halting Problem and such weren't too bad (well, duh) but some of the more advanced stuff was pretty challenging, at least to me.
Hardest due to the material being a collection of bizarre recipes and jumping all over the mathematical map: tie between an undergrad numerical methods course and a graduate modeling and simulations course. It wasn't conceptually difficult to write the code, but understanding exactly why it worked was a different story. I've never been good at memorizing stuff unless I understand how it works (advanced statistics suffers from a similar glut of "magic recipes", in my experience).
Edit: the compilers class was the one that's proven to be the most useful over the rest of my life. I've written specialized parsers and so on a bunch of times.
I've never used the stuff from theory of computation again, nor can I imagine that anyone would who wasn't a researcher in that area.
I could see numerical methods being useful if I did a lot of down and dirty work with the physical world, but I mostly haven't done that..
Re: Ask HN: What is the most challenging programming course you have taken?
#74A Masters’-level security course at UT Austin. The first assignment was “implement AES and RSA from scratch, without Bignum, and on RISC-V in an emulator.” Just… why. Spoiler, I did not succeed at that, but neither did most of the class.
It honestly strikes me as too trivial an exercise for masters-level.
Re: Ask HN: What is the most challenging programming course you have taken?
#75Moreover in the same class we also had exams, in one exercise you had to write more SIMD code in x86_64 (over images, strings of utf-8 characters, etc.) this was all in paper and no reference was allowed except the Intel Manuals; that was just one exercise there were more in systems programming, etc.
I also had a bad time with Prolog and Haskell in a Paradigms class though those exercises were a bit more bite-sized and streamlined.
Non-programming wise, I'm having the hardest time right now with a Numerical Methods class which involves a lot of proof-based linear algebra, induction over matrices, etc. I also had a bad time with a Logic and Computability class.
Re: Ask HN: What is the most challenging programming course you have taken?
#76Earlier quoted context omitted.
I have some project ideas but they are too complex for me. I have domain knowledge but my programming skills are lacking + lots of ambiguity/confusion/uncertainty/fuziness while implementing. I haven't delved into low level programming much but I will give it a shot. I do mostly scripting and automation - I want to improve my programming skills to the next level.
What 'type' of project ideas are this? don't need to share the idea, but in general: webapp,networkapp, desktopapp, does it have a GUI, is it a CLI tool, etc. These different types will likely have very different learning paths and things for you to explore that will get you to a practical skill level in the areas you want quicker than going the assembly -> c -> c++ -> script engines route for example. This last one…
Re: Ask HN: What is the most challenging programming course you have taken?
#77Earlier quoted context omitted.
What 'type' of project ideas are this? don't need to share the idea, but in general: webapp,networkapp, desktopapp, does it have a GUI, is it a CLI tool, etc. These different types will likely have very different learning paths and things for you to explore that will get you to a practical skill level in the areas you want quicker than going the assembly -> c -> c++ -> script engines route for example. This last one…
I want to build a desktop gui app. Similar projects have 10000+ loc. It's math heavy and sometimes too complex for me while implementing. I haven't used chatgpt much because I wanted to improve my programming skills.
Other then that, if it's math-heavy/complex, maybe start with parts. try to identify what you want to be libraries and core logic etc.
you could start by making a math library in C, maybe with some bindings to a higher lvl language you want to write the GUI code in. It will be quite a project in itself already, and once done, you have part of your goal completed.
Selecting, testing and experimenting with GUI code is also tricky. There's tons of different libraries out there. You can use existing, or even write openGL/Vulkan code and write your own. If cross-platformness is important, maybe look at things like .net maui etc. as it has that feature as a core feature.
Also, before writing anything, look into how to structure such large projects. Structuring your project will help in many ways, including deciding how to break up the project, where to start potentially etc. etc.
There's many ways that lead to rome, but most will be 'chunk it up untill the size of steps is so small you feel confident you can take a step, then take it'.
Re: Ask HN: What is the most challenging programming course you have taken?
#78A Masters’-level security course at UT Austin. The first assignment was “implement AES and RSA from scratch, without Bignum, and on RISC-V in an emulator.” Just… why. Spoiler, I did not succeed at that, but neither did most of the class.
We did something similar back in the day, some 20 years ago, in an introductory course, although obviously not in RISC-V assembly. It honestly strikes me as too trivial an exercise for masters-level.
It did force me to get decent with bitshifts, which is always a useful skill. I found this [0] article about doing so with the 68000, and adapted it.
[0]: https://web.archive.org/web/20210225221011/https://www.atari...
Re: Ask HN: What is the most challenging programming course you have taken?
#79Programming wise, we had a class where we had to write some image filters in pure x86_64 assembly using SIMD, it was quite hard to wrap your head around the model of vectorized operations, and more so to debug your code either with GDB or visually (sometimes you messed up slightly and the whole image was borked, sometimes the image looked perfect but it was slightly off-by-one and the tests wouldn't pass). This was j…
Re: Ask HN: What is the most challenging programming course you have taken?
#80Earlier quoted context omitted.
We did something similar back in the day, some 20 years ago, in an introductory course, although obviously not in RISC-V assembly. It honestly strikes me as too trivial an exercise for masters-level.
The separate architecture put it over the edge for me, personally. I’m barely competent at C (especially back then) and may have been able to just manage had it been on native arch. It did force me to get decent with bitshifts, which is always a useful skill. I found this [0] article about doing so with the 68000, and adapted it. [0]: https://web.archive.org/web/20210225221011/https://www.atari...
In University, you were supposed to just pick these skills up all by yourself.