Thursday, March 28, 2013

Just Say "No" to Certifications

Because nobody's word is worth anything these days (even on a resume), developers can hear this a lot:

"You should totally get certified, so employers and clients will know you can do what you say you can!"

That used to be me. Yep, I was that guy (sorry). I was constantly talking about how important certifications are, telling everyone to get them. Bragging about the ones I had already gotten, the one I'm currently studying for, and the ones I plan on "building up to" in the future.

I've matured since then (a little bit anyways), and I now understand just how much time I wasted studying for, scheduling, taking (and sometimes retaking) certifications. Man, what a waste. I lost a lot of potential learning opportunities there. I'm not going to repeat those mistakes again, if I can avoid it.

So at this point, assuming you're actually paying attention to what you're reading, you're wondering how in the hell I missed out on learning something new if I was in the process of studying development technologies anyway for these exams. Right? Well, here's the discrepancy...when I was studying to pass an exam, I wasn't learning anything useful. Sure, I was digging into all the gory details about how I should use the .NET Framework, what ways are best for making calls to SQL Server from within C# logic, separating out layers on an n-tier architecture, and so on. But, I already knew it all. Why? Because I used it!

Looking back now on the way those test questions were structured, I realize just how badly designed those certifications were. You didn't miss questions because you didn't understand the concept it was supposed to be testing your knowledge of; you missed it because there was one character of code different between the two potentially correct code samples...and you didn't catch the difference. Or (and this was my usual stumbling block) there were questions that were horribly misleading, and you didn't find the "gotcha" hidden in the text. Is that really what we're supposed to use in the software development industry to determine if someone can do the job or not? Do any of these ridiculous questions really teach us anything about doing it right? Or, are we just going through motions designed to filter out the competent developers from the people who studied the "official" Microsoft Press version of the exam study guide?

This can't just be an issue with Microsoft certifications. I would almost guarantee nearly all certification exams in this industry have the same problem. And it is a problem. That's not the way we should have to get a vendor's stamp of approval. And, obviously, people have figured that out. Developers don't seem interested in getting certified these days. I don't hear anyone even asking about them anymore. Why is that? Most likely because the system is broken, and people learn very quickly when they've been burned by it.

I'm not planning on getting any certifications, now or in the near future. Unless there's a huge shift in the way things are done, I see no compelling reason to try. I've learned a lot more by sitting down with my laptop and looking up something new and interesting in the development world and hacking around with it for a few hours than I ever did by studying for an exam. It just makes more sense to me.

Everyone has their opinion, and I'm not saying my view is the ultimate answer, but it's the view I've developed through my experience. Some places still ask about certification during the interview process...that's cool. Some people feel they just learn better that way...go for it! Different strokes people, that's life. But if someone asks me if they should spend time getting certified, I'm going to tell them they would be a lot better off spending that time looking around on GitHub for what's trending in a certain language or framework. Or maybe checking StackOverflow for questions they can't answer and learning why a certain answer is correct. Learning new tech or contributing to an open source project, or even learning about what's giving other developers headaches with different platforms seems to me like a much more beneficial way to spend a handful of hours each week.

If you have any suggestions about what you like to do when you have time to learn something interesting, leave a comment about it.

Happy coding!

Saturday, March 9, 2013

A JavaScript Library Database?

Has JavaScript really gotten to the point that we need some central repository to keep track of the plethora of libraries and tools that are available out there?

Yes.
Yes it has :)

I still find it amazing how widespread the JavaScript boom has been, with many new and useful utilities coming out all the time. It can all be a bit overwhelming, and the large number of options can make it difficult to find the right library for your specific needs. A very useful site has surfaced recently, offering a "one-stop-shop" of sorts for tracking down those JS libraries that are right for you and your project. This new site is called JSDB.IO, and describes itself as "The Database of JavaScript Libraries."
The JSDB.IO Homepage
Categories & Submission
 Directly from the homepage, you're given a number of useful options for perusing the different libraries in the database, from searching and sorting, browsing by category, to submitting a missing library for consideration into the database.
Searching and Sorting

Follow on Twitter Link
 If you're interested in getting more involved with JSDB.IO, you can help out by tweeting about it on Twitter, or liking it on Facebook. There's even a follow link right there if you'd like to see what the team is talking about and keep an eye on any new additions that are being announced on Twitter. Pretty good so far, right?
Tweet & Like Buttons




Let's say you need to get a hold of a JavaScript template library for a project you're working on, but you have no idea which one to choose. You know there's more than one option, but you're not sure where to start to find the right one. Let's see what the experience would be like using JSDB.IO: navigate to the homepage and search for "template":

Hey! That's a pretty good selection of potential libraries to choose from. See those numbers off to the far right side of each of the results? That's a useful little calculation provided by JSDB.IO that tells you what the overall rating is for that specific library. It's also used as the default sort value, so you can assume the more commonly used, more popular libraries will be the first ones in the list. Let's use that as the basis for the next step: we need more information about this Handlebars.js library that's currently ranking #1 on the site. Click on it and see what happens.
Here's some very useful information. We get a rating, the number of GitHub watchers, the average length of time between commits, number of forks, and how many contributors there are for the project. This is excellent! And it gets better. JSDB.IO takes full advantage of its use of the GitHub API, so you can even click the "Readme" tab to view the readme file in the repository. If you select the "Repository" tab, it takes you straight to the project's repository listing, giving you access to the full set of source code that you would find if you were actually on the GutHub project's page. The "Similar" tab isn't currently active yet, but once it becomes available, you will be able to track down other libraries that are closely related or perform the same function as the one you are looking at.

I can't stress enough how useful I've found this site to be. JSDB.IO is my first stop when I need to find a specific type of JavaScript library. If you've found that it can be difficult to find the right libraries for the right project lately, do yourself a favor and stop off at JSDB.IO before you start entering keywords into your favorite search engine. You just might discover that this new database is exactly what you need to save time searching, so you can use that time doing what you really enjoy: actually writing the code to use them.

Happy coding!