In one sentence, describe what the following article is about:

System Programmers deal with the science of programming not the specific implementations of it. Do not tie yourself to a specific platform.     This can be done by:  Getting an idea on how operating systems are installed. Learning how to install different operating systems on one PC (optional, but recommended). Installing more than one operating system. Do not install any helping packages on the systems; instead, use the bare functionalities provided by the operating systems.   You will later learn the assembly of other platforms/systems.  Pay particular attention to Standard Template Library (STL) and maybe Active Template Library (ATL).     This will be easier if you choose a Unix-based operating system. Understand the system you will be working with later very well. First create small system utilities. It is usually useful to:  Trying to recreate small tools that are already there on your system. Trying to port utilities available in other operating systems to yours. This is the only place where the first programming language matters. Learn ANSI C first, not C++, not C#, not Java and not D. Then learn C++. Restricting the first language to C and C alone is because systems programming requires that the programmer be familiar with the following concepts:  Real and full compilation of source code. Low-level object output files. Linking binaries. Low-level machine-language/assembly programming. The C language is said to be a disguised/easier to learn assembly by some. It also supports inserting assembly language code in code whenever you please and it is only procedural (like assembly).

Summary:
Understand what system programming entails. Follow the first three steps for Desktop Applications Programmers. Take an introductory course in Linear Algebra. Take a course in Calculus. Take a course in Logic and/or Discrete Mathematics. Introduce yourself to different bare operating systems. Take a course (or alternatively, read books) on computer hardware architecture. Develop an understanding of the different computer hardware platforms. Get an introductory familiarization with the assembly language of the hardware platform/operating system of choice. Learn the ANSI C and C++ languages, along with the concepts of procedural programming. Understand and practice C/C++ standard libraries on the platform of choice. Search online resources, books and courses to get an understanding of the C-flavor of your specific platform. Practice creating advanced code with C and C++. Learn more advanced Assembly. Take a course in operating systems design. Find and read documentations of your specific platform of choice. Practice your acquired knowledge. Learn languages in the most helpful order.