Archive for January, 2009

Mentoring a programmer

Posted in Software development on January 29th, 2009 by andrew – 1 Comment

As I was writing in my journal this morning, I started thinking about the many events in my life that led me to my current career. I’ll spare you the gory details of the typical “college grad meets the real world” story, but there is one factor that cannot be underrated in my journey to become a software developer: mentoring.

Coming from a nontraditional background, I never learned programming in any kind of academic environment. I picked it up while working customer service at a small software company, and played around for months before I tried writing some demo apps and then later started working on some of the internal applications that were used by only a few people. I found programming syntax to come pretty easily since it is just applied logic. However, it was the application architecture that started to get the best of me when I realized that I was running into common problems that had to have simpler solutions than the ones from which I was approaching them.

At this point there were several key people who I turned to when I got really stuck, but one in particular really took the time to actually mentor me and began to patiently sharpen my programming mind by teaching me about design patterns (or more importantly, how to use them to solve real life problems), showing me examples of code that he had written, and describing lessons that he had learned. I am not sure that I understood how important this was at the time, but looking back it is clear to say that I would not be where I am today were it not for his involvement at this pivotal point in my life.

This brings me to my reflection in my journal from this morning (and maybe a little call to action). I am no expert and most certainly have a long way to go still. However, I have learned a few lessons and am beginning to wonder if I may may be able to also play an important part in an upcoming programmers life. The most important thing about mentoring is not knowing every little detail, but rather, encouraging someone to stick with it and to either develop their love for it, or to realize that there is something better on the horizon. As such, I think there are a few key characteristics of successful mentoring in the world of software:

  • Take risks - there is no reason to protect a new programmer from your code (that is what version control is for), assign real tasks that will stretch his or her abilities. It is this kind of real world trust that builds confidence.
  • Don’t give too much preemptive advice - Allow him or her to take a stab at a problem and then help when asked.
  • Frequent code reviews - Once the code is working, walk through it and spend time identifying patterns, pointing out optimizations, and talking about alternative approaches. This helps to frame all of the explanations in relation to problems that have been recently addressed by the programmer
  • Warn against pre-optimization - Teach that the first priority is to get something that works, second to that you figure out if there are any bottlenecks that need to be optimized. This one took me a long time to learn, as it was made apparent to me that I spent way too much time analyzing problems because I was so worried that I would slow down the application. I became much more efficient when I learned this simple lesson.

I am sure that this list is not complete - so please add on in the comments if you have any other suggestions. In the meantime - get out there and see who you can encourage someone in their quest to become a good programmer!

Blogs on paper

Posted in Blogging on January 23rd, 2009 by andrew – 4 Comments

This was linked on The Daily Dish today along with the caption “the internet comes full circle”:

http://www.theprintedblog.com/

At first, I thought this is the dumbest idea I have heard in a while. I mean, isn’t the best part of the web that we have access to realtime information free from the constraints of the print publication workflow? Isn’t it great that we don’t have to pay for paper that is simply thrown away? Isn’t the most revolutionary thing about the web as a news source that we have access to perspectives from around the world and we can choose the angle that we are reading on events (c.f. Drudge vs Huffington) or editorial (c.f. Daily Dish vs. Kos)?

The answer to all of these things is “yes.” And this is truly the thing that print media mostly misses. The Printed Blog definitely offers an interesting compromise between traditional print and electronic media. I think that people like me any many of my peers would never pay for a print publication like this, but there may be a portion of newspaper readers who would be turned on to the blogosphere and internet news for the first time if they could consume the content in the same way that they always have: in print. Furthermore, because the content of the paper is voted on according to region, the perspectives represented will more closely mirror that of the locals, as oppose to that of the editors of the paper.

The trickiest obstacle I see for The Printed Blog is getting the paper into the hands of people who don’t already read blogs. But if they are able to accomplish this feat, it could mean bringing a whole new audience to the blogosphere, further broadening the perspectives that are shared online. Thoughts?

A personal message from Mr. Zuckerberg

Posted in Uncategorized on January 22nd, 2009 by andrew – 1 Comment

You’re not going to believe this, but I got an email from Mark Zuckerberg this morning!

facebook is recently becoming very overpopulated,there have been many members
complaining that Facebook is becoming very slow. Records show that the reason is
that there are too many non-active Facebook members and, on the other side, too
many new Facebook members.

We will be sending this message around to see if members are active or not. If
you are active please send to at least 15 other users using Copy+ Paste to show
that you are still active. Those who do not send this message within 2 weeks
will be deleted without hesitation to create more space.

Send this message to all your friends and to show me that your still active and
you will not be deleted.

Founder of Facebook,
Mark Zuckerberg

It seems that there is a shortage of intelligent engineers at Facebook. They are so strapped they are now relying on email forwards to discover inactive accounts.

My apologies if you are no longer able to find me on Facebook in a couple of weeks ;)

Work in progress

Posted in General on January 18th, 2009 by andrew – 1 Comment

Welcome to my new blog. I have finally decided that it is worth the time to put my random musings and geeky rantings up on the web for anyone to see. I will be finalizing the setup of this site over the next couple of days and will hopefully have a fairly regular blogging schedule soon. Thanks for stopping by!