It’s OK to Google stuff!
September 12, 2019
Not only is it ok to Google stuff (all the time… seriously… I use Google ALL THE TIME!), today we talk about HOW to find technical things on Google (and probably a lot of other things!) Joshua also, finally… turns the tables and catches Kel using an acronym!
Be sure to check out our new Slack community to meet others who are facing the same things you are and share your journeys!
-
00:05
Joshua
Hey folks, welcome to Getting Apps Done. A mostly nontechnical podcast about building software. Today we're going to talk about something that isn't directly related to building software but is extremely important to building software. And that's how to find stuff on the Internet. I'm Joshua...
-
00:22
Kel
And I'm Kel and today we're gonna talk about searching. We're going to talk about googling things!
-
00:26
Joshua
Googling things.... It's an important skill. I swear they should have that in every job description. That should be one of those requirements. In fact, it's the only thing they should really be in the requirements section. Everything else should be nice to have, but in the requirements "know how to Google stuff."
-
00:42
Kel
Yeah, I kinda hate having to use the word Google that that's... I don't know...
-
00:45
Joshua
No...
-
00:45
Kel
I know we used to Alta Vista. We used to ask Jeeves. We used to...
-
00:50
Joshua
Webcrawler!
-
00:50
Kel
Webcrawler. Yes. Did Webcrawler actually have a search though. Or did you just have to walk through the site index?
-
00:56
Joshua
No, it had a search.
-
00:56
Kel
Wow. Okay.
-
00:57
Joshua
Now DMOZ that had just the index and you had to go through the whole thing site by site in alphabetical order. Luckily there weren't that many sites. Okay. There were few, 100,000 but compared to now...
-
01:09
Kel
So if you can't tell, we've been searching for things on the Internet for a very long time now. And this, this conversation kind of came up actually. Uh, we were talking about Linux in our slack chat and how we use Linux. And for me, I am not a Linux user and yet I can do jobs that actually have a requirement of Linux because I know enough about it to be able to search for the things I need to know.
-
01:31
Joshua
I think that is a big side of it. It's really just knowing what to look for and then enough to know unique things to look for. Because the biggest problem with anything on the Internet is there's just too much stuff out there on the Internet and a lot of it is going to be very related to what you're looking for, but not quite exactly there. So one of the big key things there is knowing enough to actually be able to hone in on very specific things. So instead of just looking for a react native or react native billing, you have to go in a little bit more to the specific problem you're looking for.
-
02:04
Joshua
Today was a perfect example of that. I was trying to test some react native billing and going through the chain of things. I was coming up with a lot of stuff that was directly related to React Native was related to billing on the play store, but actually the one thing that I needed was related to the license testing and being able to drill down and start to use things from stack overflow and other sources to kind of guide my way to that thing. That was unique because that was the one thing that was a unique time problem was not just react native, not just react native billing, but react native billing and licensed testing it. It had to, it took some knowledge. I had to know enough about it to get myself there in the first place.
-
02:45
Kel
And I think that's kind of the key is when you're searching for the solution to a problem, you have to know enough about the system that this problem is in or this this thing that you're trying to look up to. Know what it is that you need to look up. Like you need to know what the keywords are. You need to know what the different pieces of this system are is. Yeah, you need to know about the different pieces of the system to be able to guess what the thing is that you need to search for. And you might be wrong when you Google things, when you type, you know, questions into the search engine, of course you get it wrong all the time, right? Like what's, how often do you get the exact result you're looking for the first time you search. Um, but the more you search, the more you'll kind of start to hone in on what you're looking for.
-
03:30
Joshua
Yeah. And that is a big part of it is... Kel's absolutely right. If I get it right on the first time, I do a little happy dance in the corner because that's freaking awesome. That just saved me a ton of time digging and it is really just that it's taking the base concept, getting some results and actually using some of that information in there to find some context that helps me either weed out things that I don't care about that are coming up a lot or to start to add in extra things. Be Like, oh actually that is directly related, but that's not quite what I'm looking for. Just to build it up and get a little bit closer to specifically what I'm looking at.
-
04:05
Kel
So when you like, so when you're searching, uh, when you Google something, what you're doing is you're setting the constraints for that system on what you want it to return. So if I type in, I don't know, tree into Google, the constraint I'm giving Google is I want something, things that are related to the word tree and who knows what you're going to get. That's the only constraint you gave it. It could be tree as in you know, the plant, the with leaves and pine needles and things. Or it could be tree as in a graph structure as where it's, you know, a binary search tree for example. So what you're doing, you add to Google, you have to set the constraints of what you want to include and what you want to exclude. And to do that you have to know a little bit about what you're searching for and you have to know that a little bit about other things that share that same context. So an example of tree, if I'm looking for a data structure vs a plant, I got to explain that a little bit differently to Google.
-
05:01
Joshua
Oh that's actually a perfect example there. Knowing what data structure is would be enough to get you there. Just putting in tree data structure, Bang, you're there.
-
05:11
Kel
Exactly. And so I, and this kind of takes you back to the use more words podcast we did the other day of that. That's kind of what's required is you have to describe these things to Google. And unfortunately Google is not as smart as another person and so you can't just keep using more words and that person will eventually come to the understanding themselves about what you're looking for. You have to keep trying. It's a computer. It's only going to do exactly what you tell it to. Plus a bit of the, you know, wishy washy of machine learning.
-
05:41
Joshua
Yeah. I would like to argue that it's actually kind of the opposite of SEO or search engine optimization, which is all about creators, setting expectations on their page. They are using keywords and phrases to tell Google how people who are looking for that content can find it. What you're actually doing is the opposite way around. You're trying to figure out what keywords they might have used for that content and devine some of that or magic it up or whatever you need to do, but having that base context, understanding that in the case of the trees that you're not looking for palm trees, you're not looking for any other kind of tree. You're looking for a data structure tree... Will make the huge difference because the person who had that content, they're going to be talking about data structures. So that's going to be an important part of what they're talking about. The moment you understand what that is and can add that as part of the context, that's when you start to get the right results out of Google.
-
06:38
Kel
Exactly. And so when we talk about search engine optimization, that's you know, SEO that is the, the author having to put keywords and trying to describe things and Google helping you, you know, index the thing to pick out words like data structure. And so as an author it's actually part of your work as a content creator is trying to make it more indexable to make it easier for people to find your work. And so you don't always succeed.
-
07:06
Joshua
Absolutely.
-
07:06
Kel
That's kind of part of what can make things difficult to find on the Internet is that content is probably out there, but it might not be organized that well. There is a difference between creating a content and making that content easily indexed and then being able to search for that content so there's a lot of things that can go wrong between you and whatever it is you're looking for.
-
07:25
Joshua
That is also though exactly why it's more important to add more words in there because even if they haven't optimized that content very well, the fact that they're talking about data structures and they're talking about trees means that they're going to talk about certain things. They're going to have certain words in there that you're not going to have on a site that's all about Christmas trees and starting to identify those things and understand what words you can add. They are quite often, we'll call them long tail keywords. They're very long phrases that hone in on very specific information. They're really great for people who are writing articles like that because we can kind of allow our content to come to the top when somebody is looking for that very specific problem. When you are looking for a data structure, tree searching algorithms, you've got kind of a big long thing there. But somebody who is looking for that may will type that in and it's going to get them straight to the sort of content they're looking for that you've handed in enough context that Google can actually start to find content that really is going to be about searching in.
-
08:23
Kel
Exactly.
-
08:24
Joshua
trees that are data structures, not looking for your next household plant or,
-
08:29
Kel
exactly. So you've got, you've given Google enough or bing or Yahoo or I guess not. Yeah.
-
08:35
Joshua
We should be fair? There are..
-
08:36
Kel
There are others left.
-
08:37
Joshua
Yeah. Not many. I think it's mostly Google and Bing these days, but, oh, duck, duck go. Yeah.
-
08:43
Kel
Doesn't duck duck go. I guess they have their own index or now, I don't know. Anyway,
-
08:46
Joshua
I dunno.
-
08:47
Kel
But yeah, yeah, so you've given them enough constraints to sort that huge collection of knowledge and you know, limited down to a set of data that you are or might be interested in. So one of the things I kind of wanted to go back to was we talked about, you know, this is a skill that you kind of develop and that you have to dig for things occasionally and that this is something that you kind of learn over time and what that a lot of that is, is learning about the system that you're trying to figure out. So you, you dig, you search and then you discover, Ooh that article is close to what I wanted but not quite. And it had a new keyword, binary search tree. That's the type of tree that I'm interested in. And so you go back to Bing and you add that new, that new constraint, you know from search tree to binary search tree and all of a sudden the results get that much closer. And so it takes time.
-
09:38
Kel
When we talk about digging, that really is what we mean is what we're, we're digging in trying to figure out enough of what we're looking about. Like being able to describe it and having the right words to describe it, to be able to describe it to a machine which is a giant certain judge and in the cloud somewhere.
-
09:54
Joshua
Absolutely. It's also about kind of learning as you go because a lot of these things you're not necessarily going to find the answer in one spot. My react example this morning I learned from a lot of different sources as I was going through this and starting to pick up new pieces of the puzzle as I went along, my search ended up being a fairly lengthy one to try to find the right answer because Google's documentation is horrible, but as I was going through the searching, I was picking up new keywords. I was picking up new knowledge that got me closer and closer to the answer I was looking for.
-
10:26
Joshua
So it's not just about building up the right keywords to get to the magic answer. It's also, it's all about the journey. As they say. You're a collectively adding more and more content and context to your own knowledge base as you're going through it. And that is an extremely important part of it. Being able to pick out the pieces that are important to the puzzle that you're working on is definitely a skill that does take some time to develop, but it's very well worth it.
-
10:52
Kel
And what you'll learn is that some keywords are more likely than others. The best example is the error message. If you have a compiler error that is going to be word for word, the exact same compiler error that everybody in your situation has encountered. And so you can pretty much copy and paste it into Google and get all the various ways that that error can appear. And hopefully one of those is the way that you made it appear and you can solve your problem. And so when people talk about troubleshooting, the first step is almost always Google just the direct error message because if nothing else, you will find out all the possible ways that that error message can occur within about 10 minutes.
-
11:31
Joshua
Now, if your error message is null reference, that may not be all that helpful. But again, add more words.
-
11:36
Kel
I was going to say when in, in as a new programmer that might actually be enough, cause I know reference is something that maybe you didn't occur to or you forgot about because you're new. You just started programming. Maybe the language you just came from doesn't have nils or maybe they're called nils just to make things confusing.
-
11:55
Joshua
NUL with one L.
-
11:55
Kel
Yeah, exactly. So when you, you actually, you know, Google the thing, you might go, oh shoot, this probably means I missed a semi-colon three lines above just like this person or, so you'll find out that you'll gain experience just by googling those things. Even when the Google was pretty bad. Wherever your search query was, not optimal, you'll still learn things and that's helpful.
-
12:18
Joshua
Absolutely. And it is definitely something that you will use every day. I, there's another, there's kind of this expectation that as you get to be a senior developer that you aren't googling things as much. And I've actually heard developers say, yeah, I kind of know that, but I have to Google that all the time. Me too! That's part of life, right? There's so much to know about software development that you're never gonna know all of it, but having that understanding means that you can get to those answers quicker and that is one of the key things.
-
12:48
Joshua
I think that is one of the things that does help separate more senior developers from newer developers because by having done this before, understanding what the concepts are, I know when, I can't remember exactly what the syntax is in this particular language because I haven't done it for awhile. I can get to the answer in Google very quickly or bing or whatever. I know exactly what to look for because I have enough context that I can put in the right set of keywords that I can get straight to the answer. Whereas if it's something that I haven't worked with before, I don't know well enough, I'm going to be searching just as much as anybody because I don't have that context. And for a new developer, it's okay not to have that context. You are learning it, you're going to get it, but it's perfectly okay to go Google it as well.
-
13:28
Kel
Exactly. And I mean, speaking of kind of the memorized things, like I don't, you know, a binary search tree search algorithm, I could probably make one off the top of my head. I do not remember which ones are optimal. I Bing in Google in search, those things I ask Jeeves. Um, but kind of an analogy of that, if you remember back to your, you know, maybe high school physics class, uh, with all of those uh, algorithms, all of those things that you were supposed to, the equations you were supposed to memorize on for, to do your tests and how much easier your test would have been if you could've just searched for the one that you needed. Like you know what they all kind of do. You just don't remember them off the top of your head. And that's fine. That's why we have technology. That's part of why it's why we have writing paper. So we can write things like that down and not have to store them in our head. And so this is a perfectly acceptable thing. Lean on your tools. This is an okay concept, especially as a developer. Lean on your tools. It is fine. Yeah.
-
14:32
Joshua
Yeah. You're going to naturally pick up and learn the things that you use frequently and those things that you don't, there's no harm in having to look at a little bit of reference material. That's perfectly normal. In fact, if you ask any scientist or doctor or anybody else, they do exactly the same. They have to look stuff up because if you're not seeing it every single day, you should need to look it up. You shouldn't be memorizing. Absolutely. Everything under the sun would probably be quite confusing if you did.
-
14:59
Kel
Exactly. And so, I mean, one of the things that people have asked me in the past is why? How I find things quickly on the Internet, how I, how I troubleshoot problems. You know, I originally started an on a help desk doing, you know, help desk staff. Who knows what they called on I, there was a fortune 500 companies, so there were 16,000 computers and then like 50,000 employees. There were a lot of possible things to mess up at some point or another, you heard it all. And the, the quickest way to being able to troubleshoot is understanding the underlying systems as much as you can. So when you query on these things like the, how Windows works underlying like the basic concepts, the more of those that you can ingrain, the better your guesses when you start searching will be just because you have a better idea of the area of a system that that error could have emerged from.
-
15:49
Kel
So if I know dll errors, well okay, well that's pretty specific. There's only certain things that can fail with dlls. Um, it's probably not there is the most common one. Um, but those are the things that you can learn over time. And so learning kind of the overall system is how I go about searching specifically. And it's why I'm pretty good at it cause I really, really enjoy architecture as a concept.
-
16:13
Joshua
I'm going to take the opportunity here to call you out this time. What's the a dll?
-
16:19
Kel
Uh, that's actually a great question cause I never can remember.
-
16:21
Joshua
Dynamically Linked Library.
-
16:23
Kel
Library. There we go. I remember it's dynamically linked but yeah, it's a file on windows that has shared to code. Essentially part of your program lives in it and other than that you may or may not actually care how it works depending on what you do for your living. Um, I supported Windows desktops, you know, 16,000 of them. So I've had to really, really care what lived in this file and how they worked in Windows and how they were linked and all of that fun. But by learning that rather than a specific applications use case of dlls, it made a big difference in how I went about searching and how I solve problems, so.
-
17:01
Joshua
Yeah, and that is one of the reasons why we push all sorts of alternative knowledge, not just code, but also knowing how infrastructure works. Knowing how your operating system works, how the web works, how all the protocols that you're using work. Because understanding those things gives you extra context, you have more ability to hone in on the sort of answers you're looking for.
-
17:24
Kel
Absolutely, and we've mentioned before that a lot of the basic computer science stuff is not necessary to be a day to day programmer, but we've also mentioned that it's kind of useful and this is, this is part of why by knowing how the underlying architecture of your computer works, you'll have a better understanding of why like memory leaks happen or memory access errors happen.
-
17:44
Kel
You'll have a better understanding of what is actually going on with those and it makes it a little bit easier for you to predict in the future. But again, it's that that's a complex topic. You don't have to understand that to be a programmer. It's kinda like you don't need, need to understand the underlying structure of language to be able to speak it.
-
18:03
Joshua
Yeah, absolutely. And that's true of a lot of different things in technology. I'm the, even down to you mentioned memory leaks and things like that, but even just knowing how memory is used and knowing what an outer memory exception is, just even the basics, having that understanding will help you a lot because at some stage you're probably going to run into... Although I don't run into them nearly as much as I used to because we have so much memory now that it's hard to run out.
-
18:27
Kel
Do you have, I say I used to run into a older Windows machines. There were 32 bit because the processes were limited at one and a halfish gigabytes and they would just die randomly with on machines with ridiculous amounts of memory. So I remember from that era, from when we were switching between 32 bit and 64 bit and computers being able to access that and again, kind of a computer science II concept, but I actually do understand on why that difference happens and why having 64 bit addresses means we can access more memory and you don't need to know that to be able to program.
-
19:06
Joshua
No, though, not that many years ago. That was really helpful. When you were searching for things that were going wrong when you were switching between 32 and 64 bit.
-
19:12
Kel
Exactly. But understanding what the limitations are, understanding the repercussions of that makes a big difference in how you troubleshoot. So I could tell, hey, this program crashed, why did it crash? And you know, they tell me that it's upgraded the memory. Oh, but this is a 32 bit program. It can't access that memory. It does not have enough addresses to point to all of those spaces in memory. And so that's how I search. I search for 64 bit versions of the app or I look for other things on how to lower its memory use. And so yeah, under understanding the underlying system is a very helpful thing when searching.
-
19:46
Joshua
Alright, I think everybody is going to be much better at searching now.
-
19:51
Kel
I hope. I hope so. That was, uh, that might've been a lot, but.
-
19:56
Joshua
Alright. I will put some transcripts out back, gettingappsdone.com. Please be sure to check out my website at joshuagraham.info and Kel's website at piffner.com if you have a unique or interesting way to search for things on the internet or if you have a better search engine than any of the ones we mentioned, because we're probably a little bit out of touch. We kind of got in the habit of just using Google for everything, which may or may not be a good thing. Uh, but we'd love to hear about those. You can drop into our slack chat at gettingappsdone.com/slack and let us know about those and share them with our community because obviously we're all looking for all of the answers as quickly as we can get them. So any tips we can get, we're all for it.
-
20:33
Kel
And we really do enjoy hearing from the community. I mean, this, today's podcast was inspired by our conversation about Linux and the community. So yeah, we'd love to hear from you.
-
20:43
Joshua
Alright. We post every Thursday, so be sure to keep an eye out every week. But until next Thursday, thanks for listening.
-
20:51
Kel
Cheers.