So today is Labor Day 2018. It's after 2PM so I've wasted more than half the day, but I'm about to begin a C++ deep dive. I've found that the only way for me to really learn anything programming related is to block out everything else, turn up the electronic instrumental music (or pink noise), disconnect the WiFi, and dig into a book on the topic, typing in code examples and completing exercises while changing them to test my understanding for hours at a time. I'm challenging myself to get my knowledge of C++ to match my current level in Java. I'm supposing that since Java is a C descendant and that I'm already vaguely familiar with C, I should be able to pick up the OOP bits of C++ fairly quickly looking from a Java perspective, though fully aware of the possible pitfalls of that approach. I'm going to attempt to give a full 6+ hours to a book I've had for a long time, Sam's Teach Yourself C++ in 1 Hour a Day. My goal is to complete as many hours (chapters) as possible by bedtime. I will complete this post then with what I've managed to retain. Here we go at 2:30 CST on 09/03/2018.
So here we are at bedtime, 9:10PM CST, 09/03/2018, a little under seven hours after my decision to begin reading a book on C++. I made it to chapter 6 which covers control structures. This may sound like real progress, but while I don't count it a total failure, for reasons I'll talk about later, my progress today was mediocre at best. I say this because I took a total of about an hour worth of breaks to barbeque for dinner, take a short walk, visit my mom, eat dinner, and had what amounted to a long chat with my wife between paragraphs, all of which is to say I wasn't as hyper-focused as I might've liked the entire time.
Now, as for why I'm actually pretty pleased with myself about today's little deep-dive: I found that I actually really like C++. My suspicion that perhaps somehow knowing Java at a solid late beginner-intermediate level would make a similar yet lower-level language like C/C++ more approachable was right on target. I found myself actually completing the end of chapter exercises and inquisitively modifying the code listings from the lessons with real curiosity. things like includes and namespaces make total sense given my knowledge of imports and packages as is the case with other concepts. I actually feel motivated to keep going with this. I am setting as an intermediate goal making it to chapter 12, which covers inheritance, by tomorrow afternoon. This will be a serious challenge given tomorrow is a work-day, but the chapters of this book actually live up to their goal of being digestible in an hour. Given that I'm not a total beginner, I'm able to skim the content catching those little gotcha sort of things that differ from Java, like the possibility of representing booleans as integers. Chapter 12 is my goal because chapter 8 covers pointers and references which I know are very important in C/C++, and 9-12 cover OOP which for all intents and purposes is the C++ part of C/C++.
Ultimately, I think what's intriguing me most about C++ is th fact that it feels so much closer to the metal. I suppose that's because it really is but given my interest in the inner workings of computers, that puts me right where I wnat to be. With Java, although I could realistically accomplish anything possible in C++, I was always very aware of the fact that my code was running in a VM and not directly on the chip, and then there's the fact that you don't get a real, cold, hard executable when you compile, that just somehow sort of irked me. (to be cont'd)...