Articles

Nick Swinford

Nick Swinford's Articles

Nick Swinford

Nick Swinford

January 04 2013

How I Learned to Program

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.

My Journey

Here I'm going to lead you through the tutorials I've taken so far.  Keep in mind, I started out with the very basics because I didn't want to miss anything important.

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.

4. JavaScript Essential Training (2011) Many of the apps that I wanted to create required I high degree of interactivity so I focused pretty heavily on JavaScript.  The above linked course is the updated version of the course I completed, but should be essentially the same.  After this, I completed Practical and Effective JavaScript to expand my knowledge further and the AJAX course since I wanted to be able to submit and retrieve data without a page refresh.

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.

Membership

In my opinion, the membership to Lynda.com is totally worth it if you're looking to learn more about programming.  When you subscribe, they have a regular membership and a premium membership.  The only addition that the premium membership has is that you can download the exercise files.  I had the exercise files and rarely used them.

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.

Honorable Mentions

I've stumble on a few other great free resources, as well. 

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.

Another option is CodeSchool which has many different courses over topics like Ruby, Javascript, and web design.  They put a lot of effort into creating custom badges, jingles, and other art for each course.  As you complete courses, you earn badges which are displayed on your public profile.  They offer video tutorials and in-browser coding to test you as you learn.

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.

Conclusion

While these courses and tutorials are a great way to get started with programming and learn the coding languages, to get really proficient, you need to go out there, read code, experiment and try new things.  After each course, try taking on a master project to implement everything you've learned thus far!  Push yourself farther and farther!!

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.

3 people liked this
Nick Swinford
Nick Swinford
January 28 2013 Permalink
Added CodeSchool to the list of Honorable Mentions!
Rastin Mehr liked this
Drew Lorence
Drew Lorence
August 16 2014 Permalink
Where did you find specific resources to create custom components in Anahita? I am trying to create an event component to associate to a group. I am eager to learn and I am having a hard time grasping the concepts of a component.
Nick Swinford
Nick Swinford
August 19 2014 Permalink
Initially, I developed a custom component for Joomla which helped me grasp the MVC concept. Try reading this thread (http://www.getanahita.com/topics/138021-how-do-components-work) to get an idea of how Anahita works. After that, sit down and read the code in the topics and todos apps. That'll give you a good frame of reference of how to setup your code.
Drew Lorence
Drew Lorence
August 20 2014 Permalink
Thanks, Nick. That does help a lot. I appreciate it
Thanks for sharing this.

Additional Information

Powered by Anahita