Now, I'm going to be the first to tell you I'm no programming genius, but in the last two years, I've learned much. When I started, I didn't know the difference between a SELECT statement or PHP tags, what dot notation was and style cascading was a complete mystery to me.
Two years ago, I decided that it was time to learn so I set off to find myself some great online resources. I came across a lot of blogs, articles and books that were devoted to all kinds of web development, but many of them were over my head. I found it difficult to follow along with the articles and experiment with the code examples. I have a stack of programming books I've bought and never been able to get through.
Luckily, I found out about a great site: Lynda.com.
Lynda.com is an incredibly resource for learning many different types of software. They use streaming videos, code examples and simple instructions to work you through complex topics. I've completed many of their courses to get to where I am today as a developer.
1. HTML Essential Training (2012) This course wasn't actually available when I started, but I bet it's just as good. I actually did XHTML and HTML Essential Training and followed it up with HTML5 First Look so that I would understand the basics of HTML and the new features of HTML 5, but now they're combined in the newly updated course.
2. PHP with MySQL Essential Training Since my main reason for programming was for Anahita, I wanted to get into the PHP and MySQL as quickly as possible. This is a very basic introduction into both of them, focusing more on PHP, than MySQL, but you'll learn enough MySQL along the way to be dangerous.
3. PHP with MySQL Beyond the Basics The previous tutorial doesn't cover Object-Oriented Programing (OOP) which is necessity to understand if you're going to be developing web apps for Anahita. I completed this course next. After this course, I spent some time researching and reading about Joomla's MVC Architecture and created my first component. If you want to skip that, but still want to get a better understanding of MVC which Anahita uses you can complete this course. A newer and more concise course on OOP can be found here.
5. Debugging PHP: Advanced Techniques This will be the next tutorial that I'll complete. I've been wanting to learn more about PHP debugging for awhile.
6. MySQL Essential Training Finally, this has been on my to do list since I completed the PHP with MySQL Essential Training so that I can get a firmer grasp on MySQL.
All the code that used is displayed in the video and you can pause an type it down yourself. I made it a point to do this so I could become even more familiar with the code. I only used the code examples when there was a problem with my code and I couldn't figure it out otherwise. (That only happened once or twice in all the courses I took.) I tried very hard to solve it on my one. Fixing those bugs were an excellent way to learn more about the code.
CodeAcademy has some great tutorials and features "tracks" to follow to slowly learn more programming, step by step.
Udacity has some great courses also. Many of which have been created by big names in the tech industry. Although, their selection of courses is much smaller, they have some very interesting topics. I'm looking forward to the HTML5 Game Development course in February.
While doing some research for this page, I found another pay service called Treehouse. They seem to be a mix between Lynda.com and CodeAcademy with videos tutorials and "projects" to follow. Check out their libraryof courses to see what's available.
Anywho, that's my little story! Hope it helps someone else out there!! If you have any great resources, feel free to comment below and link them.