views:

116

answers:

3

I've kind of asked this before but I don't think I asked it properly, so I'm changing it up and hopefully I should get better responses.

I'd like to change the nature of my day job, Rails, with something that requires more thinking, something that requires math hopefully. I'd really like for the change to be gradual. That would help my resume look more coherent when I say that I did 3 years of Rails plus something else for 1 year that was still related to the web.

In the last version of this question, I got a few replies that really didn't take this into account. Remember, that my target job market will probably be a niche corner of my current job market. I'm not in the position to break into something entirely new without some amount of prior experience.

Also, in contrast to the previous question, I'm changing the format so a broader audience can see where I'm going here, and could potentially respond. Here's a few possible paths I could take. Please try and consider these three points with your answer.

Computer Graphics Algorithms

Where is the math? Computer graphics is well known for having some very math-oriented problems. I'm not against doing eye-candy but doing eye-candy that a requires little if any technical understanding doesn't sound fun to me.

How is it related to the web? While not immediately obvious, computer graphics comes up during web development in the form of data visualization and fancy marketing animations. Also, Flash makes it easy to demo such a project on the web.

How would I promote myself? I'd probably have to implement some specialized open source graphics algorithms for Flash. Fisix comes to mind as an obvious example. Alot of the info-aesthetics work is good (but some of it is also too simple). Not a lot of employers would look for the level of sophistication I would bring, but that's okay since, if I did this correctly, I could potentially move into game dev, where such skills are obviously in demand.

Statistics and Machine Learning

Where is the math? Statistics is a branch of math I'm not entirely familiar with, but that's okay, I'm a fairly quick learner. Machine learning requires a fair bit of calculus and linear algebra, both of which I'm comfortable.

How is it related to the web? The most obvious application of machine learning to the web would be recommendation algorithms, although statistics could be useful for understanding user patterns or other data that is collected by many sites.

How would I promote myself? One possible way would be to set up a dummy e-commerce site with products, wish lists, consumer data, etc., it could be dumbed down enough that managers could understand why I'm important. The same idea would probably work for statistical analysis provided it included fancy looking charts.

Performance Intensive Web Services

Where is the math? Performance circles around data structures and their algorithms, which is at the core of real computer science.

How is it related to the web? High traffic sites need services that are fast and reliable, thus the motivation.

How would I promote myself? This would be the most difficult path since I assume these employers would want proven experience in a real work environment, but I could potentially break in with my current experience and the right connections.

Can you think of any others? If you'd like to bring up your own example, try to fit the format. Also, if you're a person who has made this transition and can share about how you did it, you're a likely candidate for being the chosen answer.

A: 

Through a project I did for Grontmij in The Netherlands (Trett Consulting is their American branch) I know that there is a great shortage of programmers who are also familiar with the Geo (as in Geography) sciences. They'll do projects like charting a city's sewage and water transport system for renovation, or determining where a tunnel or a bridge or a new neighbourhood could be built.

I don't know whether it involves enough math for you: a former colleague of mine took a two-year postgraduate course at the University of Wageningen in The Netherlands before starting work at Grontmij, but before I knew him he was a programmer on a Norwegian oil rig ship so he had prior experience.

Elise van Looij
How is this related to the web?
Farley Knight
@Farley - in all fairness, your intent to stay web focused is fairly buried in your long question.I think Elise's answer is actually quite relevant. If you want to stay in the web, then you're likely never going to be doing much, if any, hardcore math. Rather, you'd likely end up writing the back end libraries that drive the data consumed by the web front end.
Metro Smurf
I don't see how it's buried if it's in the title. Also, I think I stated clearly that I'm interested in moving away from it slowly by taking on new work that is related but requires more specialized training. I don't think this is entirely unreasonable.
Farley Knight
I've included more web-focus into the question. I hope that's enough.
Farley Knight
A: 

Don't forget doing things like data cubing. It's not "web" specific, but a lot of companies will have web-interfaces to provide access to the reports built off of them.

From Wikipedia:

In computer programming contexts, a data cube is a three- (or higher) dimensional array of values, commonly used to describe a time series of image data. If the images are in color, then the array is generally four-dimensional, with the dimensions representing image X and Y coordinates, time, and RGB color plane. Many high-level computer languages treat data cubes and other large arrays as single entities distinct from their contents. These languages, of which APL, IDL, NumPy, PDL, and S-Lang are examples, allow the programmer to manipulate complete film clips and other data en masse with simple expressions derived from linear algebra and vector mathematics. Some languages (such as PDL) distinguish between a list of images and a data cube, while many (such as IDL) do not.

Stephen Wrighton
I think my imagination is failing me as I have a hard time seeing what kind of data mining companies are related to the web or vice versa. Could you give me some examples?
Farley Knight
here's an example: http://en.wikipedia.org/wiki/OLAP_cube .
Stephen Wrighton
A: 

Hi

Rails + Maths ? I'm not sure how much of that there is going on. I think you need to be a bit clearer in your own mind (don't give a stuff about what any of US think) what you want in your next job.

What I think (so don't pay any attention) is that the more maths you have in this profession the better, there are a lot of programming jobs which are only available to people with good maths. Sure there are a lot which are available to people without good maths, but you rarely here of someone not being hired because his/her math skills were too much. So I think that you should let go of Rails. To a Fortran programmer such as me they sound like Training Wheels anyway.

Figure out what you want to do with maths. There's a gulf between coding high-performance hard-corescientific visualisation software (for which you'll probably need C, C++, maybe Fortran) and doing nice pictures for web-sites using the HPHC software.

Regards

Mark

PS Sorry, couldn't resist the swipe at something invented more recently than 1957.

High Performance Mark
A few responses:1a) There is a such thing as too much math although it's probably not what you're thinking. Currently, the math PhDs market is oversaturated, simply because the senior faculty isn't retiring fast enough for to make new positions available for them. In reality, many of these people have been studying very theoretical and abstract topics which aren't related to reality, so in a way, they dug their own holes.
Farley Knight
1b) Also, from what I've read, some hiring managers look at a resume with a lot of education as someone who is a "professional student", i.e. just likes learning and not really getting things done. Mathematicians are often seen in this light. I personally pride myself on getting things done but what gets in the way is the trivialness and simplicity of most tasks I'm given, where I feel more like a construction worker and less like a scientist.
Farley Knight
2) I'm way ahead of you on letting go of Rails. My day job uses it, but as far as personal enjoyment, I had some fun with it a few years ago, but these days it's becoming more like Java. When I do do any programming on my own terms it's Haskell, but I don't want to, say, use Haskell to do web dev, since that's not really what it's designed for in the first place. It's way more oriented towards correctness, with composability a very close second, and performance just behind that. Scripting language it is not, but the web almost demands scripting with stuff like HTML and CSS being dominant.
Farley Knight
3) As far as C, C++, I was trying to dive back into C, and did so with some success, but I still couldn't see much of a niche for Ruby extension writers or maintainers. I could be wrong though. C++ on the other hand, I only scratched the surface of this huge beast when I learned it the first time around, and I could probably re-immerse myself at some point. But it's only a language, and I'm looking for an application to apply it to.
Farley Knight