On Jan 28, 5:02 am, Niles <nil...@gmail.com> wrote: > On Jan 28, 5:06 am, koffie <m.derickx.stud...@gmail.com> wrote: > > > A real programmer could also help with spreading his knowledge of good > > coding practices and software design patterns in the sage community. > > yes -- another one of my suggested ways a programmer could contribute > was going to be something like "check for naive coding mistakes", such > as were mentioned in the 'range' v.s. 'xrange' discussion a little > while ago. I didn't include it because I thought it would be so > boring that no one would want to become a sage contributor with that > goal in mind. > > But I do think it would be a great positive side-effect of having more > programmers involved. > > On the subject of whether or not non-mathematicians would want to > become involved in sage, here's one general reason they might be > interested: There are lots of bugs and performance issues in sage > that have nothing to do with mathematics and everything to do with the > programming challenge of merging different (sophisticated) tools into > a single system with consistent interface/usage principles. So people > might be interested not because of the output of the software, but > because of the programming challenge it poses. > > Maybe there are other (better?) reasons too? > > -Niles
As other people have observed, and I certainly have personally observed, there are vast differences in the productivity of programmers. A factor of 100, for example, may be seen in the productivity of the top 5 vs. the bottom 50 students in a class of 500, in an intro programming class (this, at UC Berkeley, where the bottom of the class is still in the top 6% of high school graduates.). If someone in the bottom 50 volunteers to work on a project for me, he/she may very well be a drain on the project: the time taken by any skilled co-worker to communicate with this loser will never be recouped. This is not assured -- some people are good at projects, poor in classes. But it is a better risk to hire an A+ student. While code control etc tools somewhat mitigate the cost of large teams, I think you really don't benefit by recruiting people who have, uh, time on their hands and not much else. In fact, extra enthusiasm in such individuals can be a real management problem. There are undoubtedly some skilled, knowledgeable, energetic, personable, (etc) people out there. They are much in demand and highly paid. By Microsoft, Google, start-ups, etc. Sometimes they even know a good deal about math, algorithms, user interfaces, etc. I would generally be wary of someone who came up to me and said that he didn't know anything about anything, but would really like to build a new user interface to whatever the hell my program was doing. Or if he said (referring to Niles' note) ... I could look up what is a polynomial and maybe program that up... I have found a few very valuable undergraduate students, but they were crackerjack programmers and generally well-educated and skilled in some technology that I needed but did not really want to learn. Like the 8th different graphics interface package I've encountered, or .NET in Windows. Or in one case, a student willing to become an expert in Postscript. And willing to hang around Berkeley (maybe taking summer classes), instead of working in industry. There are plenty of programming challenges without looking for challenges in debugging unfamiliar programs addressing algorithms in esoteric subjects. So why should someone work on Sage? Perhaps in order to work under some inspiring teacher/leader on some project with clearly defined goals that could provide a subject for a senior thesis, MS, PhD? I doubt that you benefit if you recruit unskilled, uneducated, unemployable, unstable .. unwashed? people. RJF -- To post to this group, send an email to sage-devel@googlegroups.com To unsubscribe from this group, send an email to sage-devel+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/sage-devel URL: http://www.sagemath.org