Earlier quoted context omitted.
Could someone elaborate on what they think a good developer should "learn cold"
Linear algebra, discrete math, calculus. The mathematical underpinnings of algorithms and data structures. Turing machines will be a lot more useful once you actually know how to use properties to prove more things. A kindergartner can recite the layman description of an infinitely long tape with ones and zeroes but such simplistic understanding has very little practical use if you don't understand how it fits into t…
Computer Science from the Bottom Up (2016)
71–79 of 79 posts
Re: Computer Science from the Bottom Up (2016)
#72Earlier quoted context omitted.
When I did my CS programme decades ago, we all started with Scheme, which is very high-level, and forced everyone to focus on the algorithms, the math of it, instead of what the hardware is doing, or how the Scheme interpreter is implemented. It gets you going, thinking about values and execution and iteration and recursion. Starting with bits and bytes and hardware would be pretty goddamn boring, I think. You'd lose…
It's interesting as I studied Computer Engineering which focused on the hardware and low level, with some programming on top of that. I was pretty good at that too. However afterwards the Google-style interview algorithm questions do not come naturally for me, and you'd think I'm a complete imposter by the look in some 20-something interviewers eyes, even though have been programming for 20 years...
Would fail miserably in these Google style tests.
I think the difference is that our brains are wired to solve issues from first principles. Some of the best CS I've come across use pattern recognition to determine the best algo to apply to a situation.
The end result is the same code, but we speak different languages until we arrive at the same end. Other design methodologies help give us a better framework for cross communication.
Eg. Voronoi diagrams. Absolutely fantastic way of doing mesh reduction. Took a CS guy to point it out to me ... (I was mostly thru designing my own).
Eg. Same CS would never consider using ASM to save clock cycles.
Re: Computer Science from the Bottom Up (2016)
#73Re: Computer Science from the Bottom Up (2016)
#74Earlier quoted context omitted.
Linear algebra, discrete math, calculus. The mathematical underpinnings of algorithms and data structures. Turing machines will be a lot more useful once you actually know how to use properties to prove more things. A kindergartner can recite the layman description of an infinitely long tape with ones and zeroes but such simplistic understanding has very little practical use if you don't understand how it fits into t…
I'm not saying these aren't important but for most developers this stuff is rarely going to be used. Most "developer" jobs are not math heavy. I'd rather push someone to learn how to write clean code and focus more on the engineering aspect.
Re: Computer Science from the Bottom Up (2016)
#75While not technically all of what's covered in CS, in my experience with a PhD in Comp. Eng., 8 years as an AF comm officer, and 3.5 years in the commercial sector as a soft. eng., this is vastly more useful than most of what's covered in a CS curriculum. The CS curriculum probably made more sense back in the day when everyone was essentially an embedded developer. But nowadays, the most useful knowledge I have is th…
> the CS curriculum There is no 'the' CS curriculum. You must be thinking of one particular school's CS curriculum, like maybe your own? Another school's CS curriculum is going to be wildly different.
A curricula, OTOH, that prepares a student to be a good developer should also have a heavy emphasis on: - #1 is write a lot of code with a focus on good coding practice, preferably in a combination of Python and Java or C++ - Understand Linux and be proficient with command line tools
Re: Computer Science from the Bottom Up (2016)
#76Earlier quoted context omitted.
Scheme is deadly boring. You'd lose a lot of students that way. Starting with bits and bytes and hardware would be pretty goddamn fun, I think. I first really got into things with assembly language for DOS. It was interesting to directly control the IRQ controller, real-time clock, interval timer, and keyboard interface. These were all motherboard chips that could be messed with. Years later I passed a mandatory Sche…
You make an interesting (unsupported) assertion here. You, who find talking to an IRQ controller, real-time clock, etc. interesting, find Scheme boring, therefore others (who may not share your interests in such details) will also find it boring. Bit of a logical fallacy there...
At this point, I'm more or less certain you'll rarely find situations where you have a mass-appealing context. One students' dream context is another students Most Boring Possible. You're probably better off having many diverse contexts and hit all the MUSIC guidelines (eMpower students, Useful to their long/short term goals, make students Successful, make it situationally and domain-based Interesting, and give people opportunities to demonstrate that they Care about each other).
Re: Computer Science from the Bottom Up (2016)
#77Earlier quoted context omitted.
It’s a typo: he meant 0xa0 or 0x0a and the shift is the four positions to the right to extract the top nybble of the byte.
Thanks, I believe this should be clearer with https://github.com/ianw/bottomupcs/commit/d8dfd3dc6be5795f4b...
Branch Prediction
pipeline flush, predict taken, predict not taken, branch delay slots
Re: Computer Science from the Bottom Up (2016)
#78I remember reading this a few years back. I stopped reading at some point because there were so many errors, unfinished bits, and just flat-out garbage. Sorry to the author but this needs to improve. It's a good start, but you need to invite fixes and implement them. Put your email address on every single page and invite fixes and then implement them. This could be an awesome resource, but right now it's too full of…
Everyone who tries to create something eventually comes up against being told their work is flat-out garbage. Unfortunately I don't think there is a vaccination for it, and one must just take their chances and hope to build a mental immunity so it doesn't ruin your day. It's sad to say that many don't develop a resistance, and I think we lose many good contributors that way.