Although any programmer may find himself content to writing code at breakneck speeds using Python, Ruby and the more “modern” languages, his/her repertoire is never complete without the understanding and mastery of the C/C++ family of languages. When dealing with C/C++, you are very nearly at the bare-metal level; the operating system libraries and all the intricacies of the hardware lay open to you. Regardless of your area of interest, some familiarity with these languages will go a long way in improving you knowledge of computers as a whole.

Now you may have learnt and even be good at C/C++ then why wait, jump into OS development. You can start by familiarising GNU/Linux system (We may use Ubuntu or Mint and develop for Debian).Learn some basic commands like echo,ls,mv… Now the interesting part, try to code them in C, these simple programs they are called the core and officially named core-utils.So do it and you are ready for an OS to come.

Resources

  • www.tutorialspoint.com/cprogramming
  • en.m.wikibooks.org/wiki/C_Programming
  • www.cprogramming.com
  • www.cppreference.com (For reference of commands, header files, etc)
  • http://codeforces.com/problemset?order=BY_SOLVED_DESC (For coding challenges after learning C/C++)
  • https://github.com/coreutils/coreutils