Recently I watched a wonderful course on Pluralsight. It made me reflect again on my personal thought about Knowledge and Skill. For the past 2 years, besides my coding job, I have had the pleasure to interview and hire resources for my company. I have met many talented people. They know a lot of stuff. Some have many certifications. They are good. They have spent their time on getting them, taken exams, … No one can deny that fact.
In the context of working as a developer, tester, I mean building software, you are paid to do something. You are paid to bring your knowledge into practice, to use knowledge to produce something. You are paid for your Skill.
Skill is not built from what you know. Skill is built from what you have done. You gain skills by doing things. Of course, you must know things first. That is obvious, right?
Hey, but why do we care about differentiating between Knowledge and Skill? It might trigger a self-reflection of where we are, what value we bring to the marketplace. For me, It helps me tremendously. It forces me to think no matter where I am, I need to gain more skills, bring more value.
Let take an example of a web developer using ASP.NET MVC as their main tool for building web applications. He has 3 years experienced, counted since the first time he worked on an MVC project. Let’s examine what he knows and what he has done.
Knowledge – He Knows
By googling, reading some articles, reading some books about ASP.NET MVC framework, he gains a certain knowledge about
- What ASP.NET MVC is
- How to start an MVC project
- There are Controllers, Actions, Attributes, Routing, …
- Support Dependency Injection
- …
- That MVC is a cool framework.
He knows a lot. When asked, he can cite from his reading. He even can compare MVC with other frameworks.
In the information age, you can gain knowledge quite easy. There are millions of materials out there, with both free and paid ones. If you want to know something, ask Google.
My friends, nowadays knowledge is free.
There are areas where people will pay for your knowledge (just make sure you have a solid one). However, a vast majority of developers is working in companies, writing code, producing software. Knowledge cannot produce software. Skill does.
Skill – He Has Done
In the interview, I usually ask what you have done precisely in the last 3 years. Which parts of the MVC framework that you have practiced most?
The answer I have received most is “I work on the business logic part. MVC has done everything else for me.” A very honest, correct answer! And many developers have done the same thing.
Given the Knowledge part, he knows ASP.NET MVC. However, he have not done any of these
- Code outside of a Controller – Action. Not create any custom attribute.
- Not knowing how to handle database transaction in an MVC application.
- Playing around with custom routing.
- Handling security
- …
The list goes on.
The point is that he does not seem to have any ASP.NET MVC skill. How much value is he in the MVC field? As an employer, I think NOT much. There are so many developers know about ASP.NET MVC. But a few actually is able to use it. What the market needs are ones who can use it, not just know it.
Knowledge is unless it is used to solve problems. People are paid to solve problems. The takeaway key from differentiating Knowledge and Skill is we should be well aware of the illusion of knowing things. We have to gain more knowledge every day. At the same time, we have to find a way to improve our skills. They have to be in synced.
Next time, if you come to your boss and ask for raise, bring your skill list. Do not tell him what you know. Tell him what you have done and can do.
I am happy that I, now, have a clear thought about different between Knowledge and Skill, the importance of each. I am also glad that I have started my quest to skill with my Reload 2017.