Wednesday, May 31, 2006

I do not believe that as a programmer one realizes how much the tools that he/she uses make life easier for him/her until those tools are no longer at their disposal. I seem to have hit this wall in the last couple of days at work. You see, it all goes like this. I was handed a project to finish up, the only problem is that we don’t have an IDE that supports development for this particular project, so I am pretty much using a text editor with syntax highlighting to write/modify the code, a build tool to compile it, and then deploying it to a full blown “test” server. What do I miss you may ask? Hot swapping code, a good debugger, the red squiggles that appear under errors in my regular IDE, this beautiful thing called code completion.

What is the point to my little rant? Well it is this, every programmer I know claims to be “hard core”, yet most everyone uses these very powerful IDE’s. I don’t think that anyone can really call themselves “hard core” until they have actually worked in an environment without all of their fancy tools. Do I advocate this as a regular thing? Absolutely not! In the “real world” it’s about producing high quality, solid, applications – quickly. IDE’s help with the speed with which a developer can write, and debug code. As nice as System.out.println() can be for small projects, when the deploy process takes 4-5 minutes, you have to be a little bit more thoughtful about what information you will need, and when you will need it, because inserting that next println isn’t as quick and easy as it was when you were in school.

Hopefully I will get this project wrapped up in a week or two. My boss today told me about how he coded in a text editor for four years after he graduated from the university. I am sure he learned a lot, as I am right now, but for project expediency, this just doesn’t feel like the best plan. Unfortunately, I haven’t been able to find any free tools to speed things up.

Sunday, May 28, 2006

"I have trod the upward and the downward slope;I have endured and done in days before;I have longed for all, and bid farewell to hope;And I have lived and loved, and closed the door."

As I walked through the cemetary, I couldn't help but think about a song cycle called "The Songs of Travel" by Ralph Vaughan Williams, all of the songs are poems by Robert Louis Stephenson, the above poem was the last in the cycle, "I have trod the upward and the downward slope". If you ever get the opportunity to hear this beautiful work, it is an experience not to be missed.

Saturday, May 27, 2006

It has been raining today in Salt Lake City. I didn’t get to ride my bike today as I had hoped, but it made some time to work on other things. I have had the itch to re-design my site here, so I started on it this afternoon/evening. I got the mockup all finished, and have a good start on the markup/style. The goal is to create a more simple and unified theme around here, something that looks more professional. Originally I thought that I would wait until my second anniversary in August to put out a re-design, but at second blush, I have decided to just get it going and to release it as soon as it’s ready.

No big plans for Memorial Day, but I do know that I have a photo assignment to complete: “something that really matters to you” and “something of which you have intimate knowledge”. It’s interesting how I spend way more time thinking about these themes than I do actually shooting them. Things worked out ok last time, so I have no reason to think that they won’t this time as well.

Monday, May 22, 2006

The bicycle training has begun in earnest now. I would like to get to the point that I am not embarrassed to accept invitations to ride with people. I have just got to get my lungs breathing and my legs pedaling a bit harder and faster. I have decided that the bike is very therapeutic. It reminds me of when I was young and on a swim team; the bicycle provides me with an outlet for my energy and frustrations. It’s great to be able to go and throw all of your troubles quite literally into the wind, or perhaps work them into the pedals.

Tomorrow I have spinning in the morning and photo in the evening. Spinning will be its normal torturous event, but it’s good for me, and eventually it won’t hurt as badly. The photo class may turn out to be very embarrassing, especially if everyone says that they hate the photos I will show. I wholeheartedly admit that I haven’t taken the assignment as seriously as I could have, but it is summer and I am not going to stress out about something I took for fun.

The folks that went to JavaOne last week were back in the office today. They had some interesting stuff to say. Maybe I will write a bit about that in the near future.

Saturday, May 20, 2006

Friday, May 19, 2006

Why are so many software engineers socially retarded, and completely stuck on themselves? I think I have read one too many supposedly technical blog articles this week that are all about software engineers griping about how their bosses don’t understand them, how their business owners couldn’t possibly create a reasonable set of specifications for their project, how their peers are all inferior to their amazing super-ninja code skills, how if you don’t program using x style y method or with z tool, you are a “bad” engineer. Seriously, do all professionals try to eat their own, along with those that give them their jobs?

This isn’t to say that I haven’t done my share of complaining here on this very blog (and that this post isn’t a complaint its self), but it is me asking why everyone has been so negative this week. Maybe there was something in the water, or everyone is particularly stressed out, or the caffeine in their beverage of choice wasn’t strong enough. Whatever it was, the attitude doesn’t seem to be helping anyone. I think this attitude may be one of the results that stems out of software’s unique position in the field of science and engineering.

Being a code ninja is quite the head trip, and there is quite a disparity between software engineers of different backgrounds, but you would think that in a market where the competition is fierce, and there is considerable pressure to bring products to the table quickly and efficiently; more time would be spent toward elevating and motivating the team than complaining about what doesn’t work.

With my experience on a team building several large projects at once (from the QA perspective), it seems to me that there isn’t a silver bullet for project management, team motivation, development processes. A good team will communicate openly, help each other, and work for the good of the whole; usually picking a mix of various styles and methods that seems to work for them in a very organic way.

Yes, computers are exact, as are the laws of logic. It’s a good thing, and something that makes them understandable and programmable. However, in the real world, there isn’t always an on or a off. Programmers are the people who get to figure out how to take the gray, and figure out how to translate gray from black and white. Sometimes they get so stuck in their black and white world that they forget what it is like to see color, or to have a healthy dose of ambiguity in their lives.

To the developer ambiguity is just evil, it makes things harder, and requires creativity and thought to express it in the black and white world. Perhaps this is why developers want the world to conform to their list of “practices”, and why if a person can’t conceive something the way that they do, said person is “inferior” or a “bad programmer”.

The argument can certainly be seen from both sides. Best practices bring software engineering more into line with the traditional engineering disciplines, which is something many of the greatest minds in computer science argue is needed. Formality and rigor allow for definitive proof about a system, and it would be really nice to be able to prove that a system worked before you ever wrote code for it right? From this perspective the rules have a firm foundation.

Which brings me back to the question of attitude with regard to software engineers and the way that they interact with the world. Are engineers in other disciplines as quick to eat their own? Do they argue with the people who have the deep pockets that write their paychecks? Do these other disciplines talk about graduating bad “material scientists”? I would be interested to find out.

In the mean time, I may give my RSS reader a bit of rest because though there is a lot of great information out there, the reading this week is causing me to loose faith in my colleagues. There is a place for “this is dumb and here’s why” (this post is one of them), but maybe if we worked harder to help each other rather than saying “you’re a bad programmer if…” the engineering world might take the software folks more seriously.

Wednesday, May 17, 2006

I am not completely sure where this entry will take us tonight, but I feel like putting something up on the blog, and it has been a few days since my last post. For some reason, writing has become more difficult for me, the words don’t flow into my fingers like they once did. Maybe I lost my muse, but it is more likely that I am learning that unless you have something meaningful to contribute, perhaps you shouldn’t say anything at all. Yes, it is cliché, but the more I learn the more I realize that I really don’t know a lot. There are so many guru’s out there, who actually know what they are talking about, I am not sure what my experience and opinions bring to the table.

Being almost two weeks into my job officially as a software engineer has been interesting to say the least. My co-workers are supportive and patient, but also very demanding. The problems that one solves with regard to getting information to and from a database aren’t too difficult alone, but when you introduce the browser into the mix things get pretty interesting. I remember once upon a time saying that I wanted to know how JavaScript worked, and now I can say that I have played with it, I am getting better every day, it does some cool things, and that sometimes you just hate it. I am grateful for this opportunity to learn and grow professionally.

I broke down and purchased my DSLR. I decided on the Canon 30D. It has been a lot of fun, but now am realizing that shooting with my little point and shoot for the last year has changed some of the way that I see things. I got so used to the fact that what you see is what you get in the point and shoot, that the control the SLR gives me feels a little bit overwhelming. The camera is nice, powerful, and more than I really know how to use. My photographic seeing class started last night, and it should be an interesting way to re-connect myself with my love for photography. One of the big stretches that this class asks for is that we as photographers loose our fear and inhibition. The current set of assignments has me feeling uneasy, because I am not sure how to approach them in such a short period of time – but I’ll go out on a limb and give it my best try. I have decided to try and take the camera with me where I go… looking for opportunities. Sooner or later, inspiration will hit.

Sunday, May 14, 2006

To celebrate the end of another semester, Curtis decided that the nerd crew (i.e. the people that I spend way too much time with at school) should get together and have a nice dinner. How could anyone turn down a dinner that they didn't have to pay for? Especially when it is sushi! The food and conversation were great. From left to right in the photo you see me, Andy, Curtis, Jon, and Chris (someday Curtis and I may convince the rest of them to start blogging). We give each other an endless amount of grief, but when it comes time to get a job done well, we become quite the team.

Thursday, May 11, 2006

If you haven’t been into TV at all lately, you really ought to catch up on my two favorite television shows. I have been a diligent ALIAS fan since season one, and at this point you can get all of the past seasons on DVD. In the next three weeks, we’ll see the end of that great show. You can’t help but love a show that stars Jennifer Garner and Victor Garber. I really dig the spy stuff, and it is told in such a way that it isn’t all special effects and shoot ‘em up scenes.

Secondly, everyone that works in an office must watch NBC’s The Office. It has a little something for everyone. Office comedy, office gossip, and office romance, of course it is dramatized, but every thing has some hint of reality that you really would see in your own little cubicle farm. Tonight’s season two episode knocked my socks off. Let’s put it this way. Every Jim needs a Pam, and every Pam needs a Jim. I’ll admit it, the tension in that relationship totally has me hooked on the show.

Of the stuff that pays the bills, and supposedly keeps the world turning ‘round. I am learning and growing every day. No, it isn’t like writing low level operating system code, but it is coding, and it is specialized. The projects are large, real, and meaningful. I am getting used to being in the office every day, and making some friends on my new team. It is a good job; I work with awesome people and am having a great time.

I would like to say that I have some project burning on the side here, but this week my time has been sucked up by trying to kick start my photographic eye, working long hours in the office (7 – 6 ish), and church duties. I went to REI with my Dad last night, where he pleasantly surprised me by gifting me the remainder of the stuff I needed so that I could ride my bike without worry about getting stuck and not being able to repair a flat. So I know that a bike ride is defiantly on the book for Saturday. I think that I’ll try a 12 mile ride and see how that suits me. So as far as side projects, I have some stuff in mind, but haven’t got anything firm planned yet. Time will tell. One week into summer, and it feels like I am just playing catch up with all of the life that I put on hold while working on school. I won’t complain, it could be a lot worse, and I am grateful for the opportunity to go to school. To any reader’s holding out that I post something of technical use, just hang in there… I know there is stuff brewing in my head, it just isn’t ready yet.

Tuesday, May 09, 2006

It would make sense to be a more active writer around here since school is out, but it seems that other things have called my attention and even though I am not working on homework, I seem to be finding things to fill the void. The summer appears to be off to a great start, though I am currently feeling somewhat paralyzed as to what exactly I should be doing with my free time. It doesn’t make a lot of sense to wish time to hurry along its way, but I am excited for next week, as my photography class will start up. I also decided to take an early morning spinning class offered at the university. It meets two times a week and will be a great way to get some rigorous training as far as my cycling goes. Speaking of cycling, I have yet to take any major journey’s on my bicycle mostly partially out of my own laziness, but also out of the fear that because I haven’t bothered to purchase a portable set of tools, an extra tube, an air pump, and a “hydration system” that I’ll get going on the road and something terrible will happen. I just need to go visit REI once more and spend a little bit more cash, and I should be set to go… absolutely no more excuses. I said that I would ride to work, and it’s time that I kept that promise.

There is probably more to say, but it isn’t coming to mind right now, so I’ll leave it here. It’s probably time to sit down and formalize my summer life so that things aren’t in so much limbo. Then there will be time for writing, programming, reading, exercising, yard work, dating, photography, and all of that other good stuff. With a solid schedule perhaps I won’t be so… distracted.

Thursday, May 04, 2006

If you had told me 6 years ago that I would be a software engineer, I might have laughed at you. I enjoyed computers, and was pretty good at using them, but had never done any ‘programming’. Fast forward six years, three years into my bachelor’s degree in Computer Science and I was offered (and accepted) my first job as a real “Software Engineer”.

Since January I have been splitting my time between development and QA, on Monday I will officially put my QA responsibilities and focus my work time in my new role as a developer. I am pretty excited, I have a lot to learn, and this is a great opportunity to do some learning. The great thing is that I still get to work with the great people that I have grown to know and love at my workplace; additionally I am gaining relevant work experience while still in school. I couldn’t have hoped for a better situation right now. They are understanding of my educational goals, and are willing to take me as a part-time employee during the school year. I wore the intern title for so long; I was beginning to wonder if I would ever find a job where I wasn’t an intern. I am certainly not at the top of the chart when it comes to software development experience, but that is something that comes with time, and now I am well on my way. I am sure there will be more jobs and opportunities in the future, but I am pretty excited for this one here and now.

In other news, I got my final grade in Compilers – A. Certainly can’t complain about that. The final was very fair, but still a good deal of work. I really enjoyed that class.

No news on my other two classes yet. Hopefully things will turn out equally as well. In the meantime, I will just decide to enjoy the moment. I have written about being a professional, and thought a lot about being a professional, it is very satisfying to have the professional’s title – now let’s just hope that I can live up to it.

Tuesday, May 02, 2006

I was in a music mood this evening, and resorted iTunes (like I always do). I found this totally sweet smooth jazz album by Chris Botti called When I Fall In Love. Some pretty great soft trumpet. I was an instant fan. What would I do without iTunes?

So, less then 24 hours to freedom (summer), I am studied out for this semester. I think that things will go well on tomorrow's compiler's test. My group project demo in the afternoon should also be just fine. Regardless of the outcome, barring any unfortuntate events, tomorrow will mark the end of my junior year (and my sixth as a college student - but that's another story).

Still no camera puchase. I guess I need to do more homework before I will be completely ready to make the purchase, but I'm sure it won't take longer than a couple of weeks. I really want a DSLR for this upcoming class.