Pergunta

I come from a scientific and embedded programming background, and I have had minimal experience with web programming. What would be the best approach to take to get up to speed with web programming? Tools and framework suggestions?

One approach would be to dive into learning a framework, such as Rails. I started doing this with rails tutorial, but I find that the framework abstracts so many important concepts that I should be learning.

To sum up, experienced programmer wants to learn web-app programming.

Foi útil?

Solução

Few years back I asked this question to myself!

This is what I find easy and organized way to start web programming, you can skip steps which you have already know

  1. To learn web programming, first you have to know

    • What is a website
    • What are the main role players
      [Webserver, Mark-up languages, Client side scripting, Server side scripting, Protocols (http), Browsers
  2. Trace complete server round trip i.e. from typing google.com in browser and to loading the complete page.

  3. Why http is stateless? Role of session to overcome this?

  4. Start learning html & little JavaScript

    • Basic tags
    • Marquee :-)
    • Alert, change color page background color via javascript etc
    • Have some fun playing around with html, javscript and css
  5. Server side scripting

    • Start with php
    • Use all necessary input – type elements and create forms
    • Validate form with plain javascript
    • Retrieve submitted form data and display it via php

I think you can complete 1 to 5 quickly. Its interesting part for all novice web programmers, because of the visual excitement they get while using html and css first time/

Then move to serious stuff!!!

At this time, you know fundamental things of web programming and working of website.
Now, it’s your responsibility to choose most appropriate language, platform and framework.
No one here can’t help you with this; You have to consider your personal interests and future plans to decide.

My recommendation is to go with php, since you learned it in initial stages.

  1. Next, is databases a. Learn how to connect database b. Basic sql queries. Select, insert, update and delete c. Manipulate user inputs using database

  2. Now, start creating a personal website; or any simple website

  3. Download any open source website and learn from it.

Here are few references, which may help you
1. W3 Schools – for learning basics of html, css, JavaScript, asp, database queries
2. Php.net– for everything about php
3. For exploring open source projects
- http://bitbucket.org/
- http://github.com/
- http://www.codeplex.com/
- http://sourceforge.net/

Always remember that there are several peoples here for help you; if anything happen, post it in stackoverflow.

Find someone with some amount of web programming experience to guide you; it’s always easy to learn from experienced programmers.

Do not forget to find some books too… for a starter you can checkout dummies

All the best!!!

Outras dicas

Do you know anything about HTML? This is probably the most basic and easiest yet essential thing you need. Make yourself a simple webpage, play around with fonts, images, positioning etc and everytime you come across a problem look up the answer.

From there move onto CSS, Server Side Programming etc

I think you find this is the way most of us learnt.

From experience, the best way has to be get in too deep. Get making stuff, make mistakes, make lot's of mistakes. Learn from them.

With so many alternate paths, it's a really subjective thing to say you should take any one of them.

  • Start with raw HTML.
  • Then get used to CSS
  • Learn server side programming with any easy-to-use scripting languages like python or php.
  • Learn Javascript.
  • Then go for the various web frameworks like MVC for learning web application management. Use the framework that suits you like Ruby-On-Rails or ASP.net MVC. If you switch to any framework depending on a language not learnt in 3rd step like C#(ASP.net) or JAVA(J2EE), then you have to learn that language also.
  • Go for JQuery.

Maybe you should start learning basics before using more sophisticated tools like a framework. Exactly like you start with easy and simple programs in C before using C++ and libraries, you can start with simple websites in Php or Python, with a frontend in javascript, just to get used to it.

Then, when you feel at ease, you can start making cleaner websites "the right way".

I agree with Mild-Fuzz with going deep.

From the start you're going to be working with at least 4 different interacting languages: (Html, Css, JavaScript and at least 1 server side language. Likely you're going to have SQL in there as well, possibly some XML. Then you'll likely also be using a framework or two (for JavaScript and your server-side code).

You will have to start with the obvious basics in each. Ie make a simple html page, style it up with css, make it dynamic with some JS, a few basic CRUD operations to get into the server-side stuff. But after you have a basic knowledge of these you need to try and focus developing them roughly concurrently. You'll often find that to improve one you'll need to improve the others as you go, make sure to embrace this rather than fight it by trying to learn one well before diving into the others. Taking the all at once approach will also help you be more flexible when you move on to bigger things.

You will find that most of your problems and the areas with the most value is on the boundaries between each of these, an AJAX call to update a widget for instance will involve all of JS, CSS, HTML DOM, server-side and probably SQL. Passing data through each layer is you're biggest breaking point, if you are really good at one area in particular you might focus there to fix your bug and have a more convoluted solution than if you had looked at your server-side code.

The way I went about it was:

  • Create a personal website, with only static content (only HTML)
  • Extend the website with dynamic content (using PHP)
  • Reform everything into a framework, to get better separation of presentation and business logic.

The biggest hurdle I had to wrap my mind about is that the server-side part of a web-application will not do anything without a preceding trigger from the client.

Licenciado em: CC-BY-SA com atribuição
scroll top