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:
- Codeschool.com - excellent hands on approach to learning to code with videos and lessons.
- https://tutsplus.com/ - really well written tutorials - especially the ones by Jeffrey Way. A few of my favorites:
- https://tutsplus.com/course/php-fundamentals/
- https://tutsplus.com/course/laravel-essentials/
- http://net.tutsplus.com/sessions/test-driven-php/
- Lynda.com - try their fundamentals courses on jQuery, PHP, Ruby on Rails, PHP Debugging, LAMP server setup, and MVC frameworks.
- http://sqlzoo.net/wiki/Main_Page - best resource and online lessons I've seen for learning SQL
So what are some key programming languages & concepts you should learn when starting out?
- HTML & CSS
- PHP
- Ruby on Rails - not necessary really but PHP & Ruby are the 2 of the most popular web development languages
- jQuery
- GIT file versioning and deployment system
- How to use Objects and what Object Design Patterns are
- SQL
- Photoshop basics for web developers (from lynda.com or tutsplus.com they both have this course)
- Linux command line basics (also available from tutsplus.com)
- 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.
Hi Kevin,
ReplyDeleteGreat 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
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.
DeleteIn 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!