Uncategorized

Reclaiming my niche

I remembered yesterday why I want to be a computer scientist.

It seems bad to me that I, known for (among other things) my intense focus and determination, lost my way for two years. I didn’t do a bit of real programming, no design, no new languages, nothing other than idly tweaking others’ programs to make them work on my system or on my website.

After the hair-raising C++ project of junior year, I wanted nothing to do with conventional programming. Never would I sit and peck at a keyboard eight hours a day hacking on some big system, trying to implement new features or fix old ones.

Who was I kidding?

Having spent the past two weeks utterly immersed in Java and object-oriented programming, working, literally, forty or more hours a week just on this application, I can say I’ve refocused on my old goal.

This is what I love. I love thinking in for and while loops like others think in Spanish or French or music. I love tweaking search algorithms or data structures to shave that extra second or two off of program execution time. I love that big “Fucking A!” when one little problem that’s been stumping me for more than a handful of hours becomes suddenly illuminated and crystal clear for me to unravel.

I still don’t know what I want for a career. Maybe I’ll move to India to be a programmer. I might also take a serious interest in design and become a software architect (or whatever they’re calling it these days) like the Old Man. But I do know that it has been unbelievably easy for me to spend ten or eleven or twelve hours a day working on this project, learning the language as I go, tweaking and improving on the original algorithms, and learning how to best implement the design in a manner that will make the program easily maintainable.

I have a Java app, with a full graphical user interface, that runs no slower than its command-line C++ equivalent that I started with. It is well-designed (the Old Man aided very heavily in the design) and should be fairly easy for a non-chemist to maintain. It is easily expandable to include other features, including other types of analyses to run or different statistics to report.

A professional could have done it better (there are undoubtedly flaws in my documentation style/level and in my impelementation of the design), and certainly done it faster, but it has been an unbelievable learning experience for me.

I feel like I’m back in the hot seat, not only thinking of improvements and additions to this current program, but thinking of other things I want to write and other problems I want to solve for myself using the tools at my disposal.

3 Comments

  • ej

    reclaiming your niche.that’s gotta be one of the most uplifting, thought-provoking projects to have…. ordinarily i’ve had to be a Technical Architect and know the grand scope, but when it comes to rolling up my sleeves and actually implementing stuff (including the break/fix and the learning curve), we’ll everything’s just gravy. Congrats on the reclaim!

  • stobor

    Java?

    So, the big question is, how did you do the GUI in java? Im writing an advertiser db for the Thorn, and I am already getting bored with GUI design due to the inane complexity of Java’s layout managers.

    Any tips/hints/suggestions?

  • Lissa

    Java GUIs

    Well, because I’m pretty sure the Fundamentals I folks do GUIs by hand, I did this one by hand to get the experience and learn how the Swing classes work.

    It’s fuggin’ ridiculous, and I’ll never do it again.

    I’ve got layers on layers of managers to avoid having to go to pixel level. I spent a good two or three days just tweaking the GUI, and this is the one part of the app that makes me feel damn sorry for anyone who needs to update it, because I still don’t know how to best document how the layers work to make the final product other than to draw and scan in pictures of how things work.

    Now, how would I do it automatically, or WYSIWYG-style? I’m not at all certain. I’m using Eclipse right now, but it doesn’t have a GUI builder (although there’s a “Visual Editor” they’re working on, apparently, but although it will support Swing, it’s really for C/C++, it seems).

    So no tips, I’m afraid, other than to hit up Google for Java GUI builders. Alas, there are probably more free apps in this genre for Linux than Windows. If you *are* in Linux, I’d say try some of the links at http://www.yolinux.com/TUTORIALS/LinuxTutorialJava.html.

    And I must say, I was very pleasantly surprised to see Sexy Short Stuff had left a comment on my site this morning. [8)]