DU Bootcamp Prework Plus Module 1
naming conventions I need to follow when naming repos in GitHub
Be unique and descriptive for each repository name. Use all lowercase letters. Use dashes; we can't have spaces in our repository names, so we use dashes instead.
what is the first thing you should always do when you first get into your repo in GitHub?
Check that you are in the right branch!
how to create a repo in GitHub.com and some more stuff, I'm not really sure what all this is
Check the box for "add a README file" What is a README file? it is written in markdown and has file extension .md contains a thorough description of the technology and may include images and setup instructions Check the box for "Add .gitignore." A .gitignore file tells git which files we don't want it to track from our local machine. For example, I might use a personal email and password when working locally. But, I don't want these to be accessible to people on the cloud. So, type the name of the file that contains your private credentials, inside the .gitignore file, so that that file is ignored when we eventually synch our local code with the repo on the cloud. From the dropdown below the checkbox, select the Node template since we'll be working with Javascript through the course, I can expect to use the Node template every time I create a github repo Check the box for "Choose a license" Public repos on github are often used to share open source software. For my repo to be open source, I need to license it. Github licenses can prevent me from getting into gnarly legal issues. MIT license is the most common license to use, and it is the leanest and most permissive license. So, select the MIT License in the dropdown Click button for "create repository" Use a combo of command line, git, and github to clone the repo to your local machine. From inside your repo in github.com, select the code button at the top right hand corner of your repo. From inside the dropdown, click the tab for SSH and copy the link provided. Then go into gitbash, and navigate to a location where you'd like the repo to exist on your local computer. Then type "git clone" with no quotes, one space, then paste the url you had copied, and hit enter. Now you have a clone of the remote repo on your computer! Now, navigate into
what does it mean to commit?
Committing means you're saving a new version of the file you're working on. A commit happens when you're adding, editing, or deleting a file within your repo. The moment you do that, you're also adding a change to the branch you are working on.
GitHub web
cloud-based service that allows developers to store, manage, and collaborate on code
how would you open VS Code from Bash?
code .
how to do a Javascript comment
do // and then your comment. Eg // This code checks if the item is a fancy plate and stacks it on the top shelf if so.
blocker
something you are stuck on for a particular problem that is preventing you from moving forward
why might you be asked to work locally on your own computer on GitHub Desktop rather than working in GitHub online in your browser?
because sometimes if you're working in the github web interface, as you make a change, to update that change, the website will regenerate itself, or do a new build through federalist. If multiple people are continuing to make those changes which have to be updated again and again, it can lead to long lag times.
why do we generate an SSH Key and add it to our github account?
because this is how we let the github servers know that our computer is authorized to access our github account
why would you create a branch in GitHub?
because you need to work on the code for a website or project, and making a branch is a way to be able to work on the code in a safe place where any potential mistakes you make while you are working things out will not impact the main branch, and you and your team have the opportunity to review your new code and make sure it is a good addition before making those changes on the main branch. Also, this system allows multiple users to work on the code simultaneously and be able to merge everything nicely as appropriate into the main branch later
how do you start a coding project in general?
by visualizing what "done" looks like for your project, which must always tie back to solving a real-world problem
what are the purposes of version control?
can revert to another earlier version of the code before a bug took place allows collaboration between developers
how would you get Bash to move you back 1 level of directories?
cd ..
Server
A computer set up to send, or serve, webpages to a user on another computer. The server listens for requests from another computer (known as a client) on the network and then sends a response, serving up webpages or other resources.
Clone
A copy of a repository that is hosted locally on a user's device. Clones can be synced up with their originals in the GitHub repository.
what is a develop branch?
A develop branch can hold the code for multiple feature branches that haven't been incorporated into the main branch yet.
What is a GUI
A graphical user interfaces. GUIs include icons and menus that allow users to navigate their system by using a mouse, touchpad, or assistive technology.
Router
A hardware device that coordinates network signals arriving at or being sent from a user's computer or electronic device. A router can be wired, wireless, or both.
what is a package?
A package contains code written by others that we can add to and use on our computers and in our projects.
What is agile?
A process that developers use to actually build and deliver a product: agile software development, sometimes known simply as agile. Agile helps developers handle change and uncertainty during the development process. When issues inevitably arise, agile offers a framework for how to deal with those problems. To understand this better, let's revisit the algorithm that we created in the previous step to put away dishes. Imagine that, after testing it, we realized that there is a more efficient way to sort plates. We make changes to our algorithm and then another member of our household tests it out and gives us some feedback. We edit the algorithm based on their feedback, test it again, and discover another opportunity for enhancement. This is agile software development!
define Web browser
A type of software used to access websites when using the internet.
IP address:
A unique number used to identify a computer on the internet. Every computer, smartphone, and mobile device that accesses the internet has a unique IP address, made up of a series of four numbers between 0 and 255, separated by dots.
Upload
An action that transfers a resource from your local computer to a remote computer, in the form of a server accessed through the internet.
Download
An action that transfers a resource stored on a remote computer, in the form of a server, accessed through the internet, to your local computer.
Search engine
An application that allows users to search the internet in a systematic way for particular information, using search terms knowns as queries. Search engines provide the user with search results, which are provided in a list. Each result in the list contains a link to either a webpage, an image, a video, or other types of files or resources.
what is an IDE and what is its purpose?
An integrated development environment, or IDE, is a type of software used by developers that combines many of the features needed by developers to do their work in a single interface, known as a graphical user interface, or GUI. An IDE contains many essential tools needed for code development such as a source code editor, local build automation, a debugger, and the ability to extend the IDE's capabilities with extensions to meet specific development needs. VS Code is the one we use.
What does IDE stand for, what is its purpose? Name an IDE we use
An integrated development environment, or IDE, is a type of software used by developers that combines many of the features needed by developers to do their work in a single interface, known as a graphical user interface, or GUI. An IDE contains many essential tools needed for code development such as a source code editor, local build automation, a debugger, and the ability to extend the IDE's capabilities with extensions to meet specific development needs. During this course, we will be using a code editor called Visual Studio Code (VS Code) to write, view, and edit our code.
list, describe, and give an example of the 4 cornerstones of computational thinking
Decomposition: taking a big task and breaking it into discreet, manageable steps. An example of decomposition, using the problem of writing a program to put away plain plates, fancy plates, and plain bowls into the cupboard: We would write a block of code to check the condition of each item we're putting away into the cupboard, and then stack it accordingly. Pattern recognition: now that we have broken down our problem into subtasks, pattern recognition is thinking about how we have solved the subtasks previously and finding any patterns that might help us solve this particular problem. An example of pattern recognition is knowing that we have in the past solved the problem of putting away the dishes by first stacking the fancy plates on the top shelf so they're protected, and then stacked plain plates on the bottom shelf, and plain bowls on top of the plain plates. Abstraction: making sure we're only focusing on relevant info and that we're disregarding details that won't help us solve the problem. For example, we are ignoring the dish towel and knife as they are not dishes we need to put in the cupboard. Algorithm (Testing and debugging algorithms): a sequence of steps or rules that we can use to solve our problem. It's the sequence of events that will occur in order to get us to our desired end result / the ending "picture" we want, such as the dishes being put away in the cupboard with the fancy plates stacked on the top shelf, plain plates stacked on the bottom shelf, and plain bowls stacked on the plain plates.
Docker & Kubernetes
Docker really simplified a lot of this process cause the server doesn't really matter. Instead what you do is build containers that hold your application file in a little mini-environment with everything your app needs to run then Docker is installed on the server and runs the container in isolation. To take it a step further you can use Docker Compose to define how multiple containers interact with each other (a container that has your database server connecting to another with your application server as an example). These containers are like photographs so you can replicate them quickly to have the same app running on multiple servers making scaling much easier. This is where Kubernetes comes in where you can create custom logic for scaling your applications (imagine setting rules that when you reach a certain amount of traffic to automatically generate a new server and run your applications containers on it without having to have someone sit and monitor network traffic all day). A great way to get started is making Docker containers of simple applications and deploying them to Heroku or via Fly.io.
what is a process?
Every time that an application or task runs on your computer, that specific instance of it running is known as a process. Your computer regularly has multiple processes running at the same time—sometimes even multiple processes for the same program or application!
describe agile software development
First, we define the requirements for the project and then break our project down into smaller more manageable chunks, or parts. For each part of the app, we repeat the following iterative cycle: We develop the app. We test the app. We gather feedback. We make changes. To build subsequent parts of our project, we continue this process until all of our project requirements are met and we have a minimum viable product, or MVP.
what is an SHA used for, what is it, and what is another name for an SHA?
For GitHub version control: Every time we save a version of our work using version control, it is assigned a unique identifier called an SHA, or hash, that allows you to keep a record of the specific changes committed. This unique identifier provides a reference to that specific version of code so we can retrieve it as needed. It is a string of letters and numbers that identifies a particular version of your code.
how would you get Bash to change the directory you're in to a different one, and what does the command stand for?
cd name-of-directory-you'd-like-to-change-to (cd stands for change directory)
describe the purpose of a Project-specific content management guide
For any project I'm working on where I'm using github to manage my content, this lady highly recommends to create a wiki that will allow me to put my content management documentation into the repository. For example, with any given project, there might be a lot of requirements about where we need to work from, what the process is, and how we should work, and there would likely be documentation explaining those things. So, we would want to create a wiki that would allow us to put this documentation on process for the project, within the repo. It's convenient to have this documentation in the repo in case you get lost in the process or have to make a change rather quickly.
describe the different options you have for architecting an application
Frontend Only Application: This can range from pure static html/css/js or a more elaborate single page application built with React, Svelte, Vue, Angular, or with Native Web Components. These sites are usually deployed using static servers which is essentially what services like Vercel and Netlify provide or with traditionals hosts where you upload files to some web server space that are statically served. When using a framework like React and friends, these services connect your deployment to your project's Github then anytime you update GitHub it runs your project's build command and serves the output statically. Full-Stack Applications: These are applications where you create a more complex server (not static) that does more advanced data manipulation and then uses that data with a template engine (ejs, blade, erb, plush, pug) to generate static HTML from the server which is then sent to the client. This generally needs more robust deployment services so either requires you to set up your own server using a VPS from Amazon, Microsoft, Google, Linode, Digital Ocean, or other cloud services or using a service like Heroku which simplifies many of the setup steps. Backend and Frontend Applications: Nowadays applications are so complex they are really many applications or "Micro Services" handling dedicated parts of the application. You may have one backend application that only handles user authentication while other applications then handle different products (think of Google's vast array of services). All these backend microservices will be deployed like a full-stack application using a service like Heroku while the frontend will be built as a separate application deployed by a service like Heroku. The frontend application will make requests to all the API's these microservices deliver. This makes the architecture m
What is GitHub Pages for?
GitHub Pages makes it easy to deploy simple static websites like our Prework Study Guide. Since we are already using GitHub repositories to store our code, it is simple to set up. In addition, once we deploy to GitHub, any time we make changes to our website using the GitHub workflow, it will update our live website automatically, which ensures that our deployed site stays up to date.
Heroku
Heroku abstracts much of the process of getting control over your deployment environment for your app which would usually involve: getting a virtual private server; Provisioning a VPS from services like AWS, gCloud, Azure, Linode, Digital Ocean; setting up a firewall to only allow externals requests to port 80 & 443; installing Apache or Nginx; installing any database servers your app uses; cloning your application from github with git; running your app and making sure to point it to the local database server; running your application on a port (for example, port 3000); and configuring apache/nginx to route requests for your application to the correct port. Heroku reduces that whole process to connecting your github or pushing it to a custom remote repo. Heroku also gives you many features for debugging and enhancing your app such as: add a database to your project with just a click easily configure your environment variables setup CI/CD pipelines with buildpacks deploy using docker containers support for most languages (all if using docker)
some random tips on deployment
Heroku relies on files in the root of your repo to set up the proper environment so make sure the root of your repo is the root of your project. Generally, the root of your project is going to be where one of the following files exist... package.json (javascript/node) Gemfile (ruby) requirements.txt (python) manage.py (python) composer.json (php) deps.ts (javascript/deno) mod.go (Go) When deploying to Netlify or Vercel if you don't know what the build command is check your package.json file's script section. Also if you are not sure what directory the final build goes into, run the build command locally and see what the result is. If your deployment isn't working... logs are your best friend! All platforms have logs during project build and when the project runs so treat that as your first line of defense in determining what issues you may have with your deployment.
describe the steps of the software development process
Identify the problem: Research is conducted to determine how the application will solve a problem for the intended audience, who are typically called end users. Plan and gather requirements: The budget and resource needs are determined. Design: Details and requirements for the application are documented in a planning template. Develop: Coding begins! And coding continues. Test: Testing is an essential part of the development process to ensure that the application runs correctly. Issues are documented and fixed, and the application is tested iteratively until it reaches an agreed upon standard for the public. Deploy: The application is published and made available to the end users. Additional tests can be done during this stage to ensure that there are minimal errors when it is released. Maintain: Like with any other product, maintenance is a large part of the software development process. Developers run tests and write code to improve performance and other features, and monitor customer feedback for issues and suggestions.
different options for hosting your app
If running a static website with basic html/css/js files there are endless hosting solutions usually using Apache Servers running PHP based cPanel dashboards. Although If you want to use React/Vue/Svelte/Angular you are going to want a service with Continuous Deployment so you don't have to reupload all your content each time you deploy and that's where Netlify and Vercel fit in wonderfully.
How do you revert to an earlier version of your code in git to go back to before a bug took place?
In Git Bash, type git revert [insert the SHA of the most recent version that happened before the bug]
how do you create a new branch in GitHub browser?
Near the top on the left hand side, there is a button which tells you the branch you are in, and can be a dropdown. Click the dropdown and type the name you'd like to give your new branch in the text box that appears.
Steps to creating and working with your own new repo in GitHub and creating Issues (refer to https://bootcampspot.instructure.com/courses/4884/pages/2-dot-3-6-create-a-github-repository-with-a-readme-file?module_item_id=1023801. PART 1
On my computer in C:\Users\sahin\OneDrive\Career Related\DU Coding and WIOA\Notes, refer to document named "Steps to creating and working with your own new repo in GitHub"
default branch vs feature branch
Our default branch is called main, but master may also be seen in older repos. We shouldn't do any coding directly in the main branch. Instead, we will branch off of main and create a feature branch, which is a copy of the main branch. That way, we maintain the main branch and we can track the changes that were made to it via the feature branches. When we create a new branch to add something new to our project, we call it a feature branch. That is because we are adding a new feature or functionality to our app!
Describe the general zeitgeist of agile
Prioritizes satisfying the customer through early and frequent delivery of software, from a couple of weeks to a couple of months. Welcomes changing requirements, even late in development. Face to face convo is the most effective way to convey info to and within a dev team. Business people and developers must work together daily. Teams self organize and reflect at regular intervals on how to become more effective. Attention is on technical excellence, however, simplicity and maximizing the amount of work not done, is essential.
What does SSH stand for and what is it used for?
Secure Shell. It's used to generate secure keys so you don't need to log into things like Github all the time.
The cloud
The cloud is just another word for resources that are stored remotely on the internet. Anything that you have stored or saved directly on your computer is stored locally. Anything that you access through an online, remote service is stored in the cloud. Although these resources are said to be stored in the cloud, they are actually stored on physical servers that users access through online services. Cloud service providers are responsible for keeping these resources available and accessible on demand, and for ensuring that the physical servers are protected and running.
describe the driver-navigator model of pair programming
The developer using the keyboard to type code is known as the "driver." The other developer is known as the "navigator" because they are responsible for the overall direction that the pair decides to go. The two developers will switch roles every now and then, sometimes as often as every couple of minutes.
Domain name (in a url)
The domain name, also known as the domain or the host, is the part of the URL following the protocol, and it indicates the website (or collection of webpages) that the user is visiting. Domain names can optionally begin with www., which stands for World Wide Web, followed by the second-level domain, a unique name associated with a website, and the top-level domain. The top-level domain begins with a dot (.) followed by an ending that usually consists of two or three letters. Top-level domains were originally meant to associate a website with the broader purpose of the website (.com for commercial business, .edu for educational institutions, .org for non-profit organizations, or .gov for government entities), but this association has become less common as the internet has grown. There are now over 1500 top-level domains, including 255 codes associated with countries (.us for the United States, .uk for the United Kingdom, .mx for Mexico, or .au for Australia). The domain name can optionally end with a single slash (/) when there's nothing following it in the URL. If there is a path following the domain name, it must be separated using a single slash.
What is a repository, or repo in github?
The folder of sorts that contains all of the project files and documentation changes to the files. It contains code, info about code, and version history.
Path
The path is everything following the domain name, and it identifies the specific resource within the domain that the user wants to access. This is usually a specific webpage, but it also might be a file such as a video or an image. If there are additional slashes between different parts of the path, this usually indicates that the page or file is located within a subfolder or subdirectory within the website, which can help when organizing a website's structure.
what are git commits?
changes that are made to your code
Protocol (in a url)
The protocol, also known as the scheme, is the first part of a URL, which tells the browser how the website will be accessed. The two most common protocols you will encounter are HTTP, which stands for Hypertext Transfer Protocol, and HTTPS, a more secure version of HTTP. You may occasionally see some other protocols. The protocol part of a URL ends with a colon and two slashes (://).
Parts of a url, using the example url http://www.alexmercedcoder.com/cheese?type=gouda&taste=good to break them down
The protocol, also known as the scheme. This would usually be http:// or https:// The host, which is the www.alexmercedcoder.com part in this example. There are different parts to the host--the www., the second-level domain, and the top-level domain. The www. is optional. In this example, the alexmercedcoder.com is the the second-level domain, a unique name associated with a website. The .com part is the top-level domain, which historically was meant to associate the website with its purpose, such as .edu for educational or .gov for governmental institutions The /cheese is the endpoint or slud. The slug is what the application uses to determine how to respond to your computer's request. The application usually either runs one of several controller functions to generate a response or if acting as a static file server treats the slug as a file path to find a particular file. "/cheese" on a static server would look for a folder called cheese and default to returning the index.html in that folder. If I wanted a different file I'd specify it, "/cheese/somePicture.jpg". ?type=gouda&taste=good This is a URL query. The server may expect these with certain slugs to get more information. For example, when you view a video on youtube, which video should be shown on the page comes from a URL query (watch a youtube video and look at the URL.). In this example, I've sent the server a type query with a value of gouda and a taste query with a value of good, which does nothing unless the server expected to receive these queries. The "?" signifies the beginning of the query and the "&" separates the different queries.
GitHub Desktop
The software on your computer that tracks changes that you make to your code.
What are conditional statements used for, and give an example of a case where one would be needed
They allow us to make decisions based on conditions in our code. Example: if a plate meets the condition of being fancy, we will make the decision to stack it on the top shelf. Otherwise, we can assume that a plate is plain and should be stacked on the bottom shelf.
This lady's description of her team's GitHub workflow
To create a new branch in GitHub browser Then to open GitHub desktop and work locally on the new branch. Once you're in, make sure that you're working in the right repository (github desktop states what repo you're in in the top left hand corner), and make sure that the repo is current—that you've cloned the proper repo where the change should be. Also, make sure you're in the correct branch (github desktop states what branch you're in on the top bar just to the left of the current repo. Just to the right of that, it will tell you when it was last fetched, which you need to check to ensure that you have the most recent version of that branch. When you get into github desktop, it is so important to check these items in the top bar. Once you know you have your workspace set up where you can work locally, you would go into a markdown file to make any change. After you make changes in your markdown file, go back into GitHub Desktop and verify that it's showing you have 1 changed file, and that the additions (green) and removals of code (red) you did are showing up correctly. Then, enter a descriptive title denoting what the change was, and in the textbox white a description of the change to further clarify what change you're making to the branch. Then, click commit, which saves the changes to the branch you're working on. Then, make a pull request, which is a request to merge your content changes into the main branch. Ensure that you are requesting to merge into the correct branch. Give your pull request a descriptive title, and a specific description in the main textbox describing the changes you've made. Request a review from your team mate. Check out the record of the commits you made and verify that it looks good and correct. Check out the tab for "Files Changed," and make sure everything looks
how does an HTTP request work?
User types a URL in the address bar of a browser request is sent to users router/modem request is routed to users ISP ISP sends a request to a DNS server DNS server directs requests to the host ip address The web server running on the host machine then directs it to the right port on that machine for that particular site or application the applications server then uses the slug/endpoint to determine how to respond (either with a static file or by a controller function) the response is sent to the browser If the browser receives an html it'll then make further requests for linked js, css, and image files.
What is an edge case?
an exception or unusual scenario you can think of in order to see if your code would be broken by a certain scenario, and if you can write your code to work that weird case
Virtual Private Server (VPS)
Virtual Private Server (VPS) When expanding beyond the world of static hosting to build applications with frameworks like Laravel/PHP, Django/Python, Express/JS, Rails/Ruby, Spring/Java, Buffalo/Go, and many more you'll need more control over your deployment environment. This mainly involves getting a virtual private server, an imaginary computer of your very own with its own public IP address. This would then involve a process that looks like this. Provision a VPS from services like AWS, gCloud, Azure, Linode, Digital Ocean setup a firewall to only allow externals requests to port 80 & 443 Install Apache or Nginx installing any database servers your app uses clone your application from github with git run your app and make sure to point it to the local database server run your application on a port (for example, port 3000) configure apache/nginx to route requests for your application to the correct port
The three most common operating systems for personal computers
Windows, macOS, and Linux
describe GitHub workflow process
You create a new branch in order to make your changes to the code When you create a new branch to make content changes, you need to make sure to make that branch from the most recent version of the main branch. This helps avoid merge conflicts. You add your commits You open a pull request and your content changes are reviewed by your team. Make sure you assign another teammate to review your pull request. It's helpful to have another set of eyes on your work not only to make sure that you've done everything right with making your branch etc if you're new to GitHub, but you're also needing to be a good content strategist to make sure the content reads appropriately Your teammate would then say "yes, this content Sara made is good to merge." There is discussion and review. Then the content changes are merged and deployed. You would merge the approved changes into the main branch, preview on site, and then publish Why is the above called a pull request, when, "Merging changes made to the repository files into the local copy you're working on is called "pulling." A "push" is the reverse, of course — updating the repository files with changes you've made to your local copy."???
Environmental Variables
Your machine and the software it runs is your environment. Variables that your operating system tracks and makes available to all processes running are called environment variables. To hide sensitive data, a strategy to store that data not in your code but be able to pull them from your environment via your code is by using environment variables (this way people who read your code can't see the underlying values). Most programming languages have libraries to define variables you want to add to your environment when your applications runs whether be in JSON/YAML/TOML files or in an ever-popular .env file. Regardless all these libraries do is add these variables to the OS environment when the application runs and then your app pulls them from the environment. Heroku allows you to define them using "config vars" in the settings section but works the same way. Keep in mind, Environmental variables don't help you hide information in frontend code as any code sent to the browser along with details of requests and responses are transparent by viewing the browser's developer tools. So when calling third-party data sources a typical strategy is to create a "proxy server" which is a backend server whose only purpose is to make those third-party requests where API keys and other credentials can be hidden and then forward that data to the frontend when requested.
what is a feature branch?
a branch that holds code that is currently being developed for a single feature of the application. We call this a working branch
A program
a collection of instructions that can be executed by a computer to perform a specific task. As we discussed earlier, a program tells a computer which operations to perform, the order in which these operations should be performed, how these operations should start and stop, which input the program needs from the user, and what the output should be.
computer network
a group of computers that communicate with each other to share resources located on that network. This includes private, public, academic, business, and government networks.
Acceptance Criteria
a list of the things your application must achieve in order to be considered done.
what is a fork
a new repository (in GitHub) that inherits from a parent "upstream" repo. It is used to suggest changes to an "upstream" public repo by someone who doesn't have access to edit in the repo's home org. another explanation: "Forking" is when you copy another user's repository to your own account. You can then make any changes you want to your forked copy, leaving the original unaffected. However, forks retain a connection to their original source, so you have the option to update your copy with changes made to the original at a later date. this is different than creating a feature branch because you're creating a whole new repo, rather than just a branch to add changes which you plan to then merge.
pseudocode
a plain-language description of what our code will do
What is Bash / Git Bash?
a popular version of the shell that allows us to perform many tasks from the command line inside the terminal (this is a bit confusing and circular but I grabbed this from a tutorial.)
code snippet
a portion of code
An application, or app
a program or collection of programs that have been designed specifically for users, and which provide a set of connected tasks and functions. All applications are programs, but not all programs are applications. Applications can't run on their own, and they run within the context of other software, such as operating systems.
An operating system
a special kind of software that manages the hardware on your computer, oversees resources for running other software, and provides common services for computer programs. The operating system on a computer is the bare minimum software you need in order to use it, and nothing else on the computer will work without it. A computer works on a very simple language called machine language. The operating system allows users to communicate with the computer without knowing how to speak the computer's language.
what is a markdown text editor? Name an example of a markdown text editor
a tool that allows you to create and edit files in plain text. Depending on which text editor you use, you may be able to see an immediate preview of your change in HTML. With Atom as your text editor you can do that.
User Stories: what are they, and what are the 3 sections they are made up of?
a user story is simply a short description of the user you're creating an application for. It ensures that you keep your audience in mind when working on the different parts, or features, of your applications. A user story consists of the following three sections: The type of person using your application. What the user wants from the application. Why the user wants what they want (i.e., what problem are they trying to solve?).
how to clone a repo from GitHub web to your computer
git clone <the SSH value you copied from the green code button inside your repo in GitHub web>
Difference between Git, GitHub Web, and GitHub Desktop
if we're referring to the command line tool, that is called Git, or Git Bash, or Bash. For GitHub, we have GitHub web and GitHub desktop, which can do the same things, just the web version is on the cloud and GitHub desktop allows you to work locally on your computer
frontmatter
in a markdown file, this is a set of lines at the top of the document that provide some general metadata, such as title, category, layout, source_url, author, tags
what is an Issue in GitHub (browser)?
is about how we're tracking the work that's happening when we're using git. It's a way to report new tasks or content fixes. You might report bug fixes here. But in the context of creating content, this is where you would enter an issue to have it stated as "this is a task we want to get done / this is some content we want to fix." When you create an issue, it gets tracked on the project board. There, you can move the issue from a list of "to dos" to "in progress."
continuous deployment
is the concept of creating an automated pipeline of your deployment process. Typically this takes the form of updating your code on GitHub which then triggers automation that ends in your project being deployed (Netlify and Vercel make this very easy). This type of pipeline is also used to integrate code from others into a project automating a pipeline of tests and this is referred to as Continuous Integration. (CI/CD)
how would you get Bash to tell you a list of files and directories on your computer?
ls
how to get Bash to create a new directory? (and what does the command stand for?)
mkdir name-you'd-like-your-directory-to-be-called
how would you get Bash to open a text file?
open name-of-file.txt
how would you get Bash to tell you what directory you are currently in, and what does the command stand for?
pwd (print working directory)
bottleneck
refers to a point in our development process that is slowing down the rest of production.
What is the purpose of a repo, and what does repo stand for?
repositories are basically folders that are used to store the following: Files that contain code. Files that contain other information about the code, like a README file. The version history for all of the files in the repository.
what happens when you type a url in the address bar of a browser and hit enter?
the browser does what is called an HTTP request (Hyper Text Transfer Protocol) which is a process by which computers send text-based information to each other. Literally, every image, site, video, and audio piece of content you experience starts as a stream of text going into your browser to then be rendered.
what does working directory mean? (in reference to Bash)
the directory you are currently in
What is CSS used for?
the most basic building block of websites. It handles the content of a website, as well as its structure and the meaning of each element on the page.
Computational thinking
the process of understanding a complex problem by breaking that problem into smaller parts, and then developing possible solutions that can be clearly presented in a way that computers and/or humans can understand.
what are markdown files, and what is their file extension?
the way the content files are formatted in github. Markdown is a way to write for the web using plain text but which easily converts to HTML. You input your code and changes into the markdown file. The file extension is .md
What is JavaScript used for?
to add logic to your webpage, which will allow users to interact with it
What is HTML used for
to create content that will appear in your browser. This can be text, images, or parts of a page's layout.
describe some best practices when creating an Issue in Github browser
to include an attachment of the word or google doc where the content is being written in to give your issue a label--for example, content, engineering, or enhancement. If you're creating content, you would want to slap the "content" label on it so your teammates know that it's new content you're creating
what is Federalist used for?
to preview the changes on a website
how would you get Bash to create a new text file, and where would this new text file be located?
touch name-you'd-like-your-file-to-be-called.txt (and, the file would be located within the current working directory)
list some common types of services that utilize the cloud
web-based email, video streaming, file storage like dropbox and google drive, and online backup services such as carbonite
event trigger
when the completion of a first event triggers a second event