When I was choosing an advisor for my doctoral work in physics, he asked whether I'd ever programmed before. I'd had one C++ class my first semester of undergrad, about 5 years prior. To him, this was good enough, you either knew how to program or not. That philosophy is just as bad as it sounds.
As scientists, we maybe wrote code like scientists. We would write up some analysis suite; run it through a simulation; see if the results matched what we predicted. The code was unorganized and full of random hacks here and there. The whole team's software probably reinvented the wheel several times.
I didn't finish my research work. What work I had done had been circling around not very good results, and some (at that time) undiagnosed mental health issues had left me particularly unmotivated to do more. I would accept a master's, and in my last semester took a few courses in software design and development. (which eventually succumbed to the lack of motivation into audited courses).
I give my little bit of history here because with my first position out of grad school, I learned a ton of actually useful development techniques. Stuff that I've come to find isn't often taught to CS majors even. How to organize libraries. How to write unit tests. Why to write unit tests. How to use good version control software. How to handle continuous integration within a large team. Agile Development techniques and so on.
My blog here is to recount some of these useful lessons. Some will be aimed at these broader lessons, some will be specific patterns and techniques I've adopted in my unconventional path to development.
Finally, a note about the name of the blog. C++ was originally named "C with Classes." I feel like with the contemporary wordplay/pun app naming scheme, one might now call it "classC," pronounced "classy." Or the other read of 'classic' perhaps might be used if you hadn't heard it pronounced before. My main language is C++, generally in the 11/14 standard, sometimes with Qt (5, but 4 maybe), built using CMake mostly, and tested with Google Mock/Test. Usually I develop in Linux and cross compile to other platforms. I like CLion and Qt Creator as IDEs, but whatever IDE works for you is better than no IDE in my book.
No comments:
Post a Comment