This is the sixth bimonthly 'What are you working On?' thread. Previous threads are here. So here's the question:
What are you working on?
Here are some guidelines:
- Focus on projects that you have recently made progress on, not projects that you're thinking about doing but haven't started.
- Why this project and not others? Mention reasons why you're doing the project and/or why others should contribute to your project (if applicable).
- Talk about your goals for the project.
- Any kind of project is fair game: personal improvement, research project, art project, whatever.
- Link to your work if it's linkable.
I'd say it's a little of both. Enterprise programming below a fairly senior level doesn't demand much knowledge of algorithms, complexity theory, formal language theory, or most of the rest of academic CS; in a lot of jobs you can quite easily grind along for years without writing so much as a binary search. On the other hand, it does often demand knowledge of unusual tools and language features, enough flexibility to fit your head around arcane and poorly documented architecture, and above all the ability to understand and fix other people's crappy code -- something that academic CS does a very bad job of teaching.
That's a fairly shallow skillset, but it is a broad one.
Is enterprise programming special in this regard? From the description it sounds like game developers, embedded developers etc. also have to face similar problems.