So I've been trying to write a program that implements the Gale-Shapley Algorithm, that Stable-Matching stuff. It took me little bit of time to fully wrap my head around the algorithm (mostly as I just misunderstood a couple minor aspects of its explanation), but I've learned something very important - I'm probably not ready for C++.
I can write simple programs well enough, and I understand the syntax pretty well, but when it comes to turning a real-world situation around into a functional program, I apparently lack some technical ability.
I WILL come back to C++, but before I can do that, there's some math knowledge I really need to cram. But therein lies ANOTHER problem - I don't even really know which FIELD of math is most applicable to computer science. I'm trying to study Calculus right now (again, I'll probably have to come back to this because I'm having trouble understanding THAT, too), but it would really help if I could get a rundown of what math concepts I need to fully understand before I can consider writing programs to implement complex algorithms.
Can anyone give me some pointers on what I should study next before I return to C++?
Well you're making the assumption that you NEED maths skills in order to program, but that depends entirely on what kind of programs you wish to make. I'd recommend learning basic stuff like calculus anyway but what else you'll want to learn will depend entirely on what kind of programming you'll be doing.
Are you a student? If so what course are you studying?
I do like how you refer to Calculus as "basic stuff" xD
Never been to college, but I've been coding over half my life. (I'm 25.) I just dove into C++ for the first time two weeks ago after speaking to the recruiter at the new Seattle Facebook office. She more-or-less told me if they were looking for PHP developers, I'd have a job, but they're looking for C++/Java people coming out of UW with CS degrees. (I figured I'd take the C++ route.) So I'm desperately trying to fast-track my education in C++ as quickly as I possibly can, and considering Facebook's website itself has a means to solve VERY complex puzzles in C++, I figured my best bet would be to learn it, finish some these puzzles, and walk back in and say, "Hey, I know C++ now - I can has job?"
But my total utter failure to successfully implement the Gale-Shapley algorithm has left me thinking that my math skills are going to need some work before I can continue figuring out C++ - For some reason, I just can't seem to figure out how to get the code to work. But I'm not even entirely sure if this is because of a lack of mathematical knowledge or just C++, so right now I'm kind of at a road-block and trying to figure out where to go from here. That and it's a little disconcerting that some of the comments I've read about this puzzle have been that it's the "easiest one they have." ><
haha well calculus is a huge field but you start to learn some of it like differential calculus in secondary school, here in England at least, so some of it is pretty well known by most I guess. Not all of it by any means. The point I was trying to make was that many (including myself) are not very good at maths but can still program. I'm not familiar with the gale-shapely algorithm so if you want some more specific help with your problem why not give it a go and post your code and explain what it's meant to do?
Yeah, our primary/secondary education system's kind of a joke. I know math isn't entirely required to become a good programmer, but if I want to be even close to the same caliber as the guys Facebook is picking out of the University of Washington, I'm going to need to know some of the more advanced stuff - if only I knew WHICH advanced stuff I need to learn, Math is broken into SO many subcategories it's difficult (although I do understand a few things, like how physics isn't too applicable unless you're programming games.)
I guess I can post my code for assessment but last time I tried that I got very little response. (And by that, I mean none.) Mind you, as a novice, I know my code is going to be completely laughable but I wasn't so much concerned with writing optimized code as I was simply solving the puzzle. (My next submissions I intend to be better, but this is sort of my warm-up.)
if you got any question people over there are nice. if the channel name isn't filled in then it's #cplusplus, some of the people from these forums are on there, and fill in a nickname that makes it easy for people to identify you with.