Mathematica/Maple/Matlab are awesome and they use algorithms which make computations faster, but they are proprietary and closed source. wxMaxima and Sage Math exist, and I need to enter this developer community. But its mostly composed of uber-jargon that I'm not yet easy with. I havent contributed to any open source software stuff yet. I want to dive in. I know C/C++ only right now. What do I need to learn? I work in Linux and Mac, but I've mostly been a GUI person. I dont type anything more than cp, rmdir/mkdir, cat, etc. on the bash prompt. I think I should learn shell scripting but I'm not sure how useful it would be for my goal. What other languages/skill would be required? Also, what component of these developer communities require coding, or is developing algorithms to do computations the hard part? How long should it take for me to start understanding their programs, and then start creating my own plug-ins/apps for them (if I use the right term).