Jump to content
  • Advertisement
  • entries
  • comments
  • views

Topics for Web Development



As a professional web developer, I often get asked what’s needed to get started with web development or I’ll find questions relating to web development on the forums.  But, I find that it is often difficult to answer succinctly, because a “Hello, World!” web server involves so many different, yet vital pieces.  Perhaps I’ll detail them out in a series of articles.  Until then, I’ve taken some time to summarize the topics involved in developing a web application:

  • Systems administration. How processes work and communicate, how to add users and groups, how to manage file permissions and/or ACLs, how to set up logging, backups, and automated tasks, how to effectively use a terminal to navigate an operating system, how to setup and configure dependencies and 3rd party software. (Bonus points for having Docker or Vagrant do this for you.) Typically Linux–based systems are used, but does not necessarily exclude Microsoft. Additionally:  How to spin up a virtual machine, and manage servers over SSH or RDP.

  • HTTP and web servers. Web servers are the glue between the frontend and the backend, and HTTP is the basis of the communication between them:  How web servers work, how to configure them to serve both static and dynamic content, and how to leverage HTTP headers and HTTP response codes appropriately.  Web servers:  apache2, nginx, Microsoft IIS.

  • Backend. This is the actual application or “business logic solution”: How to write a program or script that processes requests, performs work, and prepares proper HTTP responses. How to leverage web frameworks to assist in this process.  A backend can be a strict data API to be consumed by one or multiple frontends (web, mobile, console), or a traditional multi–page application (simpler). Languages: Perl, PHP, Python, Ruby, Javascript, and even C/C++. Web frameworks: Laravel, Django, Ruby on Rails, nodejs, ASP.NET MVC, and many more.  Also helpful to know:  JSON, REST, SOAP.

  • Frontend. This is the user–facing piece of the backend:  How HTML works to lay out a page, how CSS works to assist in page layout and theme, how to leverage Javascript to breathe life into the frontend, and how to asynchronously interact with a backend.  Languages: HTML5, Javascript, Typescript, CSS, SASS, SCSS.  Also helpful: JSON, XML, XPath.

  • Browsers: How to use the developer tools in any browser to tweak styles, debug javascript, and debug HTTP requests made by the browser and HTTP responses made by the web server or the backend.

  • Databases. Relational databases are array–of–structures on steroids: How to setup a (relational/document) database and schema, setup database users and their permissions, how to write queries, and how to write database migrations.  Flat files and NoSQL can be okay, too.

  • Version control. Very important in any software project: How to use a version control system, how to write meaningful commits, how to resolve merges, how to submit merge requests, and how to manage branches.

  • Devops: How to configure and build the backend project and/or the frontend project. How to automate builds, run tests, report problems.

(Not pictured here:  Websockets.)

With these in mind, read What happens when you type google.com into your browser and press enter for an example of how a sample request is made.

Hopefully, this has been helpful to game developers looking to build a real–time multiplayer web game or even a high score tracking server.

Thanks for reading, see you around!


Recommended Comments

There are no comments to display.

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Advertisement

Important Information

By using GameDev.net, you agree to our community Guidelines, Terms of Use, and Privacy Policy.

GameDev.net is your game development community. Create an account for your GameDev Portfolio and participate in the largest developer community in the games industry.

Sign me up!