There is a lot of talk that goes around the skills a developer needs to have these days. It’s literally on Designer and Hacker News every two days. Skills can be of two types: soft and hard. Soft skills are skills which help you become a better developer regardless of your expertise in your choice of development tools. On the contrary, hard skills encompass how well you know the tools you work with.
So, here’s this idea I had…
Consider a third skill type: something which bridges soft skills and hard skills. Suppose, you have empathy and grit as soft skills and you are brilliant at developing Android apps using Android Studio. Now, eventhough you are good at what you do and you posses those key soft skills needed for understanding your audience, you’re still going to get stuck at some point while developing. We all do, and it’s okay. This is where this bridge-skill comes in: Googling stuff.
Okay, here’s a confession: I wouldn’t be where I am today without Google. I rely heavily on it while writing code. The way I look at it is that we all only have an x amount of muscle memory we can access at a certain point of time. For instance, I cannot (even if I try really hard) remember all possible CSS attributes and values. I need to Google them everytime I write CSS. It’s as simple as that. Sure, I can remember things like color and font-size but I still have to Google the syntax for box-shadow when I use it.
Now, this idea I’m presenting need not be this rigid. Google in this context can easily be replaced by a book or documentation. But, it’s just easier to use a search engine like Google to help you narrow your results down. Searching a book would take way longer than a simple Google search.
This is why I think it’s essential for developers to be effective searchers. One needs to know what to search for for a particular problem. It’s like that problem-solving proverb: defining the problem is half the solution. Here, the problem is what one needs to search for.
Now, it’s a little tricky explaining this through examples because search results can be subjective. But, I’ll try my best to get the point across.
Objective: Implementing an Instagram-like heart animation in an Android app
The arbritary search brings up unnecessary results. I do not want to see images of hearts.
Adding ‘instagram-like’ gets me proper results. In fact, the first hit is exactly what I was looking for.
Objective: Fixing an error thrown by Android Studio
This is a good example showing an approach for getting around errors your IDE or development environment throws at you.
Here, again, an arbritary search is inconclusive.
Getting specfic about the type of error (NullPointerException in this case) gets us what we need.
Those were just a few instances illustrating the idea. I’ve come across vastly different search results based on my choice of keywords. In many situations, that one keyword is the difference between solving a problem instantly or being stuck on it for days!