Tue. Mar 28th, 2023

In my earlier post (Steps to start a website: (Non-Techie)), I have explained the steps to start a website for non-technical business owners or bloggers. But in this post, I will explain how a Software Developer can develop a website in a step by step procedure.

Developing your own website can benefit you by adding more functionality with the requirements that you want in the future rather than sticking to the same old templates functionality where you will have limited resources. You cannot expand your ideas using templates. But if you develop a website from scratch, you will understand how the links are connected and how various technologies are used to completely develop and deploy a web application.

If you are just bothered about initiating a website for the time being, then you will need to know the below mentioned technologies to some extent.

1. A programming language

2. A Web Framework

3. SCM (Source Code Management)

4. Frontend UI (User Interface)

5. Backend

6. A Database

7. A Cloud Platform

8. Linux Operating System / File System / bash scripting

9. Domain Registrar

In order to develop a large scale website, you will also need the knowledge on following technologies to some extent in addition to the above mentioned. You need not be a master in these but having enough knowledge will make your life easier.

10. Containerization

11. Orchestration

12. Automation (CICD) (Continuous Integration and Continuous Deployment)

13. Monitoring

14. Configuration Management

Just start with tools & technologies 1 – 9 and later if you feel comfortable then you can always improve your code by automation using CICD Pipelines with containerization, orchestration and monitoring tools to make your website better.

1. A Programming Language:

Programming languages such as Java, JavaScript, Python can be used to develop a website. You need to choose a language which you are comfortable with. If you’re new to programming, then I would suggest you opt for Python programming as it is easy to learn and start with. You need to choose a programming language wisely depending on how comfortable you are with the language, what the requirement is and how useful it is for your future. HTML and CSS are the mandatory languages for developing a website.

2. Web Framework:

There are several web frameworks which you can choose for. If you are opting for Python programming, then you have “Django” and “Flask” frameworks. If you are opting for JavaScript, then you have many out there such as AngularJS, NodeJS, ReactJS, ExpressJS, etc and many others such as “Ruby on Rails”, number of Apache frameworks.

3. Source Code Management:

SCM tools such as “Github” is used by many programmers and developers to manage their code in the cloud, work together in teams on same projects and use this as a resource for many other tools. This is a must used tool for any developer to get the most out of your development.

4. Frontend UI (User Interface):

The frontend is the crucial part of the website as the users around the world will visit the website for content. You should have knowledge on HTML and CSS in order to maintain the front end UI of your website to look good and appealing. All the styling and designs are developed using CSS and all the texts and links are developed by using HTML. No matter what framework you use, you need to use HTML and CSS, so this should be the first language you should be familiar with.

5. Backend:

Backend consists of both web servers and databases. When the users visit a website, they will see the front end UI side of the website, but in order to communicate with the dynamic data you have, you will need a backend web server which communicates with a database for the data that needs to be displayed on your front end. You need a proper understanding of backend web servers such as Nginx, Apache Tomcat, Microsoft IIS, Apache HTTP server. Depending on your requirement you need to choose which backend web server you need to use. It all depends on what your applications needs the most. For example, Nginx is the most commonly used server for many websites which serves as a reverse proxy for Python. Apache Tomcat is also the common web server which is mostly used for Java environments.

6. Database:

There are many databases to store the web data and you should pick the best suited one from your requirement. There are two different databases which are SQL and NoSQL databases. Some of the SQL databases are MySQL, PostgreSQL, Oracle, MariaDB, IBM DB2, etc. Some of the NoSQL databases are MongoDB, Amazon DynamoDB, Redis, etc. You need to know how to write queries to retrieve the data from the databases. Also need to know JSON formats for NoSQL documents.

7. Cloud Platform:

Cloud is the present and future of not just the web and mobile applications but for many other applications. Cloud platforms such as Amazon Web Services (AWS), Microsoft Azure, Google Cloud and the three leading cloud platforms and there are many others as well. You don’t need to maintain a server at your physical location anymore as they cloud platforms are maintaining them for us. Just spin up an instance and your server is up and running. Start deploying your code into a cloud server is all it takes to host a website or an application.

8. Linux Operating System / File System / Bash scripting:

You need to have a proper knowledge of using Linux OS and the file systems architecture. As mentioned earlier in backend web servers, these servers operate well with Linux servers and knowing the file system and usage will help you in working on deployment easily. Linux OS such as Ubuntu, CentOS, etc are ideal depending on the size of your application and requirements. Bash and Shell scripting are mandatory scripting languages that you need to know for proper deployments.

9. Domain Name Registrar:

You have developed a web application and also deployed hosted it but you don’t have a proper website name for this to put it outside. You can purchase Domain names from various sources and one of them is Godaddy.com. Once you purchased your desired domain name now you will need to connect it to your website URL by assigning proper Alias A records and CNAME records.

Steps regarding the CICD Pipelines and monitoring will be explained in future posts.

All the above mentioned steps are just some ways of doing it, there are many other technologies and procedures which I did not mention in this post. In my future posts, I will elaborate each of them and explain properly how and why we need to use them. Thank you all for visiting my post and please feel free to leave a comment and share this.