Documente Academic
Documente Profesional
Documente Cultură
Let's look at what Web Development is and why you might be interested in
learning more about it.
Learning about Web Development is not only for the hoodied introvert who
overuses the word "algorithm." Web Development is one of the few careers
attainable via a self-taught curriculum, making itself available to a diverse
range of people.
United States
Global
HOW DO I BECOME A WEB DEVELOPER?
I want to stress - because I was unsure when I first started my journey - you
can learn how to become a Web Developer and find a job in the field on
your own. You don't need a bootcamp, or university degree. It will take
work, self-discipline, and likely won't come without some costs, most
notably opportunity costs. Meaning, you'll have to give up some things in
your life to make way for the time commitment this will take.
A widely circulated illustration for what it takes to become a Web Developer
can be found at the bottom of the W3School'sw3s page "Web Development
Roadmaps." I 💛 this field guide, but honestly, I think it's better suited for
those at course level 201, not 101. On day 30 of this series, I will introduce a
Field Guide better suited for beginners.
WHAT'S NEXT?
Tomorrow we'll learn about and get familiar with a critical tool used by Web
Developers, the browser's Developer Tools.
Now that we know what Web Development is and why we want to learn
more let's get set up with some essential tooling.
DEVELOPER TOOLS
Every modern browser comes with web developer tools (also called
DevTools). These tools are used heavily by - you guessed it - Web
Developers. The DevTools aim to help developers test and debug their
code.
A good chunk of our future exercises will require that we use a web
browser and DevTools. We will be using the Chrome web browser, and
subsequently, the Chrome DevTools.
There are several ways to open the DevTools, but I recommend using the
keyboard shortcut method because it's the quickest and most convenient.
With a web page open, hold command + alt + j . Windows Users, use ctrl
+ shift + j .
Once you have the DevTools open, you should see the following window
pop-up. Depending on your settings, the DevTools may show up at the
bottom of the screen or on the right-hand side.
By default, you will land on the Console panel. The Console is a panel
in the DevTools where Chrome executes commands that you type
there.
Everything inside the dark pink box is called a panel. To the left of the
Console panel, for example, is the Elements panel.
The red errors I show on my Console panel may or may not show for
you. Errors like this are for Web Developers and are sent to the
Console panel from the web page you are on. For our purposes, we
can ignore them.
The Elements panel shows the web page as "code." A good way to visualize
what the Elements panel does is to think of the web page as a stitching.
The Elements panel would then be the backside of the stitches; they're the
same, one is just prettier. {#stitching}
3. To help demonstrate how the DevTools can be useful, we are going to
change the text of something on a web page. For this example, we
are going to use the very first website ever created. Built-in 1991 by
CERN, it’s rather incredible that this first website is still visible and
usable today.
Open the first website in your Chrome browser by clicking on the link here.
Under the Element’s section is the HTML of the web page. We will be
playing with the heading Element.
Click on the <h1></h1> element. This is the element that makes the header
of the web page read "World Wide Web".
We talk more about HTML, elements and tags in an upcoming
article. For now, it's enough to know they represent the structure of
the web page.
5. Next, double-click on the World Wide Web text, and change the text
from "World Wide Web" to "Your First Website." To see the change
take e ect, click outside of the Elements panel.
Now look at the web page and see that the text inside the <h1></h1>
element has changed.
It's worth stopping for a moment to appreciate what you just did: you
modified a web page! Nicely done.
SUMMARY
A browser's developer tools do way more than allow you to make text
changes. You can modify colors, layout, run code, and see details of how
the web page is loading. Learning how to navigate and use the DevTools
will be an essential skill that you will pick up on your way to becoming a
Web Developer.
WHAT'S NEXT?
Tomorrow we'll learn more about Operating Systems, and why
understanding some of their key concepts will help you understand the
foundations of Web Development.
DAY 3
OPERATING SYSTEM - SETUP & TOOLING
Whether you're a Windows or Mac user, you can participate in all the
exercises. But, let's make sure we understand why an Operating System is
important for our work as future Web Developers.
Most folks know that an "Operating System" (OS) has something to do with
their computers; maybe they even connect it to Steve Jobs, and Bill Gates.
Steve Jobs and Bill Gates are only relevant because they are figureheads
for Apple and Windows, which sell computers with the macOS and
Windows OS on them.
When you save a word doc, that goes into storage. When you open
the word application (e.g., Google Docs) that action requires RAM.
When a user tells the computer to do something, like "make a new file," the
Operating System allocates memory and storage to make that file. Only the
Operating System can do this. It is the master over all things hardware,
which includes memory and storage.
DIFFERENT TYPES OF OPERATING
SYSTEMS
There are 3 common Operating Systems for Desktop Computers: macOS,
Windows OS, and Linux.
It does not matter what kind of Operating System you are using. You can
program with the best of them. For all our future examples, the screenshots
are taken from a macOS. Having or not having a macOS bears no weight
on your ability to complete the exercises.
All the other Operating System di erences: specifics about file system
encryption, or third-party hardware compatibility are topics outside the
scope of our concern. The only real di erence we're concerned with is the
General User Interface; GUI for short, pronounced “gooey.”
WHAT'S NEXT?
We will look more closely at GUI's and introduce a new term, Shell, in
tomorrow's blog post.
DAY 4
GUIS AND SHELLS
GUIs and Shells are two important terms we are going to explore.
Understanding how they relate to our Operating System will clarify
potential points of confusion later on.
GUI'S
Though you may not know it, you’re very familiar with GUI’s. These are
programs designed to make it easy for the everyday computer user to do
things with their computer. They use graphics, icons, and menus to make
navigation and executing commands easy.
Code doesn't just run on its own. When you write programs or applications
for other people to use, they will be using computers. And guess what
those computers will be using to run your programs or application? An
Operating System.
What if you write a fantastic web application, but it uses up all of your users'
RAM? Your users won't be happy.
WHAT'S NEXT?
In our next blog post, we'll set up one last Web Developer tool by installing
a text editor.
DAY 5
TEXT EDITOR - SETUP & TOOLING
Today, you will meet your soon to be best friend: the text editor. A text
editor is a fancy tool that developers use to write code.
Your computer comes with what is called a text editor. A text editor is a
program that edits text without adding "markup" like bold and italic. This is
also known as plain text. Developers use text editors to assist in writing
"code", which is plain text that describes a program.
Technically, you could use your computer's default text editor to write code.
However, because developers use their text editors so much, it shouldn't
surprise you that they have developed fancy, sophisticated text editors for
the sole purpose of writing code.
For this blog series, I am going to suggest you use the VSCode text editor.
For several reasons: it's free, easy to navigate for beginners, and is a great
first text editor that you can continue to use as you advance in Web
Development.
I refuse to debate which text editor is better than another. By
suggesting folks start with VSCode, I am not making a statement
that it is better than say Sublime or Atom. In fact, either of those
would also be fine substitutes. I'll leave the text editor debates to
those also debating Windows vs. Mac, or that toilet paper roll over
vs. under thing.
You'll want to select the Free version which you can find under "Visual
Studio Code." See the pink box in the screenshot above. Also, make sure
you are downloading the correct version. If you are on Windows, you will
need to select "Windows," and not "macOS," as I have here.
2. Once you click download, a zip file will start downloading. Open it
when it's done. Once downloaded, move the VSCode application to
your Applications folder.
3. Open VSCode like you would any other Application.
Back in VSCode, open the file you just downloaded by clicking File ->
Open, and select the file test-file.txt .
5. Once open, you should see something like the following screenshot
(your theme/look is likely di erent than mine).
6. One helpful thing about text editors like VSCode is that they give
line/row numbers. We will use these in our examples to describe
where on the document you should look. For example, if I say "on row
3", I mean the row with the sloth fact.
You don't have to use this command, but it's helpful if you have a big file
and want to navigate to a specific line/row number quickly. Try it out and
see if you find it useful.
7. One last, "how to" that we should know for VSCode is saving. Saving
here is just like saving in any other application. You can go to File ->
Save, or as I prefer, use a keyboard shortcut command + s (control for
Windows users).
By the end of these 30 days, you'll have more practice using VSCode and
therefore get more comfortable using it. VSCode has a lot of bells and
whistles, and if you'd like to learn more about them, I recommend VSCode's
"Getting Started" videos.
WHAT'S NEXT?
That's it for Setup & Tooling. Tomorrow, we'll start looking at the
foundational language of the web, HTML.
DAY 6
HTML IS A MARKUP LANGUAGE
HTML is the foundational language of all content on the web. Let's get
familiar with it.
To better understand what HTML is, let's break down the acronym.
HYPERTEXT
The "HT," HyperText refers to a system of linking topics to related
information. In short, it means a page that links to other pages.
When you have a web page linking to other web pages, you have a website.
If you go back to the first web page ever built, you'll notice it's literally just
that: an HTML file that has links to other HTML files.
MARKUP LANGUAGE
The "ML" in HTML stands for markup language. Markup language is a
generic term that refers to any language that tells you how to format a
digital document. It does this via a standardized set of rules. These rules
are di erent depending on which markup language you are using.
Markup is easy to take for granted because almost all the interactions we
have with text have markup applied. When you are writing in a word
processor, typing an email, or even looking at spreadsheets, you're looking
at markup.
Text that does not have markup is called plain text, and it's unlikely that
you see it very often.
To help demonstrate what markup does, we are going to look at what the
first website looks like without any markup, i.e., in plain text.
4. Paste the copied first website content onto the My Text Area web
page.
WHAT'S NEXT?
Now that we have acquainted ourselves with HTML, tomorrow we'll get
into HTML's syntax.
DAY 7
TAGS AND ELEMENTS - HTML
Elements are made up of tags, tags are not made up of elements. Elements
are the building blocks 🏗 of HTML.
I hate when words like this are used in the same paragraph,
Markdown 👇 vs. Markup 👆 . Markdown - with the down at the
end, is a specific type of Markup Language - with the up at the
end. The particulars of the format aren't important, just know that
there are multiple kinds of Markup Languages (not just HTML).
If I wanted to write a bold word in this blog post, using the Markdown
Language, I start and end the word with double asterisks. Like this: **bold
word** . In HTML, I would write bold word like this: <b>bold word</b> .
Each Markup language uses its own rules to define blocks of text and
assign formatting. HTML does this by using tags and elements.
HTML Tags
HTML tags are special keywords surrounded by a pair of angle brackets
<tag keyword> . Most tags come in pairs, with an opening and closing tag.
The closing tag is the same as an opening tag with the addition of a
forward-slash. The closing bold tag looks like this </b> .
Some tags, like the tag used to display an image <img > , do not have a
closing version. This is because you do not need to define an opening and
closing to display an image, just a location of where the image can be
found.
There are close to 100 HTML tags html-tags. Below are some of the more
common ones. If they have a closing tag, I've included it.
HTML Elements
HTML elements are individual components of HTML defined by HTML
tags. At first glance, elements and tags can easily be mistaken for the same
thing. But they are not. The key thing to remember is that elements are
made up of tags, but tags are not made up of elements.
Where tags are used to define the start and stop of an element, elements
refer to both the opening and closing tag and everything in-between. The
elements that don't require a closing tag, like the <img> element, are called
void elements. Elements are the building blocks of a web page and are a
concept that we will continue to revisit.
Elements vs. Tag Elements are made up of tags, tags are not
made up of elements. Elements are the building blocks of HTML.
Example of an element: <p>Paragraph Element</p> , example of a
tag <p>
WHAT'S NEXT?
Today was all reading and no doing. Tomorrow, we'll change that and get
our start playing with tags and elements using VSCode.
1. In total, there are around 100 di erent Markup Tags available. A list of them can be
found here.
↩
DAY 8
PLAYING WITH ELEMENTS AND TAGS
Time to get our hands dirty. Let's write some HTML.
We should now be comfortable with the basic syntax of HTML. Today we'll
start using what we learned yesterday to change the look of a web page.
To use comments, you wrap the HTML with an opening and closing
comment tag. To open/start an HTML comment you use the less than
character <, plus an open exclamation point ! followed by two dashes --. To
close/end the comment, you use two dashes -- followed by a greater than
character >. Here’s an example:
The text in-between the opening and closing set of characters is what is
commented out.
1. In your text editor download and then open the following HTML
document html-practice.html .
Comments are helpful because they allow us to write out HTML without it
being displayed in the browser. When we're ready to reveal the HTML
snippet, we remove the comments wrapping the snippet.
Nice work! 👏
5. Now that we're familiar with how to uncomment an HTML snippet
let's uncomment the other snippets. These other snippets are each
examples of the HTML elements we introduced in yesterday's article.
In your text editor, go ahead and uncomment snippets #2, #3, #4, and #5. In
order, the snippets show examples of:
As a reminder, you use HTML tags to wrap what it is you want to apply that
HTML tag to.
Hopefully, by uncommenting the HTML, you can see how the various
HTML tags work and a ect what you see on the browser.
6. For our last step, let's make it so the bold word and italic word are on
two separate lines.
To break up these lines in HTML, we are going to use the HTML line break
element <br> . This element is e ectively a carriage-return, adding a line
break where you insert it.
Back in your text editor, add the <br> element in-between the <b></b>
element and the <em></em> element.
Save your changes, and then refresh the browser to see the changes take
e ect.
That looks a little better. And hopefully, you're starting to see how HTML
uses tags and elements to structure a web page.
Keep playing around with di erent HTML elements and tags. I recommend
checking out W3Schools list of HTML tags and elements here. There's a lot
we didn't cover, so have at it!
I cover crucial HTML topics in 📗 "How to Become a Web
Developer: A Field Guide," including such subjects as attributes,
nesting, child/parent relationships, indentations, rending and the
Document Object Model.
WHAT'S NEXT?
Tomorrow I will introduce CSS - another markup language - that adds style
to HTML. We are moving away from HTML but do not take that to mean
there is nothing more regarding HTML you need to learn. We skipped a lot.
😎
DAY 9
GIVING HTML SOME STYLE
Our HTML is rather plain. Let's use CSS to give it some style 😎.
Admittedly, all the examples in the HTML articles didn't look very good.
They were rather dull, with no color or unique font. We're going to change
that by introducing CSS.
CSS works hand-in-hand with HTML to give your web page "style."
WHAT IS CSS
Cascading Style Sheets, better known as CSS, is a stylesheet language.
You may be asking yourself, why two di erent languages: HTML and CSS?
Without getting into the history of it all, the simple answer is that each has
a role. Where HTML defines the structure, CSS gives the structure style.
Style includes things like color, font, size, layout, and position. Need to
make a paragraph blue? HTML defines the paragraph, and CSS makes the
paragraph blue.
OUR FIRST INTRODUCTION TO CSS
The best way to get familiar with CSS is to play around with it. We will use
both the Chrome DevTools and your text editor to add style to an HTML
document.
In fact, the HTML document we are going to use is the final version of the
"html-practice.html" we used in yesterday's article.
1. Open this file in your Chrome browser, and open the DevTools.
The keyboard shortcut for opening the DevTools in Chrome is cmd
+ alt + j . Control instead of command for Windows users.
When you get the DevTools open, navigate to the Elements panel, and click
on the <h1>Heading Size 1</h1> element.
With the <h1>Heading Size 1</h1> element selected, in the Styles pane,
let's make the text blue.
In the section just above where the Styles panel lists the CSS being applied
to the h1 , add the following:
color: blue;
Play around with the color-picker and experiment with the di erent colors
and color types.
There is a lot you can do with the Styles pane and CSS. When you
eventually find yourself problem-solving or trying to modify CSS for a
project, the Styles pane will become one of your most powerful tools.
WHAT'S NEXT?
Tomorrow, we'll look at how to add CSS to an HTML file.
1. I know that the creator of gifs, pronounces this word as "jif," as in the word Ji y. But
founder or not, he's wrong. It's gif. End of story.
↩
2. You can find all the named colors here.
↩
DAY 10
CSS AND HTML TOGETHER
But how do we get CSS onto a web page? There are three basic ways of
adding CSS to a web page: Inline style, Internal and External stylesheets.
Yesterday we played with changing the color of an HTML element via the
DevTools.
Today we're going to look at how you add CSS to a web page.
1. Inline style
2. Internal stylesheet
3. External stylesheet
1. INLINE STYLE
One way to add CSS to HTML is via Inline style. Inline style adds CSS
directly inside any HTML element. To do this, you use the style
attributeattr on the HTML element you want to add style to.
For example, here is our Heading element with the color blue added via
Inline style.
You can apply CSS this way to any element. However, because of the way
CSS rules sort themselves out, inline styles are generally avoided,
especially in more complex projects.
On row 3, add the Inline style to the heading element, such that it reads like
the following:
<html>
<body>
<h1 style="color:blue">Heading Size 1</h1>
</body>
</html>
Save your changes. Open the HTML document in your Chrome browser
and see the heading element change.
Additionally, if you open your Chrome DevTools, you'll see that the
color:blue is now added the h1 styles.
2. INTERNAL STYLESHEET
The second way to add CSS to an HTML file is within an HTML element
called the style <style></style> element. Not to be confused with the
"style" attribute used in Inline styles. They are very similar, but one is an
attribute, and the one here is an element.
This approach requires that you add the style element inside something
called the head element. You'll learn more about the head element along
with the other boilerplate HTML elements as you continue your studies. I
recommend the W3School's page on the style tag if you're interested in
learning more.
I removed the Inline styles as it trumps Internal styles. If I did not remove
the Inline style you would not see our color change. This trumping/sorting
comes from Cascading, something you'll want to learn more about, but we
won't cover here.
Here are the HTML and CSS I added. Feel free to copy-paste this snippet
into the HTML file as I did in the gif.
<head>
<style>
h1 {
color: orange;
}
</style>
</head>
3. EXTERNAL STYLESHEET
The preferred method for most projects is to add CSS via the External
Stylesheet.
If you add CSS via an External Stylesheet you are telling the browser to go
download another file that has all the style rules; hence "external." You do
this by adding a <link> element with an href attribute pointing to the
CSS file.
And just like how the <style></style> element was nested or inside the
<head></head> element, our <link> element also goes inside the head
element.
In the following example, the <link> element is telling the browser: use
the file called "external-stylesheet.css".
<head>
<link rel="stylesheet" type="text/css" href="external-sty
</head>
WHAT'S NEXT?
Whew 🤯 - that was a lot. If it all still seems a little foggy, don't worry, it will
get easier. CSS is not something you get in one day, or from a couple of
blog posts.
1. We won't cover attributes here, but I cover them in 📗 How to Become a Web
Developer: A Field Guide, or you can read this resource by W3Schools.
↩
DAY 11
CSS SYNTAX
CSS syntax is relatively straightforward, and you may have even picked up
on the syntax basics through some of the previous examples.
CSS SYNTAX
CSS syntax is relatively straightforward, and you may have
even picked up on the syntax basics through some of the
previous examples.
The three key components of writing CSS are Selector, Property, and
Value.
SELECTOR
A Selector is what points to the HTML element. In the previous screenshot,
p is the selector. This selector points to all paragraph elements on the
page. Thus, p { color: blue; } is telling us that all paragraph elements
should be the color blue.
PROPERTY
A Property tells the browser what style you want to add. Is it color, font-
style, or alignment?
There are a lot of CSS properties. As you work with CSS, you'll naturally
memorize some of them, but there will always be some you have to refer
back to documentation about.
A great place to search for information about CSS properties is the Mozilla
CSS Reference (a.k.a., MDN web docs).
VALUE
A Value tells the browser by how much, what color, or the allowed value you
want to apply to that property. In the examples we've seen so far, this would
include things like right , orange , and 100px .
In this file, I am going to play with both Internal and Inline styles (External
stylesheets use the same syntax as Internal stylesheets).
2. With the DevTools open, select the porcupine image, and add the
following via the Styles pane.
padding: 50px;
padding-right: 50px;
3. Once you've added the padding via the Styles pane, look over at the
images HTML.
Look at the <img > element in the Elements panel. After adding the
padding: 50px via the Styles pane, you can see that this style now appears
as an Inline style on the Element.
This should look familiar. We talked yesterday about how Inline styles are
added via the style attribute. Because the browser knows that you want
to add the style to that specific element, you don't need to include a
selector. Nor, do you need to wrap your CSS' property and value in curly
braces.
4. Next, still in the DevTools, select the HTML <head></head> element (it
will be toward the top).
Now, instead of adding CSS via the Styles pane, we are going to add CSS
via the Internal stylesheet method. Because we already have a <style>
</style> element on the HTML file, it's easy for us to see where to add
additional Internal styles.
From within the Elements panel, click on the <style></style> element and
then right-click -> "edit as html". Then copy-paste or type in the following
CSS:
body {
background-color: rgba(0,255,0,.5);
}
Then, we wrap our CSS property and value in curly braces. In this example,
I mixed things up a bit and used the RGBA color-value. RBG (Red, Green,
Blue) and RGBA (Red, Green, Blue, Alpha) color values are helpful and
commonly used. You can learn more about them here.
5. One last step before we wrap things up. Let's add another CSS
property to the <h1></h1> element. The reason, so you can see that
when adding multiple CSS properties to one selector, you need to
separate the property-value pair with a semicolon.
Again, either copy-paste or type in the following using the same "edit as
html" method in the DevTools we did in the previous setup.
font-family: cursive;
Keep playing around with editing the CSS via the DevTools. And, if you
want to take it up a notch, apply the same CSS we did via the DevTools, but
this time in your text editor. Just open the "css-practice.html" file in your text
editor and use a combination of Inline or Internal styles to add the CSS.
Congratulations 👏 , you are now equipped with enough knowledge to
make things look prettier or a whole-heck-of a lot uglier.
Remember, the DevTools are available on all web pages. Go ahead and
modify any CSS you can find on any of your favorite websites. Modifying
CSS or HTML in the DevTools is just changing your view; you can't break
anything, so have fun.
WHAT'S NEXT?
In the next article, we'll look at a concept in CSS called Selector
Specificity - say that three times fast 😬.
DAY 12
SELECTOR SPECIFICITY - CSS
What's easier to say, "toy boat ⛵ " or "selector specificity" three times fast?
Try it out. I can say neither.
SELECTOR SPECIFICITY
We learned in the last article that a Selector is what points to the HTML
element. For example, in the following code snippet the selector is the p
tag:
p {color: blue}
So far we've only looked at Tag Selectors. Tag selectors are selectors that
point to an element tag. So p , body , h1 are all examples of tag selectors.
Specificity comes into play because there is a pecking order between the 3
selectors. The Id selector is the most specific (#1), the Tag selector the least
specific (#3), and the Class selector is in-between (#2).
The reason it's important to know what selector is relatively more specific is
that the more specific selector trumps the less specific selectors.
If I set a paragraph to blueviolet using the tag selector, but also set the
same paragraph to hotpink using the Id selector, the paragraph will be
hotpink, not blueviolet.
To better understand the selector hierarchy, I am going to use an analogy
and refer back to it as I walk through each selector's definition.
When you assign CSS by a Tag selector, you are assigning CSS to any
HTML tag of that type. For example, we used the paragraph tag to apply a
color to it.
Referring back to the friends' analogy, a Tag selector would be
like saying, OK all my "friends," raise your hands. It's not very
specific, so everyone in the room raises their hands.
Class Selector
A Class Selector is when you use an HTML element's class name to select
it.
A class is another type of attribute. Attributes live inside the element tag
and provide additional information about that element.
The great thing about the class attribute is we can use it to give a class
name to multiple elements. Say, for example, we wanted a paragraph and
header element to both have a darkgreen color. Using the class attribute,
we would give both elements the same class name.
In the following example, I have given the h1 and p elements the same
class name: “some-className.” Then, under styles, I assigned the “some-
className” a color of darkgreen.
By using the class selector, we avoided having to assign a color value to
both the h1 and p tag. Instead, we were able to do it with one CSS
selector.
Id selector
Ids are another type of HTML attribute. However, Id attributes, unlike class
attributes, have to have a unique value.
You can give multiple HTML tags the same class name, but if you use an Id
CSS Selector, the Id's value can only be used once on the HTML document.
To select an element by its Id, you use the pound (a.k.a hashtag) # +
idName syntax. See the following example:
I've gone ahead and added a couple more elements, some that now have
class names and one with an Id. I've also modified the Internal stylesheet
so that we have an "Uncomment sections" as we did in Day 8 when we
played with HTML.
Exercise
1. Open in your text editor and browser the updated HTML file that I am
now calling: css-selector-practice .
Go ahead and uncomment #1 via your text editor. Save the changes and
refresh the browser window.
In this example, after uncommenting the snippet, you can see that we use a
CSS Tag selector to add a black border around all the div tags.
3. Next, we'll uncomment #2. But, before we do, see if you can predict
what will happen. Hint: Class selectors trump Tag selectors.
OK, with your prediction made, go ahead an uncomment #2, save your
changes, and refresh the browser window.
Because the Class selector is more specific than the Tag selector, the
dotted pink'ish border is what is applied.
If you open the DevTools, you can see the black border CSS is crossed out,
indicating that a more specific selector has overridden it.
4. Next, let's uncomment #3, and again, try and predict what is going to
happen before seeing the changes. Something to keep in mind is that
you can chain ⛓ class names. In this example, the first div has two
class names: "border" and "green."
After uncommenting, saving your changes, and refreshing you'll see that
only the first div has the green border, where the second has kept the pink
dotted border. The use of multiple class names has made the green border
more specific than just the one, and thus the green border trumps the pink.
5. Now, let's uncomment #4, but again try and predict what is going to
happen first. Remember, Ids trump both Tags and Class selectors.
Well, that's fun, I mean, who doesn't like rainbows 🌈?
The key here is that Ids trump them all, but Ids can only be used once.
WHAT'S NEXT?
That's it for today. Hopefully, you have a better understanding of how CSS
selectors a ect how the browser determines what CSS to apply. If you'd like
to learn more, I recommend one of my favorite go-to CSS websites, "CSS-
Tricks." They have a solid article on Selector Specificity that augments
much of what I've discussed here.
CSS UNITS
Today we'll be focusing on the di erent CSS units, which
indicate a size. We will use the DevTools to play with di erent
variations.
We've been using CSS Units throughout our examples (ex: 10px ), but I
have yet to stop and address what they mean.
Before we dive in, a quick refresher, when using CSS, you have to define a
property and a value. It's the value part that we'll be discussing.
Read through the descriptions, and think about under which circumstances
you might use one unit type over the other. Hint: some are better for
dealing with changing screen sizes, and others are better at dealing with
adjusting their size relative to other elements.
In most cases, these units are set to be equal to each other such that: 16px
= 12pt = 1em = 100%. In the following table, I am using these sizes on each
line item. You can see that the "Howdy!" on each line is the same size, even
though each value is di erent.
Now let's see what happens when we use the same value for each unit
type (5 is the value we'll be using). Notice how much larger em is than 5%?
You can't even see 5%, and 5em is huge.
2. Open the DevTools. Navigate to the Elements panel and click on the:
3. Just above the font-size: 2em, you'll see another section in the Styles
pane called "element.style." In this section, type in:
font-size: 5em
Adding CSS here will override the browser's default CSS of font-size:
2em .
The font's size changed pretty dramatically. Remember em is a scalable
unit, so a change from 2 to 5 makes a big di erence.
4. Next, select any of the paragraph elements, and just like we did in the
previous step, try adding a new font-size. This time make it:
font-size: 1em
Nothing should change. Why is that? Because 1em is the base, and em is a
scalable unit, with the base of 1em.
Parent is a common term in CSS and HTML. We won't cover it here, but for
our purposes know that it is the element that contains the div. Another way
of saying this is that the <div></div> element is nested inside the parent.
In this example, the parent is the body element.
Let's change the <body></body> element's width to 50%, and see what
happens.
Notice, how the div tags shrunk? Their width went from 50% of the screen
width to 50% of 50%, i.e., 25% of the screen width. This happened because
the percent CSS unit is a relative unit. In this case, the div width of 50% is
relative to its parent. When we shrunk the parent's width, the div width also
shrunk.
That looks pretty small. But remember, the div elements are 50% of the
body element. So right now, those divs are 10% of the screen width.
To help show this, select the first div via the Elements panel. Then look over
at the Styles pane and notice the div has a width of 50% (this is set via
Internal Stylesheet, which you can view if you open the file with your text
editor).
Go ahead, and in the "element.style" section on the Styles pane, override
this 50%, by adding:
width: 100%
You should see this first div now take up 20% of the screen width, whereas
the second div is still taking up only 10%.
6. Continue playing around, adjusting various CSS units. For example,
try adjusting the paragraphs font-size to 20pt, or 500px.
WHAT'S NEXT?
That wraps up our CSS discussion. CSS is powerful and has a lot more use
cases and caveats that we did not have time to cover. If you plan on going
into Web Development, plan on spending a substantial amount of time
learning CSS. The more you learn about CSS, the more powerful of a
developer you'll be.
Next up, is JavaScript. Like CSS, I cannot teach you JavaScript over a
couple of blog posts. Instead, I hope to get you familiar with what
JavaScript is, what it does, and some understanding of how prevalent it is.
DAY 15
ADDING INTERACTIVITY
HTML gives the web structure. CSS provides that structure with style.
JavaScript makes that structure interactive.
ADDING INTERACTIVITY
HTML gives the web structure. CSS provides that structure
with style. JavaScript makes that structure interactive.
Today, I'll introduce you to JavaScript and give you a better sense of what I
mean by "interactive."
1. Because this HTML file uses two images, you need to download the
following folder, and then right-click to open the "js-example.html" file
in Chrome.
Once open, you should see a web page that looks something like the
following:
The turtle 🐢 and rabbit 🐇 will start racing right away. Play around with
stopping and restarting the animation.
3. The "racing" between the turtle and rabbit, as well as the buttons
"stopping" and "restarting" the race, are all done by JavaScript. This is
an example of what interactivity looks like.
If at any point the race annoys you or you can no longer see the
animals, restart and/or stop the animation using the buttons. No
o ense will be taken.
4. Next, I'm going to have you change some values on the JavaScript
written on the "js-example.html" file.
You will be changing the JavaScript, but I will not stop to explain
the syntax. My hope is to have you focus on what the JavaScript is
doing. Not on how it is doing it or how it is written.
Navigate to row 61. This is where the JavScript starts. Similar to CSS, you
can add JavaScript on an HTML file by inserting it between a special HTML
element. With CSS, this was called an Internal Stylesheet, and we did this
by adding CSS in the <style></style> element.
500 here means 500 milliseconds between each time JavaScript changes
the position of the rabbit and the turtle. By making this number lower, to
100 milliseconds, we speed up the race because JavaScript is now
changing the positions every 0.1 seconds instead of every 0.5 seconds.
6. Next, in your text editor, navigate to row 69. This snippet of JavaScript
is essentially grabbing the turtle image and assigning it a starting
position. Again, we won't go into syntax details here.
By setting the turtle's starting position and CSS unit "0px" , the turtle is
starting on the left-hand side of the screen. We are going to change this to
"200px" to help give the turtle a bit of a head start (200px head start to be
exact).
DAY 16
WHY IS JAVASCRIPT IMPORTANT?
No matter what kind of programmer you decide to become, JavaScript is a
language that you will need to know.
The most recent statistics show that JavaScript is used by about 95% of all
websites.
Today, we'll get a sense of how important and prevalent JavaScript is on the
web and look at how it came to be that way.
2. Toggle o JavaScript.
4. Don't forget to turn JavaScript back on. You may need to close and
open your browser again for JavaScript to be reapplied.
Did you miss it? I sure did. The web isn't the same without JavaScript.
If you were alive during the early 1990s, and you used the internet, the
browser you used was called Netscape Navigator. Netscape Navigator was
so dominating it was pretty much the only browser anyone knew of. In 1995,
Eich was hired by Netscape.
When Eich was brought on, Netscape was trying to figure out how to make
it so anyone could add interactivity to the web. At the time, everyone's web
experience was a lot more like the web in the previous "Exercise: The web
without JavaScript." Netscape's solution was to make a new programming
language that could be processed by the browser.
"JS (JavaScript) had to 'look like Java' only less so, be Java’s
dumb kid brother or boy-hostage sidekick. Plus, I had to be
done in ten days or something worse than JS would have
happened." ~Brendan Eich
DAY 17
JAVASCRIPT IN THE DEVTOOLS
One of the best ways to start learning JavaScript is by playing with it in the
DevTools.
There is no way I could reasonably teach you all you need to know about
JavaScript in a couple of blog posts. Instead, I am going to show you some
JavaScript code snippets, and show you that they can be executed in the
DevTools' Console.
My hope is that by seeing and playing with some simple JavaScript, the
syntax starts to become a little familiar, and JavaScript a little less foreign.
For us, this also means that we can type JavaScript directly into the
browser's DevTools' Console and it will read and run JavaScript on the fly. If
we tried to do this with another programming language, say like Java, the
Console would return a bunch of errors.
2. Navigate to the Console. You'll find this panel just to the right of the
Elements panel.
If you see errors, like in the following screenshot, use the clear()
command to remove them. These errors are meant for developers working
on the web page you opened. For our purposes, we can ignore and clear
them out of the way.
3. The Console is a panel in the DevTools where Chrome executes
commands that you type. You can type JavaScript into the Console,
and the browser will process it. The Console is not unique to Chrome.
All major browsers have one.
4. Go ahead and type the following commands into the Console. Press
enter to execute the command.
In the following screenshots, you will see the word undefined . This
is what the browser returns after declaring a variable. We don't
need to know why that is, just know that the screenshots will
include what the browser returns. I point this out, so you don't
think you need to type undefined . You should be typing what
follows the symbol > , and the computer's response follows the
symbol < .
For the following command, go ahead and replace Angel with your name.
WHAT IS A PROGRAMMING
LANGUAGE?
I get a little Computer Science 101 in this article. But, I
promise you'll appreciate the background information.
You might be wondering, but aren't HTML and CSS just a set of
instructions telling the browser how to build a web page? This is
an easy point of confusion, while there might be some theoretical
debate here, HTML and CSS are not considered Programming
Languages.
I find it helpful to use the pianola example to clarify that this relationship is
not reliant on computers. Programming languages are just formalized
instructions, and a web developer, programmer, software engineer, etc.
is someone who writes these instructions.
MACHINE CODE?
Remember back to Day 3's Operating System blog article? In that article, I
talked about how the Operating System translates your commands into 1s
and 0s that the computer can understand.
Computers can only understand something called machine code. But what
is machine code and why don't we write instructions using it?
To best answer that question, I'm going to show you a sentence written in
standard text and then written in two types of Machine Code.
Studies have shown that goats have accents. Just like you and I,
mate!
Below is that same goat-accent 🐐 sentence written in
Machine Code, hexadecimal, base 16.
53 74 75 64 69 65 73 20 68 61 76 65 20 73 68 6f 77 6e 20 74
01000010011001010010000001110011011101010111001001100101001
TOP 10 PROGRAMMING
LANGUAGES
How do you know what Programming Language to learn? Do
you need to learn more than one Programming Language, and
if so in what order should you learn them?
While I can't answer these questions for you, I can give you the resources
and some guidance so you can answer those questions for yourself.
You can see some patterns between the Stack Overflow and Octoverse
charts. The most obvious is that JavaScript is at the top of each list. This
shouldn't be a surprise after learning about JavaScript in the previous blog
posts.
Java and Python are also growing in popularity. Python, in particular, has
gotten lots of buzz recently.
Ruby's popularity seems to be going down, and the new kid on the block is
something called Typescript.
To get an even better picture of what's happening, let's use Google Trends,
which tracks Google searches. In Google Trends, you can define the search
term, period, and location. We will play around with these options,
investigating and comparing di erent Programming Languages in the next
exercise.
2. If you haven't played with Google Trends, get ready to have some fun.
For someone who likes data, Google Trends is one of my favorite
websites.
You can either click the link I've included or if you'd like, type JavaScript and
compare it with Python. Make sure you select the "Programming
Language" term though and not just the word "Python." Otherwise, you'd
be comparing JavaScript to the snake 🐍.
I am using the default search settings, which has me looking at the US in
the last 12 months.
3. Let's switch it up and look at JavaScript vs. Python, but this time
worldwide, and over the last 5 years - see chart here.
In today's blog post, I will cover the top 4 most popular Programming
Languages (according to Github's Octoverse). I discuss the remaining 6
languages in the 📗 "How to Become a Web Developer: A Field Guide." In
this book, I also add code snippets and examples of companies that use
the language.
Java is now owned by Oracle, so if you are using Oracle products, then it's a
safe bet that Java is involved.
Where Python shines is in data science. The libraries for scientific and
mathematical computing in Python are mature and widely used in both
industry and academia.
DAY 21
FRAMEWORKS AND LIBRARIES
To get in front of what might later become confusing, I want to stop and
quickly talk about Frameworks and Libraries.
They are not. They are di erent things. Not making matters any better, the
lines between a "library" and a "framework" aren't always clear.
For example, you may come across a job post requiring skills in PHP, React,
and Angular.
For example, the popular Library called React was built by Facebook.
Facebook created React to help manage data and make maintenance of
their codebase more manageablewhyreact. React extends JavaScript, but it
does not replace it. Therefore React isn't a Programming Language, just a
tool that, in many ways, makes JavaScript more powerful.
If you haven't guessed already, I'm a fan of non-computer analogies. Thus,
in keeping with this theme, a good analogy is to think of Frameworks and
Libraries as netspeak. Don't know what netspeak is? I bet you do; you just
didn't know it was called "netspeak."
<script src="jquery-3.4.1.min.js"></script>
Once open, you should see something like the following. My settings/look
are likely di erent than yours, but the content is the same.
Pens are what folks refer to a small project on Codepen.io.
On the left-hand side of the screenshot, you have HTML, CSS, and
JavaScript respectfully. In this example, I am using plain JavaScript to
answer the question.
If you'd like to play with this Pen or any of the others, go ahead and
create a Codepen.io account, and then "Fork" the Pen on to your
account. Instructions on how to "Fork" can be found here. Once
forked, you can play, break, and mess with the code as much as
you'd like.
DAY 22
NAVIGATING JOB POSTINGS
By the end of this article, you'll have a better understanding of how to read
Web Developer job descriptions. As well as how to decipher what kind of
skills they're asking for.
GitHub Jobs
StackOverflow Jobs
Smashing Magazine Jobs
But let's chat about the added ES6 and SCSS verbiage.
..."ES6/SCSS/.."
However, what a preprocessor is, or ES6, is not the point. Instead, the
takeaway is that the job posting is essentially saying: "we want you to know
at an expert level the 3 core foundational languages of the web: HTML,
CSS, and JavaScript."
#2.
I am not at all surprised to see PHP and CMS used in the same sentence.
Remember on Day 20 when I talked about how PHP still has a lot of
presence in large part because it runs WordPress? Well here's that statistic
in action (WordPress is the most dominant CMS).
The takeaway: If you applied to this job posting, it would behoove you to
have worked on a WordPress site and hacked around with WordPress' PHP
code.
#3.
There are several other things I would like to discuss in this job posting.
However, to keep this blog post at a reasonable length, I have bulleted out
those additional topics. And have included links to learn more about them.
DAY 23
WHAT IS A TERMINAL, AND WHY SHOULD I CARE?
Not knowing how to use a terminal would be like a writer not knowing how
to use a computer; sure they could use a typewriter or good-old pen and
paper, but how e ective would they be?
From left to right, these images are from Girl With The Dragon Tattoo, The
Fifth Estate, Snowden, and The Matrix.
Let's start things o by opening your terminal; every major computer
comes packaged with a terminal program.
Before we start typing commands into the terminal, let's chat briefly about
what commands are.
COMMANDS
As we'll learn more about in tomorrow's article, the terminal works with the
Shell of your computer. If you remember from Day 3, the Shell wraps
around your computer's Operating System, or more specifically, your
Operating System's kernel.
mkdir
Here's what it looks like using the macOS Terminal application to "Make a
Directory" called newFolder on my Desktop.
When you run the terminal, you are issuing commands directly
to the Shell. You may see a $ when you open the terminal
program. The $ is Shell's symbol for indicating that it's ready to
take a command.
Now, if I look at my Desktop using my Finder program, I'll see the folder
called "newFolder."
Folder and Directory essentially mean the same thing.
"Directory" is a classical term used when Shells and terminal
programs were being developed. "Folder" is a more visual word
that came about as Finder and File Explorer programs came into
existence. Technically, a Directory maps to a file system, whereas
Folder is a less specific term. Because the Shell programs are older,
they tend to always use Directory instead of Folder, e.g., mkdir
make directory.
2. If you'd like to peak, go ahead and open this file with your text editor.
The code you see is written in the Bash Scripting language; a
programming language that works with the Bash Shell. The Bash
Shell is the default Shell that comes with macOS.
DAY 24
CLI VS. GUI?
CLI, GUIs, shells? You may not know it, but you're very familiar with all
three.
Today we'll get more familiar with the di erences between a CLI and a GUI.
These terms are thrown around a lot. And honestly, their definitions are
pretty easy to understand. Just defining them wouldn't justify a blog article.
SHELL SUMMARY
We chatted briefly about Shells in Day 3 and 4 when we talked about
Operating Systems. Here's a quick reminder of that discussion: a Shell is an
interface that gives you access to your computer's Operating System. Think
of the Shell as a wrapper around your Operating System - technically it
wraps around your Operating System's kernel. Hence the name Shell - a
shell/protective barrier - around the brain/core of your computer.
Shells come in two forms:
CLI
An example of a CLI is the Bash Shell that we played with via the terminal
in yesterday's article.
GUI
GUIs are programs designed to make it easy for the everyday computer
user to do things with their computer. They use graphics, icons, and menus
to make navigation and executing commands accessible.
Here's one more example of a GUI on a smartwatch that starts your Tesla -
wouldn't that be nice!
Before GUIs, computer users only had a keyboard and computer screen as
tools. To do anything on the computer the user had to type out commands
via a CLI. This process is not intuitive for today's average computer user.
That's where GUIs come in; GUIs make navigation and actions easier to
figure out.
In the following Exercise, we are going to spend time with the Finder
program (the equivalent program in Windows is “File Explorer”), doing
simple, everyday navigation. The Finder / File Explorer programs are of
course GUIs.
1. Windows Users: This process is the same, but your GUI will look a
little di erent. Instead of using the Finder program, you'll be using
your File Explorer program.
MORE ON CLIS
Unlike a GUI, a CLI only takes typed commands. It (generally) does not
accept mouse inputs, nor does it have icons and buttons to help you do
things. Instead, you command it to do things via your keyboard.
DAY 25
FILE PATHS PART I
File Paths are grammar's equivalent to the words "except" and "accept."
People don't really know the di erence, they guess and hope for the best
🤞.
In this article, we'll first define what a File Path is and then look at the two
types, their syntax, and what they mean.
cd ~/Downloads
<img src="../../images/porcupine.png">
There are two types of File Paths you can use: absolute path and relative
path.
If a File Path starts with a dot . the same keyboard symbol for a period,
then it's a Relative File Path.
A single dot means you want to look in the same folder you are currently in.
In the following example, I'm in my Desktop folder. My command is telling
the computer to Change Directories into the notes folder. And the notes
folder is on my Desktop.
If you use a double dot .. that means you want to move up one folder.
DAY 26
FILE PATHS PART II
Rounding out our file paths discussion with the Absolute File Path. Trick:
think about trees🌳 .
Now that we have a better understanding of what file paths are, and
specifically what Relative File Paths are, today we'll finish up our
conversation by looking at the second type of file path: Absolute File Paths.
Windows Users: The root concept is the same for Windows users.
The only di erence is that instead of "Macintosh HD" the drive is
"C:/Windows".
To indicate you are using an absolute file path, you start the file path o
with a forward slash / . No dot. The following is the absolute file path to
our Desktop.
Here is what that file path looks likes on the Finder.
The tilde ~ indicates the home directory. The tilde key can be
found in the upper-left side of your keyboard. The home directory is
the home of the user who's executing a command. For me, this
translates to users/angel for you, it will be something like
users/yourComputersUserName .
2. Using an absolute file path, let's move into our "nuts" folder.
I created the "nuts" folder in Day 24. If you created a di erent
folder, replace "nuts" with the name of that folder. Otherwise, make
a new folder or use an existing one already in your Downloads.
Remember, using the absolute file path means we start from the root
directory, and omitting a dot start with the first Folder we want to move
into.
And just like that, we moved into our nuts folder using an absolute file path.
If we had used a relative file path, the command would have been much
shorter. Relative to where we were - in the "nuts" folder" - the Downloads
folder is only a folder up. And if you remember, to move a folder up using a
relative file path requires us to use two dots. Here is what it would have
looked like if we had used a relative file path.
DAY 27
FILE SYSTEMS AND TYPES
If you were the captain of a ship, I basically just showed you how to sail a
ship, but did not tell you if you'd be in the Atlantic, Bering Strait, or a
bathtub 🛀 .
Your computer uses a File System to organize everything on it, and it is this
File System that you're navigating around when inside the terminal.
Whenever you are moving files, creating folders, or deleting things you are
doing those things on the computer's File System.
File Types
The File System is made up of two types of files:
1. Data files. Think anything that contains data, text files, word docs,
images, mp3, etc.
2. Executable files. These are files that when you open them, they
execute something. It's a good bet that any file in your Applications
folder is an executable file.
All of these files run a program on your computer. When you open Adobe
Illustrator or the Calculator application, you are running executable files.
DAY 28
INTRODUCTION TO GIT
Have you ever run into file saving hell 🔥 ? Git to the rescue 🚨 .
INTRODUCTION TO GIT
Have you ever run into file saving hell 🔥 ? Git to the rescue
🚨 .
You started with good intentions, telling yourself you'd stick with an
organized system of v1, v2, etc., but a couple spelling mistakes, and
recovered files later you've got a file system like the following:
In this article, I will briefly look at the history of version control systems,
highlighting what makes Git special. This will be followed by a "speed-
dating" type introduction to a simple Git workflow.
I go into much more detail on Git and GitHub in the book 📗 "How
to Become a Web Developer: A Field Guide."
VERSION CONTROL
We've all been there. You saved a file on your computer, but accidentally
removed something you wanted to keep. Maybe you thought ahead and
have a previous version of the file you can search through, or more likely
you didn't. Version management sucks and its suckiness grows
exponentially larger when you're a developer working on a huge codebase.
Developers have been trying to solve for the version control nightmare
since there started being developers. Working on codebases present
several consistent challenges, regardless of the size of the codebase or the
number of people working on them. These are - generally - as follows:
Version control
Keeping an accurate history of file changes
Logging information about file changes
Allowing di erent people to make changes to the same codebase at
the same time
Additionally, these VCS were local. Meaning the whole codebase was on
the developers' machines.
Local VCS also didn't come close to solving the issue of di erent
developers collaborating on the same codebase. If the code was on your
computer, how could you easily share it with another developer?
Co-worker: "Hey, Bob, can you email that file version again? I
think it's from the change you made on Friday, but I can't be
certain. I know you already sent it, but I'm too lazy to look.
Thanks!"
Unlike VCS, CVCS stored the codebase in a single place, not on individual
computers. Whoever needed to work on something would check out that
file to work on it; similar to checking out a book from a library. The problem,
what happens if the place with your codebase burns down, or the library
floods?
Co-worker: "Hey, Kat, did you hear there was a massive hail
storm in Aurora, Nebraska. They recorded 7-inch diameter
hail! Isn't that where we have the computer that holds all of
our code?"
Ivan: "We can do it, no problem. Go learn some Git, and you
can do it sans my help."
Ivan's a bit of a jerk for not helping, but at least he's not
quitting.
GIT
There are two main ways to use Git. Through your terminal, or a Git GUI. I
will encourage you to use the terminal.
Before I have you download Git, I am going to jump ahead a step and have
you set up a GitHub account. After you set up your GitHub account, I'll then
have you install Git.
INTRODUCTION TO GITHUB
GitHub is the single largest host for Git repositories. Git
repositories, if you remember, are projects (e.g., folders,
directories) that are managed by Git's version control.
1. Make sure you've done the exercise in yesterday's blog article. You
should have a folder in your Downloads called "git-practice" that is
now being watched by Git (you did this by running the git init
command).
2. In your terminal, make sure you are on your Git repository called "git-
practice."
To confirm that this looks correct, let's quickly check out out git global
config file. To look at this file, run: git config --global --list
Once you enter this command, Git will list what's in your Git config file. You
can see in my git global config file that I have my GitHub username
Monkeychip and my email address (I have blurred this out).
On your GitHub account, navigate to the "Repository" tab, and click "New."
Name the repository - you can name it whatever you'd like - and use the
default settings.
Once created, GitHub helps you by providing the commands you'll need.
We are going to use the commands under "or push existing repository from
command line."
The second command "pushes" (a Git term to more or less indicate saving
your project) to the "master" branch.
Web development, especially in the last 5+ years, has blown up and the
content along with it. There is a lot to learn, and honestly, you can't learn it
all. So that begs the question, what do you do next, and where do you go
from here; how can you get a job as a Web Developer?
Having made it through to the past 29 blog posts, you now have a better
sense of what topics and skills you'll need to become a Web Developer.
In this last article, I will not be introducing any new content or Exercises.
Instead, I am going to encourage you to venture forward and start thinking
about where you want to end up, and map a way to get there.
In the book "How to Become a Web Developer: A Field Guide," I have
created a Field Guide that helps you draw this map. Additionally, there is an
option to download a curriculum and hear from other professional
developers about how they made it into their fields. All of them did not
follow the traditional degree to job path. They give great advice about how
to avoid some of the pitfalls that are apparent only with hindsight and
experience.
The book covers in much more detail and with additional exercises, the
topics covered in the last 29 days. The 29 days are snapshots 📸 from the
chapters of that book, which culminate into a final chapter that reviews the
"Field Guide." The PDF version of the field guide is a printable resource.
2. CSS
Skill Level: Easy-Moderate
It's likely your HTML studies will mix with your CSS studies. I would,
however, spend more time on CSS than HTML. There are a lot of important
topics I was not able to cover in the CSS chapter, but mention in the
Further Reading section.
In addition to CSS, you should spend time learning about CSS Frameworks.
There are lots of CSS Frameworks; don't overdo it, just focusing on one is
su icient. Get familiar with that framework's syntax, and if you'd like to use
the framework instead of plain CSS in your project.
Note: you should also spend a little time understanding what a CSS
framework is. You'll run into frameworks in your further JavaScript studies
as well.
You'll know you're there when you can read and write ~50% of the
CSS on a web page as well as debug and modify CSS using a
browser's Developer Tools.
Project Suggestions
Using the same HTML page from your HTML project, add CSS to the page
in all 3 ways; External, Internal, and Inline. Get comfortable with overriding
styles (hint: you'll need to learn at least a little about the cascading
mechanism during this process).
Having added styles, try your hand at adding a CSS animation. You don't
need to build one from scratch, but try adding a pre-built one and
modifying it. A quick search on codepen.io for CSS animations should get
you on your way.
WHAT'S NEXT?
If the content of these blog posts have been helpful, and you would like to
learn more, I encourage you to check out the 📗 "How to Become a Web
Developer: A Field Guide" here.
If you have any questions, please feel free to message me on Twitter or
contact Fullstack.io for more information.