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!

Thursday, November 1, 2012

JavaScript Just Keeps Getting Better and Better

Yeah, it's been awhile...again. Look, obviously I'm not going to be able to keep myself to a blogging "schedule" per se. But who wants that pressure anyway? I've been investing my time into doing some awesome things at my current client, and I'm enjoying the hell out of it! So, that's what I want to get on record for today.

JavaScript is just plain fun.

So, along with many other developers about 5 years ago, I hated JavaScript. I thought it was a clunky, haphazard language that for some terrible reason was being included for client-side scripting in almost every browser out there. I thought it was crazy. And I despised JavaScript for years, until...


  • Node.js
  • jQuery
  • jQuery-ui
  • jQuery-validate
  • Knockout
  • Jasmine
  • Ajax
  • JsRender
  • The list goes on and on, I can't possible put all of the good stuff on this post. It's supposed to be an overview anyway. I'll pick on my favorites in due time, I'm sure.


These frameworks/libraries/tools/etc. have made JavaScript the most fun I have had writing code in a long time. I was a huge back-end guy. I liked the meat of the applications that I was working on. Now, I find myself veering toward more focus on the front-end development. How did this happen? I hated JavaScript, hated the front-end interactions and design. Now, I love it. Why?

JavaScript (and the libraries out there that sit on top of it) provides so many opportunities that it's impossible to ignore it. It's impossible not to get interested. Very interested. And now I find it impossible not to play with it. It's so incredibly flexible and I can essentially  do anything with it. That's a huge power for a developer to wield. It creates a magnetic pull toward JavaScript that is just beyond my ability to counter.

In the near future, I'm going to write a (potentially multiple) posts on my favorite new libraries in the world of JavaScript. I'm staying away from the Node.js world for the time being, even though it is extremely hot at the moment. It's still getting its footing in the market, and I want to watch it for a little while. "See where everything lands", so to speak. I'm not going to delve into jQuery, for obvious reasons. Everyone has already done that. I don't want to reinvent the blog post wheel, here. We're going to start with JsRender. It's still in beta at the moment, but this library is going to attract JavaScript devs the way salmon attract bears. It will likely become the new jQuery Templates plugin. The jQuery team decided not to take the templates plugin past beta, and they're looking to put those eggs into a new basket. According to Boris Moore, that basket is likely to be marked 'JsRender'. I'm expecting even greater things from this library, and there's a lot of good stuff already there. We'll dig into it all in depth next time. Hang in there, all!



Wednesday, January 19, 2011

Get Back to Work Already!

OK. I know. I have not been diligent on blogging as much as I should have been. Shoot, I didn't even write a second post since starting this thing back in 2009! I admit it, I suck.

In hopes of changing this pathetic trend, I've updated the look of the blog and will begin to actually utilize it moving forward. It's not that I feel that I have some awesome insight nobody else has and feel I need to share it with the world. However, since becoming a consultant in July of last year, I have been learning so much so fast that I need a place to document it. And as most developers well know, the human brain is nowhere near big enough to store every important piece of information we learn as we develop software on a daily basis. Even the seemingly minor things I work on, like handling uploading/downloading on an ASP.NET MVC web site, comes with it's own list of things that must be adhered to, caveats, and the like that deserve noting for future reference.

Going forward, I will do my best to keep this blog active and allow it to take on a life of it's own. If you can find the time, join me along the way. Offer suggestions, questions or just the occasional 'cheers' as you see fit. Hopefully, readers other than myself will be able to benefit from this blog.

Tuesday, April 14, 2009

Yet Another Certification

I passed!

Last Friday I took the MCTS 70-528 Microsoft Certification exam. It was a little rough in places, but overall a good experience. And I'm one exam closer to completing the first half of my current certification goal. My intent is to achieve MCPD status for enterprise application development in .NET 2.0.

The focus of exam 70-528 is developing web-based client applications using the .NET Framework 2.0. The main user interface for web clients in 2.0 being ASP.NET applications, this exam was all about the aspx goodness. There was of course some IIS tidbits thrown in along the way, but nothing too difficult.

I'm always suprised with the complexity that Microsoft is able to cram into a multiple-choice question! If you've taken a Microsoft cert before, you know exactly what I'm talking about. They always manage to turn a simple concept into a head-spinner. One of the tips I was given back in school was to always trust your first instinct on the correct answer, because most of the time it is the right one. This concept does make it easier to spend a little more time on each question, because you don't need much time to review answers before marking it as completed.

Once I have completed the two remaining exams for the MCPD certification, I'll get started on the .NET 3.5 stuff (where the real fun stuff is). I've been wanting to dedicate some serious time to getting up to speed with WPF, WCF, WF and Silverlight. And I love the fact that ASP.NET now has MVC project templates and support in VS. The sooner I can get around to diving into this stuff, the better!