Coding 101

This is a rocketry blog. It’s primarily dedicated to all my misadventures building and flying rockets. I try to document my successes, my failures, and lessons I’ve learned. But I do occasionally venture outside of rockets and try other things.

When math is prologue

For example, last year (2019) I decided to take some math classes at my local community college. There is an explanation for this, and as you might guess, ultimately it goes back to rocketry. I’m not an engineer or scientist, and I didn’t really get a solid education in math and science at the university level. My interests at the time were more in liberal arts – politics and history in particular – and so I ended up with an education in political science and law. I took a few math and science courses, but generally tried to avoid them.

But fast forward a few years, and here I am today building high power rockets. And rockets require a basic understanding of math and science and engineering, at some fundamental level. And it’s interesting, and I enjoy learning. So that’s my story.

black chalkboard full of math equations and drawings in white chalk
seems legit

I took a placement test last year at the local college and placed into calculus I (the first of a three part series). I ended up taking it, and then successfully completing the entire series over three quarters, each more grueling than the last:

  • Calc I covered the foundational topics: limits, continuity, derivatives, etc. as well as anti-derivatives and definite integrals.
  • Calc II covered techniques of integration and their application to definite and indefinite integrals, as well as some differential equations and polar and parametric equations.
  • Calc III covered a variety of topics including vectors, multivariable functions, partial differentiation, and double and triple integration, as well as series and sequences.

I’m proud to say I got an A in all three of these courses, but it wasn’t easy. In fact, each of them really pushed me to the limit to understand and master a tremendous amount of new (and complicated) material. The studying was intense, and calc III really pushed it to a feverish pitch. But I survived.

There’s something to be said for really expanding your mind and stretching your brain, regardless of the subject matter. I don’t deal with any math in my daily job, and a lot of the concepts in calculus are really fascinating. (If you don’t believe me, you might just need to try a better instructor. Check out Sal Khan’s lessons on Khan Academy, which I used early and often.)

On a related note: did you know that whenever you learn something new, your brain is literally physically re-wiring itself, growing new pathways and connections between neurons? That alone is a great reason to dive into something new and learn.

But I’m off on a tangent (no math pun intended). While 2019 was the year of math for me, 2020 has been the year of the rocket. I’ve documented this elsewhere on the blog, but this past year has been a wild ride: I built and flew my first (and second, and third) high power rockets. I got my level 1 and level 2 certifications in high power rocketry from NAR, and I made two attempts for level 3, which is the pinnacle of high power, at least in terms of formal certifications. (Admittedly both L3 attempts were unsuccessful, but I learned a lot, and I’ll get my L3 eventually.) I got an amateur “ham” radio license so I could use a flight computer with radio telemetry in my rockets, and I retooled the garden shed in the backyard as a rocket workshop. I think I did some other stuff in the past year, too, but I can’t remember everything.

Coding: all the rage

But 2020 doesn’t exclusively revolve around rockets for me. I also resumed my formal education by taking another class: a computer science course on programming, specifically in the Python language.

computer screen with python programming code
python programming language

I decided on this course partly because it seemed interesting – coding is, after all, extremely popular nowadays, with parents enrolling their kids in coding “boot camps” from an early age, and app development seems like a guaranteed lucrative career if not an outright path to billionaire status. But from my perspective, there’s a more practical reason – there are several engineering courses I’d like to take, and some of them require this basic computer science course as a pre-requisite. It’s nothing more complicated than that.

I’m just wrapping up the class this week, and I enjoyed it more than I thought I would. I’m not planning to quit my day job, but there’s a certain element of satisfaction in facing a problem that initially seems baffling or insurmountable, and then gradually solving it. This is just an introductory course and we only learned a few basic techniques, but once you understand them, they can be pretty powerful and can solve a wide variety of problems.

The concepts include things like: input, processing, and output; working with numbers; functions; decision structures (if/elif/else statements to test conditions) and boolean logic; repetition structures (for/while loops); value-returning functions; working with files; and sequences or lists. There’s a nice logical consistency to everything.

Now that fall quarter is ending, I have to decide what (if anything) to do for winter quarter. There are more science courses I would like to take: one is general chemistry – quite important in rocketry – and another is a geology course all about dinosaurs (!). Or I could just throw myself back into building and flying rockets. What do you think?