Now What?

Brian C Cunningham has written recently that he appears to have been pigeonholed as a Blub programmer. In spite of extensive reading and experimentation with various cool languages and tools, he doubts that he can make the jump into an environment where he can continue to grow his skills– he feels like all anyone sees in him is “Blub programmer, x years of experience.”

I’m pretty much in the same boat.

I mean… will any employer possibly care if I told them that I’ve worked through half of SICP, internalized maybe thirty Emacs commands, can do some moderately interesting stuff with sed and pipes on Unix, and can write crappy Perl code? Will all of this stuff remain merely a secret weapon of mine while I continue on in work environments where such tools are unknown, actively feared, or completely off the radar?

I guess I don’t know where I’m going with all of this, really. I mean, I started off with Blub because I wasn’t too picky; I just wanted to be a programmer and it seemed to be the quickest way to get behind a compiler. As far as all of the open source type stuff went, I maintained a fairly Han Solo type attitude: “Look, I ain’t in this for your revolution, and I’m not in it for you, Princess. I expect to be well paid. I’m in it for the money!” But slowly, Open Source tools began to take over in my pet projects. It all started with NUnit, picked up steam with Subversion, blossomed with Emacs, and finally got clinched with Perl, GNUWin32, and cygwin.

Frankly I’m overloaded with the number of lame tools that I have to use at work. At any given time, I’ll have two or more IDE’s open, two or more Office programs, text files, folders, emulators… all of it open all day. I’ve stopped learning how to do new things with most of those tools because it’s a waste of time: the next iteration of any of them might crash or be so bloated it won’t work. They might replace my favorite feature… or the company that produces the tool might go away and suddenly have the worst support in the universe. Most of the best features of these tools are just mediocre unscriptable versions of stuff that Unix has been doing perfectly well for years.

(This is the point where I start frothing at the mouth, shaking my fist at “the man”, and decrying the evils of Bill Gates, Micro$oft, MS-DOG, Windoze, and the Steve Ballmer dance thing.)

My last Blub project was really awesome, though. I even see now how to completely remove my greenspunning elements and use a Perl script to generate the Blub code to do the fancy stuff specified in a programming language of my own invention– no one need ever know about the weird stuff I do just for the fun. If I leave my job, I can effectively leave behind only Blub code with hardly any trace of wackiness in it.

But it’s not about money anymore. It’s not about raw productivity. It’s not about doing stuff a certain way just to feel cool. It’s not even about some sort of rabid “freetard” ideology. It’s about tools that are worth investing in because I know they’ll be there ten years from now. It’s about tools that don’t constantly annoy me. It’s about developing the way I want to develop instead of being locked into somebody else’s vision of what a Mort/Rockstar/Elvis should do. It’s about using a set of tools that are freely available so that I have a common frame of reference with the handful of other developers out there that actually care.

But honestly, I don’t know what the next thing is. I’m a genius with SQL. I’m competent with regex’s. I can “get things done” with Blub. Outside of that scene, I can do little more than frame a mediocre question. Now what?

I really don’t know.

I have no idea where this leads. I never really chose anything per se… it’s all just a net conglomeration of thousands of small decisions that I make everyday.

Now what?

Advertisements

14 Responses to “Now What?”

  1. Srdjan Says:

    Now, I ask you if you wanna start a company with me. Just joking. I’m in the same boat. I’ve gone so far past the current toolset at work, in terms of what I know, that I am frustrated daily at the idiocy of what I have to work with.

    All those advanced skills are of no use when your (and mine) hands are tied. All I can say is find a good idea (or come up with one), save up some money and go after it.

  2. shreknel Says:

    just a proposal:

    1:do as you did
    2:now point out how something would have been 10 times less circumspect using lisp (any :))
    3:go home, do homely stuff
    4: sleep, wake up, go to work
    5: goto 1

    It’s the best advice I got, if anyone has a better proposal which doesn’t require the average CL admirer to have to go self-employed, I’m open to suggestions

    good luck 🙂

  3. Sri Says:

    Ah, I know that feeling. That hit me just less than 2 years ago. For me blub was java that I started in Uni only because I was one of the few guys doing it and this was back in days before IDEs for java were cool!

    Gotta thank “the man PG” for liberating me. Do a lot of python these days. But if your problem is depression (not so much out of worthless ness, but out of age where you cant break out and do your own thing with a bunch of hackers), i suggest you start small.. find a couple of people, start side projects… break out man.. break out!!!

  4. Michael L Says:

    Have you considered applying to a better company, where you could use the new skills you’re learning on very challenging and interesting projects?

  5. James Says:

    Maybe I’m getting old, but I’m getting burnt out on the language rah-rahs. I’ve spent a lot of time trying to mine the nuggets from each language or programming paradigm. My head may have grown, but my body of work has not, and that is what I’m more interested in these days. I still dig on the how, but it has taken a back seat to what and why. The stars are so much more fascinating than the telescope.

  6. Brian C Cunningham Says:

    It’s nice to see that I’m not the only one feeling this way. Well…it’s not really nice — I’d much prefer to see other developers avoiding this kind of situation altogether.

    Striking out on your own is always an option, but if you have commitments outside of work (like I do) it can be difficult to make that jump. That’s what I’m dealing with now, and it just adds to the difficulty of breaking out of this kind of situation.

    I’m not totally pessimistic about it though. I’m sure something will turn up — be it a new job, or something I do entirely on my own.

    @James
    I too get tired of the language rah-rahs…and I think that’s part of the problem. The software dev industry gets so focused one language (or a few languages) that people get tunnel vision and don’t see anything else beyond blub. Instead of being “software developers that use blub” we all start becoming “blub developers”, and we lose sight of the bigger world of software development, which to me is far more interesting.

  7. Srdjan Says:

    I’m in the same boat, Brian. I want to strike out on my own, but mortgage and car payments say “Well, where is the money gonna come from?” So, yeah, another job may be something that will change my current outlook.

    @James, I didn’t want to really contribute to the language rah-rahs, as they are tiring. However, if the syntax of the language I’m working in during my day job is continually impeding my progress, it’s something I can’t help but be frustrated about. Especially, if during the evening or sometimes night, I write code in another programming language that directly maps to my way of thinking.

  8. Leroy Glinchy Says:

    I do not have a computer science major. I taught myself to program linux stuff which was really, really fun which is why I did it. I never found a decent job in that field for obvious reasons. Who wants a self taught, half-assed hobbiest when there are comp sci majors by the dozen who can’t get a job making a web page. Plus, as you can tell, the market does not select for quality. The best stuff is actually free.

    So what to do? I have gone on to do office temping and I love it with all my heart. This is where it’s at for me. I used ruby on the sly to automate tasks. My boss does not care because he gets good, fast results in excel. I’ll train my replacement in excel only, no ruby at all. So there’s no harm in it.

    I don’t want to go any further than this as pushing one’s own pet tools just creates conflicts that only get resolved when you decide to quit.

  9. Paul Drummond Says:

    What good timing! I’m in exactly the same position! Nice to know it’s not just me 🙂

    I am a contractor in the UK so I get the chance to move around more than if I was permanent but it’s still Blub. At the moment it’s all enterprise Java in Eclipse and this is a 1 year contract up until Feb ’09.

    At the moment we are writing “importers” to get XML into a database. We first convert all the XML into Java Objects using JAXB, then we convert all the JAXB Objects into Hibernate managed objects to get them in the db. And there are millions of objects and CRUD methods where the only difference is the name of the object being CRUD’ed (felt right when I typed it!) and all the time I hear voices behind me saying “Isn’t hibernate cool! JAXB is helpful isn’t it, we get to use objects ***ALL THE TIME***”.

    Arrrghhhhhhhhhhh!!!!!!

    I spend a lot of time trying to apply some of what I have learned at home to the codebase at work but so far my attempts have either resulted in wasted time or code that everyone thinks is shit (which I worry might affect my reputation if I keep it up so I’ve stopped doing it). It is very frustrating.

    It’s funny, the guy next to me is quite open to new ideas and would love to learn Python, Lisp, you name it – but he sticks with Java. The reason? Because if he doesn’t know about better tools he won’t miss using them.

    I can see his point but I will never stop hacking and learning and experimenting with new languages and ideas – it’s too much fun whether I get to do it at work or not.

    Right, nice to get that off my chest! Back to mindless hacking in Clojure now…. 🙂

  10. Top Posts « WordPress.com Says:

    […] Now What? Brian C Cunningham has written recently that he appears to have been pigeonholed as a Blub programmer. In spite of […] […]

  11. sclv Says:

    Figure out what libraries/programs you wish existed but don’t (and are within your capacity). Alternately, start contributing to open source projects that already exist. Make the programming world just a bit better for doing things that need to be done in ways you think are better and more comfortable, and practice responsibly managing your mini-projects. Toss them on your resume, discuss them, meet other people interested in similar things.

    Eventually you’ll have the right experience and meet the right people, and then things will seem simpler.

  12. Guy Goldwell Says:

    FTA: > I’ve stopped learning how to do new things with most of those *(Commercial)* tools because it’s a waste of time: the next iteration of any of them might crash or be so bloated it won’t work. They might replace my favorite feature… or the company that produces the tool might go away and suddenly have the worst support in the universe. Most of the best features of these tools are just mediocre unscriptable versions of stuff that Unix has been doing perfectly well for years. Cannot agree more.

  13. Thiago Silva Says:

    My ticket out of the IT business mess and eternal frustration: teaching.

    I love programming and I love learning about computers, but the picture of my carer based on learning things that have no technical merit and are chosen on political/ignorance basis just scared the hell out of me.

    One thing I learned tough, is that it’s important to find the people who have the same kind of frustrations and goals, Those are the people who can introduce us to companies and projects (and a world) we’ve never heard of: the ones we were always looking for.

  14. Mark Miller Says:

    I talked a little about this in a blog post here, though not as directly as you do. I had this fear a little more than a year ago. You might remember, I think I told you about my feelings about, “Why didn’t I take the blue pill?” I got inspired to explore other languages because of what Paul Graham and Eric Raymond said about exploring Lisp. They said, “Even if you don’t use it, it’ll make you a better programmer.” Then I got into Smalltalk. I started feeling like, “Heck. I don’t want to go back.” I’ve gotten past many of my fears about this with time, but a part of it is that I’ve have a financial “cushion” so I can take the time to get into this stuff more. I understand that a lot of people don’t have that luxury, and so it’s more difficult for them to pursue this.

    There was a blog posting Paul Graham wrote a while back called “How to do what you love” that might be helpful. He talks about the difficulty of getting into other technologies that your employer won’t allow you to do on their time, and gives some suggestions.

    I know what you’re talking about with the industry. I’ve experienced it a different way. Some years ago I worked for a company that primarily worked in C. I worked there for about 4 years. I got out of there in 1999, and I looked around at the job market. Everyone was working in C++. C was practically a relic by then. I wanted to learn C++ anyway at that time, and so I did my own projects in order to learn it. I then tried to shop myself around, but it was tough. After looking for about 5 or 6 months, and going broke for a couple weeks (ie. ran out of money, completely!) I found a place that was willing to hire me as an entry level C++ developer. Within a few years though C++ was going out of style, being replaced by Java and .Net. I lost my job at the C++ place in 2001 (along with just about everyone else I knew). I liked .Net, so I did the same thing with it, but faced an even more daunting market. I didn’t find work in my field for 3 years. Again, I finally found a place willing to hire me to do ASP.Net work, though surprisingly as a senior engineer (and just by myself, not managing a team). So I agree the industry is generally pretty airtight. It’s not friendly to those who want to branch out, or are forced to change technologies because the one you knew became “legacy”, but there are places that exist that will let you do this. You have to be persistent. When you get discouraged find a way to pick yourself up again, and try some more. It might be doing what I did for a little while, which was go do some other kind of work (not computer related), and then try to get back into it again later. It can depend on what the job market is like.

    BTW, I found a blogger a few months ago who was apparently new to Lisp, but got hired by a company that uses it, ITA Software, at http://www.martincmartin.com/blog/. You might try picking his brain about your concerns.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s


%d bloggers like this: