Basics of Web
About me
- Software Engineer for 10+ years
- Full Stack JS Dev
- Enjoy my work
What is Web?
Connecting computers
Connecting people
Protocols://
HTTP
(HyperText Transfer Protocol)
Requests the 'HTML' document from the server and serves it to the browser.
AJAX requests
HTTPS
(HTTP Secure)
Provides bidirectional encryption of communications between a client and server.
HTML
(HyperText Markup Language)
The language that we write our web pages in.
CSS
(Cascading Style Sheets)
Describes how HTML elements should be displayed.
JavaScript
A programming language that adds interactivity to your website.
A look into the past
Web 1.0
(The shopping carts & static web)
Web 1.0 can be defined as:
- Pages and documents
- Linking webpages with hyperlinks
- Static pages
- Retrieve information
Web 2.0
(The writing and participating web)
Web 2.0 can be defined as:
- Social networking
- Information sharing
- Dynamic user generated content
- Collaboration
Web 3.0
(The semantic executing web)
"Web of data"
Web x.0
Web development
Front-End / Back-end
Front-end
HTML
1. Semantics
<div> soup
Much better
2. Accessibility
Accessibility points
Lighthouse
3. HTML Forms
<div>
<div>Email</div>
<input id="email" type="email">
<div>Password</div>
<input id="password" type="password">
<button id="submit" onclick="doSomeStuff()">Submit</button>
</div>
<script>
function doSomeStuff() {
const emailEl = document.getElementById('email');
const passwordEl = document.getElementById('password');
// ...
nextHandler({ email: emailEl.value, password: passwordEl.value });
}
</script>
Form without <form> 🤔
Correct way with <form> ☺️
<form onsubmit="doSomeStuff()">
<label for="email">Email</label>
<input
id="email"
name="email"
type="email"
autocomplete="email"
placeholder="email@example.com"
required
>
<label for="password">Password</label>
<input
id="password"
name="password"
type="password"
autocomplete="current-password"
required
>
<button type="submit">DO SOME STUFF</button>
</form>
CSS
Mature enough technology
CSS cool things
- Flexbox
- Grid Layout
- Custom properties
- Houdini
- Animations
Houdini: Demystifying CSS
Is Houdini ready yet?
100 days CSS challenge
PostCSS
Autoprefixer
CSSNext
CSS Modules
Stylelint
JavaScript
Standards Evolution
Libraries / Frameworks
- jQuery
- Backbone
- Knockout
- Ember
- AngularJS
- Angular
- React
- Vue
- ∞
Put here any technology
FE development stack
FE development stack
Angular
"How I've stopped believing the technologies"
What shall you do?
Learning
Take interactive courses
- HTML Academy
- Code Academy
- Codewars
- ∞
Watch video lessons, screencasts, reports
- All your HTML
- Google Chrome Developers
- Chris Coyier
- Rob Dodson
- HTML Shorts
- ∞
Learn English
- Lingualeo
- English & by-time
- Read documentation
- Listen to English speakers
- Watch videos in English
- Write documentation
Read Specifications
- W3C (World Wide Web Consortium)
- WHATWG (Web Hypertext Application Technology Working Group)
- CSSWG (CSS Working Group)
- TC39 (Technical Committee 39)
Write your own library
- Parallax
- Slider
- Dropdown menu
- Tabs
- Write good ReadMe
As for production
- Responsive
- Cross-browser
- Valid
- Accessible
Weblind
Try different API
- Write your own Telegram bot
- Play with Google Maps
Listen to podcasts
- Web Standards
- Frontend Weekend
- devSchacht
- RadioJS
- ∞
Your health is not infinite
This presentation
Basics of Web
By Nikita Malik
Basics of Web
About history of the Web, modern technologies and missions of web developers.
- 911