An Architect's View

CFML, Clojure, Software Design, Frameworks and more...

An Architect's View

Learn A New Language Every Year - 2013 is Python

October 23, 2012 ·

I strongly agree with The Pragmatic Programmer's advice to learn a new language every year if you can and that was why I was recommending Seven Languages in Seven Weeks to anyone who would listen. I've accrued a lot of programming languages over the years and have earned my salary doing assembler, C, COBOL, C++, Java, CFML, Groovy, Scala and Clojure, with little bits of Perl and a few other things along the way. I don't often admit to the COBOL experience (it is only hinted at on my resume to avoid recruiters contacting me about COBOL jobs!) and I don't mention Perl at all, except after a few beers. Most of the languages I've worked in, I'm pretty happy to discuss, however.

During my C++, Java, CFML years I sort of let my learning go a little. I'd come out of university able to write small programs in a dozen languages although none of them provided a salary later in life. I settled into C++ in '92, moved to Java in '97, and CFML in '02. A five year cycle. Lately, I've gotten back into learning more languages more regularly. I was fortunate enough to learn Groovy in 2008 and take it to production, Scala in 2009 (again, to production) and then Clojure in 2010 (also in production). I didn't pick up a new language during the last two years and I feel bad about that.

I've been meaning to learn both Ruby and Python because several of my friends are using those and enjoying them a lot - friends who previously did CFML for a living. Python in particular has me curious because my wonderful former manager from Macromedia has since gone to Linden Labs (Second Life) and then EventBrite and, as far as I can tell, both use Python heavily for their web presence. Certainly the only jobs I saw open under my former boss were Python jobs. I didn't know Python so I couldn't go work for her again. Bummer!

I was chatting to a friend online a few days ago - a former CFML developer who is now doing Python for a living - and he mentioned PyCon was coming up. So I checked out the PyCon 2013 website and it's local and cheap ($300 early bird for hobby / individual programmers). After checking with my "financial controller", I got the green light to buy a ticket so 2013 will be the year I (finally) learn Python!

I look forward to seeing what several of my friends love about this language, and I'm looking forward to doing some hobby programming with something different in the evenings / weekends! I'll blog about my learning experience, as I go, and I'll be interested in feedback from Python programmers new and old out there...

Tags: programming · python

17 responses

  • 1 andy matthews // Oct 23, 2012 at 2:34 PM

    You can add another CFML developer who's learning Python to your list. I started a new job at Emma Email recently and they're an all Python shop.

    I might even see you at PyCon in 2013. I know that we send people. just not sure if I'll be one of the attendees or not.
  • 2 Randy Hudson // Oct 23, 2012 at 3:12 PM

    As a Python user, off and on over the last 15 years or so, I commend the obligatory XKCD cartoon:
  • 3 Julio Barros // Oct 23, 2012 at 3:19 PM

    Are you going to fly up to Portland right after Pycon? :)
  • 4 Alexei Martchenko // Oct 23, 2012 at 3:34 PM

    I've worked with Coldfusion and almost Coldfusion only for 14 years. Now it's time for other languages and Python is my first choice and it's really cool.

    This is the best time to keep recycling ideas, several frameworks, ideas plugins, languages and apps are popping.
  • 5 John C. Bland II // Oct 23, 2012 at 5:29 PM

    I'm learning Python now as well. I took on Ruby last year and love it.

    Always learning!
  • 6 Michael Zock // Oct 23, 2012 at 8:00 PM

    Have fun!

    It doesn't hurt that it's also a great fast tool to automate tasks on *nix systems in those cases where the good old Bash reaches its limits.
  • 7 Nitai // Oct 24, 2012 at 5:29 AM

    Welcome to the club. Python is really really good and you will pick it up very quickly.
  • 8 Sami Hoda // Oct 24, 2012 at 12:30 PM

    Keep us up to date. I have an interest in Python as well!
  • 9 Sean Corfield // Oct 24, 2012 at 3:17 PM

    @Andy, hope you make it to PyCon - it would be good to hang out!
  • 10 Sean Corfield // Oct 24, 2012 at 3:23 PM

    @Julio, guess I'm missing the reference there regarding Portland?

    @Randy, thanx for the chuckle!
  • 11 Daniel Greenfeld // Oct 24, 2012 at 8:59 PM

    I switched from other things including CFML in 2006 to Python and haven't looked back. Hope to finally meet you at PyCon 2013!
  • 12 Edward Beckett // Oct 25, 2012 at 7:26 PM

    I'm sure you'll master it :-)

    I'm focusing heavily on a mash-up learning spree of Java, Groovy and Scala ...

    The springsource path ...
  • 13 Sean Corfield // Oct 25, 2012 at 9:42 PM

    @Daniel, yeah, we'll exchange contact details before PyCon so we can actually find each other. 3,000 attendees?

    @Edward, good luck. I like Groovy, Scala is interesting, Java is... the new COBOL :)
  • 14 Edward Beckett // Oct 26, 2012 at 1:40 PM

    @Sean 'COBOL' ... lol ... Yeah Groovy is kinda fun ... the syntax is cool and for lack of a better term kinda groovy :-)

    Java is proving to be a challenge as I'm a new kid to strong typing ... Overall I'm hoping it will help me become a better programmer. OTOH I hope it doesn't become a hindrance either ...
  • 15 Tony Garcia // Oct 26, 2012 at 7:02 PM

    Hi Sean,
    I'm still doing a lot of CFML, but I'm also currently learning Python and have started going to the local Python meetups. Maybe I'll bump into you again at a Python event soon.
  • 16 Rico Pamplona // Nov 2, 2012 at 10:58 AM

    Have you guys ever heard of Oxygene? It's an interesting new language based on Object Pascal but creates apps for .NET, Java, Android, iOS.
  • 17 Sean Corfield // Nov 5, 2012 at 8:01 AM

    @Rico, no, I hadn't heard that before. I used to like Pascal but these days I'm less of a fan of OO languages and static type systems.