Take the 2-minute tour ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

I am a front-end developer seeking to add programming to my skillset. As with all things, I'm sure that practice and practical application will aid me most, but I am currently having trouble wrapping my head around the transition from a very linear type of development (HMTL/CSS) to the more "3-dimensional" or non-linear concepts of programming, e.g., object-oriented programming. I'm just feeling overwhelmed that there's so much to know! Where to start, where to start. I'm especially interested in learning Javascript, PHP, and RoR. But I'd prefer to really get intimate with PHP as I like tinkering with WordPress.

Does anyone have any suggestions for resources relevant to my study, or hands-on example projects that would yield the most practical experience for me? I've tinkered for years, but am just anxious for that ah-ha moment for things to start clicking.

Thanks!

share|improve this question
2  
"get intimate with PHP" - get intimate with girls instead and PHP just code the damn thing. –  user8685 Feb 23 '11 at 18:19
1  
@Developer Art: Maybe OP's girlfriend is Penelope Harriet Peterson? –  FrustratedWithFormsDesigner Feb 23 '11 at 18:22
    
And who would that be? –  user8685 Feb 23 '11 at 18:32
    
@Developer Art - PHP –  NickC Feb 23 '11 at 18:35
add comment

3 Answers

up vote 3 down vote accepted

A place to start is by reading this excellent answer to the question, "Why does it matter that HTML and CSS are not programming languages?":

HTML and CSS describe presentation, whereas programming languages describe function
...
There is often an implication that skills in HTML, CSS etc. are somehow inferior to skills in "real" programming languages. This is a serious mistake.

What to do

  • Understand that the end-result of a web-based application is an HTML page, no different than one that was typed by hand.
  • At the simplest case - imagine a web page that says "Hello, [your IP address]" instead of "Hello, World". Write this in PHP and see it working.
  • Understand that at its core, the goal of web programming is mainly two-fold: 1) Reduce presentation-code/HTML duplication (in other words, using templates) 2) Respond to inputs (query string, cookies, form posts, and with JS, live interaction) dynamically rather than just producing a static result.
  • Begin imagining what other dynamic dimensions can be added to a web page. Content Management Systems (like Wordpress) are the most common - content is inserted into a template instead of every page being coded by hand. Personalized content (for logged-in users) is probably the next most common use-case of web programming.
  • Stay on this site and follow the tags for common web-based technologies.

What not to do

  • Don't jump right into PHP code in Wordpress. It's definitely not the cleanest example to follow.
  • Don't get worried if you don't understand Object Oriented programming right away. A procedural PHP program can be just as functional as an Object Oriented one. Just think of OO as a way to make the execution of your programmer cleaner and more reusable.
share|improve this answer
    
Thanks, I think your fourth point about use-cases is most helpful, as I already understand many common PHP scripts. It is these common use cases and the "What not to do" scenarios that I'm hoping will accelerate my learning and be most useful in the real world. Got any more? Any good tutorials out there on some of your examples, like creating logged-in experiences? –  Hans Feb 23 '11 at 18:46
    
I would just like to second the comment about not stressing about Object Oriented stuff for the moment. The procedural way of doing things works just fine for most web apps. –  System Down Feb 23 '11 at 18:57
    
@Hans - I'm sorry, I don't immediately have any good examples of basic projects, since I'm not often looking for that sort of thing. I think specific questions on here or SO are very good, and I'd be happy to answer any questions if you link them back to the comments here so I can be aware of them. If I do find any good resources, I will definitely add them here. –  NickC Feb 23 '11 at 21:18
    
@Renesis - Thanks, you've been very helpful! –  Hans Feb 24 '11 at 0:01
    
Out of curiosity, do you know whether WordPress is an example of procedural or OO (or other)? What's so "unclean" about it? Do you know of any open-source CMS that are "good" programming examples to follow? –  Hans Feb 24 '11 at 16:06
show 1 more comment

I would say start with javscript. You've probably already got some idea of what it is / how it works. You can apply it on the server side using node.js.

Beyond that I would say ruby/ruby on rails and then php.

But the real important thing is to build something, pick a project and build it using the language you want to learn. You can't get that same experience writing example code or reading books.

share|improve this answer
add comment

Pick up JQuery In Action and work through it.

You can use JQuery and JavaScript to manipulate elements in the DOM, that you're used to and create lots of small, fun programs just in Client, and get used to programming, then you can get onto the Server side of programming.

share|improve this answer
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.