Creating a website: what to learn, what to do?

In this post I’ll will tell you people how you can start creating your website. This post is specially for people who don’t know even how to start, what to study, etc. I ensure you if I had read this kind of text before learning about creating websites, I would learn more easily, for sure. So, the steps detailed below will help you to be a webmaster, who knows… =)

Let’s start!

Creating a website (specially modern websites) require you to know significant amounts of knowledge, in several areas, such as the Graphic part, responsible to show the content you want. There are important areas I’ll comment here, and some stuff you need to learn …

HTTP Protocol notion
For the start, it’s necessary to know how websites usually behave, mainly the Client/Server and Request/Response models, where HTTP is based. A brief notion of how it works is very important and very simple. In summary, basically there is an interaction between the client (user accessing the website) and the server (space where the website is placed) and all communication between those parts is done making a request (from client to server) and receiving the respective response. For example, if you type www.google.com in your browser, you’ll make a request to Google server, which will answer with Google webpage. (Actually there are lots of other things behind this process, but it is the most important now…)

Here there are good links that can help you to understand the HTTP protocol and the Client/Server model.

Client/Server model:  http://compnetworking.about.com/od/basicnetworkingfaqs/a/client-server.htm
HTTP protocol:
http://geekexplains.blogspot.com.br/2008/06/whats-http-explain-http-request-and.html

Graphic Part (view)
In this part we are concerned to show the information to the users. It’s the most basic thing in web development. Here you build your interface, set fonts and colors, create menus, show images, etc. To do that you need to use some programming languages that will help you doing this kind of job. Basically, you can use HTML, CSS and Javascript, which are detailed below:

  • HTML: markup language, based on tags (if you press your mouse right button, and select the “View Page Source” option, probably you will see this kind of organization. It defines your document, your webpage.
  • CSS: it’s used to apply styles to your HTML. Using pure HTML makes your webpage very limited, so you have to combine both to ensure a good user-friendly interface, with beautiful resources, which is going to attract more users to website.
  • Javascript: this language is capable to do lots of things. With this you can turn your page more dynamic, and add some good effects, such as fade-in and fade-out or a slide menu. You can use the pure Javascript or use some library that has ready functions you can use, such as JQuery and ExtJs. I suggest you to first learn Javascript and after learn some library, such as JQuery (powerful and free). The Javascript language itself is quite wide and a bit confused. But it’s’ very important and useful.

Start creating HTML with CSS documents, trying to make a beautiful webpage. Then, try some little Javascript scripts embedded in your page, to learn how it really works.
You can find good tutorials all over web, but I recommend this website (http://www.w3schools.com/), which is a refference for those languages cited above.
Nowadays, there are more technologies available that can help you making good interfaces, such as HTML5. But starting with the basics, you will be able to learn the newest technologies more easily.

Server:
To run your website you need a server to place it. There are many servers available on the internet and it depends on the language you’ll use to develop your website. For example, in this part you can use PHP, Java, C#, Python, and other languages to make the server side. For each of those languages there are many servers you can choose, such as Apache for PHP, Tomcat (which is a Apache foundation project) and Jetty for Java, etc.
I don’t indicate a specific language to learn, because each language has good points and off course the bad points. Make a search for which language to use and you have to choose the one you have more affinity.
The server is responsible to handle the requests from users and send the response to them. The server gets the request, execute some logic (a login for example) and answers to user.
In this part you can use some framework that help to manage the requests and responses. For example, in Java you can use the Spring framework. The most famous pattern which helps handling the requests and the responses is the MVC pattern (explained in future post).
In the links below I give an example using Java (Servlets and JSP), which is the most basic technology to implement the client and server side. It’s just a way of implementation. You can use any other language that supports this feature.
About MVC pattern: http://en.wikipedia.org/wiki/Model%E2%80%93view%E2%80%93controller
Here is a tutorial of Java Servlets and JSP: http://www.apl.jhu.edu/~hall/java/Servlet-Tutorial/

Database:
To save the data, such as a user register, you have to use a Database, which is a platform that helps you to manager this kind of job. To work with databases, you’ll have to learn how relational databases work and learn a language to use a database. This language is named SQL (Structured Query Language), where you can insert, update, search data through your database.
To create a database and use ways to manage it you have to use a Relational Database Management System (RDBMS), such as MySQL, or PostgreSQL. There are many RDBMS so you can use anyone, because they are very similar to use. The RDBMS, in short, is a software that you install in your PC that enables you to manage the data you want.
In this website (http://www.w3schools.com/) you have a SQL tutorial which is quite helpful.
Here (http://docs.oracle.com/javase/tutorial/jdbc/overview/database.html) there is a good tutorial about Relational Databases and SQL.
Here we have a tutorial about how to install and use MySQL on Linux. (http://www.yolinux.com/TUTORIALS/LinuxTutorialMySQL.html)

Concluding…

Making a website requires many kinds of knowledge. Those mentioned above are only a couple of things I consider important and essential to start in this kind area. One thing that is true is that the more you learn about something above Web, more you will have doubts and will search and learn about. The study never stops, so be prepared to learn a lot of things and practice, because with more practice more knowledge you’ll have!
I hope this post could help you! This is my first post and I hope my english isn’t too bad.
Thanks people! See you later!

Hello everybody!

Hi people! codingThis is my first post!
In this blog I’ll try to share some experiences I had learning to program, especially programming for websites and mobile development.
I’m just newbie in blogs, so my apologies for some eventually wrong thing I will post or everything else!

Enjoy!  =)