Yay! My Pluralsight course on Math for Programmers has just been published.
To quote Pluralsight’s write up on their blog…
In this course, Simon aims to teach you the mathematics behind how computers store and manipulate numbers and booleans. You’ll learn, among other things, how to read binary and hexadecimal numbers, why floating point numbers are almost always stored with small errors and how to estimate how big those errors are. You will find out how to simplify complex logical expressions. You will also learn how to use logical operators and bitwise flags to very efficiently store and manipulate sets of true/false properties. Similarly, the course features lots of advice on best practices for working with numerical and boolean data. Underpinning all this, you’ll learn how to see your data the way a computer sees it. Click here to access the TOC. Simon has more courses in production. Stay tuned!!
Strangely, the Pluralsight blog doesn’t mention the very nice picture of a cute black cat on a computer that you get at no additional cost in the module on logic. And yes it really is the cat that’s cute, not the computer!
Writing the course was great fun, although very intensive (that’s the reason why this blog has had no posts for several weeks!) And I’m now nursing battle-scars from numerous Simon–versus–PowerPoint skirmishes. I won most of them, but PowerPoint is a vicious opponent and you have to be quite sneaky against it – on one occasion I ended up unzipping a .pptx file so I could manually modify some stuff that the normal PowerPoint User interface wouldn’t easily let me get to.
Integers and floating point numbers are often more complex entities than we imagine. They have limitations and just like most things in programming, if you don’t fully understand them, they can occasionally catch you out with bugs. That’s why I wanted to write a course that teaches people the maths behind how numbers (and booleans) are represented, and how to use them effectively. Just to give you a flavor: What do you think this bit of C# code will output?
try { checked { double zero = 0; double minus = -1.0e-400; double big = 1.0 / zero; double minusBig = 1.0 / minus; Console.WriteLine(zero == minus); Console.WriteLine(big == minusBig); } } catch (Exception ex) { Console.WriteLine(ex.Message); }
I’ll post the answer and the explanation in a couple of days. If you’re wondering , the Math for Programmers course doesn’t tell you the answer to this particular problem, but it will give you enough information that you should be able to work it out. But then, maybe you can figure it out anyway…?
Very cool video. Really enjoyed.
Just one quick comment, in the section “negative numbers and 2’s complement”, around minute 9:10, isn’t the range from 2’s complement -2^(n-1) to 2(n-1)-1?
just recently watched this course. Superb and I liked your teaching style. You explained all the basic concepts in a clear manner.
It’s a pity you don’t have a donate button! I’d most certainly donate to
this outstanding blog! I suppose for now i’ll settle for book-marking and adding your RSS feed to my Google account.
I look forward to brand new updates and will talk about this blog with my Facebook group.
Chat soon!
lol. I’m guessing that comment was intended to be ironic, since I rather obviously haven’t had time to update TechieSimon for a few months. But rest assured, there are updates on their way. The delay is of course due to vast effort I’m putting into ensuring that the new updates sink to even lower depths of monotony than the existing articles. Unfortunately I have no plans for a donate button, mostly because I don’t understand the concept of money, so I probably wouldn’t know what to do with it if anyone did donate.
Hi Simon, I am watching your course it is very good, but is there any subtitle for it? it is very good course but I want to understand all concept because of that I think adding a subtitle can be a good choice.
Than you for your courses.
Hi Elyas, thanks for the feedback. I’m not sure where you mean you want subtitles? Do you mean on more of the slides?
Hi Simon, looking forward to this course, I’m just digesting the c# collections…
Hi Simon, just want to let you know that I am watching your course now and I really loves it! It helps me to see “things” much more clear than before! You should do some more courses!
Hi Yolanda, glad you’re finding the Math for Programmers course useful. I’ll definitely be doing more courses. I’m currently writing a C# Collections course, which I’m hoping will be released in November.