Based on this mashable article and this IEEE web app, I thought I’d take a crack at giving myself a professional “score”:
- 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 - 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 - 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 - 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 - 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. - 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 - 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. - 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. - 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. - 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.