Fundamentals of Computer Science
I’ve been on the move traveling for work in some dynamic environments. While this will likely be my last trip as an Active-Duty Marine, it won’t be my last business trip. Continuing to learn and code on the move comes with its challenges. The biggest one for me is the time commitments involved with my current profession that have made it hard to get as much done in the last three weeks as I would have liked. While I probably won’t miss the 20+ hour workdays, there are plenty of things I will.
One thing I have been able to do while on the move is mix in some reading and studying. I picked up The Imposter’s Handbook, 2nd Edition, from Rob Conery. It is a book meant to serve as a computer science primer for self-taught developers. It is a monster of a book and a testament to Rob’s dedication. Elon Musk and many others stated that learning fundamentals are crucial to expanding further understanding of different disciplines. As described by many, you need a solid tree trunk to support developing branches. I thought refreshing and expanding my knowledge of core computer science fundamentals would be a good use of my time when coding is impractical.
I must say, I am enjoying Rob’s book. It has been a slow read for me as every page or two leads me off on a tangent, many of them put in by the author on purpose. However, I have managed to work through the basics of logic, Boolean algebra, computational models, and mechanical computers over the last three weeks. I am currently working through my understanding of complexity theory. I must thank Rob Conery for reminding me of Arthur C. Clarke’s 3 laws. It took me back to 5th-grade science class and rocket club, where we used a Commadore 64 to estimate trajectories of our model rockets. It was my first exposure to programming, and it seemed like magic to me. I would recommend this book to anyone interested in computer science; it will take you down some fun and likely personal tangents.
While I plan to finish my computer science degree, it won’t be for a while. The next year will be focused on increasing my coding skills and re-establishing my relevance as a software engineer. As much as I love the science behind computers, most programmers aren’t working on the fringes of computer theory to accomplish their day-to-day tasks. However, working knowledge of the fundamentals is always a good thing, even if it is just enough to inform my next google search.
As for the projects currently on my plate, I am balancing five, ranging from website improvements to small custom applications. I am constantly shifting between them as I prioritize based on the time and resources available. I expect to get the next round of projects completed shortly after completing my work trip.
In addition, I am working to line up an internship to put my skills to work later this year. I hope to have exciting news on that front soon! No doubt May will be an exciting month.