Introduction to Web Development Space¶
Navigating the Deep Dark Space of Web Development
This workshop covers a brief overview of the most common tools and technologies used in web development.
This workshop is proudly supported by¶
Content¶
- What and Why Web Development?
- FAQs about Web Development
- Basics of Web and Limitation
- Server-side Applications (Backend)
- Others
- Word of Encouragement
What and Why Web Development?¶
What is web development?¶
- Static websites (e.g. this workshop website!)
- Web applications (e.g. Youtube)
Why Web Development ?¶
- Accessibility and Portability
- Career and In-demand job opportunities
- Huge possibility to combine with other emerging technologies (e.g. IoT, Machine Learning) and industry (e.g. Health, Mining, O&G)
Career in Web Development
Source: Stack Overflow 2024 Developer Survey
"over half of Developers are Web Developers"
FAQs about Web Development¶
Why code websites, why not use drag and drops like Wordpress, WIX?¶



- Content Management System (CMS)
- Limitations on theme/template used
- Difficult to extend
- Cybersecurity
More information
CMS are one of the application of web development, but there are plenty more such as - internet of things, custom software for a particular industrial application (eg. using Machine Learning)
CMS are usually limited to the template or plugin that you use. If those plugin don't exist, then it limits your productivity very much (difficulty to extend).
CMS are usually built to cater for non-technical users. This means that thye become the subject of hackers. Think about a scenario where a hacker was able to find a vulnerability in WordPress, now every other WordPress site will be vulnerable.
Why does CFC not do mobile development as much as web development?¶
- App stores have a developer cost
- Easier to deal/teach web technologies
- Accessibility (mobile, sensors, tablets, laptops and PCs)
- Bigger communities
- We sometimes do mobile development! (Kind of)
- Progressive web apps
If I already know a frontend framework, is it better to learn another frontend framework or to learn a backend framework?¶
- It is better to learn a backend framework
Reasoning
You want to build skills that complement one another rather than be an alternative.
It is much more valuable for you to learn a backend framework because that helps you build a functional app.
Basics of Web and Limitation¶
What is it?
- Hypertext Markup Language
- Describes the structure of a web page
Limitation
- Doesn’t handle repeated content well
- No variables or calculation
HTML Syntax
1 2 3 4 5 6 7 8 9 10 11 12 |
|
What is it?
- Cascading Style Sheets
- Describes the presentation of a web page
Limitation
- Most css is quite similar (Handled by CSS Libraries)
- Not very dynamic (Handled by CSS Frameworks)
CSS Syntax
1 2 3 4 5 6 7 8 9 |
|
What is it?
- JavaScript
- Used to program complex features on a web page
Limitation
- Has the capability to modify the user interface, but becomes really tedious to modify interface (more about this in another workshop)
JS Syntax
1 2 3 4 5 6 7 |
|
Modern Frameworks¶
- Websites can be much more… they can be web applications
- “App” in a website (client-side rendering)
Modern Frameworks
- More mature and used more in industry
- Growing fast in popularity and use.
General Information
- Both are good to use and learn.
- Knowledge is transferable between the two frameworks.
Comparison between HTML and JSX
Highlighted portions are starting chunk of distinct code.
HTML
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 |
|
JSX
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 |
|
Server-side Applications (Backend)¶




How do devices communicate?¶
- HTTP Request - Hypertext Transfer Protocol
What do server applications do?¶
- Serve frontends (server-side rendering)
- Web API (Application Programming Interface)
- Serve data (usually from a database)
- Process Request (Sending emails or SMS, Machine Learning)
Databases¶
Place to store the data
Mongodb
Allows for database design to be modified without complex migration or data loss
SQL
Typically faster and better for large amounts of data or systems that need data consistency and reliability
Others¶
Languages of the Web (the usual)¶
- Python (Django, Flask)
- JavaScript (Node.js, Express)
- Ruby, Go, Rust, C
Hosting Stuff¶
Many ways - Self host/On premise - 3rd party options - shared/dedicated server - Serverless - AWS ECS/Digital Ocean App Platform
Frontend Frameworks¶
Frontend (JS)
- Vue, React
- Nuxt.js, Next.js
- Svelte
Frontend (CSS)
- MaterialUI, Vuetify
- Bootstrap
- Tailwind
Developer Tools¶
TypeScript¶
- Type checking is super useful for complex apps
- Allows for way better javascript developer tooling
- Can be annoying if you’re new at it
Testing¶
- Selenium, Cypress
- End to end automated testing tools
- Jest, Mocha, Pytest
- Unit testing
- Testing is vital to software projects
Continuous Integration / Continuous Deployment¶
- Automated Testing
- Event-driven scripts
- E.g. Github Action, Bitbucket Pipelines
Virtualisation and Containerisation¶
- Allows execution of services in a virtual environment
- eg. Docker (Containerisation), Vagrant (Virtualisation)
Browsers¶
- Standard browsers
- Google Chrome, Firefox, Edge, etc.
- Backwards compatibility
- Internet Explorer
- Other
- Mobile - Responsive
- Screen readers - Accessibility
Firefox Developer Tools¶
- Page Inspector
- Visualise page aspects
- Grid layout
- Web Console
console.log(“Hello World”)
- Responsive Design Mode
- View from POV of different screen sizes such as mobile, tablets, etc.
Some more tools
- JavaScript Debugger
- Network Monitor
- Performance Tools
- Rulers
- Colour Pickers Learn more at: https://developer.mozilla.org/en-US/docs/Tools
Package Managers¶
- Installs libraries that can be used
- Also has code shortcuts (e.g. npm run start)
(More about package.json
and poetry.toml
in the projects and Package Manager Workshop)
Version Control¶
- Essential for developer teams and complex software development
- Git
- Hosted options
- Bitbucket
- Github
- Gitlab
- Hosted options
- Subversion
Linters and Formatters¶
- Makes code formatting consistent (following standard)
- Useful with version controls to avoid pointless change
eg.ESLint, Prettier
Teamwork¶
- Many tools out there
- Used to stop teams from stepping on each others toes
- Github Issues + Pull Requests
Roadmaps¶
There's an open-source community that maintains a learning roadmap for developers. See https://roadmap.sh/