Reflections On the Best Way for Beginners to Learn Symfony 2

learningMany developers who decided to try the new Symfony 2 for developing their projects must have noticed its ‘steep learning curve’ everybody was talking about. But rather than this, what most of them felt is a different thinking approach version 2 of Symfony requires from you. Thus, those who were determined to stick with Symfony 2 no matter what had to drop their development concepts of a regular PHP project and adopt the new ones introduced by this new framework.

To do that, they looked at three things: components, environment, and features.

Components

If you’ve tried to understand this framework in full, with all the ins and outs, you probably didn’t do well at first. That’s because this may be not the right thing to do to learn Symfony 2. Instead, if you take time to work with components and understand them one by one, you’ll see how each component uncovers those multiple questions you initially had. As a beginner you should accept Symfony 2 is very mature for a framework and took many year to develop, that’s why getting to know it gradually is the best way of learning.

Environment

To feel more confident it’s helpful to understand environment around the framework. For Symfony 2, it’s composer and doctrine. After a few weeks of working with composer you’ll be wondering how you’ve been working without it before. Similarly, instead of treating doctrine as a tool that adds complexity to your development, you’ll find that it’s a great tool providing perfect integration with Symfony 2. As prerequisites to diving in Symfony 2, you may also want to include git and Apache virtual hosts.

Features

If you want to really know how that Symfony 2 magic works and quickly go beyond running the ‘Hello World’ app, you don’t have to dive in its source code like many developers advise. Instead of getting confused with all those ever-extending classes, try to first understand Symfony 2’s scope and features and only then worry about things under the hood.

As for general advice for beginners, here are a few:

  1. Try to take it easy not to get overwhelmed.
  2. Rather than reading documentation, try it yourself.
  3. Read much and pump up your passion for learning more by trying new bundles and components.

Good luck!