>>93785When you properly study programming - that is, in college, in engineering - the first thing you learn is how to make algorithms. Then, pseudocode. Then, high-level, near-pseudocode languages (the standard in MIT was LISP with SICP, but that changed to python a number of years ago - they're both extremely high-level, in any case). Then, low-level languages, and electronics at the same time (making simple robotic arms and making them move with C and shit). Then assembly, and then you go back to higher-level languages.
That's the proper way for the reasons I stated. Taking the pointer example, you don't learn how to interact with the RAM if you haven't learned why you're interacting with the RAM.
Also, you SHOULD be penalized for shoddy indenting. Readability is key, and the most essential part of on-the-go documentation. And proper indentation is one of the most essential parts of readability. And anyway, most text editors, or certainly all the text editors made specifically for programming, take care of maintaining a proper indentation for you. Even when it comes to mixing spaces and tabs, if you can't set your editor to insert spaces instead of tabs, you need a new one. Even fucking geany and notepad++ do that.