Where to start?


So I would like to get into coding. I am pretty much a complete newbie. I have played around with random environments, but nothing past Hello World. Can anyone recommend a good place to start if I want to do web design and/or games?


Most learners want to jump in and see things happen. I tend to think that immersion is the way to get in all the rudiments. Rote learning and repetition, with variation as it were. Lots of experimentation on the minutia of core HTML is in order. That to my mind is where to start, and give it your all to get to know HTML and validation of it, inside and out. It is the blueprint of the DOM.

Once the understanding of structure and outline model are in place then the Box Model can be introduced and CSS (Cascading Style Sheets) can be fully explored. This is the presentation aspect of document publishing. The HTML is meant to be free of presentational elements and have only content and structure. The style sheets hook those content elements, or nodes and write the style rules into the DOM.

There is a world to unfold when we get into CSS so at first forget about looks and focus on positioning, size and spacing. Learn the ins and outs of these basic skills and you will be charmed by what you can do with them moving forward. Don’t get into eye candy or it will distract this fundamental learning.

It will take weeks or even months, not days to master these two skills solidly. It will depend upon you thoroughly researching every little detail and writing stacks of HTML documents with different structures and layouts. There are a lot of challenges to overcome and now is the time to learn them–by encountering them first hand when it does not interfere with a project deadline.

With these skills now in place, we can branch off and learn two skills at once. Interactive behavior and presentation behavior. In other words scripts and advanced CSS. That is where JavaScript comes in, and all the cool effects you want your interface to have.

You’ll learn ways to make scripts drive mouseover effects, scrolling effects, image effects, and so on, and at the same time you will learn that much of this can be done with CSS alone, then get to weigh the pro’s and con’s when choosing design avenues and constraints.

Once you master these APIs to the point where you have enough command of the languages to design a finished product, you are ready to embark on the programming side even further. You see how progressive this path has been.

The server side of things will be next. There are so many choices today, most of which I know very little, besides basic PHP, so this topic will need support from others who have that experience. At this point, though, you should be able to mount a functional, dynamic and interactive web site. As you head down the app trail, JavaScript, Python, Ruby, will be tools along the way.

Finally, if all you want to do is program, and learn the interface stuff later, then I still suggest JavaScript as a first language. You can run it in your browser without any other software installed and by programming standards of today it is not a bit player. JS plays a huge role in today’s web environment and is a very robust programming environment.