Feedbacks on the SensioLabs training program
Why a training?
I have been working as a Web Developer for about 4 years (2 years in JAVA & 2 years in PHP). I have learned Symfony2 by myself then I worked in a company. So my knowledge is based on the resources I found in the beginning of my studies and the specific problems I had to solve at work. Because of that I have probably missed some basic or advanced features that could have saved me a lot of time when I faced various issues. The reason I decided to do a training program in Symfony2 was to formalize its knowledge of the Symfony2 framework I already had and to improve it.
Choosing a training
The first step was obviously to choose a training. The following are the 3 trainings on Symfony2 that SensioLabs proposes on their website:
1. Getting Started with Symfony2 (Beginner):
- Object Oriented Programming
- Exploring Symfony2
- Debugging the code
- Configuring the application
- Generating pages for the end user
- Creating actions and analyzing the end user’s request
- Interacting with the end user with forms.
2. Mastering Symfony2 (Intermediate):
- Dependency Injection and Service Container
- Contracting a Quality Insurance with Automated Tests
- Interacting with the User and Forms
- Restricting Access to the Application
- Improving Client Side Performances with HTTP Cache and ESI.
3. Extending & Hacking Symfony2 (Improvement):
- Leveraging the power of the Symfony2 console Component
- Auditing the application with the Profiler application
- Restricting access to application pages
- Ensuring code quality with unit tests and PHPUnit
- Extending Twig
- Extending Symfony2 tools set.
Because of my previous learnings I hesitated between the “Mastering Symfony2” and “Extending & Hacking Symfony2”, so I decided to get advice from people from SensioLabs itself. The problem here, is that apparently the people to whom you will reach out for information are not developers themselves, so their advice is not really accurate. As I have never worked on Unit Testing in PHP (I have worked with JUnit when I was a JAVA developer), they advised me to choose “Mastering Symfony2”.
Here is the list of topics on which we actually worked on:
- Dependancy Injection
- User Provider
- Annotations @Assert & @UniqueEntity
- firewalls & access_control
- Introduction to testing
- Unit testing
- Functionnal testing
- HTTP Caching
- What is it?
- How to use it.
As you can see, the part on Forms was not presented. The people there (myself included) were already familiar with Forms so we decided to skip that part in order to spend more time on Testing and Caching. I was at ease with Dependency Injection, Security and the HTTP Caching, which made me realize that I probably should have chosen the “Extending & Hacking Symfony2” training, as only Testing and ESI were new for me on the one I followed. Overall, the content was quite accurate and very well presented. We practiced a lot on each subject facing issues that forced us to think and come up with more advanced questions (especially on the Testing part) allowing us to go further than what the training’s program was made for.
The trainer, Julien Galenski, is also an active Developer at SensioLabs. It was a very important aspect because he had several concrete examples of issues he faced during his missions for SensioLabs and how he finally solved them. He was very kind and friendly as well as professional and skilled.
Back to work
Since the end of the training, I had to implement Unit Testing on the projects of the client I work for. Thanks to the training I had with SensioLabs it was very easy to set up. I also used my new knowledge of ESI to optimize several pages.
Overall, the training was a good experience. My main regret is that I probably did not choose the best training considering my previous knowledge of the framework, especially because of the lack of efficient advice from SensioLabs’ team. However I did not regret the training since I already used some of the things I learned there on my daily job.
- SensioLabs’ trainings : http://training.sensiolabs.com/en
- Julien Galenski Twitter: https://twitter.com/jgalenski