Asking the essential questions about web development

jeff/ August 24, 2020

I have a dozen essential questions that anyone learning web development should think deeply about. But, first I want to talk about what makes for a good question. And how do questions help us focus on thinking to form the mental action steps needed to develop knowledge?

When I was in college, my roommate and I were sitting around the dorm when he made a comment that stuck with me all these years later. He said, “You can tell how smart someone is not by how they answer a question but by the kind of questions they ask.”

I’ve often never been very good at asking questions. I blame that on the false belief that “I can’t think well on my feet”. I call that a false belief because thinking is a skill that we can develop. I tend to think very well: logically and analytically. But to figure out why I believe I could not think on my feet, I had to (uh) think about it. What happened when I was called upon in class to respond with either an answer or question. I got flustered. I stumbled around my thoughts because I feared stumbling around my spoken words.

In the first grade, I was told I had a speech impediment and that changed everything in my life. It pushed me into a painful shyness, which is largely being overly self-conscious. When I had to speak in front of people, I froze. I resisted years of childhood speech therapy, but here I am.

The essential question I had to ask myself, “Why do I get so flustered when having to speak in public?” In thinking that through, I realized that it’s not because I cannot think on my feet. It’s another layer of negative thoughts that are blocking my focus on what I should say at the moment.

Then that brings me to another question, “What mental steps can I take in a conversation when I need to respond coherently?”

Now, I’m not going to explore that avenue further. I use this as an example as to how critical questioning of ourself, what we do, and what we are learning can lead us to a clearer realization of the world in which we are interacting.

In a web programming course for non-programmers, we can identify a set of leading, guiding, and essential questions that aid our learning process. There are subtle differences in questions that are leading, guiding, and essential. And there are also questions that hook the curiosity.

In this analysis of questions, I’m building off the wonderful work of Jay McTighe and the late Grant Wiggins. They have an entire series of books on teaching and understanding that are absolutely phenomenal and, I believe, are must read books for anyone seriously interested in any form of teaching. The framework put forth by these guys has been highly influential in the development of the AP course guidelines. If you’ve taken an AP course, this format might be familiar with you but probably did not know the framework and reasoning behind it.

An essential question is thought-provoking, perhaps open-ended, and that stimulates further inquiry.

Specific implementations of technology become obsolete very quickly. You could rearrange that sentence and ask, “Why does technology become obsolete very quickly?” Then you realize that it’s, “Why do specific implementations of technology become obsolete very quickly?” In contrast, you can ask, “What are the foundational concepts of technology that persist over time?” You might then naively say, “How do we keep advancing technology?” But it’s not technology that we are trying to advance. It’s what we are doing with the technology. “How can we continue to leverage advances in technology to create new protocols, new services, new products that enhance the quality of our lives, our productivity, our safety, our health, our environment and so forth.”

It’s this ability to keep asking deeper and deeper questions that actually lead to those advances in technology. The technology does not do it on its own. Humans pose the questions that challenge us. Our in-depth understanding of the fundamental concepts enable us to create new technology-based solutions to everyday problems. This process of inquiry is the entrepreneurial mindset. I’m not just talking about business. Yes, out of this inquiry process emerges new companies, possibly even entirely new industries. But also new scholarship, new forms of art, new possibilities for making music, new forms of education. This mindset of deeply questioning the evolution of ideas, services, products, knowledge, art all lead to sustaining meaningful accomplishments.

It’s the lack of questioning, taking something at face value and just accepting it, that can lead to a static environment. Some people will argue that’s okay. Is progress always good? That’s a deep question.

Back to web development. We have established the importance of asking deep questions. I’m putting forward a set of questions about web development for your consideration:

  • Why should I learning coding?
  • What are the habits of mind that will help me learn?
  • How does the web work?
  • Why is a markup language, like HTML, used for structuring content on the web?
  • How does CSS meet the challenges of styling web documents?
  • What are ways to make my work with CSS more efficient and systematic?
  • How can markup languages be extended to other uses in web development?
  • How can I add interactivity to a web page?
  • What is computational thinking?
  • When is motion on a website an enhancement or a distraction?
  • What is the future of web development?

An introductory course on programming could, in fact, skip over most of those questions and focus on the syntax of a programming language while just assuming you have a good grasp of everything else.

I don’t like making assumptions.

I’ve been told that teaching core concepts is a lofty goal and that students just want skills. But remember what we said about advances in technology: skills become obsolete very quickly. Foundational concepts persist. As you will experience in your journey of learning to code, programming languages share many similarities. Those similarities are concepts that are transferrable from one programming language to another. Once you know the foundational concept, then you learn the syntax of how to implement the concept in a specific language. If you know one programming language, you can learn another one more easily on your own.

As you learn to code, keep the essential questions in mind. And come up with your own questions. Write those questions down someplace. You might find a question you come back to year after year. Solving that question might become your life work. It might become the foundation for your business, for your career.