Skip to content

Latest commit

 

History

History
111 lines (67 loc) · 13 KB

blog-4.md

File metadata and controls

111 lines (67 loc) · 13 KB
layout title
index
Top-Down

The Process of Software Development

This post will list down some of the most important pieces to understand before beginning software development

Web Applications

Web applications are software applications that run on the internet and are accessed through a web browser, such as Google Chrome, Mozilla Firefox, or Microsoft Edge. Unlike traditional desktop applications, which are installed on a specific device, web applications are hosted on remote servers and are accessible from anywhere with an internet connection. Some examples of web applications include email services, such as Gmail and Outlook, social media platforms, such as Facebook and Twitter, and e-commerce websites, such as Amazon and eBay. Web applications use technologies such as HTML, CSS, and JavaScript to provide a user-friendly interface, and often use server-side technologies, such as PHP or Ruby on Rails, to handle the back-end processing. Web applications offer many benefits, such as cross-device compatibility, ease of use, and frequent updates, and are becoming increasingly popular for both personal and business use.

  1. What is Web Application Architecture? Components, Models, and Types (hackr.io)
  2. How Web Works - Web Application Architecture for Beginners - GeeksforGeeks

Web Development

Web development is the process of creating and maintaining websites. It involves a variety of disciplines, including design, programming, and content creation. Web developers use a variety of tools and technologies to build and maintain websites, including HTML, CSS, JavaScript, and various web frameworks and libraries.

Web development can be divided into two main areas: front-end development and back-end development. Front-end development focuses on the user-facing aspects of a website, such as its layout, design, and interactivity. Front-end developers use HTML, CSS, and JavaScript to create the visual and interactive elements of a website.

Back-end development, on the other hand, focuses on the behind-the-scenes functionality of a website. This includes things like server-side programming, database management, and security. Back-end developers use languages like PHP, Python, and Ruby to create the logic and structure of a website.

Together, front-end and back-end development form the foundation of web development, and both are essential for creating a successful and functional website.

HTML/JS/CSS

HTML (Hypertext Markup Language) is the standard language used to create and structure web pages. It is a markup language, which means it uses a system of tags and attributes to define the content and structure of a web page. HTML allows developers to create the structure and content of a web page, including text, images, links, and more.

JavaScript is a programming language used to create interactive elements on a web page. It allows developers to add dynamic functionality to a website, such as animations, form validation, and more. JavaScript code can be embedded directly in an HTML page, or it can be linked to from an external file.

CSS (Cascading Style Sheets) is a language used to define the styles and formatting of an HTML page. It allows developers to control the look and feel of a web page, including its layout, color, font, and more. CSS can be embedded directly in an HTML page or linked to from an external file.

Together, HTML, JavaScript, and CSS are the core technologies used to create and style modern web pages. HTML provides the structure and content of a web page, JavaScript adds interactivity, and CSS controls the styling and formatting.

React & Node

React is a JavaScript library for building user interfaces. It is used to create reusable components that can be used to build complex and dynamic user interfaces. React allows developers to create components that can be easily composed to create a user interface, making it easier to build and maintain large-scale web applications.

Node.js is a JavaScript runtime environment. It allows developers to run JavaScript code outside of a web browser, on the server or on the command line. Node.js is commonly used for building server-side applications, such as web servers or APIs. It allows developers to use JavaScript to create backend services and APIs that can be accessed by other applications.

Together, React and Node.js are powerful tools for building modern web applications. React allows developers to create reusable components that can be easily composed to build user interfaces, while Node.js provides a runtime environment for running JavaScript on the server or command line.

  1. Web development explained to a time traveler from ten years ago (freecodecamp.org)
  2. Fundamentals of Web Programming — Fundamentals of Web Programming (runestone.academy)
  3. microsoft/Web-Dev-For-Beginners: 24 Lessons, 12 Weeks, Get Started as a Web Developer (github.com)

Databases & Querying Languages

A database is a collection of data that is organized and stored in a way that allows for easy retrieval and manipulation. Databases are used to store and manage large amounts of data, and are essential for many modern applications and services.

Some usecases of databases that you might be familiar with:

  1. Online shopping websites like Amazon or Flipkart use databases to store information about their products, customers, and orders.
  2. Social media platforms like Facebook and Twitter use databases to store information about users, posts, and interactions.
  3. Banking and financial services use databases to store information about their customers and transactions.
  4. Online search engines like Google use databases to store information about web pages and their content, allowing users to search and find relevant information.

SQL (Structured Query Language)

SQL is a programming language used to interact with databases. It allows developers to query and manipulate data in a database using a set of commands. For example, SQL can be used to create, update, and delete records in a database, as well as to query and retrieve data from a database.

Learning SQL is an important skill for anyone working with databases or data-intensive applications. It allows developers to effectively manage and query large amounts of data, and can be a valuable asset in many different fields and industries.

  1. What is a database? A 500-word overview - ThinkAutomation
  2. A brief history of databases: From relational, to NoSQL, to distributed SQL (cockroachlabs.com)
  3. DBMS Introduction (w3schools.in)

SaaS (Software as a Service)

Software as a Service (SaaS) is a model for delivering software applications to customers over the internet. Instead of purchasing and installing software on their own computers, customers can access the software and its features through a web browser. This allows them to use the software on any device with an internet connection, without having to worry about installing, updating, or maintaining the software.

SaaS is often used for applications that require frequent updates and upgrades, such as customer relationship management (CRM) systems, project management tools, and collaboration software. It's also used for applications that require large amounts of data storage, such as cloud-based file storage and backup solutions.

SaaS is popular among businesses because it can be more cost-effective than purchasing and maintaining software licenses, and it allows them to scale their use of the software up or down as needed. It's also popular among consumers, who can use SaaS applications for tasks like photo editing, document creation, and online banking.

  1. The History of SaaS | The New Digital Revolution, Explained (accelerateagency.ai)
  2. Getting SaaS'y - A Brief History of SaaS (linkedin.com)

Version Control - Git & GitHub

As an undergraduate engineering student, you will come across many tools that are essential to the software development process. One such tool is git. Git is a version control system that allows developers to track and manage changes to their codebase. It allows multiple developers to work on the same project concurrently, and helps them to merge their changes together without conflicts. Git is widely used in the software industry and is a crucial tool for collaboration and coordination in software development.

Github is a platform that allows developers to use git to collaborate and share code. Github is particularly useful when working in a team, as it allows multiple people to work on the same code simultaneously without overwriting each other's changes. Github also provides a platform for developers to share their code with others, making it easy for others to collaborate and contribute.

To get started with github, you will first need to create an account on the platform. Once you have an account, you can create a "repository" to store your code. A repository is like a folder on your computer, but it is stored on the github platform. You can then use git, a command-line tool, to "push" your code to the repository, where it will be stored and backed up.

Using github can greatly improve your workflow as a software developer. It allows you to easily share your code with others, collaborate on projects, and keep track of changes. As you continue to learn and grow as a developer, github will be an invaluable resource. It always helps to have an active git repository, that shows your work on personal hobby/freelance projects, as a signal of your coding experience and prowess to potential employers.

  1. Version Control Systems - GeeksforGeeks
  2. Git - Basic Concepts (tutorialspoint.com)
  3. Git - What is Git? (git-scm.com)
  4. What is Git? A Beginner's Guide to Git Version Control (freecodecamp.org)

DevOps

DevOps is a practice that aims to bring together the development and operations teams to ensure smooth and efficient delivery of software.

At its core, DevOps focuses on automation, collaboration, and continuous improvement. By automating various processes, such as testing and deployment, teams can save time and reduce errors. Collaboration between development and operations teams is also essential, as it allows for better communication and coordination. And by constantly iterating and improving processes, teams can deliver high-quality software more quickly and efficiently.

One key technology in the DevOps world is Kubernetes. Kubernetes is an open-source platform for managing and deploying containerized applications. It allows teams to easily scale and manage their applications, making it an essential tool in the DevOps toolkit.

Another important aspect of DevOps is continuous integration and continuous delivery (CI/CD). These practices involve regularly integrating code changes and delivering them to production in a safe and efficient manner. By implementing CI/CD pipelines, teams can ensure that their software is always up-to-date and ready for deployment.

Software Testing

In the world of software development, testing is a critical part of the process. It ensures that the software we build is of high quality, functions properly, and meets the needs of our users.

There are many different types of software testing, each with its own unique focus and purpose. Some of the most common categories include unit testing, integration testing, and system testing.

Unit testing focuses on individual components or units of code, ensuring that they function properly on their own. Integration testing looks at how different units of code work together, while system testing tests the entire system as a whole.

In addition to these types of testing, there are also other common methods such as regression testing, which checks for any regressions or unintended changes in previously working features, and user acceptance testing, where real users test the software to ensure it meets their needs.

As a software developer, it's important to have a strong understanding of these different types of testing and how they fit into the overall development process. By using a combination of these techniques, we can build high quality software that meets the needs of our users.