Archive

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.

Summary

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.

Advertisements

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.

[…clip…]

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.

[…clip…]

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.

http://www.addall.com/

What’s cool about this site?  It searchs almost all of the booksellers at the same time!  Rather than checking Buy.com, Amazon.com, Half.com, 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 Amazon.com.  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:

http://www3.addall.com/New/submitNew.cgi?location=[YOUR COUNTRY]&state=[YOUR LOCALE]&dispCurr=[YOURCURRENCY]&type=Title&query=TEST

For me, it looks like:

http://www3.addall.com/New/submitNew.cgi?location=10000&state=KS&dispCurr=USD&type=Title&query=TEST

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:

http://www.augemedia.de/opera/win/925/en/Opera_9.25_Eng_Setup.exe

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.

Right??

Ehh.

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 www.augemedia.de 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.

Resources:

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>();

            names.Add(“This”);

            names.Add(“is”);

            names.Add(“a”);

            names.Add(“test!”);

 

            foreach (string name in names)

                Console.WriteLine(name);

 

            Console.ReadKey();

        }

    }

}

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]()

names.Add(“This”)

names.Add(“is”)

names.Add(“a”)

names.Add(“test!”)

     

for name as string in names:

      Console.WriteLine(name)

     

Console.ReadKey()

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.