Free Software as Professional Development

by on June 5, 2007 · 16 comments

I thought Braden made some good points in his post yesterday about free software in Europe, but I thought this argument was a bit wide of the mark:

OTJ training has always been a great way to learn programming skills. But is working on FLOSS projects the only way to learn how to code? Buried in a footnote (#48), the report says that “perhaps” OTJ training works for proprietary software too. However, it is a different kind of experience, according to the authors. They say FLOSSers can start in their teens and can learn at home, whereas developers of proprietary software have to learn on the job or start their own firms.

Does FLOSS actually promise new and better ways to learn how to write software? Not really. Aspiring developers have always been able to learn programming skills pre-employment and on their own time. And there’s always been a network of online resources and training material for developers of proprietary software (think: Novell and Microsoft developer certifications).

It’s obviously possible to pick up some programming skills using online resources and proprietary developer certifications, but there are some important differences that make free software decisively better when it comes to developing job skills. In general, practice is more useful the closer it is to the real thing. When you contribute to an open source project, you’re making real changes to real code that are being used by real people. You learn about software development in its full complexity and nuance. There’s just no way that an MSDN training manual can compete with that, no matter how well-written it might be.

Secondly, your contributions to a free software project can often lead directly to paid opportunities helping clients to integrate the software you’re working on into their environment and customize it for their needs. I rather doubt anyone is able to get consulting work based on the example programs they write on their MSDN certification test.

Finally, your contributions to a free software project can allow you to stand out in a way that an MSDN certification cannot. By necessity, a certification program focuses on whether you’ve learned a fairly fixed set of skills. You can demonstrate basic competence through an MSDN certification, but it’s difficult to stand out from the pack. In contrast, when you contribute to free software, it provides a much more nuanced basis on which to evaluate your performance. The MSDN certification shows you studied for a test. The free software contribution shows you can actually produce working code. I have trouble imagining a competent IT manager being more impressed by an MSDN certification than a significant contribution to a free software project.

  • http://enigmafoundry.wordpress.com/ enigma_foundry

    I have to have a portfolio–and carry it with me when I seek a job. Others have to take my word, or the word of my associates that I had the role I said I did, when I show buildings that I have designed. (I am an Architect)

    FLOSS though is a method to both distribute AND more importantly validate a coders “portfolio” I wish I could do that! And basically for free!

  • http://enigmafoundry.wordpress.com eee_eff

    I have to have a portfolio–and carry it with me when I seek a job. Others have to take my word, or the word of my associates that I had the role I said I did, when I show buildings that I have designed. (I am an Architect)

    FLOSS though is a method to both distribute AND more importantly validate a coders “portfolio” I wish I could do that! And basically for free!

  • http://linuxworld.com/community/ Don Marti

    So why isn’t there an “Open Architecture Group” that gives away openly developed generic house plans and whose members sell customization services?

  • Charles

    Don,

    It might be because of liability. You can give away software that wasn’t certified as “This was signed by a competent person who attests it does exactly what it’s supposed to do and only that. You may sue me if I’m wrong.” You can do this because there are zillions of uses for software that aren’t critical. In most countries, there are strict building codes that have to be adhered to and it may be too expensive from a liability point of view. I have a hard time imagining a contractor who would agree to build a house according to plans that “I downloaded from an open source engineering (or architecture) site.” At least in North America.

  • http://linuxworld.com/community/ Don Marti

    So why isn’t there an “Open Architecture Group” that gives away openly developed generic house plans and whose members sell customization services?

  • Charles

    Don,

    It might be because of liability. You can give away software that wasn’t certified as “This was signed by a competent person who attests it does exactly what it’s supposed to do and only that. You may sue me if I’m wrong.” You can do this because there are zillions of uses for software that aren’t critical. In most countries, there are strict building codes that have to be adhered to and it may be too expensive from a liability point of view. I have a hard time imagining a contractor who would agree to build a house according to plans that “I downloaded from an open source engineering (or architecture) site.” At least in North America.

  • http://lippard.blogspot.com/ Jim Lippard

    I learned to program in PL/I thanks to what was virtually equivalent to open source–I was a member of a Honeywell-sponsored Explorers Post which gave its members access to Honeywell’s Multics operating system. Multics provided source code for the entire operating system (except for a few unbundled software applications written by third parties) to all customers, and through my account I had access to all of it. I learned from looking at other people’s code and making changes to it, and ultimately was able, through the sponsorship of one of the developers, to provide my changes for review and installation into the operating system. This ultimately led to my becoming employed as a Multics systems programmer.

    If that code hadn’t been open to me, the employment opportunity probably wouldn’t have, either–at least, not as early as it did (while I was just entering college).

  • http://lippard.blogspot.com/ Jim Lippard

    I learned to program in PL/I thanks to what was virtually equivalent to open source–I was a member of a Honeywell-sponsored Explorers Post which gave its members access to Honeywell’s Multics operating system. Multics provided source code for the entire operating system (except for a few unbundled software applications written by third parties) to all customers, and through my account I had access to all of it. I learned from looking at other people’s code and making changes to it, and ultimately was able, through the sponsorship of one of the developers, to provide my changes for review and installation into the operating system. This ultimately led to my becoming employed as a Multics systems programmer.

    If that code hadn’t been open to me, the employment opportunity probably wouldn’t have, either–at least, not as early as it did (while I was just entering college).

  • http://www.techliberation.com/contributors/braden_cox.php Braden

    I’d like to hear more stories like Jim’s. The FLOSS study basically said that the only way (or at least the cheapest & best way) to learn development skills pre-employment or on your own time is through FLOSS project participation.

    FLOSS participation is one way, but certainly not the only way. There seem to be just as many other ways for young and old alike to learn how to program. Many people (policywonks, journalists) focus on FLOSS because it is new and the flavor du jour. There are probably more ways for young people to learn to program in commercial products because there’s a sustained focus on this activity.

    There are programs that provide software to universities, and there are free versions of people’s tools. And sites like these:

    http://msdn.microsoft.com/vstudio/express/beginner/default.aspx

    http://blogs.msdn.com/coding4fun/

    And other, non-conventional routes like the Imagine Cup, which has become huge and international. http://imaginecup.com/default.aspx

  • bradencox

    I’d like to hear more stories like Jim’s. The FLOSS study basically said that the only way (or at least the cheapest & best way) to learn development skills pre-employment or on your own time is through FLOSS project participation.

    FLOSS participation is one way, but certainly not the only way. There seem to be just as many other ways for young and old alike to learn how to program. Many people (policywonks, journalists) focus on FLOSS because it is new and the flavor du jour. There are probably more ways for young people to learn to program in commercial products because there’s a sustained focus on this activity.

    There are programs that provide software to universities, and there are free versions of people’s tools. And sites like these:

    http://msdn.microsoft.com/vstudio/express/beginner/default.aspx

    http://blogs.msdn.com/coding4fun/

    And other, non-conventional routes like the Imagine Cup, which has become huge and international. http://imaginecup.com/default.aspx

  • http://enigmafoundry.wordpress.com/ enigma_foundry

    So why isn’t there an “Open Architecture Group” that gives away openly developed generic house plans and whose members sell customization services?

    The answer, Don is partly contained in the the very significant word “generic” in your question:

    http://enigmafoundry.wordpress.com/2006/11/22/copybot-resistance/

  • http://enigmafoundry.wordpress.com eee_eff

    So why isn’t there an “Open Architecture Group” that gives away openly developed generic house plans and whose members sell customization services?

    The answer, Don is partly contained in the the very significant word “generic” in your question:

    http://enigmafoundry.wordpress.com/2006/11/22/c

  • http://tieguy.org/blog/ Luis Villa

    Braden: those teach you how to be a real coder roughly like writing comments on this blog teaches you to be a practicing litigator, like playing Monopoly teaches you to be a landlord, or like playing with tinkertoys teaches you how to be a managing partner at an architectural firm. There are technical, social/managerial, and pragmatic skills that can’t be learned except by doing it in the real world, with real users, with real co-workers, and with real problems.

    Given a 21 year old who can show you the open source projects he has worked on and the features he has contributed to them, and a 21 year old who has done any of the things you’ve listed, a hiring manager who hires the one who has done the things you’ve listed should be fired summarily for gross incompetence. Given a 21 year old with no formal background, and who can show you the open source projects he has worked on and the features he has contributed to them, and a MIT CS grad, the call is closer, but most managers would still prefer the one with real world experience, unless the project is mind-numbingly stupid and the manager prefers someone with no imagination.

    (I have been known to exaggerate to prove my point, and to someone who has not hired or managed programmers it may sound like exaggeration, but as someone who was both a practicing programmer and a manager responsible for hiring programmers I’m not joking in the slightest here.)

  • http://tieguy.org/blog/ Luis Villa

    Braden: those teach you how to be a real coder roughly like writing comments on this blog teaches you to be a practicing litigator, like playing Monopoly teaches you to be a landlord, or like playing with tinkertoys teaches you how to be a managing partner at an architectural firm. There are technical, social/managerial, and pragmatic skills that can’t be learned except by doing it in the real world, with real users, with real co-workers, and with real problems.

    Given a 21 year old who can show you the open source projects he has worked on and the features he has contributed to them, and a 21 year old who has done any of the things you’ve listed, a hiring manager who hires the one who has done the things you’ve listed should be fired summarily for gross incompetence. Given a 21 year old with no formal background, and who can show you the open source projects he has worked on and the features he has contributed to them, and a MIT CS grad, the call is closer, but most managers would still prefer the one with real world experience, unless the project is mind-numbingly stupid and the manager prefers someone with no imagination.

    (I have been known to exaggerate to prove my point, and to someone who has not hired or managed programmers it may sound like exaggeration, but as someone who was both a practicing programmer and a manager responsible for hiring programmers I’m not joking in the slightest here.)

  • http://enigmafoundry.wordpress.com/ enigma_foundry

    There are programs that provide software to universities, and there are free versions of people’s tools. And sites like these:

    http://msdn.microsoft.com/vstudio/express/beginner/default.aspx

    http://blogs.msdn.com/coding4fun/

    I rather liked Stallman’s point about those who give things away at first and then, once you are hooked decide to up the price, comparing MS to drug dealers.

    But, in all seriousness, it should be obvious that open source provides benefits for the education market, and provides a way to learn about and study an OS at a deeper level than a proprietary OS in which you can’t see the source code.

  • http://enigmafoundry.wordpress.com eee_eff

    There are programs that provide software to universities, and there are free versions of people’s tools. And sites like these:

    http://msdn.microsoft.com/vstudio/express/beginner/default.aspx

    http://blogs.msdn.com/coding4fun/

    I rather liked Stallman’s point about those who give things away at first and then, once you are hooked decide to up the price, comparing MS to drug dealers.

    But, in all seriousness, it should be obvious that open source provides benefits for the education market, and provides a way to learn about and study an OS at a deeper level than a proprietary OS in which you can’t see the source code.

Previous post:

Next post: