I have a desire to see things proceed quickly. This is, in general, a good thing – but not without drawbacks. It gives me an inflated expection as to how quickly I can ‘get into’ a project. I started thinking about this topic when I considered the python IDEs/editors available and wondering when there’d be one I liked. I realized that often me (even as a developer) has a seriously skewed idea of how long projects can take to reach fruition.
For example – I’d like work on the following:
parrot
new packaging system
X replacement (now more for architectural cleanliness than anything)
python IDE
I’d like to see progress on:
A unified GL/video API for linux that deals with both console/graphics mode and is accessible by any windowing system
SystemServices
Dashboard
et al.
When I wondered why it took so long to see progress I started to consider my own experience. Academic projects tend to be simple. They tend to be less than a couple of thousand LOC (I’m probably overestimating) and you tend to build the architecture yourself. Not only that, the project is tied to whatever you’re learning so you don’t have to educate yourself on the ideas behind the design/implementation.
Now imagine you have to work on a 1M LOC project. It’s been written over a period of years using and architecture that’s not well documented and that someone else has designed. There’s a maze of files, directories and build scripts. It uses concepts that you may not be familiar with. This is the reality of most code out there. The truth is, if you want to contribute you must be willing to put in an amazing amount of time to understand the architecture, its strengths and its limitations. You’ll probably do this through a combination of small fixes and general interest. After that’s done you can start doing more intensive work/redesign. But even then, unless you’re Software Superman (and I’m sure there are quite a few) you won’t be able to tackle massive changes.
I think I forget just how long it _can_ take for projects to reach maturity. It took over a decade of concentrated effort by a large number of contributers for the kernel to reach the state its in today. Both GNOME and KDE have seen years of effort put in by contributers. X has probably seen its fair share of time spent. In this day and age where Slashdot brings us to the minute news of the latest and greatest software projects, the latest alternative to X and so on…its easy for us to forget that behind the latest release was hours of effort learning, understanding and lots of failures.
It’s something I’m going to have to come to terms with.
I here that. I’m tackling at least 3 or 4 projects at one time that were bilt over the course of many years. Each one was originally unfamiliar, and I was a little afraid to make changes that were required, but now, after becoming more experienced in the environment, I go back, and make my changes more efficient, make major changes with confidence that I know how the system works, and am ready to tackle anything that comes along involving any of the 3 or 4 projects.
It’s what we’re most likely to see if we work within a company, and NOT start something off by ourselves. Still, building from scratch is ALSO a thankful accomplishment after months and months of work :)
Holy shit, I personally have lost the effort for almost anything computer-related. Go fucking figure when I’m in fucking CS. I’m in a similar state of mind as I was during CF2000 when I declared I no longer wanted to work on the web site, and then scrambled to get it done by staing up for over 50 hours.
That said, I’ve learned a lot since then, and at the moment, I have no large projects I am currently working on (I have some ideas I am noodling with, though).
I think the main reason I no longer wish to persue any sort of computer-related projects in probably 100% based on the idea that I don’t have the time/need/want to learn/start something new, and I certainly don’t have the time to sit down and try to understand some emerging technology, only to either not beable to afford using it, or having it become obsolete in a few months.
I’ve realised that if I continue learning about things like UNIX/Linux administration and network architechture, all I’ll ever amount to be will be the equivalent of a repair man — answering house calls to lonely house wives who can’t get their fucking Internet porn to load. Christ, that’s the better part of my CS-McJob anyways. The corporate world sucks when you’re trying to learn new things. My kingdom for the chance to graduate university so I could become a graduate student and fucking develop new things.
The key is not to look at everything in so depressing a light. It doesn’t help at all and it makes the situation look much worse than it is.
Firstly, like I’ve said – maybe we’ve forgotten how long things actually take to accomplish. We’re so used to instant results, short academic projects and the material being presented in bite size pieces to learn that we forget that it takes a _long_ time to learn new stuff. We can’t let ourselves just ‘let go’ cause its boring – cause if that’s the case then _nothing_ will happen.
Part of the field we’re in is learning to pick new technologies to learn. Ok – some will be dead ends. But some others will turn out well. That’s part of life. But there has to be the _willingness_ and the pure desire to want to work on that. Cause if there isn’t nothings gonna happen. For me – I’m not very fond of GTK (although I use GNOME) so my efforts at learning it have been sporadic and short lived.
Well no, you don’t have to be a repair man. Maybe you’ve got to try and learn some other skills that you can point to and say “I know this better than who ever else you’ve got” and get the bucks for it. I think we can’t look at our life within the framework of a company only. After all, our job is done at 5:00/6:00 or whenever. Maybe after we get out we can take courses, or read up on subjects ourselves, tinker.
I have no illusions about graduate school. Coming up with ideas and developing them is hard and I’d say most of the time its pure slog. It’s only after two years of concentrated effort (doing research, the grunt work) that you can truly know that you’ve made something happen.