Paul Cook

The Known and Unknown Unknowns of Web Development

September 07, 2017

Donald Rumsfeld

As we know, there are known knowns; there are things we know we know. We also know there are known unknowns; that is to say we know there are some things we do not know. But there are also unknown unknowns—the ones we don’t know we don’t know.

–Donald Rumsfeld

Entering into any new domain or field can be bewildering. Web development is no different in this regards.

The number of topics is vast and overwhelming.

  • Whats HTTP? What about Angular?
  • Which framework should I choose?
  • Should I learn Python or JavaScript or something else?
  • Is PHP bad? I heard it was bad.
  • Should I go into web development or app development?
  • What in the world is a DOM?

From day one youre confronted with question after question, and with each new issue there arises a dozen more questions. How can a new web developer navigate such a maze?

As these various topics arise they become known unknowns. Things we know that we dont know.

The moment you know you dont know what Angular is you become able to find out what Angular is. You can see the gap in your knowledge and move to fill it.

However, if something is in the category of unknown unknowns then you cant address that gap, at all. How could you if you dont even know what it is?

This is the importance of building context.

Context is King

In any domain theres a certain level of background knowledge needed in order to be able to speak intelligently or reason well in that field of study.

As an example, I have a friend who has an amateur interest in logic and philosophy. Hes had classes on the topics in college, and has spent a decent amount of time reading and studying philosophy on his own. He was telling me recently how he was only just now understanding certain difficult works on philosophy. Why? Because had done enough reading in philosophy and logic to be introduced to many of the basic concepts.

Hes able to read an academic work in philosophy, and hes not lost by all the references to ancillary topics.

He has context.

Context is important in web development, too. You might not be an expert in React or Vue, but youre familiar with Angular and Backbone and you have a good understanding of JavaScript itself. Because of that context you can more effectively evaluate the merits of one framework or another without being an expert in them.

However, if you have no idea what a JavaScript framework is you probably wont understand why you would even need one in the first place.

In order to build context you have to begin to be at least familiar with a lot of background issues. You dont need to be an expert in every single area, but the more youre at least _aware _of, the better.

Awareness here is a good word for describing what were aiming for. Its easier to have conversations about topics youre aware of then those you arent. This seems self-evident, but is important for us.

The more topics youre aware of in any particular field the more hooks you have to hang new information.

I know for myself there are many topics that I ran across early in learning web development that went in one ear and out the other. Why? Because my mental model of the domain was severely limited, I didnt have the hooks to hang the knowledge on.

To return to the topics of JavaScript frameworks, someone just entering web development might be hand coding their HTML. They dont really have a concept of why you would need a framework to manage the state and logic of an application. They see Bootstrap is nice because it takes away the need to write all the CSS from scratch, but what is application state and why do you need to manage it?

This is really where context comes into play. Even if you dont have an intuitive understanding of why JavaScript is useful (because youve never built a large application before), youll at least be familiar with some of the problems they solve, or, at minimum, that using one is considered to be a best practice in the industry.

That alone can save you a lot of time.

coat-hooksThe coat hooks of context

Building context in a particular domain is a lot like hooks on a coat rack. The more context you build the more hooks you have to hang future knowledge.

If you lack those hooks than new pieces of knowledge you hear or run across will be lost rather quickly because you dont have the proper mental model to place it in.

I can remember studying Koine Greek in college. Very early on in the class I would learn things that would fly right over my head. The early chapters of the textbook there was very little I truly understood.

But within 3-4 weeks of pressing on in the class I would go back to earlier chapters and a lot of these bits and pieces I didnt understand suddenly were clear to me. The understanding only came after enough contextual knowledge was layered on, so to speak.

The further I got along into class the more hooks I had to add new knowledge and organize old knowledge.

This what Im basically advocating: start placing hooks in your mind to hang new knowledge. Build the context you need for future work, today.

Resources for building context

So, how do we build up context? I can recommend a few strategies and resources that have worked very well for me.


Podcasts were hugely beneficial to me, especially before I got a job in the field. I was working as an administrative assistant at a church I would listen to podcast after podcast related to web development.

The great thing about podcasts is that listening to them is something you can do while youre cleaning the house or doing any other menial task that doesnt require your full focus.

You wont understand half of what is being said, but bit by bit you will build up the context you need to speak intelligently.

Podcast recommendations

  • Shop Talk Show – My top podcast pick. I worked through this show’s backlog on a consistent basis for months. Set up in a Car Talk format about web development. The Rapidfire episodes are particularly good as its a Q&A format with two dudes who know a lot about the web. Plus the hosts are *genuinely* funny.
  • Software Engineering Daily – This will be one whose content goes over your head a lot of the time, and *that’s okay*. I like what the host says about listening to (another podcast) Software Engineering radio: “When I started listening to Software Engineering Radio in college, I understood 5% of every episode, but I found the personalities compelling and my understanding of software improved gradually every time I listened.” That’s the goal.
  • JavaScript Jabber – My next two recommendations come from the same podcast network, so there’s some overlap in host and other personalities involved. JS Jabber is a good one, but I’ve found I enjoy the conversation in the next podcast better.
  • Ruby Rogues – Disclaimer: I’ve not listened to thus podcasts in quite some time, and apparently there was some drama at some point that dramatically changed the make up of the show. That being said, the early episodes of this show are *fantastic.* Particularly the episodes that feature Avdi Grimm and James Edward Gray.
  • Breaking Into Startups – Inspiration for you while you work on breaking into tech. Stories of people from non-traditional background who are now working at startups (generally) in Silicon Valley. Two episode recommendations Haseeq Qureshi and Preethi Kasireddy.
  • The Bike Shop – Podcast that comes out of very respected dev shop Thoughtbot, so *you know* it’s gotta be good.
  • Immutable – A designer and a developer get together to talk life and tech.
  • JavaScipt Air
  • Syntax – Tasty Web Development Treats – A newer podcast, but so far it’s been really informative. Check out the latest (at the time of this writing) episode to see what it’s all about.
  • Programming Throwdown – Two smart dudes give a basic overview of a technology or programming language. Good introduction to technologies you might be interested in.
  • Full Stack Radio – Adam Wathan is fantastic.
  • The Laravel Podcast – Niche to if you’re interested in Laravel (which you should be).
  • Developer Tea – Filled with dev wisdom
  • Code Newbie – Another bit of inspiration for those of you who are just beginning your journey. Interviews with code newbies like you (and me).


Gather up a list of sites that post articles regularly, whether that be tutorials or general articles on web development.

Put them in your RSS feed, and then read what interests you. Youll build a ton of context this way.

Website recommendations

  • Free Code Camp – Most popular Medium publication out there. Features a wide variety of different types of articles, not just for newbies. Check out while you’re at it.
  • Hacker Noon – Again, good variety of content. Has everything from articles/tutorials on code to general interest articles for people in the tech world.
  • Coding Horror – Blog of the one of the cofounders of Stack Overflow and Discourse.
  • JavaScript Scene Blog of very smart developer Eric Elliot.
  • Smashing Magazine  High quality articles with a bend towards design topics
  • CSS Tricks – You’ll run across this place all the time when searching for CSS info anyways.
  • – An aggregator of a lot of different people’s posts and podcasts. Extremely friendly community. Highly recommend.
  • Scotch – Excellent tutorials on cutting edge tech.
  • Hacker News  You wont understand 95% of the conversations when youre starting out, but theres a lot of good articles posted here. Beyond that, the comments are often better than the articles
  • GitHub Explore –  Checkout out what’s trending. Look through what people are building. Read the code. Get inspired.
  • CodePen – More inspiration. People build some pretty amazing things here with CSS.
  • Quora – A Q&A site that has way more than tech related questions. But follow topics like computer science, programming, web development, etc.,  and you’ll start learning


Theres a ton of good developer newsletters out there that aggregate articles, tutorials, podcasts, etc.

I subscribe to a number that are sent out weekly or monthly, and I just read what interests me. Sometimes by just reading the descriptions of resources you can get a good read on whats popular.

Meet people

Find the tech meetups near you and just go. Be around people who are building things, and are interested in becoming even better.

Check out Meetup to see what kinds of groups there are near you.

And dont worry about feeling like an imposter or like you dont belong. Just go and tell people what youre doing, and people will want to help you.

Join Slack, Discord, or IRC channels. React has their own Discord community. My local tech community has their own forums and Slack. Theres definitely more out there like this if youre looking.

Follow peeps on Twitter

Twitter has a unique place in the tech community. Tons of people are there talking about important topics, what theyre building, what theyre interested in, and more.

Heres a few people to follow to get you started.