Be a Better Developer: 1.5 – Being a Student – Tips

Thursday, November 19 2009

This blog post is part of a larger series named “Be a Better Developer”.  You can check out the intro, “Stop Being a Code Monkey” to get started from the beginning.  Each post will have a link to the previous ones and a final summary post will contain links to all entries in the series.

__________

In my last post of this series I talked about the need to put some priority on continuous learning if you want your skills to stay relevant.  In this post I’m going to provide a few ideas on how I try to keep up with what’s going on without spending all of my time attached to a laptop.  Remember that people learn differently and what works for me may not work for anyone else.

 

 

Set aside time to increase your knowledge

I think many of us know we need to learn new things, but it’s a time problem.  We work eight plus hours a day, then we throw in the need to sleep, spend time with family and friends, exercise, take out the garbage, walk the dog…  You get the idea.  I’ve found that if I schedule time to work on something then it will generally happen, especially if you can make it a regular thing.  For example, I’ve been trying very hard to once a week go to a Panera prior to work for about an hour of learning.  I don’t make it every week, but it’s on my calendar.  I do it in the morning so that it doesn’t impact my time at home as much (everyone is asleep anyway) and I just get up early that day.

 

Find ways of sneaking in some learning during the day

In addition to specifically setting aside time, you can generally find a few places where sneaking in some learning time isn’t as hard as you think it might be.

I have a decent commute each work day (about 50 minutes one way) so I tend to try to fit in a few technical podcasts throughout the week. I don’t listen to every episode, but I definitely listen to those that are focusing on something I am interested in, or I think will be beneficial.  Most of my podcast time is in the car when I’m commuting, but I also get some in at the YMCA.  Again, this is time I’m already away from the family and it is more productive to listen to this than talk radio (though some days are just NPR days).

I make sure I have a magazine or something technical to read stored in the car and in my backpack.  This is so if I get stuck waiting at a doctor’s office, or for a hair cut I have something I can skim through.  With my mobile device I have an application that syncs with my blog reader, so I can skim through those as well when I find a spare few minutes.  If you are trying to sneak some learning in, this is a great way to have something on hand so you aren’t stuck looking at Country Home Magazine or something like that.

Lunch time is often a great time to sneak in some learning.  Even if I run out to get something and come back to the office I can get 15-20 minutes in on something before my lunch hour is over.  If I bring my lunch and eat it while I’m reading an article or watching a webcast I can get even more time in.  I don’t do this every day because there are just some days it’s better to get “out of the office” and relax, but it happens more times than not.

 

Learn from others – drop your ego

I think as we first get started in our careers we realize we know next to nothing.  But then, as we gain experience and start to see some success many of us begin to develop an ego.  We start to feel like we know everything, or at least everything worth knowing.  This is actually pretty dangerous because it leads to not listening to others as well as complacency to learning in general.   You need to make sure that you develop self-confidence, not an ego.  There is a pretty major difference.

John Glen is quoted as saying, “We have an infinite amount to learn both from nature and from each other”.   My take away from this is never reach the point where you believe you can’t learn from others. If you find that you feel this way then it is more likely you are simply closing your mind.

As a student, having good resources is essential.  Develop a network of people that you can use resources.  As I meet other developers I try to keep track of what they are good at and what they focus on.  If I get stuck on something in a particular area I draw upon the expertise of someone who specializes in that area (if I can’t find the answer on my own in a reasonable amount of time).   This has saved me countless times.  Building this network takes time and effort.  It’s one of the reasons that joining a User Group and attending conferences is important. 

 

Locate Sources of training/knowledge

There seems to be a lot of free resources both online and offline these days.  User groups are some of the more prominent ones in my mind since you’ll also be building up a great network of smart people.  Many vendors and consulting companies also put on free events around a particular product or service they offer.  These can also be a good way to get an overview of a technology, or sometimes they can get pretty in-depth.  The podcasts I’ve already mentioned are also generally free to download.  Just use your search engine of choice and start gathering a list of sites and resources you want to check out, then visit those sites during the time you set aside for learning.

Of course, you can always attend formal training courses to bolster your knowledge.  Often it is a quick way to immerse yourself into a particular technology.  Many places just have instructors that know little more than what the curriculum of the class stipulates.  It’s good to find those instructors that also have a working knowledge of the technology or methodology in a real world setting.  My suggestion for taking formal training classes is to utilize that network of other developers you’re building and see who the good trainers are in the area.

Don’t forget that acquiring skills isn’t the only way to learn.  I find that having in depth conversations with other developers enhances (and in some cases corrects) my understanding of software development.  This is why I find the Open Space (or community courtyard) portion of conferences a great experience.  It gives you the opportunity to talk to other developers and hear their views on topics you find interesting.  If you attend a conference that has an Open Spaces area, I highly recommend that you stop by and look at the topic board for any topics you might find interesting.

 

 

Absorb as much as possible

If I hear a new TLA (three letter acronym), buzzword, or product name I at least try to discover what it means, or what’s it about.  I’ll jot it down to look up later, or ask the person who mentioned it to give me an idea of what it is.  If it is something I’m interested in then I’ll jot down a task to learn more about it.  This helps me keep at least aware of the big things that people are talking about.  I’ve stumbled into some really great technology because I overheard someone use a term I wasn’t familiar with and I looked into it further.

 

Find a Mentor

As you are building your network of resources you’re also going to run into people that have a wealth of experience and not just in technology.  Feed off that experience.  Look for those people in the industry that you admire. Study how they do their job and pick out the habits they have that you believe make them a success. If you find a formal mentor, someone who is willing to meet with you on a regular basis and give you advise, then you are luckily indeed. Look for these people because they have a LOT to share with you.

As a note of caution, make sure to choose your mentor(s) wisely.  There are many people who have a great deal of experience and knowledge (perhaps even power) that are willing to take someone under their wing.  Be sure that while you learn from them that you don’t let their opinion become your opinion automatically.  Listen and question.  Come to your own conclusions.  The best mentors won’t really give you a direct answer anyway.  They will share their experiences and let you come to your own path (you know, like the masters in the Kung Fu movies…just hopefully with less physical pain).

 

 

Certification

Should you get certified? Will it make you a better developer? Well, it depends. From those of you who are Microsoft Certified in something, how much did the tests you took represent what you actually did on a daily basis?  Did you study just to pass the test, or did you study enough that you now KNOW the technologies?

There are many reasons to be certified. To be a Microsoft Partner you have to have a number of your employees certified. Certifications also mean something to recruiters and some companies, or at least the human resources and hiring managers of those companies. Most of all, I think certification shows not necessarily a known skill set, but rather a willingness to devote yourself to a goal and achieve it.

To this day the achievement I am most proud of my life is earning my Eagle Scout rank in Boy Scouts. While Eagle Scout isn’t a certification, it is a representation of a known skill set, much like our industry certifications are today.  It took just over four years and a lot of commitment for me to become and Eagle Scout (back then they had much lengthier waiting periods between the ranks than they do today). I still remember a lot of the skills, but not a majority of them. But I did learn what it meant to really work to get something. I got my first professional consulting position based on the fact the president of the company saw I was an Eagle Scout. 

My suggestion, if you are looking for just an extra feather in your hat, or to use the certification as a goal to set a date for improving your skills, then by all means pursue it. Pick a certification, lay out a learning plan, schedule the tests, and get studying.  Note I said schedule the test, then start studying.  By setting that test deadline up front, you now have a target to meet and not just “when you get around to it”.

 

 

Conclusion

In this field if you don’t want to be left behind and be “just a Code Monkey” you have to devote some priority to continuous learning.  That’s not to say that you should become obsessed with learning to the detriment of your family, friends, etc.  It just means that some priority is needed.  Much like exercise, if you can fit in a few hours a week, or even a half hour here and there you WILL benefit from it.

 

Next up in the series…Being a Janitor.

 

 

Previous Posts in this series: