Mathematics and C++
About month ago I had finished a massive documentation of the final project of my C++ course. It was a huge effort on my part and I felt that I needed a little break from blogging and documenting, to let my creative writing chops get a rest for awhile. So I decided to concentrate on something else for the start of the year 2019. Sort of like a New Year's resolution. Here is an update what I have been doing since start of January.
As the title suggested, at the end of the year 2018 I felt like my mathematical skills could also be much better and it became even more obvious when I wrote Position and movement page which highly detailed how particles are placed and moved on the coordinate plane. Especially wrapping my head around why cosine and sine can be used calculate an angle of movement from radians proofed to be really challenging. Thankfully there is ton of great sources online on the subject ranging from easy to understand to something for complete pros of the trade. There was the moment that made me realize, that in order to become better programmer, I must also brush up my skills in math. My last challenging math studies, meaning something that is more than basic arithmetics of 1 + 1 etc., were along the lines of ten years ago, so the same as my previous C++ experiences. I won’t let that slow me down, because if anything these three months have proved that I’m still capable of learning new things and adapting those newly learned skills.
So at beginning of January I made myself another goal. Find a good place online to learn math and try to implement as much of that learning as possible to C++ programming. After checking out many of sources such as what Udemy’s offering and Calculus Expert, courses by Krista King. My friend suggested Khan Academy, which is completely free of charge and it its mission is:
to offer practice exercises, instructional videos, and a personalized learning dashboard that empower learners to study at their own pace in and outside of the classroom.
So I created an account and straight from the get go, I’m greeted and asked what do I need to learn. Again, like with C++ programming I decided that it would be better that instead of bashing my head against the wall about something that I do not understand, it would be better to go as much to the beginning as possible. Instead of basic arithmetics and early math, both of which I know I can handle. I went and started from pre-algebra, which covers topics such as exponents, radicals, scientific notation, equations, expressions, and inequalities.
I set three simple goals to myself when taking these courses:
- Start from beginning and learn EVERYTHING of each subject matter, so no skipping classes and settling for bad test scores.
- See how subject matter can be applied to programming or is it even possible, since some concepts are humans only, such as long division
- Apply what I have learned to make a program out of it.
I feel that with these simple rules, I can apply what I have learned in practice AND make that important connection to the “real world” application also known as the important questions of “why I’m learning this?” and “for what purpose?”. So starting now I will post these little programs with explanation on what they are doing and what part of the Khan Academy’s studies they are build on. This way I can put in words what I have learned so far and provide example on where that skill can be used. On the second point I also try to find sources on is it even possible on computers, even if it is better to do using available computer arithmetic tools such as simply dividing 123812 by 1539.
I will be releasing all the programs I have programmed so far before the end of January, so there will be a lot of new content soon.
-sorhanp