# Learning to Program
All credit to [How to Code a Website: A Step-by-Step Guide](https://bootcamp.cvn.columbia.edu/blog/how-to-code-a-website/#1636662022939-9c521214-7fc2) by
To build websites, you can use web developers like WordPress but they'll cost you - so I'll do it myself
## 9 Steps to Building a Website from Scratch
1. Define Your Site
- Mission Statment + Inviting Home Page
2. Choose a Server and Domain Name
- Be simple and clear (aydencavill.com)
- Pick correct domain for purpose of my site
- [Better Business Bureau](https://www.bbb.org/)
- $2-$20 a year for a domain name
3. Learn Web Development Languages
- HTML (Hypertext Machine Language): determines where elements are placed on page
- 'hypertext' refers to links that connect pages
- 'markup' feature is to explain elements of each page
- elements are defined by 'tags'
- includes instrucion btwn '<>' punctuation
```
<a>: link
<body>: body of a document
<div>: section of a document
<header>: header of a document
<p>: paragraph
<title>: document title
<img>: image
```
- web pages are built by turning these tags into code
- CSS: styles page
- including colors, fonts, overall aesthetic
- "Properties, rules, and selectors are among the first things you’ll learn in CSS"
- Selectors pinpoint HTML element that is being styled
- [a sound beginner’s guide](https://developer.mozilla.org/en-US/docs/Learn/CSS)
- Java
- the most used web programming language for 9 consecutive years
- "...brings websites to life, adding interactive elements, animations, photo slideshows, automated survey forms, and much more" but more challenging
- some similar terminology as python
- [become a front end developer](https://bootcamp.cvn.columbia.edu/blog/become-a-front-end-developer/)
- Python
- Considered relatively easy to learn, relies on English keywords + recognizable syntax
- Google + Youtube employ it
- Another developer built large online pharmacy w Python
5. Use [Bootstrap](https://getbootstrap.com/)
- "a feature-rich framework that shortens and eases the process of website-building"
- Created at Twitter
- "contains a collection of prebuilt CSS and JavaScript code that developers can paste directly into their programs"
- "Developers also can download prebuilt website themes, dashboards, and a host of other components"
7. Choose Your Design
- "Websites should be bright, engaging, and easy to use"
- Can start w templates from WordPress, Bootstrap, etc.
9. Create a Sitemap
- Every site needs one to list supporting pages and subpages
Example:

11. Add Content and Images
- Add your best, most current content
- Don't overload
- Update regularly
- Users value experience
13. Optimize for SEO (Search Engine Optimization)
- Internet ranking system
- The better its SEO performance, the higher it'll rank on internet searches
- Steps to boost performance
1. Make sure to have relevant key words throughout site
2. "Every page should have a title and description, and images should carry captions"
3. Research terms + phrases users search + apply them to your website
- "For instance, if you’re opening a flower shop in New York, make your site relevant to searches for “Best flower shops in New York,” or “New York flower shops with free delivery.”
- [SEO Starter Guide](https://developers.google.com/search/docs/beginner/seo-starter-guide)
15. Optimize Your Site for Mobile Use
- Over 1/2 web traffic is delivered to mobile devices
- Responsive Design: adjusts content to match user's screen size
- WordPress + others have templates to retrofit
- [Mobile-Friendly Test Tool](https://support.google.com/webmasters/answer/6352293?hl=en)