I decided to bite the bullet. A while ago I started to collect some data about job offerings in this region. The distribution of languages is like that:
- ~40% Java / C# enterprise stuff
- ~15% Web frontend (HTML, CSS, JS)
- ~10% Ruby, Perl, Python, etc.
- ~35% PHP
After reading Thinking in Java by Bruce Eickel I decided that it’s better for my sanity not to program Java all day. I can do frontend dev but I’m not really hyped about it. I think I did my fair share when I was younger. Writing Python would be superb – however, there were only 2 job ads in the last 30 days.
So I bit the bullet. I’m going to learn PHP again or better relearn. I try to be open-minded about it.
edw519 has of course written about this in the past:
Hey you kids, get off my lawn!
Happiness Language: Lisp
Hack-it-out Language: C#
Bread and Butter: PHP
Happiness Language: Lisp
Hack-it-out Language: Python
Bread and Butter: Ruby
Ruby didn’t really arrive here – most Jobs are in Berlin from what I can see. Therefore I’m going to stick with PHP. And I agree Lisp is my happiness language and Python my hack-it-out language. It would be awesome to write lisp all day but there’s this thing called demand.
Framework: Zend vs. Symfony2
While looking through a lot of ads I saw that most required experience in some Framework. These two were mentioned the most. I looked around for reviews and finally settled on Symfony2. From what I heard it seems to be the better choice. If not, I can always relearn the other but for now I’m going to stick with it.
The first good thing is that I written code long enough so that I can transfer most of my skills. I did web development in Python. Written tons of algorithms in Python, Clojure, C and R. So I got that working for me at least.
The learning objectives
Here’s what I want to learn or accomplish:
- Relearn the basic syntax, keywords, constructs
- Learn the intricacies: how does the interpreter work, the OOP system, etc.
- Get an overview over the standard library
- Learn the right and idiomatic way to do PHP development today
- Learn the most important pitfalls
- Learn a bit more about MySQL
- Learn more about the PHP OOP and Design Patterns
- Learn Symfony2
- Write at least one web app using Symfony2 and its core components (templating, testing, forms, validation, security, caching, i18n)
Here are my main resources for reaching these goals:
- PHP Manual / docs
- Programming PHP by Kevin Tatroe, Peter MacIntyre, Rasmus Lerdorf [540 pages]
- Expert PHP and MySQL Application by Marc Rochkind [340 pages]
- Learning PHP Design Patterns by William Sanders [362 pages]
- PHP Cookbook by David Sklar, Adam Trachtenberg [820 pages]
- PHP The Right Way by Josh Lockhart, Phil Sturgeon [51 pages]
- Symfony The Book for Symfony 2.5 [258 pages]
- Symfony The Cookbook for Symfony 2.5 [446 pages]
That will be 1551 pages cover to cover and 1266 pages of recipes. I obviously won’t read the cookbooks cover to cover but rather skim them and read mostly the things that either interest me or I didn’t knew how to do.
I think a great deadline would be the end of this year. That is Wednesday, the 31st of December. Starting today (18th October) I will have 75 days to do it or 2 months and 14 days.
This makes my constraint to read at least 30 pages a day on average – I will aim at about 50 pages so that I have more time for development.
I will make notes along the way. They will probably be a bit unorganized. I will regularly post about my progress.
And … go!