Topics to learn in web development
HTML – the very core of it all is HTML. If you care about the full form: Hyper Text Markup Language. As the name suggests, it is a markup language. It is used to distinguish some parts of your page from others. You will use tags to mark important headings, for paragraphs and what not. The basic principle is simple: the document is like a tree, a node below, sort of inherits the properties of the parent.
CSS – the makeup. Because beauty that lies in the eyes of the beholder, is not really there if you don’t put effort. CSS is again pretty simple to understand. However it can be tricky to use.
The Server Side – Now, it is very likely that you will be making a dynamic content site. A site where you will present different users with different content or different content based on where the user is. Most likely you wouldn’t want to manually code every single page and every single paragraph of it all. This is where you will use server side technology. You see, HTML-CSS-JS are just client side presentation stuff, your actual content will lie on servers in databases and you will use some server side language like PHP, Python, JS, Ruby, Java, Scala etc to get information from the database. And here comes another challenge: the communication between your server logic and the database. Usually you will use SQL but there are neater, newer things available that might suit your needs better.
Domains – All things done, this is still a challenge. If you are developing a product – you will probably launch it with a domain of your own. Now buying domains is easy. It is a little trickier to find a good registrar though. As much as you would want to go to http://www.godaddy.com/ (and a lot of people do), they have been criticized a lot in recent past for their stand on SOPA. Protests included movement of all Wikipedia domains to http://www.namecheap.com/. You will often find much cheaper services on the web but I suggest you go to a registrar that has some good reputation for reliability. Note that registrars don’t really earn a lot of money from selling you domains but from value added services. A large portion of their earnings are from renewals – check hidden costs and feature prices; a lot of times things look cheap the first year but are insanely expensive next year later.
Hosting – Finding a good hosting service and using it the right way is a very challenging task. There are several types of hosting available:
Shared Hosting: The cheapest, most common and easy to use option. Requires the least amount of knowledge and development time. Options are largely PHP based on Apache servers with MySQL support. These options are very restrictive, but on the other hand service provider worries about most of the issues including security. There are hundreds of such service provides which give you web space and bandwidth at about $50 an year. Performance is poor.
Platform as a Service (PaaS): Fairly recent addition and getting propular. Google App Engine and Heroku are two solutions. Good for small startups and apps that can suddenly go viral. Service provides give a wide variety of packages, libraries and tools to build on. Requires more effort to deploy things than Shared Hosting but a things are a lot less restrictive. Unfortunately these solutions are costlier to maintain when you exhaust the free quotas.
Infrastructure as a Service (IaaS): You will get Virtual Machines that you can do absolutely anything with without worrying about uptime, hardware maintenance and upgradation. Scaling is not as easy as in PaaS and neither is deployment, but it is cheaper. It is also more open and you have complete control over the entire stack.
Self Hosting: Not for newbies. At all. It is challenging, requires you to buy servers, bandwidth and static IP; keep things running – day in and day out. This can probably be cheaper than any other solution but it is significantly more work. More than that, it requires you to have confidence as well as experience. Absolute freedom, obviously.
HTTP & REST – Understanding of HTTP is also essential. This is like the theoretical part of Web Development. You might skip this initially, but developing these concepts will not only give you confidence but also bring maturity in construction of interfaces and APIs. http://tomayko.com/writings/rest… is a (controversial because of its naming but) a very awesome blogpost about REST and stateless systems.
You will also need understanding of HTTP Status Codes, Sessions and Cookies.