My Recent Search History
I Google Things All The Time
And today was no different.
In fact, Googling may be the most underrated developer skill there is.
I'm trying to remember things all the time... from my daughter's next gymnastic lesson time to if I took my vitamins this morning... ah, be right back!
Where Was I... ?
I think you get the point.
There's more than enough to remember in our adult lives. I set reminders on several devices, and I know many others do, too.
That said, I'm a developer, and I Google all sorts of dev related information.
All. The. Time.
I also frequent MDN and read lots of documentation. I look at examples. I read informative blog posts. And all of it adds to my accuracy.
I think my employer wants me to use every resource available to do the best job I possibly can.
So Why Does Academia Insist on Memorization?
I've been a student or an instructor (or both!) most of my life. I truly enjoy learning, and I enjoy teaching as well. Teaching actually helps me learn.
There is a lot I love about a learning environment, but one thing I just struggle to understand is the emphasis on memorization in the academic world.
I cannot begin to tell you how many tests I have memorized information for in my lifetime. Nearly all of this went into "temp" storage because as soon as the test was over I never thought of it again.
Go ahead, ask me for any date of historical significance.
I have a minor in history.
There's a very high probability I'm just going to ask Alexa to answer your question.
In graduate school, I've even taken proctored (aka monitored) exams. While school is supposed to prepare you for the real world, this practice seems to create an environment that will never happen in the real world.
This is why I favor project-based learning.
Let's study all of the documentation and examples. And then let's build something!
Show me what you can do. This will display how well you have learned.
"In the real world" is a phrase you often hear on a college campus. Building a project utilizing the skills and concepts you have learned translates very well to the real world.
And so does being able to reference the documentation and Google all sorts of things while you build it.
I have never had an employer state, "I need you to build XYZ project. And by the way, I need you to do it by memory. You are not allowed to reference any documentation."
This is also why I allow my dev students to take open book and open note quizzes.
I want them to get good at looking things up!
Looking things up is a skill.
It is definitely a skill you will use "in the real world".
Things I Had to Look Up Just Today
As an example, I thought I'd share a few things I had to Google today.
I needed to add a new table in an MS-SQL database, and then I needed to copy the existing records from another table to the new table.
I don't do this stuff everyday but I know how as long as I look it up to jog my memory and verify my syntax.
I'm using generic names instead of actual table and column info 😀
The first task was to find the longest note in the old note table.
SELECT TOP 1 OldNoteColumn FROM OldNoteTable ORDER BY len(OldNoteColumn) DESC
The old note column had text data instead of varchar so the len() method wasn't working. I had to search for an alternative method and found DATALENGTH.
SELECT TOP 1 OldNoteColumn FROM OldNoteTable ORDER BY DATALENGTH(OldNoteColumn) DESC
After finding out how long the longest data entry was in the OldNoteColumn, I was ready to create the new table with a NoteBody column big enough to accomodate the old data.
CREATE TABLE NewNoteTable ( NoteID INT PRIMARY KEY IDENTITY (1, 1), AnotherTableID INT NOT NULL, NoteDate DATE, NoteBody VARCHAR(255), FOREIGN KEY (AnotherTableID) REFERENCES AnotherTable (AnotherTableID) );
With the table created, I had to reference how to copy over the data.
However, I noticed the old table had a lot of empty notes saved. I only needed to copy over the records that actually had notes. I wanted to test out my query to make sure it worked before actually copying the records...and it did!
Notice I had to keep using a DATALENGTH reference because text and varchar data types are incompatible if directly compared this way.
SELECT * FROM OldNoteTable WHERE DATALENGTH(OldNoteColumn) <> ''
And finally, I was able to copy the old note data to the new note table after referencing the INSERT INTO SELECT statement syntax to once again insure accuracy.
INSERT INTO NewNoteTable (AnotherTableID, NoteBody) SELECT AnotherTableID, OldNoteColumn FROM OldNoteTable WHERE DATALENGTH(OldNoteColumn) <> ''
As you can see, I looked things up all along the way to completion.
There's absolutely no shame in it.
I believe Googling is one of the most underrated skills a developer utilizes on a daily basis.
And now I've got to run... one of my Alexa reminders just saved me again!