[Tech]Top programming languages, personal edition

Based on this mashable article and this IEEE web app, I thought I’d take a crack at giving myself a professional “score”:

  1. Java
    – half a point
    – knowing C# helps here, but there are lots of differences. I’m fluent enough to write basic stuff, but it’s not a language I can operate in without an excellent reference on-hand
    – I think I could learn the rest of the language pretty easily at this point
  2. C
    – quarter point
    – this was my first “serious” language, but it has been a long time since I’ve touched it. I have, however, had lots of time to come to grips with pointers and the various “hard” bits of C.
    – would require a fair bit of work on my part and a really good reason to do so to pick this up at a higher level
  3. C++
    – quarter point
    – a little odd, but I know this one as well as or better than C. I have invested in a bunch of references that focus on C++’s generic mechanisms, and I feel like I could use the language in either mode
    – would be a huge undertaking to learn it in depth, but I could get there after a while
  4. C#
    – three quarters of a point
    – I have been using this language for most of 10 years, and I have touched most of it, including the fancier stuff like generics, LINQ, Entities, and closures.
    – however I don’t have deep knowledge of the fancy stuff, and it would probably take more time than I realize to learn it all
  5. Objective C
    – no points
    – I tried picking this up not long ago and the syntax alone was intimidating.  I did eventually find some material that was at a level appropriate to start, but didn’t dig into it
    – I would at this point probably bypass the language in favour of Swift, but if I had to learn it I’m sure I could…eventually.
  6. PHP
    – tenth of a point
    – I “grok” the language now, but there’s a huge chasm between what I can read right now and being able to generate useful, decently structured code.
    – I’m learning the language as I go, mostly for my various webcomic and blog projects. It doesn’t take a long time to learn any one thing, which is nice, but there’s a lot to remember
  7. Python
    – a millionth of a point
    – I’ve actually written a little code in Python, but the knowledge of how to do so has long since left my head.
    – I’m sure I can and will learn it someday, but it’s not anywhere near the top of my mind.
  8. Ruby
    – tenth of a point
    – as long as we’re talking about Rails, I’m probably ok with this language now.  I have chosen it as my second (first being Java) at-work learning pathway, and the amount of stuff out there to help one understand is truly heartening
    – Learning, but slowly.  Ruby, particularly with Rails, seems to be the kind of thing one could get away with learning very little of for quite a long time.
  9. JavaScript
    – quarter point
    – I’ve read a tremendous amount of JavaScript, even written some of my own, but I still haven’t grokked it, and I get the sense that it’s got some very hidden depths.
    – Happily, I do expect to get this skill more or less for free over the next couple of years.
  10. SQL
    – nine tenths of a point
    – I am “the guy” for a lot of SQL most places I go.  I don’t have the breadth of knowledge to really know all the fanciness, but every year I learn a little more, and I love making it look pretty and go fast.
    – I’ve been doing this professionally long enough that I don’t think any given niche of this language will take me long to learn ever again.

If I just take those 10, I find myself with 3.1(00001)/10.  That’s not a great grade. It is certainly affected by the jobs I’ve held, which have not been enamoured of technical cleverness, but it’s also a sign that I need to commit more strongly to my own professional development.  JavaScript, PHP, and Ruby are all low hanging fruit at this point; I would add to those HTML5 and CSS3, both of which feature surprisingly powerful programming tools themselves. I wouldn’t mind doing a little hacking in LISP or Haskell at some point, just because they come up a lot in language discussions.

I think, though, that the bigger gaps in my knowledge revolve around frameworks.  I haven’t really ever learned an ORM framework in depth, although I’ve helped build and extend a couple.  I haven’t done any work in a NoSQL back end, which is just silly at this point in time.  I haven’t done much AJAX/JSON work. All of these things strike me as really huge holes in my professional presence, and they are holes I want to start filling sooner rather than later.