Skip to content

Instantly share code, notes, and snippets.

@derekmc
Created May 21, 2021 05:13
Show Gist options
  • Save derekmc/b175689fbaebe5e40d702bd64f69b792 to your computer and use it in GitHub Desktop.
Save derekmc/b175689fbaebe5e40d702bd64f69b792 to your computer and use it in GitHub Desktop.
<!doctype html>
<html>
<body>
<h1> Learn To Code </h1>
<p>
This is a course on learning to code. It is contained entirely within
this single html document, so that you download it, save it, take it
with you, or convert it into any form. There are no signups or fees,
Just this document.
</p>
<p>
Focus on projects, but with good tools you can handle.
</p>
<h1> Why Learn to Code </h1>
<p>
The modern world runs on information. It used to be the case, that
most of this information was within simple documents or spreadsheets.
Increasingly, we are relying on internet based applications, because
they allow for greater coordination and structured management and
regretfully control.
</p>
<p>
In order to take back control of this information, to understand how
to interact with it on your terms, and publish and create things you
can actually own, it is important to understand the technologies on
which all of this is built.
</p>
<p>
The web or internet consists of a few basic moving parts.
You have the physical network itself, all the connections
between all the computers. But this part of the internet is
mostly handled outside of our direct control.
</p>
<p>
Next, you have servers, databases, and browsers.
(show image of database -> server -> =Network= -> computer -> broswer)
</p>
<p>
In this course, we will focus on each of the layers independently:
<ul><li> databases</li> <li> servers </li> <li> (Network) </li> <li> computer </li> <li> browser </li> </ul>
</p>
<p>
For databases, we will learn csv and spreadsheets, sql and nosql.
For servers, we will learn nodejs, python, and php.
For the network we will only cover some basics in theory.
On local machines, we will learn scripting, os basics such as unix, package and dependency management, security, python tk, and c.
In the browser, we will learn javascript.
</p>
<p>
It may sound difficult to learn so many different technologies in one short course, but I think
it is a good approach for many reasons. First of all, you will learn that not every project
or tool needs a ton of work, and that you can do a lot with just a few basics only.
Finally, connected ideas from each of these
</p>
<p>
A note about learning programming. When I first learned to code in a formal course,
I learned java. I really liked this as a learning language, because it is compiled,
and strongly typed. Both of these things help you understand basic principles of
programming languages much better. But I have begun to see some of these styles
as if not simply extra work, but also unnecessary and leading to over-complication
and poor design. Many if not most would disagree with me here, but I prefer a
natural language style approach.
</p>
<p>
However, even when you take a natural or language based approach, it is still
critical to understand the mechanics of the system.
</p>
<p>
Don't worry if that does not make 100% sense to you right now, it's just a
subtle note. We will start with basic examples, and work our way up with real
projects. If you want to get the most out of this course, I recommend combining
it with your own projects and learning approaches, and to not treat each section
as a one and done deal, but rather something you can go back over layers as you learn more.
</p>
<h1> Chapter 1: Databases and Spreadsheets </h1>
<p>
A database and a spreadsheet, in many respects are basically the same
thing. The principle difference between the two seems to be that a spreadsheet
is mostly intended for a user to interact with directly in some kind of graphical
program, while a database is designed for computers to access and manipulate directly.
</p>
<p> Both a sp
*
</body>
</html>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment