To start, create an account on https://www.github.com. Next, you can download this curriculum to your computer by:
- Opening Terminal
- Navigating to the folder you want to use for the curriculum, this is usually the Documents folder. You can use the
cd
command to navigate to Documents right after opening Terminal by typingcd Documents
and pressing enter. - Once you are in the folder, type
git clone https://github.com/antonellil/engineeringcurriculum.git
and hit enter to download.
Next, install the following:
- Sublime Text 3 (a nice text editor) https://www.sublimetext.com/3
- Google Chrome (a modern web browser) https://www.google.com/chrome/
- Terminal is just another way to interact with the computer and view files and run programs
cd
is used for moving through folders. You can typecd FolderName
to go into a folder named "FolderName" and you can usecd ..
to move up a levells
is used for viewing the files in the current foldermkdir
is used for creating folders. Examplemkdir hello
creates a new folder named hello.touch
is used for making new empty files. Exampletouch hello.txt
creates a new empty text file named hello.txt.rm
is used for removing a file or directory
You will be using these commands throughout the curriculum and can reference them here as you go.
- git is a way to save your local files in the cloud
- it allows you to look at the history changes to those files and share with others
- This is basically a glorified text editor that makes writing code faster
- It has plugins you can install that help with development
- Color-coding of syntax that makes reading and writing code easier
- It shows warnings and errors for syntax and some coding logic
- Fun themes that are easier on the eyes
Throughout the curriculum you will be using Terminal and Sublime Text 3 to write your code.
- Client is what humans interact with when they use websites and apps
- The client is typically either a web browser, iOS app, Android app, Windows app, or Mac app.
- Server is what the client apps talk to in order to send data and retrieve data
- Server is just a computer somewhere that the client talks to
- Server often uses a database to store things long-term
- There are many ways to code the client, but the current way its often done is primarily in JavaScript because thats what the web browser uses
- The role of the client is to display things to the user and take user input
- In the web browser, HTML and CSS are used for layout and display
- On iOS/Android/Windows/Mac, there are similar layout and display concepts to HTML and CSS
- In the web browser, JavaScript is used for user input
- In the web browser, HTML and CSS are used for layout and display
For the purpose of this curriculum and given its popularity, we will be focus only on writing code in JavaScript.
Now we'll jump right into creating some fun websites.
View https://www.github.com/antonellil/engineeringcurriculum/client.md
to get started.
- There are many ways to code the server, for the purposes of this tutorial we'll be using JavaScript so that the language is the same on the front-end and backend. NodeJS is a server-side language that uses JavaScript.
- The role of the server is to act as a web server that talks to clients, or to perform processing and tasks and not talk to clients
Now we'll jump right into creating some fun servers.
View https://www.github.com/antonellil/engineeringcurriculum/server.md
to get started.
- PostgreSQL overview and tutorials
- Role of the database (storage, retrieval)
- Building practical database tables and usage
- Redis overview and tutorials
- Role of caching (often-accessed values, limiting database reads)
- Building practical things with caching
- Build several applications end-to-end through all layers of the stack