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.
- Whatâs 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 youâre 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 donât know.
The moment you know you donât 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 canât address that gap, at all. How could you if you donât even know what it is?
This is the importance of building context.
Context is King
In any domain thereâs 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. Heâs 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.
Heâs able to read an academic work in philosophy, and heâs 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 youâre 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 wonât 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 donât need to be an expert in every single area, but the more youâre at least _aware _of, the better.
Awareness here is a good word for describing what weâre aiming for. Itâs easier to have conversations about topics youâre aware of then those you arenât. This seems self-evident, but is important for us.
The more topics youâre 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 didnât 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 donât 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 donât have an intuitive understanding of why JavaScript is useful (because youâve never built a large application before), youâll 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.
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 donât 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 didnât 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 Iâm 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
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 youâre cleaning the house or doing any other menial task that doesnât require your full focus.
You wonât 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).
Websites
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. Youâll 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 freecodecamp.org 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.
- Dev.to â 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 wonât understand 95% of the conversations when youâre starting out, but thereâs 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
Newsletters
Thereâs 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 whatâs popular.
- React Digest
- Programming Digest
- Laravel News
- Web Development Reading List
- JavaScript Weekly
- Frontend Focus
- React Status
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 donât worry about feeling like an imposter or like you donât belong. Just go and tell people what youâre doing, and people will want to help you.
Join Slack, Discord, or IRC channels. React has their own Discord community. My local tech community louisville.io has their own forums and Slack. Thereâs definitely more out there like this if youâre looking.
Follow peeps on Twitter
Twitter has a unique place in the tech community. Tons of people are there talking about important topics, what theyâre building, what theyâre interested in, and more.
Hereâs a few people to follow to get you started.