Getting into Programming: Where do I start?

Hi everyone,

My apologies if this isn’t the right sub-forum for this question!

I’m looking into learning how to program. I’ve been using HTML and CSS for over a decade now but I’ve never moved passed that. My question is where should I begin? I’m currently reading up on PHP and MySQL but I’d like to do this right. Here’s what I would like to accomplish.

  • As a seasoned web designer I’d like to be able to design more than just the front-end of a website with HTML and CSS. In this case I assume that I should look into PHP, MySQL, Javascript, ASP and more.
  • Additionally I’d like to move beyond just websites and learn how to create applications and games. Whether they be for the web, or mobile devices like Android and iOS.

Where should I start? Is there a programming language I should learn first that will assist me in learning others? Any help would be greatly appreciated.

Knowing HTML and CSS isn’t a particular advantage to learning PHP, but the opposite is true for JavaScript and DOM scripting. This is because if you understand how an HTML document works (like a tree of elements) then you’ll be able to get to grips with the DOM fairly easily. Plus, as a front-end designer, it’s a very useful language to know, so I’d go with JS and the DOM first.

JavaScript’s syntax is similar to PHP’s (and lots of other “C-style” languages), so the learning curve from the former to the latter shouldn’t be terribly steep. There are, of course major differences, the main one being the distinction that one occurs on the server side, and the other on the client. It is important to understand this distinction before delving into Ajax, which allows JavaScript to communicate with the server (and therefore PHP).

Once you have a reasonable understanding of PHP (doesn’t have to be amazing), you can start playing with MySQL.

I suppose you could learn PHP and JavaScript at the same time, but I’d try to at least learn a little bit about one before embarking on the other.

If you want to start with JavaScript and the DOM, a very good place to get introduced to it is quirksmode, and another is [URL=“”]howtocreate. The MDC has an excellent [URL=“”]guide as well as also excellent references for [URL=“”]JS and the [URL=“”]DOM. Another nice read on there (once you’ve got your feet wet) is the [URL=“”]re-introduction to JavaScript.

As for PHP, the PHP manual should be your first port of call, though I quite like the simple examples and tutorials on [URL=“”]tizag.

At my job we use classic ASP, but soon we’re moving to .NET. So I’m going to need to have a basic understanding of that so that I can contribute.

However, in my free time as a freelancer I think I’m going to learn Javascript first and then move onto PHP and MySQL.

Thanks for the reply and the helpful links. :slight_smile:

I think you should learn dotNet because that is very common and up in the industry nowadays.

Does anyone know how long should it take till CSS could be learned (medium level) ?

There’s not really a time-frame. When you’re comfortable to build a given layout and have valid, minimal CSS you’re good enough to use it anywhere.

Starting to learn programming was EXTREMELY hard for me… it took good year and half to understand this back in High School. Maybe learning BASIC is what really made me confusing on what really is programming. If I were you, I’d learn 1 scripting language and 1 object oriented language. Once you deeply understand the fundamentals then you’ll decide on your preference or you may choose both. Still, I start with OOP first since it’ll be easier… of course this is just my opinion :slight_smile:

I’ve always found the best way to teach someone a new language is to focus on paradigm instead of the language itself, because the second you take something like OOP as gospel you’ll be in tears the second you see something that breaks your idea of “what programming is”.

I’d go as far as to say that someone should do a bit of programming in as many mainstream paradigms as possible. If you’re okay with Math the best place you can go to learn a language is Project Euler. Take your languages of choice (my choice for a beginner with basic programming knowledge would be Haskell, Java, C and Python) and to attempt to answer each question with each language before progressing. By the time you’re done a bunch of questions you can apply your favourites to things you actually want to make and you’ll have enough knowledge to be able to manipulate data with these languages and move onto building something substantial.