The Art of Searching

How to get unstuck

If you're on the path to becoming a web developer, you're embarking on a rewarding but challenging journey. In this article, we'll explore a skill you will come to rely on as an orienteering enthusiast relies on a map and compass.

What learning web dev is like

Along your journey of learning web development, it's a guarantee that you will come across something you don't know, a problem you can't figure out, or a bug you can't fix (yet). As frustrating as this will make you feel at times, I want to encourage you to accept that getting stuck is just part of the journey.

In those times when you are stuck, I want you to remember this:

Chances are that other web developers who went before you also ran into the same, if not similar, issues, problems, bugs, etc. When they did, some of them documented their struggles to help other developers, like you. This documentation could be in the form of a blog article, video tutorial, question they asked on some forum, etc. In any case, if they documented it, that information might be hosted on a website you can find and access, if you are willing to search for it.

The art of searching

There will be plenty of opportunity for everyone (who can afford a console) to find his calling, for the whole word of information, with all its fields and disciplines, will be open to him -with programs ready to guide him or to help him explore.

-The Computer as a Communication Device by J.C.R. Licklider, Robert W. Taylor, Science and Technology, April 1968.

Search engines like Google, Bing, Yahoo, DuckDuckGo, and others are specialized websites designed to help you find information available on other websites. They can do this, thanks to a process called Search Engine Indexing. In a nutshell, the process consists of continuously doing two things.

  1. Combing through the zettabytes (billions of gigabytes) of data available from the hundreds of millions of websites on the internet.

  2. Scanning the content on these websites to store that content and the information about that content (keywords in the content, links to other websites, etc) in a database.

This is a big deal because it makes all of the vast and constantly growing information available on the hundreds of millions of websites on the Internet available to you. More specifically, as a web developer who is stuck on a bug, it makes the resource that might get you unstuck only a few search queries away.

In the beginning, using these search engines to get yourself unstuck might feel like trying to find a needle in a haystack. But if you trust the process, soon you will learn the fine art of searching that every developer depends on.

At the foundation of the art of searching is the ability to follow the following steps (with a child-like curiosity):

  1. Formulate a question (also known as a query or prompt) that you want an answer for.

  2. Feeding that question to a tool like a search engine that can automatically comb through billions of online resources for you.

  3. Getting a list of resources that are relevant to your search query from the search engine displayed as the Search Engine Results Page (SERP).

  4. Opening, reading, and testing out the proposed solutions from each resource to evaluate if any of them solve your problem.

  5. (If you try out the proposed solutions in the returned resources and none of them can help you address your issue) Refining your initial question/query/prompt, and repeating steps 2 through 5 over and over until you find what you are looking for.

Yes, I know, it sounds tedious. After trying out multiple solutions suggested by a couple of the resources, and still failing to solve your issue, the frustration level might even make you feel like inflicting some irreparable damage to your computer or quitting altogether.

That's why I added the "with child-like curiosity". If it's any consolation, I can guarantee you that everyone who went before you experienced the same feeling. I say this while fully recognizing that knowing this fact might not make you feel any better when you are stuck and have tried everything in vain.

When you've tried everything and nothing seems to work, consider the following:

  • Stepping away from your computer for a quick or long break.

  • Finding a fellow developer to ask for help.

  • Posting your impossible question in a forum where you can get help from other developers.

In any case, the sooner you accept the fact that getting stuck and the accompanying frustration is just part of the journey, the sooner you will be ready to start seeing every bump in the road as an opportunity to learn something you might not have learned otherwise. When you choose to embrace being stuck, you will realize that wonders await on the other side of being stuck.

There will be plenty of opportunity for everyone (who can afford a console) to find his calling, for the whole world of information, with all its fields and disciplines, will be open to him -with programs ready to guide him or to help him explore. - The Computer as a Communication Device

Honing the art of searching

If you choose to stay the course, I dare you to turn that tedious process of finding a needle in a haystack into a scavenger hunt type of game. Say you pick Google as your search engine.

  • Google any bug, issue, or problem you can't wrap your head around.

  • As you explore the different resources Google spits out, pay attention to how "what you ask" and "how you ask it" influences the answers you receive. Over time you will develop an important skill of "asking the right question" that will be vital to your journey as a web developer. How will you know that your asking-the-right-question skill is getting better? When you notice that it takes you fewer and fewer searches to find what you are looking for.

  • Pay close attention to the resources you connect with the most and why you connect with them more than others. Over time this will give you useful insights into your unique way of learning, which is important intel to have on yourself. Bookmark those resources, or keep a document of the different resources that have helped you, with a summary of your issue and the solution (in your own words). If you want to pay it forward, consider sharing that document, creating a blog article, or recording a video about it to help anyone who might come after you and get stuck in the same spot you were stuck in but figured a way out.

In addition, the more you get stuck, search for solutions, read, try out the solutions to your problems, fail, figure out why a specific solution didn't work, reformulate your search query, try different solutions, rinse, and repeat, you will develop skills in reading documentation, troubleshooting, resilience, and confidence that will be invaluable to you in your journey as a web developer.

A word about using ChatGPT

Up until November 29, 2022, most aspiring web developers heavily relied on search engines to get unstuck. On November 30, 2022, ChatGPT, an artificially intelligent tool, was added to their toolbelt. Click on the card below to see what ChatGPT had to say about itself in this context.

Below are practice activities to help you develop your art of searching.

Practice Activities

💡
To get the most out of these activities, find a way to put the answers to these questions in your own words. I recommend writing down your answers.
  1. As a web developer, one of the tools you will use to test what you will build will be a web browser. Your computer might have come pre-loaded with a specific web browser.

    • In addition to the one browser that came with your computer, what other popular browsers are there? Install at least 2 other browsers on your computer.

    • Do web developers have favorites or are all web browsers the same to them? If they do, what do they base their choices on?

    • What are web browsers anyway? Why were they created and how did they become so popular?

    • (Bonus) Why is it necessary for web developers to test their web applications on more than just one web browser?

  2. When writing code, web developers use programs called code editors (also known as Integrated Development Environments or IDEs) to write and edit their code in an efficient and smooth way. IDEs come in 2 main flavors: cloud IDEs and local IDEs.

    • What are the pros and cons of cloud-based and local IDEs?

    • Can you find examples for each?

    • Do web developers have favorites or are all IDEs the same to them? If they do, what do they base their choices on?

  3. (Bonus) Every single website and application you use in your web browser is delivered to you via HTML.

    • What is HTML? What do web browsers use it for?

    • HTML is only one of "the three pieces of the web browser puzzle - three 'languages' that web browsers understand out-of-the-box". What are the other two? What do web browsers use those for?

💡
(Bonus bonus): If you are open to a challenge, create a blog article or video to share what you learned from answering the above questions. Drop a link to your article or video in the comments.

Until next time, stay learning✌🏿 - Nelly