Archive for the ‘Education’ Category

The Post-Certification Era?

February 13, 2012 1 comment

Oh look, starting off with a disclaimer. This should be good!

These are patterns I’ve noticed in our organization over the past ten years–ranging from hardware to software to development technical staff. These are my observations, experiences with recruiting, and a good dash of my opinions. I’m certain there are exceptions. If you’re an exception, you get a cookie. 🙂

This isn’t specifically focused on Microsoft’s certifications. We’re a .NET shop, but we’re also an Oracle shop, a Solaris shop, and a RHEL shop. So many certification opportunities, so little training dollars.

Finally, I’ll also throw out that I have a few certifications. When I made my living as a full-time consultant and contractor and was just getting started, they were the right thing to do (read on for why). Years later … things have changed.

Evaluating The Post-Certification Era

In today’s development ecosystem, certifications seem play a nearly unmentionable role outside of college recruitment offices and general practice consulting agencies. While certifications provide a baseline for those just entering the field, I rarely see established developers (read: >~2 years experience) heading out to the courseware to seek a new certification.

Primary reasons for certifications: entry into the field and “saleability”.
Entry into the field – provides a similar baseline to compare candidates for entry-level positions.

Example: An entry-level developer vs. hiring an experienced enterprise architect. For an entry-level developer, a certification usually provides a baseline of skills.

For an experienced architect, however, past project experience, core understanding of architecture practices, examples of work in open source communities, and scenario-based knowledge provides the best gauge of skills.

“Saleability” of certifications for consulting agencies allows “one upping” other organizations, but usually lack the actual real-world skills necessary for implementation.

Example: We had a couple of fiascos years back with a very reputable consulting company filled with certified developers, but simply couldn’t wrap those skills into a finished product. We managed to bring the project back in-house and get our customers squared away, but it broke the working relationship we had with that consulting company.

Certifications provide a baseline for experience and expertise similar to college degrees.
Like in college, being able to cram and pass a certification test is a poor indicator (or replacement) for handling real-life situations.

Example: Many certification “crammers” and boot camps are available for a fee–rapid memorization and passing of tests.  I do not believe that these prepare you for actual situations AND do not prepare you to continue to expand your knowledge base.

Certifications are outdated before they’re even released.
Test-makers and publishers cannot keep up with technology at it’s current pace. The current core Microsoft certifications focus on v2.0 technologies (though are slowly being updated to 4.0).

I’m sure it’s a game of tag between the DivDev and Training teams up in Redmond. We, as developers, push for new features faster, but the courseware can only be written/edited/reviewed/approved so quickly.

In addition, almost all of our current, production applications are .NET applications; however, a great deal of functionality is derived from open-source and community-driven projects that go beyond the scope of a Microsoft certification.

Certifications do not account for today’s open-source/community environment.
A single “Microsoft” certification does not cover a large majority of the programming practices and tools used in modern development.

Looking beyond Microsoft allows us the flexibility to find the right tool/technology for the task. In nearly every case, these alternatives provide a cost savings to the district.

Example: Many sites that we develop now feature non-Microsoft ‘tools’ from the ground up.

  • web engine: FubuMVC, OpenRasta, ASP.NET MVC
  • view engine: Spark, HAML
  • dependency injection/management: StructureMap, Ninject, Cassette
  • source control: git, hg
  • data storage: NHibernate, RavenDB, MySQL
  • testing: TeamCity, MSpec, Moq, Jasmine
  • tooling: PowerShell, rake

This doesn’t even take into consideration the extensive use of client-side programming technologies, such as JavaScript.

A more personal example: I’ve used NHibernate/FluentNHibernate for years now. Fluent mappings, auto mappings, insane conventions and more fill my day-to-day data modeling. NH meets our needs in spades and, since many of our objects talk to vendor views and Oracle objects, Entity Framework doesn’t meet our needs. If I wanted our team to dig into the Microsoft certification path, we’d have to dig into Entity Framework. Why would I want to waste everyone’s time?

This same question applies to many of the plug-and-go features of .NET, especially since most certification examples focus on arcane things that most folks would look up in a time of crisis anyway and not on the meat and potatoes of daily tasks.

Certifications do not account for the current scope of modern development languages.
Being able to determine an integer from a string and when to call a certain method crosses language and vendor boundaries.  A typical Student Achievement project contains anywhere from three to six different languages–only one of those being a Microsoft-based language.

Whether it’s Microsoft’s C#, Sun’s Java, JavaScript, Ruby, or any number of scripting languages implemented in our department–there are ubiquitous core skills to cultivate.

Cultivating the Post-Certification Developer

In a “Google age”, knowing how and why components optimally fit together provides far more value than syntax and memorization. If someone needs a code syntax explanation, a quick search reveals the answer. For something more destructive, such as modifications to our Solaris servers, I’d PREFER our techs look up the syntax–especially if it’s something they do once a decade. There are no heroes when a backwards bash flag formats an array. 😉

Within small development shops, such as ours, a large percentage of development value-added skills lie in enterprise architecture, domain expertise, and understanding design patterns–typical skills not covered on technology certification exams.

Rather than focusing on outdated technologies and unused skills, a modern developer and development organization can best be ‘grown’ by an active community involvement.  Active community involvement provides a post-certification developer with several learning tools:

Participating in open-source projects allows the developer to observe, comment, and learn from other professional developers using modern tools and technologies.

Example: Submitting a code example to an open source project where a dozen developers pick it apart and, if necessary, provide feedback on better coding techniques.

Developing a social network of professional developers provides an instant feedback loop for ideas, new technologies, and best practices. Blogging, and reading blogs, allows a developer to cultivate their programming skill set with a world-wide echo chamber.

Example: A simple message on Twitter about an error in a technology released that day can garner instant feedback from a project manager at that company, prompting email exchanges, telephone calls, and the necessary steps to resolve the problem directly from the developer who implemented the feature in the new technology.

Participating in community-driven events such as webinars/webcasts, user groups, and open space discussions. These groups bolster existing social networks and provide knowledge transfer of best practices and patterns on current subjects as well as provide networking opportunities with peers in the field.

Example: Community-driven events provide both a medium to learn and a medium to give back to the community through talks and online sessions.  This helps build both a mentoring mentality in developers as well as a drive to fully understand the inner-workings of each technology.


While certifications can provide a bit of value–especially getting your foot in the door, I don’t see many on the resumes coming across my desk these days. Most, especially the younger crowd, flaunt their open source projects, hacks, and adventures with ‘technology X’ as a badge of achievement rather than certifications. In our shop and hiring process, that works out well. I doubt it’s the same everywhere.

Looking past certifications in ‘technology X’ to long-term development value-added skills adds more bang to the resume, and the individual, than any finite-lived piece of paper.

Who’s Who Not Knowing Who?

May 7, 2009 Comments off

Years ago, back when I had a couple consulting businesses and such running, there was a bit of value in some of the “Who’s Who” books and such for social networking.   A lot of the current networking appliances (blogs, Twitter, Facebook, user groups, etc) weren’t around and the “big books” were common—if you could weed out the scams.

I actually had an invite to the “2010 Edition of Who’s Who Among Executives and Professionals Throughout the World” today… but they don’t know who I am… or simply fail at mail merge.


Greetings [Firstname] [Lastname],   

In recognizing your work in the field of [field], it is my honor and privilege to inform you of your selection as a representative in the 2010 Edition of Who’s Who Among Executives and Professionals Throughout the World. Our membership committee has scoured professional journals, industry newsletters, and corporate resources to compile our summary of individuals who fit the bill: professionals who represent the best and brightest in their industries. You are one of those selected.


So.. seriously, does anyone have those books sitting around anymore?  If so, why?  A book containing all of the executives and professions throughout the world would require more than my package-hiding UPS man to deliver.

I don’t even own a telephone book—letalone a reference book of complete strangers (though, that’s somewhat one in the same).

AddALL To Find Books

January 5, 2009 Comments off

I came across the AddALL Book Search from one of the speakers at a conference last year—not sure which one; it was one of those “oh, I’ll have to check that” scribble on a notepad.

What’s cool about this site?  It searchs almost all of the booksellers at the same time!  Rather than checking,,, and whatever else—this free service goes out, finds those listings, and returns them to you.  I hunt for books—a lot—and this has been a huge time saver.

So, let’s say I’m wanting to find David Astels’ Test Driven Development: A Practical Guide to have a spare copy at the office:

Searching AddAll

Then pick it out of the search results to see a price comparison.

I can see that the cheapest price (with shipping) is from the used marketplace at  Good deal and a lot less time spent hunting through the various sites.

Price comparison

To further geek it up, you can add this as a customized search engine to FireFox or Internet Explorer.  The URL is:[YOUR COUNTRY]&state=[YOUR LOCALE]&dispCurr=[YOURCURRENCY]&type=Title&query=TEST

For me, it looks like:

The codes can be found on the AddAll site, just snip up the URL. 🙂


Categories: Education, Everything Else

Communicating Process Improvement Benefits

October 7, 2008 Comments off

Paper and PencilA large part of my job is process improvement—working with various departments and groups in our organization (K-12 education) to see where technology would provide cost savings and “better ways” of doing things.  I really do enjoy it and like to see people empowered with tools to do their job better.

We’re slowly running into a culture clash—those who are holding on desparately to the paper and those who are forcing change.  Unfortunately, those “forcing change” don’t want to force it—they want our department (or anyone else) to be the “bad guys.” 

That’s cool—I can be the bad guy.

Unfortunately, it’s difficult to sell to the individuals a different process when those at the highest levels (their bosses) can’t sell it.

Here’s an example we’re running into:

For years, thousands of staff members have used paper and pencil bubble sheets to do grading.  Paper, handwritten grade cards went home to students (NCR paper copies each grading cycle).  These copies were lost, destroyed, and unreadable by the end of the year.  In addition, the paper, labels, and copies cost into the tens of thousands per year.  It wasn’t a good situation (considering it’s 2008) for parents or teachers.

A new, online grading system was requested by leadership; throughout it’s development both the customer and the focus group of the customer’s customers (those thousands of staff members) tested, worked hand-in-hand, and approved the application, it’s layout, and performance metrics.

However, after rolling it out, the complains came rolling in.  Filling a report out takes more time than “ticking off bubbles on paper” per student.  Latency in the network, across VPN for home users, and simply using the application puts it at about 35 seconds per student (1–2 seconds to load, 30 seconds for the teacher to mark their grades using the drop downs, 2–3 seconds to save and return validation).  The server side runs well—the app runs fast, but we can’t push it down the wire any faster.  There’s latency in there that developers can’t attack—especially in web applications.

When we try to reason and explain the technology, we’re countered with “well, in 2–3 seconds, I can put 5–10 check marks on a piece of paper—that’s just wasting my time.”  And of the postive benefits of the system?  So far, they’re not to be seen—those pushing for it can’t (or won’t) stand up for it. 

At this point, should it be the developers to advocate the application if the customers (the end users are the customers of our customer) don’t want to deal with the “pressure” of implementing change?

If the qualifiers for the process improvement are met, but adoption wavers because of lack of support—who’s call is that?

Just curious what everyone out there thinks.  At this point, I’m in coaching mode with our customers to work with them on how to sell change and get buy in from their customers…


Categories: Education, Workplace

Opera Web Browser == Pornography?

January 7, 2008 4 comments

For part of the current “AJAXing” series, I had to reinstall Opera on my machine.  I’m pretty used to the Evil Stop Sign of Despair, but this really got me laughing… 


You cannot access the following Web address:

This site is blocked under the {company} filtering policy. If you believe this site has been blocked inappropriately, send a request for a site review to {email someone who cares}. In order for your request to be processed you must include the address of the site you would like reviewed, your name, and the educational application of the site in question. Please contact Customer Service at {number} if you have additional questions.


The site you requested is blocked under the following categories: Pornography


Now, our filter is supposed to evaluate files AND domains, so it should work.  In addition, come on, it’s Opera—they wouldn’t be hosting on porn sites.



So, Augemedia, who claims to be “Defying standards since 1989” and is the primary host for US downloads appears to be based out Germany; cool enough.

They have several projects going on…

  • Warring Factions – a MMO strategy game.  No problems there.
  • Bay Dream Templates – Template design for online auctions.  Neat.

And then the one that MAY just be why the filter caught it.

  • Kiss Chance – Adult Dating and Swinger Site.

😀  HA!  Yeah, that probably doesn’t make it through K-12 filtering, but what’s odd is that the “project” isn’t even hosted on the domain, but on it’s own domain.  What’s even more ironic is that going directly to that domain DOES get through the filter.  ROFL.

So, I tried three more downloads—and all three were blocked for pornography (I didn’t take the time to “look” at the sites).  I finally found downloaded it directly from the Opera Software link and it worked like a champ.

So, a note to the filtering experts out there—maybe a bit of due dilligence on where “bad” content is and where it REALLY is would be in order? 🙂

To Opera—what kind of “special payments” are you getting for hosting anyway?  Hah. 🙂


Thank you…

November 30, 2007 2 comments

Last night was my final class session and marks for my Masters degree.  It’s been a long and tiring twenty-two months—hours and hours of research, hundreds of pages of reports, and hours of presentations have kept most of bogged down.

For my friends, who have tolerated my absence, my fatigue, my more-than-usual crankiness over the past two years and prayed for it to be over. 🙂 

For my family, who have supported me the entire way and ensured that I did NOT roll over and get another 10 minutes of sleep.

For my professors, who have tolerated my insistent questioning (some better than others) and challenging as I know I’m probably one of the most annoying students you’ll ever face.

Finally, for my peers, who have been great to work with this entire time.  Especially my cohort group, the summation of our skills helped make our work not only good, but excellent.  A graduate degree is more of what you make for yourself, and you’ve helped me strive to always learn the most I could from each and every challenge.  Amidst it all, we found time to laugh and enjoy ourselves—even if it was 1 AM in the morning with the deadlines just hours away.

Thank you.


Categories: Education, Everything Else

BOO – The Winter Project

November 13, 2007 10 comments

My winter projects usually revolve learning another programming language, brushing up on some non-programming skills (architecture, graphic design, etc.), or learning a human language (which I’m partially doing by reteaching and catching back up on my Japanese).

I wanted to learn another programming language and have heard a lot of interesting discussion in the community about BOO.


I have a minor project coming up that I’m going to use as a guinea pig for BOO—really get in and force myself to learn something rather than dinking with code snippets.

So, what’s the code look like?

Here’s a quick example from something I was playing with while in a meeting today.  It’s a quick example of a console application that creates a new generic list, adds a few items, and spits them out.  From using statements to the final squiggly bracket “}”, it’s 22 lines.

In C#:

using System;

using System.Collections.Generic;


namespace BooComparison


    class Program


        static void Main(string[] args)


            List<string> names = new List<string>();






            foreach (string name in names)







In Boo, it’s a bit shorter at 15 lines since the Main method and class are not necessary.  You’ll notice the Python and slight VB.NET references and, for me, breaking the habit of the closing semi-colon.

namespace BooTutorial


import System

import System.Collections.Generic


names = List[of string]()






for name as string in names:




You’ll notice that the for each loop is a bit different and, something that threw me when I first started messing with Boo, is that it’s position sensitive.  The Console.WriteLine is part of the for each statement BECAUSE it’s indented (there are no {  } in Boo that I’ve found).

Overall, it looks interesting and should be an challenge to learn.  Will I throw my C# away and start scaring our customers with Boo?  Ehh, I doubt it; however, it’ll be an interesting tool to add into the collection.

The most annoying downfall right now?  There isn’t a plugin for Visual Studio, so I’m using the open source SharpDevelop tool.  It’s not a bad tool (actually, quite awesome for being open source and portable), but things like R# and such are missing and make me sad—I’m used to those keyboard keys.

Big Brother is Watching Me Surf

October 25, 2007 5 comments

I was mid-read of Matt Berseth’s blog this morning and was greeted with our filter’s cheerful message:

You cannot access the following Web address:

This site is blocked under the filtering policy. If you believe this site has been blocked inappropriately, send a request for a site review to {email removed}. In order for your request to be processed you must include the address of the site you would like reviewed, your name, and the educational application of the site in question. Please contact your site STS or Customer Service at {phone removed} if you have additional questions.

The site you requested is blocked under the following categories: Malicious Sites

So, I contacted with a serious WTF question.  Lately, more and more blogs, forums, and community sites—which are key resources to modern developers—have been blocked. 

The answer I got: Send in a formal request, it will be reviewed by the curriculum department to ensure it’s safe for children.  If it’s not, then it will remain blocked.  Coding sites are considered malicious because they teach potential hacking skills to children that could endanger the stability of network systems.


I haven’t even responded yet.  I don’t have anything nice to say that will keep me employed.  And, for now, I don’t have to worry… because THIS blog (my blog) is blocked too… tomorrow, maybe Google will be blocked because we don’t want children to find anything “bad”.

Thankfully, I can still RDP into my home computer and WORK.

Note: I’m not saying Internet filtering and such are bad; but due dilligence of staff/parents/etc. should make up for some of that—and educating children what they should and shouldn’t access will make it less taboo.  Oh, and separate filtering policies for the MIS Department and the kindergarteners, kthx.

[Update 12:45pm: I now have an ‘understanding’ of the full process.  An email to a monitored address, a response, a form to fill out, a few committee or individual, a response with further questions, an email back, and finally it’s opened up.  I’m tempted for two things: a) just continue RDPing out because that process took almost 1.5 hours, b) send in 100+ of them at one time.  And yes, my blog is still blocked—RDPing home to post.]

The Teaching Bug

August 31, 2007 2 comments

Over the past month, I’ve been offering internal training to my department to prep them for an upcoming Java/AJAX/Web Design class we’re all attending.  I’ve covered topics of both C# and Java development, basic OOP programming concepts, test driven development, domain driven development, and we even did some Java Swing (seriously, the stuff makes me cry inside) work.

It’s brought back some memories of when I started with my current job and used to teach evening and weekend classes on *cough* Windows NT 4.0 network administration, PC troubleshooting, Office 2000 usage, and… heh… using Publisher to do flyers and such.  I’ve always loved teaching—from creating curriculum to the light of recognition and understanding in the eyes of participants to the contineous improvement based on feedback.

While, after these few weeks are over, I won’t be doing a lot more, I plan to make it a goal over the next year to get back into speaking and teaching more—whether formally or simply as a guest at some of our local community colleges.  While I used to love teaching hardware and software, development and programming is so much fun because it’s ALWAYS changing and there’s new and exciting things to show people and get them excited in.

Personally, it’s also a great excuse to take the time to really learn new technologies for myself.  

Technology is a tool for education, not a replacement

August 13, 2007 1 comment


It’s a constant battle to fend off those who want to use technology as either a replacement or implementer of policy.  Technology is awesome—and those of us who are programmers are at a point in time when we can do almost anything we can imagine to empower people; however, many forget the EMPOWER part.

Technology is a tool used to augment a human’s value.  In the classroom, technology allows teachers to better instruct students, better assess their progress and redirect where necessary, and better communicate with parents—but it is not a replacement for a competent, well-educated teacher.  If we want computers teaching our kids, why would we need teachers?  Because they add value—they can apply human emotions, understanding, and life experiences to educating our youth.

Unfortunately, many try to use technology to ‘fix’ everything—assess the students a few more times, rework the results until the results demonstrate what we want, and then repeat.  If something isn’t right, the common answer, lately it seems, is to use technology to fix it, not the teacher.  Teachers are left out of the picture (and many seem to want it that way—it’s less work) and place the students in front of a computer for assessment.  The computer then prescribes (ala prescriptive teaching) what the student should learn and everyone goes about their business.  A teacher who steps up and “prescribes” something different with a gut feeling or understanding of the student, they are simply told that they are wrong.

If a teacher cannot teach, but is simply a facilitator of prescribed curriculum, then what value do they add and why should parents send their children to school when they could receive the same education (sub the social effects) using the new “online” schools?

The only real reason I have continued my education is for the educators—the teachers that I’ve met over the years.  I honestly can’t say that I’ve been affected by a book I’ve read or a lesson taught out of a manual, but I can attest that the personalities, the humor, the life experiences of some of my teachers and their passion for teaching will forever live with me. 

To me, to go through nearly 20 years of school with a drone reading a lesson plan and not providing any human value, would be a horrid, horrid experience.  I pity today’s children who are locked in this psychological box.


Tags: , ,

Categories: Education, Politics, Standards