

Do I Need To Understand Low Level Programming And Memory Management? - fekberg
http://blog.filipekberg.se/2013/09/03/do-i-need-to-understand-low-level-programming-and-memory-management/

======
vrnm
The problem you need to solve determines which algorithms you need to use and
which data structures allow those algorithms to perform well. However, that's
just whiteboard computer science.

Nowadays, performance depends almost exclusively on memory bandwidth usage and
spatial and temporal memory locality, i.e. the only thing that matters is how
much memory you are moving and how you are traversing it (the number of
additions/divisions/branches doesn't matter that much).

In other words, your machine prefers data structures with good memory locality
which determine which algorithms you can use and which problems are fast to
solve. That is, in real life (as opposed to white board computer science) the
order is inverted.

The question is: are you constrained at all by the machine? Because if you can
solve the problems you want to solve without knowing about memory, then you
obviously don't need to know about memory. On the other hand, if you are
constrained by computing time, power consumption and so on, then you either
learn about memory or can't solve your problem.

Again in other words, if you can get the job done in
ruby/python/haskell/java/lisp... then do it! You'll do it faster, nicer,
probably more maintainable... However, if you cannot get it done there, you'll
need to use C++/C/Fortran/D...

------
rasher
I think question is too general. In some part of course, and in other side not
particularly. According to C#. It's good to know topics e.g.: stack, heap, gc
(type of generations) common things, which are covered in "CLR via C#" it's
enough. But detailed information e.g. about MSIL and stuff around it's of
course another addition to your skill but only if you use it day-by-day. It is
waste of time for me, junior dev, learning topic which I forget at some
months. In nowadays is better to thinks more general and know essence of a lot
technology. Using imagination, metaphors to understand ideas. And master
skills that are useful to us. I know about your course on pluralsight and
book. We can go dipper and why not learn all processor instructions which are
generated from MSIL? And again, maybe to some one is niche. Or it is value to
his day work.

Please, I read your blog post, SQL Injection or boxing/unboxing it's
elementary and do not know anyone who would not have heard about it. SQL
Injection which generally ORM fixes and boxing/unboxing (C# 1.1 -> C# 2.0).

