Web Development
Site: | Digital Literacy For All |
Course: | Digital Literacy For All |
Book: | Web Development |
Printed by: | |
Date: | Thursday, 21 November 2024, 12:42 PM |
1. Introduction To Web Development
Web development is the process of creating and maintaining websites. It encompasses several aspects, including web design, web content development, client-side/server-side scripting, and network security configuration. Web development ranges from creating simple static pages to complex web applications, e-commerce platforms, and social networks. Here's a brief overview of the main components of web development:
1. Front-End Development
Front-end development involves creating the part of the website that users interact with. It includes:
- HTML (HyperText Markup Language): The standard language for creating web pages. HTML provides the structure of a webpage.
- CSS (Cascading Style Sheets): Used for styling HTML elements. CSS controls the layout, colors, fonts, and overall appearance of a website.
- JavaScript: A programming language that adds interactivity to a website. JavaScript can create dynamic content, control multimedia, animate images, and much more.
- Frameworks and Libraries: Tools like React, Angular, and Vue.js that provide pre-written JavaScript code to streamline development and enhance user interface design.
### 2. Back-End Development
Back-end development involves creating the server-side logic that powers the front-end. It includes:
- **Server-Side Languages:** Common languages include Python (with frameworks like Django and Flask), Ruby (with Ruby on Rails), PHP, Java, and Node.js.
- **Databases:** Used to store and manage data. Common databases include MySQL, PostgreSQL, MongoDB, and SQLite.
- **APIs (Application Programming Interfaces):** Enable different software systems to communicate with each other. RESTful APIs and GraphQL are common examples.
### 3. Full-Stack Development
Full-stack developers are proficient in both front-end and back-end development. They understand how to build a complete web application from start to finish.
### 4. Tools and Technologies
Web developers use a variety of tools to create, test, and maintain websites:
- **Version Control Systems:** Tools like Git help developers manage changes to their code.
- **Development Environments:** IDEs (Integrated Development Environments) like Visual Studio Code, Sublime Text, and Atom.
- **Package Managers:** Tools like npm (Node Package Manager) and yarn manage dependencies for JavaScript projects.
- **Build Tools:** Tools like Webpack, Gulp, and Grunt automate tasks like minifying code, optimizing images, and compiling preprocessed languages like Sass.
### 5. Web Development Process
The process typically involves several stages:
1. **Planning:** Understanding the project requirements, audience, and goals.
2. **Design:** Creating wireframes and mockups to visualize the layout and design of the website.
3. **Development:** Writing the code for the front-end and back-end.
4. **Testing:** Ensuring the website works correctly across different browsers and devices.
5. **Deployment:** Making the website live on a web server.
6. **Maintenance:** Updating the website regularly to fix bugs, add new features, and improve performance.
### 6. Trends and Best Practices
Web development is an ever-evolving field, with new trends and best practices emerging regularly:
- **Responsive Design:** Ensuring websites work well on all devices, from desktops to smartphones.
- **Progressive Web Apps (PWAs):** Web apps that offer a native app-like experience.
- **Single Page Applications (SPAs):** Websites that load a single HTML page and dynamically update content as the user interacts with the app.
- **Web Accessibility:** Ensuring websites are usable by people with disabilities.
### Conclusion
Web development is a multifaceted discipline that requires a mix of technical skills, creativity, and problem-solving abilities. Whether you are interested in designing beautiful interfaces, developing robust back-end systems, or creating full-fledged applications, web development offers a wide range of opportunities to explore.
1.1. Proffesional User
1. Teaching Effectiveness:
- Demonstrates strong subject knowledge and effectively communicates concepts.
- Uses a variety of teaching methods to engage students and promote active learning.
- Receives positive feedback from students regarding clarity of explanations and approachability.
2. Professionalism:
- Consistently punctual and well-prepared for classes.
- Maintains a professional demeanor and interacts respectfully with students and colleagues.
- Adheres to school policies and procedures consistently.
3. Collaboration and Teamwork:
- Actively participates in department meetings and contributes valuable insights.
- Works collaboratively with colleagues to develop curriculum and instructional materials.
- Supports colleagues and shares resources to enhance teaching effectiveness across the team.
4. Communication Skills:
- Communicates effectively with students, colleagues, and parents/guardians.
- Responds promptly to inquiries and addresses concerns in a professional manner.
- Uses technology appropriately to facilitate communication and instructional delivery.
5. Professional Development
- Actively engages in professional development opportunities such as workshops, conferences, and courses.
- Demonstrates a commitment to lifelong learning and integrates new knowledge into teaching practices.
- Pursues opportunities for growth and development in areas relevant to their teaching responsibilities.
6. Student Engagement and Support:
- Demonstrates a genuine interest in student success and provides timely feedback on assessments.
- Creates a positive classroom environment that encourages student participation and academic growth.
- Supports students' social-emotional development and provides guidance as needed.
1.2. Novice User
1. Teaching Effectiveness:
- Demonstrates strong subject knowledge and effectively communicates concepts.
- Uses a variety of teaching methods to engage students and promote active learning.
- Receives positive feedback from students regarding clarity of explanations and approachability.
2. Professionalism:
- Consistently punctual and well-prepared for classes.
- Maintains a professional demeanor and interacts respectfully with students and colleagues.
- Adheres to school policies and procedures consistently.
3. Collaboration and Teamwork:
- Actively participates in department meetings and contributes valuable insights.
- Works collaboratively with colleagues to develop curriculum and instructional materials.
- Supports colleagues and shares resources to enhance teaching effectiveness across the team.
4. Communication Skills:
- Communicates effectively with students, colleagues, and parents/guardians.
- Responds promptly to inquiries and addresses concerns in a professional manner.
- Uses technology appropriately to facilitate communication and instructional delivery.
5. Professional Development
- Actively engages in professional development opportunities such as workshops, conferences, and courses.
- Demonstrates a commitment to lifelong learning and integrates new knowledge into teaching practices.
- Pursues opportunities for growth and development in areas relevant to their teaching responsibilities.
6. Student Engagement and Support:
- Demonstrates a genuine interest in student success and provides timely feedback on assessments.
- Creates a positive classroom environment that encourages student participation and academic growth.
- Supports students' social-emotional development and provides guidance as needed.
2. Front End Development
Front-end development, also known as client-side development, focuses on the creation of the user-facing part of websites and web applications. It's about making sure that the users can interact with the website or application in a smooth, visually appealing, and responsive manner. Here are the key components and tools involved in front-end development:
### Key Components
1. **HTML (HyperText Markup Language)**
- **Structure:** HTML is the backbone of any web page, providing the structure and layout of the content. It uses a series of elements (tags) to define different parts of a webpage, such as headings, paragraphs, links, images, and more.
2. **CSS (Cascading Style Sheets)**
- **Styling:** CSS is used to style and layout web pages. It allows developers to apply styles to HTML elements, such as colors, fonts, spacing, and positioning. CSS makes web pages visually attractive and enhances user experience.
- **Responsive Design:** CSS includes features like media queries, which help create responsive designs that adapt to different screen sizes and devices.
3. **JavaScript**
- **Interactivity:** JavaScript is a programming language that enables interactive elements on web pages, such as sliders, forms, animations, and dynamic content updates without needing to reload the page.
- **DOM Manipulation:** JavaScript allows direct interaction with the Document Object Model (DOM) to dynamically change the content and structure of web pages.
### Frameworks and Libraries
1. **Frameworks**
- **React:** Developed by Facebook, React is a JavaScript library for building user interfaces, particularly single-page applications where data changes over time.
- **Angular:** Developed by Google, Angular is a full-fledged front-end framework for building complex and scalable web applications.
- **Vue.js:** A progressive JavaScript framework for building user interfaces, Vue.js is designed to be incrementally adoptable.
2. **Libraries**
- **jQuery:** A fast, small, and feature-rich JavaScript library that simplifies HTML document traversal, event handling, and animation.
- **Bootstrap:** A popular CSS framework for developing responsive and mobile-first websites quickly. It includes a collection of CSS and JavaScript components.
### Tools and Technologies
1. **Version Control Systems**
- **Git:** A distributed version control system that helps developers track changes in their code and collaborate with others.
2. **Development Environments**
- **IDEs and Text Editors:** Tools like Visual Studio Code, Sublime Text, and Atom provide features like syntax highlighting, code completion, and debugging.
3. **Package Managers**
- **npm (Node Package Manager):** The default package manager for Node.js, used to install and manage JavaScript packages.
- **Yarn:** An alternative package manager that offers improved performance and security.
4. **Build Tools**
- **Webpack:** A module bundler for JavaScript applications. It processes and bundles files, including JavaScript, CSS, and HTML.
- **Gulp and Grunt:** Task runners that automate repetitive tasks such as minification, compilation, and testing.
5. **Preprocessors**
- **Sass (Syntactically Awesome Stylesheets):** A CSS preprocessor that adds features like variables, nested rules, and functions, making CSS more maintainable.
- **LESS:** Another CSS preprocessor that extends CSS with dynamic behavior.
### Best Practices
1. **Responsive Design**
- Ensure the website looks good and works well on all devices, including desktops, tablets, and smartphones. Use fluid grids, flexible images, and media queries.
2. **Performance Optimization**
- Optimize images, minify CSS and JavaScript files, use lazy loading, and leverage browser caching to improve website performance.
3. **Accessibility**
- Design and develop websites that are accessible to all users, including those with disabilities. Follow accessibility standards such as WCAG (Web Content Accessibility Guidelines).
4. **Cross-Browser Compatibility**
- Ensure that the website functions correctly across different browsers (Chrome, Firefox, Safari, Edge, etc.) and devices.
5. **Code Quality**
- Write clean, maintainable, and well-documented code. Use linters and formatters to enforce coding standards.
### Conclusion
Front-end development is a critical aspect of web development that focuses on the user interface and user experience. By mastering HTML, CSS, JavaScript, and associated frameworks and tools, front-end developers can create visually appealing, responsive, and interactive websites and applications. As technology and user expectations evolve, staying updated with the latest trends and best practices in front-end development is essential.
2.1. Core Languages
Collaboration and Teamwork:
- Actively participates in department meetings and contributes valuable insights.
- Works collaboratively with colleagues to develop curriculum and instructional materials.
- Supports colleagues and shares resources to enhance teaching effectiveness across the team.
4. Communication Skills:
- Communicates effectively with students, colleagues, and parents/guardians.
- Responds promptly to inquiries and addresses concerns in a professional manner.
- Uses technology appropriately to facilitate communication and instructional delivery.
5. Professional Development
- Actively engages in professional development opportunities such as workshops, conferences, and courses.
- Demonstrates a commitment to lifelong learning and integrates new knowledge into teaching practices.
- Pursues opportunities for growth and development in areas relevant to their teaching responsibilities.
6. Student Engagement and Support:
- Demonstrates a genuine interest in student success and provides timely feedback on assessments.
- Creates a positive classroom environment that encourages student participation and academic growth.
- Supports students' social-emotional development and provides guidance as needed.
7. Areas for Improvement:
- [Specific areas where improvement or further development is recommended, with constructive suggestions.]
8. Overall Assessment
- [Summary of strengths and areas for growth, along with an overall assessment of the colleague's performance.]
Employee Comments:
- [Colleague's self-assessment and reflections on their performance, goals, and areas for development.]
Action Plan
- [Development goals and action steps agreed upon between the appraiser and the colleague to support professional growth.]
2.2. Basic Languages
Collaboration and Teamwork:
- Actively participates in department meetings and contributes valuable insights.
- Works collaboratively with colleagues to develop curriculum and instructional materials.
- Supports colleagues and shares resources to enhance teaching effectiveness across the team.
4. Communication Skills:
- Communicates effectively with students, colleagues, and parents/guardians.
- Responds promptly to inquiries and addresses concerns in a professional manner.
- Uses technology appropriately to facilitate communication and instructional delivery.
5. Professional Development
- Actively engages in professional development opportunities such as workshops, conferences, and courses.
- Demonstrates a commitment to lifelong learning and integrates new knowledge into teaching practices.
- Pursues opportunities for growth and development in areas relevant to their teaching responsibilities.
6. Student Engagement and Support:
- Demonstrates a genuine interest in student success and provides timely feedback on assessments.
- Creates a positive classroom environment that encourages student participation and academic growth.
- Supports students' social-emotional development and provides guidance as needed.
7. Areas for Improvement:
- [Specific areas where improvement or further development is recommended, with constructive suggestions.]
8. Overall Assessment
- [Summary of strengths and areas for growth, along with an overall assessment of the colleague's performance.]
Employee Comments:
- [Colleague's self-assessment and reflections on their performance, goals, and areas for development.]
Action Plan
- [Development goals and action steps agreed upon between the appraiser and the colleague to support professional growth.]
3. Back End Development
Back-end development refers to the server-side aspect of web development, where the focus is on building and maintaining the core functional logic, database interactions, server configuration, and application programming interfaces (APIs). The back end is the backbone of any web application, handling the data processing and server operations that support the front-end experience. Here’s a detailed overview of back-end development:
Key Components of Back-End Development
-
Server-Side Programming Languages:
- Python: Known for its readability and simplicity. Popular frameworks include Django and Flask.
- JavaScript (Node.js): Allows for server-side scripting with JavaScript. Common frameworks are Express.js and Koa.js.
- PHP: Widely used for server-side scripting, especially in web development. Popular frameworks include Laravel and Symfony.
- Java: A robust, object-oriented language often used for large-scale applications. Common frameworks are Spring and Hibernate.
- Ruby: Known for its elegant syntax. The most notable framework is Ruby on Rails.
- C#: A language developed by Microsoft, used within the .NET framework for building web applications.
- Go (Golang): Known for its performance and efficiency, with frameworks like Gin and Echo.
-
Databases:
- Relational Databases (SQL):
- MySQL: An open-source relational database management system.
- PostgreSQL: An advanced, open-source relational database with strong support for SQL standards.
- SQLite: A lightweight, file-based database system.
- Microsoft SQL Server: A relational database management system developed by Microsoft.
- NoSQL Databases:
- MongoDB: A document-oriented NoSQL database.
- Cassandra: A highly scalable NoSQL database designed for handling large amounts of data.
- Redis: An in-memory key-value store used for caching and real-time analytics.
- Firebase: A NoSQL cloud database for real-time data storage and synchronization.
- Relational Databases (SQL):
-
Server Management and Deployment:
- Web Servers: Software that handles HTTP requests and serves web pages to users.
- Apache: A widely-used, open-source web server.
- Nginx: Known for its high performance and efficient handling of static content and reverse proxy capabilities.
- Microsoft IIS: A web server developed by Microsoft.
- Hosting Providers: Services that provide the infrastructure to deploy and run web applications.
- AWS (Amazon Web Services): Offers a range of cloud computing services.
- Google Cloud Platform: Provides cloud computing services and infrastructure.
- Microsoft Azure: A cloud computing service created by Microsoft.
- Heroku: A platform as a service (PaaS) that enables developers to build, run, and operate applications entirely in the cloud.
- Web Servers: Software that handles HTTP requests and serves web pages to users.
-
APIs (Application Programming Interfaces):
- REST (Representational State Transfer): An architectural style for designing networked applications. Uses standard HTTP methods and is stateless.
- GraphQL: A query language for APIs and a runtime for executing those queries by providing a complete and understandable description of the data in an API.
- SOAP (Simple Object Access Protocol): A protocol for exchanging structured information in web services.
-
Authentication and Authorization:
- OAuth: An open standard for access delegation commonly used as a way to grant websites or applications limited access to user information without exposing passwords.
- JWT (JSON Web Tokens): A compact, URL-safe means of representing claims to be transferred between two parties.
- Session-based Authentication: A method of maintaining user authentication status by storing user-specific data on the server.
-
Development Tools and Best Practices:
- Version Control Systems: Tools like Git help developers track changes to their code and collaborate with others.
- CI/CD (Continuous Integration/Continuous Deployment): Practices and tools that allow developers to frequently integrate code changes and automate the deployment process. Popular tools include Jenkins, CircleCI, and Travis CI.
- Containerization: Using tools like Docker to create, deploy, and run applications in containers for consistency across different environments.
- Testing: Writing tests to ensure code quality and functionality. Tools and frameworks include JUnit (for Java), PyTest (for Python), and Mocha (for JavaScript).
Back-End Development Process
-
Requirements Gathering:
- Understanding the project requirements, including functionality, performance, security, and scalability.
-
Design:
- Planning the architecture of the application, including the database schema, server setup, and API design.
-
Development:
- Writing the server-side code using chosen languages and frameworks.
- Setting up and configuring databases.
- Implementing authentication and authorization mechanism
3.1. Server Side Languages
Server-side languages are used in back-end development to create the logic that powers websites and web applications. They handle operations such as database interactions, user authentication, and server-side calculations, ensuring that the front end receives the necessary data and services to function correctly. Here are some of the most commonly used server-side languages, along with their key features and popular frameworks:
### 1. **Python**
- **Key Features:**
- Easy to read and write due to its clean syntax.
- Extensive libraries and frameworks.
- Strong support for data manipulation and machine learning.
- **Popular Frameworks:**
- **Django:** A high-level framework that encourages rapid development and clean, pragmatic design.
- **Flask:** A micro-framework that is lightweight and flexible, suitable for small to medium-sized applications.
### 2. **JavaScript (Node.js)**
- **Key Features:**
- Uses the same language for both front-end and back-end development.
- Event-driven and non-blocking I/O, which makes it efficient and scalable.
- Large ecosystem of packages available via npm (Node Package Manager).
- **Popular Frameworks:**
- **Express.js:** A minimal and flexible Node.js web application framework that provides robust features for web and mobile applications.
- **Koa.js:** Created by the same team behind Express, Koa aims to be a smaller, more expressive, and more robust foundation for web applications and APIs.
### 3. **PHP**
- **Key Features:**
- Especially suited for web development and can be embedded within HTML.
- Widely supported and easy to deploy on most web servers.
- Large community and a vast number of available libraries.
- **Popular Frameworks:**
- **Laravel:** A modern PHP framework that provides an elegant syntax, robust tools for routing, authentication, and caching.
- **Symfony:** A set of reusable PHP components and a web application framework that provides an architecture, components, and tools for developers.
### 4. **Ruby**
- **Key Features:**
- Focuses on simplicity and productivity.
- Known for its elegant syntax that is natural to read and easy to write.
- Strong support for object-oriented programming.
- **Popular Frameworks:**
- **Ruby on Rails:** A server-side web application framework written in Ruby, it follows the convention over configuration (CoC) and don't repeat yourself (DRY) principles.
### 5. **Java**
- **Key Features:**
- Platform-independent due to the Java Virtual Machine (JVM).
- Strong typing and object-oriented features.
- Robust, secure, and scalable, making it suitable for large applications.
- **Popular Frameworks:**
- **Spring:** A comprehensive framework that provides infrastructure support for developing Java applications, with features for data access, web apps, and microservices.
- **Hibernate:** A powerful, high-performance Object-Relational Mapping (ORM) framework for Java.
### 6. **C#**
- **Key Features:**
- Part of the .NET framework, making it a powerful choice for Windows-based applications.
- Strong typing and object-oriented features.
- Integrated development environment with Visual Studio.
- **Popular Frameworks:**
- **ASP.NET:** A web framework for building modern web applications and services with .NET and C#.
- **Entity Framework:** An ORM framework for .NET, which enables developers to work with data using objects of domain-specific classes.
### 7. **Go (Golang)**
- **Key Features:**
- Developed by Google for high performance and efficiency.
- Simple and concise syntax.
- Strong support for concurrency and parallelism.
- **Popular Frameworks:**
- **Gin:** A web framework that provides a lightweight but powerful HTTP web framework.
- **Echo:** A high-performance, minimalist Go web framework that provides robust features for building scalable and modular applications.
### 8. **Ruby**
- **Key Features:**
- Emphasizes simplicity and productivity.
- Elegant syntax that is easy to read and write.
- Strong support for object-oriented programming.
- **Popular Frameworks:**
- **Ruby on Rails:** Known for its "convention over configuration" and "don't repeat yourself" principles, making it ideal for rapid development of web applications.
### Conclusion
Choosing the right server-side language depends on various factors, including the specific needs of the project, the existing technology stack, and the team's expertise. Each language has its strengths and is supported by robust frameworks that help streamline development and enhance performance. By understanding the features and ecosystems of these languages, developers can select the best tools for their web development projects.
3.2. Python Programming Language
Python is a high-level, interpreted programming language known for its readability, simplicity, and versatility. It supports multiple programming paradigms, including procedural, object-oriented, and functional programming. Python's design philosophy emphasizes code readability and simplicity, which makes it an excellent choice for both beginners and experienced developers.
### Key Features of Python
1. **Readable and Maintainable Code:**
- Python's syntax is designed to be intuitive and mirrors the natural language, making it easy to read and write. This readability reduces the cost of program maintenance and development.
2. **Dynamically Typed:**
- Python does not require explicit declaration of variable types. The interpreter infers the type at runtime, which simplifies the code.
3. **Interpreted Language:**
- Python is executed line by line, which makes debugging easier and development faster.
4. **Extensive Standard Library:**
- Python comes with a rich standard library that provides modules and functions for various tasks such as file I/O, system calls, and web development, reducing the need for writing code from scratch.
5. **Large Ecosystem and Community:**
- Python has a large and active community, which has contributed to a vast array of third-party packages and libraries available through the Python Package Index (PyPI).
6. **Cross-Platform Compatibility:**
- Python runs on various platforms, including Windows, macOS, Linux, and Unix, making it a versatile choice for cross-platform development.
7. **Integration Capabilities:**
- Python can easily integrate with other languages and technologies. It provides APIs and tools to work with C, C++, Java, and more.
### Popular Uses of Python
1. **Web Development:**
- **Frameworks:** Django, Flask, Pyramid
- Python is used to build server-side web applications. Frameworks like Django and Flask streamline the development process by providing robust tools and libraries.
2. **Data Science and Machine Learning:**
- **Libraries:** NumPy, Pandas, SciPy, scikit-learn, TensorFlow, PyTorch
- Python is the go-to language for data analysis, scientific computing, and machine learning due to its powerful libraries and tools.
3. **Scripting and Automation:**
- Python is widely used for writing scripts to automate repetitive tasks, which enhances productivity and efficiency.
4. **Artificial Intelligence and Deep Learning:**
- **Libraries:** TensorFlow, Keras, PyTorch
- Python is popular in AI research and development, providing robust libraries for building neural networks and deep learning models.
5. **Game Development:**
- **Libraries:** Pygame, Panda3D
- Python can be used to develop simple games and multimedia applications.
6. **Desktop GUI Applications:**
- **Libraries:** Tkinter, PyQt, Kivy
- Python provides tools for developing desktop applications with graphical user interfaces.
7. **Networking:**
- **Libraries:** Twisted, AsyncIO
- Python is used for developing network applications and services.
### Python Frameworks and Libraries
1. **Web Development:**
- **Django:** A high-level framework that encourages rapid development and clean, pragmatic design.
- **Flask:** A micro-framework that is lightweight and flexible.
- **Pyramid:** Aimed at larger applications and offers flexibility and modularity.
2. **Data Science and Machine Learning:**
- **NumPy:** Fundamental package for numerical computation.
- **Pandas:** Data manipulation and analysis.
- **scikit-learn:** Tools for data mining and data analysis.
- **TensorFlow:** Open-source machine learning framework.
- **PyTorch:** Deep learning framework.
3. **GUI Development:**
- **Tkinter:** Standard GUI toolkit included with Python.
- **PyQt:** Set of Python bindings for Qt libraries.
- **Kivy:** Open-source library for rapid development of applications with innovative user interfaces.
4. **Game Development:**
- **Pygame:** A set of Python modules designed for writing video games.
- **Panda3D:** A game engine with a Python interface.
### Learning Resources
1. **Official Python Documentation:**
- The official Python documentation is comprehensive and covers the language, standard library, and various guides.
2. **Online Courses:**
- **Coursera:** Offers Python courses from universities and institutions.
- **edX:** Provides Python courses, including those from MIT and Harvard.
- **Udacity:** Offers nanodegree programs that include Python.
3. **Books:**
- "Automate the Boring Stuff with Python" by Al Sweigart
- "Python Crash Course" by Eric Matthes
- "Learning Python" by Mark Lutz
4. **Community and Forums:**
- **Stack Overflow:** A platform to ask questions and share knowledge.
- **Reddit:** Subreddits like r/learnpython and r/Python.
- **Python.org Community:** Official forums and mailing lists.
### Conclusion
Python is a versatile, powerful, and easy-to-learn programming language that is widely used across various domains. Its readability, extensive standard library, and large ecosystem make it an ideal choice for both beginners and experienced developers. Whether you are interested in web development, data science, machine learning, or automation, Python provides the tools and libraries needed to succeed.
4. Hands on activity of web development
5. History of Internet
This marvelous tool has quite a history that holds its roots in the cold war scenario. A
need was realized to connect the top universities of the United States so that they can share all
the research data without having too much of a time lag. This attempt was a result of Advanced
Research Projects Agency (ARPA) which was formed at the end of 1950s just after the Russians
had climbed the space era with the launch of Sputnik. After the ARPA got success in 1969, it
didn’t take the experts long to understand that how much potential can this interconnection tool
have. In 1971 Ray Tomlinson made a system to send electronic mail. This was a big step in the
making as this opened gateways for remote computer accessing i.e. telnet.