How to get started?
Modern web application development is a huge field. There are hundreds of technologies in use to build a high quality application. This post is a roadmap to get your grooves going to become a productive web developer.
Frontend and Backend
Any web application has two parts.
One part is the piece of code that is running inside the browser of your user.
Another part is the piece of code that is running inside your own servers.
The browser side code is called the frontend. The server side code is called the backend.
Core front end technologies:
Core backend technologies
- A web server (Apache HTTP Server, Nginx Server are most popular)
- A backend application server
- Every major programming language has framework libraries to make backend development easy.
- PHP (Laravel, Cake PHP)
- Python (Django, Flask etc.)
- Ruby (Rails)
- Java (Spring Boot)
- Database server (PostgreSQL, MySQL, etc.)
- Application Cache (Redis)
- CDN (Content Distribution Network)
From the backend side, you only need a web server which can host and serve the HTML pages whenever the user requests.
Your users access your website on some Internet domain or subdomain (e.g. google.com). Domains are available with domain name registrars and are purchased on annual charges. A website may be hosted at the main domain (like facebook.com) or a subdomain (like music.amazon.com). You may need to maintain multiple separate websites for your company mapped to different subdomains of the same domain. Something called a DNS (domain name system) management console provided by your domain registrar would be used for mapping the right website to the right subdomain.
No Code Website Builders
Web technologies have been around for 25 years now. With that, the ease of building simple, yet elegant websites has become easier day by day. You don't really need trained web developers for basic websites like a company web presence, a marketing site, a campaign, a personal homepage, blogs, portfolio websites for artists and designers, an event site (with invitation management etc.) simple online shops for e-commerce. It is important to know about off the shelf solutions which can save your time and development cost. Some popular ones include (as of this writing):
The website builders come with built-in support for features like drag and drop design, designer templates, search engine optimization, security, domain purchase and management, privacy rules, automatic backups, global CDN, consistent display of site content on a variety of devices (desktop, mobile, tablet etc.), plugins for third party services (authentication, payment, analytics, etc.).
Explore these services, see if they serve your needs. Code your website only if you really believe that you need custom work.
Getting Started with Front-end Development
Which Backend Language?
If you need to do some custom backend development, a big question that arises is which language to use. The major frameworks in all the languages are sufficiently rich and powerful in terms of functionality. Thus, choosing between them is a matter of taste and convenience. If you are already familiar with any of the major backend languages (Python, Java, Ruby, etc.), you can pick a framework in that language.
What is NODE-JS?
Checkout Node School for great tutorials about NODE-JS.
One main reason is that it is very simple to learn, and you can achieve the same functionality with much less code compared to something like Java. If your applications are focused towards scientific computing / machine learning / deep learning, then Python is a good choice as most of the technology in this area is available in Python.
One of the best places to learn about Python is Python 101. Once you have got a hang of the language, you can move on to Django tutorials to learn about backend development. Django is a more comprehensive framework in Python, but Flask is easier and lightweight.
Here are some resources to find more information: