Designers Gonna Design, Programmers Gonna Google
Posted by Charlie Recksieck
Looking Up What You Don't Know
How does that make sense? We know how to Google. I shouldn’t give up a trade secret but we don’t remember everything about programming in our heads. We used to use manuals, whiteboards, legal pads, notebooks, Post-Its - anything we could to use for references. Now we just type it in a browser and off we go.
Let’s say I’m coding and I have to create a connection string to an SQL database on a server. I don’t just type out the line from memory, knowing the syntax. I type "sql connection string syntax" in Google. Voila - 95% of the time the solution I need can be found in the first 3 results (in this case the answer that the article gave me was: Server=myServerAddress;Database=myDataBase;User Id=myUsername;Password=myPassword;).
Yes, knowing what terms to use in Google takes a little knowledge, but not much. Just get in the ballpark. Last week I had a .php website where apostrophe characters were getting displayed as question marks. As I was keystroking "php apostro", Google’s 4th autofill candidate was "php apostrophe showing as question mark". Perfect. (It turned out to be a UTF character set issue, easily fixed.)
Google can get you pretty much get you anything. In a way, we’ve outsourced a lot of our knowledge to the web, and Google is the synapse to get you from question to solution. We used to need to know smart people. If I had a gardening question, I used to call my mom who had 50 years of experience to tell me what to do. Now I can Google it. Sorry, Mom.
Lately if a friend emails me to ask what time tomorrow’s concert starts that we’re seeing, I sometimes choose to be an ass and send them a result from LMGTFY.com ("Let Me Google That For You" - here)
Google is better than I am. If you called me on the phone and asked me how to fill in an SQL connection string, I couldn’t necessarily do it (although I’d like to think so). But that’s not my job anymore.
The 3 main people here at Plannedscape have all been in the game for about 20 years. We all used to have to know more in our heads. Debugging a problem that didn’t work could be a nightmare when I was compiling something in dBaseIII way back in college. Now if something breaks, I get a message saying "Invalid table name 'maintenance’ in project.page.class line 207.
We now can build on the shoulders of other peoples’ work. Copying and pasting from the web. Putting APIs in your project, just call the API and let Visual Basic intellisense autofill the correct commands and arguments for you.
And there’s another incredible internet phenomenon for software developers, both veterans and newbies. Message boards. If you have broken code, getting an error message which you can’t understand, Google it as best you can - include the full error message in quotes (like "System.IndexOutOfRange"). When you find a result from ExpertsExchange or StackOverview or some other online community of programmers, you’re in business. Not only can you find an answer there, but often you can post a bunch of code, and then Greg from Denver will spend two hours debugging and experimenting before finding the answer. Seriously.
For the life of me, I don’t quite understand the motivation for some of the incredible time and effort that these people put into their message board answers. After 10 more "approved solutions" then they get a new status under their avatar on the site? The off chance that an HR or IT professional happens to find them and keeps them in mind for some job? Altruism? I can’t imagine putting in that kind of selfless time myself, but God bless those folks for being out there. (Not just in software, but auto repair and plumbing YouTube videos? Those guys have saved me thousands of dollars.)
Does this mean that everybody can code? No. It reminds me how a few years back, as part of a large-scale project we worked on, we included C# and programming training classes for the fulltime people at the company, all as part of the deliverables. Two of us took turns teaching the class. And Robert, who was on the project kept asking me: Aren’t we losing future work on this if they can program it themselves? I never quite worried, mostly because it was a pretty complex project. But also, just because you can Google the right answer, doesn’t mean a newbie will know what to do with that information.
There is still such a thing as institutional knowledge. Yes, the newbie can get there eventually, but if a problem looks familiar to me, it might take me 10 minutes to find something that might baffle a more inexperienced programmer for a full day.
I will close with this. A great programmer now wouldn’t automatically be great 30 years ago. The brute-force gorilla programming back then was not only more tedious, but the institutional knowledge meant more back then. But, conversely, a great 1989 developer wouldn’t necessarily have what it takes to be a great programmer in 2019. He or she might insist on writing too much themselves, not being aware of the right resources to find things fast, copy and paste. It’s a little apples and oranges. So, while overall development might be getting easier with more tools, that still doesn’t make everything "easy." Far from it, Dude.*
* Gratuitous "Big Lebowsky" reference