What Software Developers Need to Know About Training and Certifications
I don’t know about you, but I don’t like wasting my time. Or my money. Or both.
And there are certainly plenty of ways to waste your time and your money.
Take playing World of Warcraft, for instance.
I wasted plenty of time and money doing that, although I guess not all that much money — more the time, really.
I’ve also wasted plenty of money.
Early in my real estate investment days, I made a $10,000 down payment on some fourplexes that were supposed to be constructed later that year.
My real estate agent warned me, my lender warned me, the title company said the builder wasn’t “reputable.”
But did I listen?
The good news is, I did get to claim a $10,000 loss of bad debt on my next year’s tax return.
Anyway, even though this chapter might appear to be about how stupid I am (plenty), it’s actually not about that at all. It’s about training and certifications.
You see, you can spend — and waste — plenty of time and money on training and certifications and get nothing for it, or you can make wise investments and get the biggest bang for your buck.
But the path is not always clear.
So, let’s make it a little more clear, shall we?
Are Certifications Worth It?
The first question most software developers inevitably ask is whether or not certifications are “worth it.”
As in, is it worth spending my money and my time to get a certification?
Well, as any good consultant or lawyer likes to say, “it depends.”
It depends on what you hope to get out of a certification.
If you hope to actually learn something useful that is going to make you much better at your job and cause everyone who sees the new set of initials after your name on your resume to worship you and offer you a job where you can name your price, then no.
No, it’s not worth it.
I’ve gotten plenty of certifications in my career and I can tell you that in getting them, I didn’t really learn anything useful.
Sure, I temporarily memorized the exact syntax for some obscure ASP.NET library call.
And sure, I got some pretty wide-breadth knowledge about the different technologies and tools I got certified in, but it was nothing I couldn’t have learned just as easily on my own without studying for a certification.
I also found that having certifications didn’t really make my job search any easier.
In some ways it made it a bit more difficult at interviews, because the interviewer would automatically take an aggressive stance and ask if I thought my certifications meant I actually know something, or would tell me about how they think certifications are bullshit.
Haha, that’s a fun situation to be in… just smile and nod.
Let them get all that misdirected anger out.
It’s not your fault their parents never really loved them.
Anyway, that’s not to say that certifications are all bad and completely worthless.
I’m just saying that a certification on it’s own doesn’t mean all that much; it’s not going to make a huge difference in your career.
Well Then, Why Would You Get A Certification Then, Johnny Boy?
I’m glad you asked… youie… you.
Although a certification is not necessarily going to get you a great job alone, it can be an enhancement, especially if you are applying for a job with a consulting company.
Many consulting companies who happen to be official Microsoft solution providers require the software developers they hire to either have Microsoft certifications or to get them shortly after being hired.
In this case, already having a certification — or more than one — is going to make it easier to get a job with one of these companies.
A certification can also help you when you don’t have a large amount of experience and/or a college degree.
It might not convince someone that you are an expert, but it will indicate that you at least know what you are doing and have spent the time and follow through it takes to actually complete a certification.
A certification can also help you look like more of an expert in your niche or specialty if it’s directly related to that specialty.
And if you are already employed, a certification is a good way to show that you are making progress towards self-improvement and in your overall skills, so it could help you get a promotion.
At one point in my career I was stuck and finding it difficult to climb up the corporate ladder because my work wasn’t challenging and I wasn’t being given the opportunity to work on anything more challenging due to my level in the organization.
I decided to start getting as many Microsoft certifications as I could.
I ended up getting six Microsoft certifications that year and getting my MSCD and MSDBA credentials.
When review time came around, I had a really good argument for a raise and promotion into to a higher-level position.
I didn’t learn a huge amount from getting the certifications, but I demonstrated grit and determination, and that is what made the difference.
How To Get A Certification
I’ve completed many certifications in my software development career, and I can tell you that getting a certification is all about one thing and one thing only: learning how to take that particular certification test.
This is one of the flaws of certifications and why they aren’t taken as seriously as you might think.
Once you’ve passed a certification, you realize quickly that the exam was really only testing you on your ability to take that particular exam, not really based on what you know.
(I know some people aren’t going to like that I’m saying this — and I admit there may be some certification tests I have not taken, which do overcome this drawback.)
I do realize that the people who create the certification exams don’t try to make it this way on purpose, but it’s very difficult to test someone on their programming ability or knowledge in a particular area in some kind of standardized test.
Regardless of why, the reality is that if you want pass a certification, you need to specifically study for taking that certification exam.
All the prep books are not going to help you nearly as much as studying the actual practice questions for the exam.
I’ve found the Transcender practice exams to be the best ones for practicing most certification exams.
Their questions seem to be very close to the actual questions that will be asked on the exam.
Don’t get me wrong, I’m not saying just study for the exam by only taking practice exams.
You should also study the actual material and content that the exam is supposed to be testing you on, perhaps even read an exam prep book.
But the majority of your ability to pass the exam will likely come from taking practice exams with software like Transcender.
Also, don’t be afraid to take the exam as soon as you think you are ready.
So what if you fail?
For most certifications, you can just try again at a much reduced fee or even for free and you’ll learn about what you need to study.
What About Training?
While certifications are typically not useful for actually increasing your knowledge or skills in a meaningful way, training is more of a mixed bag.
There is good training and there is bad training.
Good training can accelerate your learning a lot, helping you learn a new skill or master one much faster than you can on your own.
But bad training is just a waste of time and money — and can even be detrimental if you are being taught the wrong concepts.
The most valuable training is the kind of training where you are able to assimilate a large amount of information or experience into a much shorter period of time than you would spend studying on your own.
You really want to look for the kind of training that offers you something more than what you can easily do on your own.
For example, suppose you were trying to learn a new programming language.
If you could go to a training where an expert in that language was able to condense the most important concepts you needed to know down to a three-day course, it would probably be very valuable, since this wouldn’t likely be something that you could very easily do on your own.
You would also benefit from the immersive experience of working with that programming language for three days straight uninterrupted.
So, look for trainings that are going to provide you shortcuts for learning.
When I give training, I always try to teach three things:
- How to quickly get started.
- The big picture and overview of what the technology can do.
- The 20 percent you need to know to handle 80 percent of what you’ll do with that technology.
The idea is to accelerate students in the areas where they would likely struggle the most on their own.
It can be difficult to know how to get started, so having someone show you how is valuable and can save you time.
Likewise, when you are starting with a technology, it’s difficult to know the full scope of that technology and those unknown unknowns — what you don’t know that you don’t know.
By giving a broad overview of a topic and revealing the scope of the technology, a large amount of time is saved by converting unknown unknowns into known unknowns, which are much more Googleable if you get stuck.
Finally, by teaching the 20 percent that gives you 80 percent of the benefit of the technology, it saves a huge amount of time, because as a beginner, it’s difficult to know what is important.
And don’t forgot to look outside the realm of software development for training that can help develop you in other areas of your life.
I’ve made personal investments in training/seminars from Tony Robbins, internet marketing, fitness, business, and other areas of my life. I have found it to be immensely valuable — both on a personal and professional level.
What Kinds Of Training Are Available?
Typically, training can be broken up into two categories: online or live/instructor-led training. And of course, there are hybrid versions of these.
There is a huge amount of online training available at an extremely low cost.
It’s really amazing how much quality training is available online today, and how cheap it is.
For just about anything you want to learn, you can find training online.
In my mind, it’s one of the best possible investments you can make in your software development career because of the huge number of available courses on every technical topic and programming language you can think of, and the cost is extremely low.
Other places to get online training are: TreeHouse, Lynda, Udacity, Udemy, and many others.
I offer my own online training with some of my more specialized courses like:
- How to Market Yourself as a Software Developer
- 10 Steps to Learn Anything Quickly
- Simple Real Estate Investing for Software Developers
- 10 Ways to Make Money With Your Blog
And you can of course find plenty of good, free training on sites like YouTube.
You can also find plenty of the traditional live training, but it’s usually a little more expensive and takes more time, since you actually have to show up at a physical location.
Still though, I don’t think live training will ever go away, because it is so valuable.
Live training offers you a more interactive experience and lets you communicate with the trainer, as well as others who are participating in that training.
One of the best ways to learn is to have a feedback loop where you can ask questions and get immediate answers; live training usually supports this kind of mechanism.
And while you often have to travel for live training, that full immersion can be extremely valuable for learning a subject rapidly since you are less likely to be distracted — you’ve got nowhere else to go.
I went to Tony Robbins’ Date With Destiny seminar and it’s a fully immersive experience.
For six days you are in the seminar hall for around 14 to 16 hours each day.
You really only have time to sleep — and you get little of that.
But it’s an amazing experience because it is so immersive.
You can get a large amount of the same information and exercises from Tony’s book Awaken the Giant Within, but it’s a much more valuable experience when you attend the seminar because you are forced to dedicate six full days of your life to working on yourself and actually doing the exercises.
So, I’m a big proponent of live training if only because it forces you to focus and immerse yourself in what you are trying to learn.
You can usually find live training offered on a large number of subjects and often companies bring in trainers to teach a specific topic.
Also, many conferences offer workshops before or after the conference in which some of the speakers will offer some kind of training on the subjects they are experts in.
Making The Most Of Training
Attending training is not enough.
Just because you sat in the same room with someone who’s an expert on the topic and you got a little certificate that says you are “certified” or attended, doesn’t mean you actually learned anything or improved your skills in any meaningful way.
If you want to get the most out of any training, you have to do what Tony Robbins calls “playing full out.”
That means that when you go to a training event or participate in some kind of training, you shouldn’t just listen and do the exercises or activities that appeal to you, but instead, you should give it your best and participate as much as possible.
Turn off your cell phone, don’t check your email, don’t try to work on “emergency work stuff” while you are at the training.
If you can’t devote some serious time to your personal development, don’t bother with the training in the first place because it will just be a waste of time and money.
You get out of training what you put into it.
So, the first rule is to be selective in the training you attend and pursue.
Make sure it’s actually good and valuable training that is worth your time.
Don’t just go to a training because it’s offered to you, and don’t just attend training because it’s free, heavily discounted, or you feel like you should be “doing something valuable.”
Instead, be selective and vet out training before you even participate in it.
Next, plan ahead.
Clear your schedule.
Make arrangements so that you will not and cannot be interrupted during the training, so that you can actually get the most out of it.
Yes, shit happens, but if I’m at training or doing something important, I make sure that no one can get ahold of me when it does.
You are not as important as you think you are. Someone else can handle it — trust me.
Finally, when you actually attend the training, like I said before, play full out.
|Hey John| Why do you keep plugging Tony Robbins and talking about Tony Robbins all the time? Are you drinking the kool-aid?
Hah, I get it, I get it.
It might seem that I’m a huge Tony Robbins fanboy and that I have some hidden agenda in plugging his content and training; perhaps that I’m getting some kind of huge kickback for doing so, or that I’ve joined some kind of Tony Robbins cult.
First off, I’m not getting paid to promote Tony Robbins (at least not at the time of writing this chapter) — although I suppose I should be looking into a referral program.
So, there isn’t really a financial incentive.
Secondly, although I’m a fan of what Tony Robbins says, and his books and programs have been very impactful in my life, it doesn’t mean I’m 100% on board with everything he says–for example, I don’t agree with much of his health and fitness advice.
But, I do find what he says to be extremely helpful and useful for most people — myself included.
So, that’s why I talk about him and recommend him.
I don’t have very many people in my life who I would consider to be true mentors, but Tony Robbins is certainly one of them.
But, just like any person, he has his faults, he’s not 100% correct all the time and you shouldn’t follow him blindly.
Getting Your Employer To Pay For Training
Training can be expensive.
For example, that Tony Robbins Date With Destiny seminar I attended was about $5,000 a ticket, plus I had to pay for travel and accommodations.
So, it might be a good idea to figure out a way to get your employer to pay for you to attend training.
(Although I’d argue that even if your employer refuses, you should be willing to pay money out of your own pocket to invest in yourself.)
How though, do you get your employer to pay for your training?
Simple. You make it into an investment that will yield a good return.
This starts with vetting the training to make sure that it is actually valuable.
Online training, like Pluralsight, should be a no brainer.
Every employer should pay for their software developers to have access to Pluralsight.
It’s very easy to demonstrate the return on investment, since access is extremely low cost.
Just show your boss how much time you save by having quick access to training on just about any technical topic you want, versus you having to hunt for information, possibly buy books and read them, or figure it out on your own.
You could also contrast it to live, in-person training, and show how much cheaper it is to just buy a Pluralsight subscription.
|Hey John| Umm, how about Pluralsight; any financial incentive there or kool-aid drinking going on?
Well, yes, this is the case and there is a bit of both.
Ok, well not so much the kool-aid drinking, but definitely a financial incentive.
I do get paid for Pluralsight referrals… I know *gasp*.
And I have also created courses for Pluralsight, so if you go to Pluralsight and watch my courses, I do get an increase on the percentage of royalties from those courses.
But, even with a bunch of Pluralsight referrals and you watching my Pluralsight courses, it’s really not going to move the needle much in terms of my income.
Honestly, the real reason I plug Pluralsight so much in this book is just because of what a ridiculous deal it is for high-quality training. I really think every software developer should have a subscription, because it’s such a great investment in your career.
It’s really difficult to convey just how valuable it is to have all of this on-demand training for almost any technical topic you can think of.
So, yes, I am slightly biased, and if you are opposed to me making money from promoting Pluralsight or still think that’s my sole motivation, go ahead and sign up without using my affiliate link — just go directly to the Pluralsight website — and don’t watch any of my courses.
Really, I wouldn’t want you to miss out on something that is so valuable to your career just because you might not trust me.
But if you are trying to get your employer to pay for the more expensive live training, and the travel that goes with it, you might have to be a little more strategic.
You might want to offer to take copious notes during the training and share what you learn with the rest of your team. This way you can take the cost of the training and divide it by the number of software developers on your team, which should be a much more palpable number.
You can also talk about the expected results and outcomes that you anticipate the training will produce in the company or business.
- Increase the number of customers.
- Increase the value from each customer.
- Reduce the cost to deliver and support the product or service to the customer.
How can the training do one of those three things, or perhaps all of them?
You might also ask if there is a training budget; if not, ask if you can have a training budget each year.
Some companies already have training budgets set up, and some larger corporations have a policy of paying for a certain number of trainings per employee per year.
Finally, see if you can get the training to come to you.
See if your employer will pay for training for your whole team by hiring on-site training.
In this case, travel costs are reduced and you can get personalized hands-on training and perhaps hire the trainer for an extra day of consulting.
I often make myself available for this kind of training, so if you are interested, you could ask your employer to hire me to come to your office to give training directly to your team.
Becoming A Trainer
Speaking of training, have you ever considered being the one who gives it?
If you are an experienced software developer, especially if you have expertise in a specific area, you may be able to advance your career and make some decent money by becoming a trainer.
There are always companies looking to hire outside consultants and trainers to come and give their software development teams training.
Like I said, I give this kind of training, and I charge around $10,000 a day for it.
This seems like a large amount, but if you have a team of 10 software developers, that’s about $1,000 a person for training, which is a bargain for personalized, hands-on training, if you ask me — I’m biased, of course.
You can also offer to do workshops at conferences, especially if you have a popular topic that you can give hands-on training about. (Although in that case, you’ll probably be splitting your fee with the conference organizers.)
Even though online training is all the rave these days, there are still plenty of companies who specialize in providing in-person training.
They are often looking for new trainers, and in many cases will even give you the material to do the training.
So, if you have a knack for teaching and have some specialized skills, you might want to actually consider giving some training yourself.
It’s All About What You Put Into It
Well, that just about sums up all I’ve got to say for now about certifications and training, but I want to leave you with one important point.
It’s all about what you put into it.
Certifications and training are not valuable by themselves, just like a college education isn’t necessarily valuable.
Like many things in life, it’s about what you put into it that counts — that effort is what determines the value you get out of it.
You can’t get muscles by just going to the gym and sitting on a bench while chatting to your friends, or by making various poses in front of the mirror — although, I knew plenty of people who try.
The same goes for your software development career.
So, go out there, pick up some dumbbells, pump some iron, and play full out!