Linux Inside – A book-in-progress about the Linux kernel and its internals

Linux Inside” is a book-in-progress about the Linux kernel and its internals.  You can read it online or download as a PDF.  It’s also available in several languages.  Some of the things that you’ll find inside are:

  • The boot process
  • Initialization
  • Interrupts
  • System calls
  • Timers and time management
  • Synchronization primitives
  • Memory management
  • SMP
  • Data structures in the Linux kernel
  • … and more.

 

Netsim – a network simulator game for teaching

Netsim is a simulator game intended to teach you the basics of how computer networks function, with an emphasis on security. You will learn how to perform attacks that real hackers use, and see how they work in our simulator!

Netsim is completely free to play.

JPEG Huffman Coding Tutorial

I came across this rather useful and practical tutorial on Huffman Coding in JPEG images.  It looks at a very small and basic black-and-white image, and how the size of the data and overhead changes between different image formats, and then in more detail, how the Huffman Coding helps make that happen.

Unless you are dealing with compression, image formats, and binary trees on a daily basis, this tutorial is a good memory refresher of those college days.

350+ Data Structure Problems with Solutions

Here is a rather extensive collection of 350+ data structure problems with solutions.  The list varies from the usual searching and sorting of values in an array, to string manipulation, binary logic, matrices and graphs.  No matter how high was your grade for all those Computer Science courses back in college, or how long have you been programming, I guarantee you’ll find a challenge or two in this list.

From a very brief couple of hours look at the list, my favorite ones seem to be around the chessboard problems, such as this chess knight problem for finding the shortest path to destination using a queue.

What are some things you wish you knew when you started programming?

Quora thread on “What are some things you wish you knew when you started programming?” is a goldmine of wisdom.  Irrelevant of how experienced you – whether you’ve been programming for decades or just thinking about a new career path, which programming languages and technology stacks you use, whether you’ve completed format education or taught yourself everything you know, I’m sure you’ll find valuable lessons and food for thought in there.