Thursday, April 11, 2013

Learning To Program Rental Software for Magento, PHP, etc. "The Right Way"

If you are like me you have tried to learn to program for awhile but never really "got the hang of it." Will I finally got it, and the key to learning it was very simple. Here are my tips:

1) NEVER COPY AND PASTE CODE FROM TUTORIALS - type it all out. This was the biggest mistake I was making. I thought I could read the tutorial and understand it and then I had learned it. Well that is not the case. When you are learning to code, don't copy and paste anything. Type it all out. Yes it's slower, but the process of typing it all out (and maybe after you type it changing a few things to experiment) is the key to learning to program. You will make mistakes as you type out the code. Then when you run it you will get errors. Correcting these errors is actually teaching you how not to make mistakes and how to catch the grammatical side of the programming language.

Copying and pasting code is equivalent to trying to learn a new language like Spanish and recording people that speak it and playing back the recording when you want to talk. Of course that wouldn't work, you'd never learn.

2) The second key to learning to code is to find the right learning resources. Here are the best ones that I have found in order of how good I think they are, they are very popular so you have probably already heard of them:

So what are some key programming languages & concepts you should learn when starting out?

  1. HTML & CSS
  2. PHP
  3. Ruby on Rails - not necessary really but PHP & Ruby are the 2 of the most popular web development languages
  4. jQuery
  5. GIT file versioning and deployment system
  6. How to use Objects and what Object Design Patterns are
  7. SQL
  8. Photoshop basics for web developers (from lynda.com or tutsplus.com they both have this course)
  9. Linux command line basics (also available from tutsplus.com)
  10. Try setting up your own LAMP (linux, apache, mysql, php) server using Virtual Box
    • https://www.virtualbox.org/ download virtual box here
    • download Linux here: http://www.linuxmint.com/ (or whatever your preferred vareity is like Ubuntu or CentOS)
    • Install it, follow online tutorial guides for how to get LAMP up and running in your virtual box
    • What you learn will be invaluable in your web development career.

Ok So What About Learning Magento?

So now coming to the important point - really to learn Magento you need to know all the concepts above except for Ruby on Rails and GIT. The best way to learn Magento right now is to go through all of Alan Storm's tutorials at his website: http://alanstorm.com/category/magento then also buy his book "no frills magento" and try out those tutorials too. 

We are planning on releasing our own eBook on learning Magento via hands on Module creation. We are not statisfied with the learning materials that are currently out there to learn Magento. We've paid the $350 for the "quickstart to Magento development" directly through Magento Inc. and it's the best one but overpriced and doesn't teach you everything you need to know. We'll keep this blog posted for when we release the eBook. Here are some topics we plan to cover:
  • Step by step module creation with explanations along the way of everything that is going on. We are not talking about "hello world" type modules, but actual modules that are useful in the real world like
    • Admin sales staff commision calculation
    • Request for quote module
    • Writing a payment module
    • Writing a shipment module
    • Shipping labels module
  • How to develop Magento modules using Test Driven Development
  • Debugging techniques 
  • Speed optimization
  • Breakdown of available events to tie onto in Magento using observers
  • Using the Magento API to show products on another website

Our goal with this eBook is that by the end of reading it and typing out the examples you should be a professional Magento developer and save lots and lots of time over trying to learn Magento via what is currently available online. 

2 comments:

  1. Hi Kevin,

    Great article on learning Magento. A lot of this resonated with my path towards learning how to code and then learning Magento. I found the certification actually quite useful for learning the "right way" to do things in magento as well as following Alan Storm, Inchoo and other Github contributors out there in the community!

    I actually think that after learning Magento, other MVC frameworks came to me a lot more easily such as Ruby on Rails / Django.

    I'm really looking forward to trialling your product!

    All the best!
    Chris

    ReplyDelete
    Replies
    1. Yes I agree. There are a lot of internet blogs and posts about how hard Magento is but once you learn it, other MVC frameworks will fall into place.

      In my opinion Magento does most things right and the people that complain seem to not understand OOP and OOP overwriting / extending classes that are invaluable for customization projects. They just want to hack away at some cart.

      I need to get Magento Certified just never have the time!

      Delete