Wednesday, November 28, 2012

What Should a Beginning PHP Developer Learn?

I've been a software developer for a long time. A good part of that time has been spent using PHP and its associated technologies to build web applications (and a few console ones too). I started with PHP in its infancy and kind of organically grew with it, learning new technologies and methodologies as they came up. For me, it wasn't so much about keeping up as it was about just doing new projects and picking up what I needed as I needed it.

But I've been getting email from junior web developers who are surveying the PHP landscape with wide eyes and wondering where the heck they should begin. PHP is a near fully object oriented language now so that seems like the logical place to start. But there's also an amazing amount of code already written, and still being written, in the old functional style so maybe they should start there.  It all can be a rather confusing mess of code for someone just breaking in to the field. So this is my attempt to add some clarity to that first look. It's my attempt to give you a starting place from which you can grow as a developer.

So here it goes:

1. Learn OOP first - While I won't get into the whole 'OOP version functional' programming debate, I do believe that, like it or not, OOP will remain the dominate way to develop quality software for the forseeable future. Not only that but almost all of the new programing paradigms are being built on top of OO concepts and it's going to get increasingly difficult (impossible?) for you to get even an entry level job without at least a basic fimilarity with object oriented concepts.

2. Be comfortable with functional - Compared to well ordered and contained OO code, functional code can look like complete chaos. But the fact remains that there is still a lot of code being written and maintained in the functional style. You will probably be called upon to either extend or maintain such code during your career so you might as well get comfortable walking between the two worlds now. And, while I know it's almost impossible for the OO diehards out there to believe, there will even be times when you will choose to write new functional code over OO code.  Learn it, get comfortable with it.

3. Learn at least one major framework - MVC programming is the way of the future. Make sure you understand it well.  There are multiple MVC frameworks out there for PHP but, for the most part, they function similarly enough where if you learn one you can quickly and easily pick up the others as you need. Some might suggest you learn Zend, I don't. While Zend is a perfectly fine framework in itself, I've always found it much like throwing a 200 ton gorilla at a 50 pound problem. Most of your projects won't require Zend. They will require something like CakePHP, Symfony, or Code Igniter. These are easier to learn than Zend and will serve you better in your day to day job.

4. Learn another language - PHP is a fine language. But it's important that you learn how other languages do things differently than PHP. Take some time to learn Python or ASP.NET, or Ruby. Take note of how each of these languages differ from PHP and what you like or don't like about them or PHP in those regards. You'd be surprised how many times I've been stuck on understanding something PHP is doing and looking at hour Python does it clarifies it for me. Trust me, this is going to be an asset in your toolbox.

5. Learn a source control system - You'd be shocked how many web developers I talk to that don't even have a basic idea about how source control works. This will come back and kill you in the job market. Technical managers will string you up, your coworkers will despise you, and you will quickly get the label of 'clueless. incompetent, newbie' if you ignore this. It doesn't matter what system you learn, just learn one and make sure you understand it intimately.

And that's it! Those five things will get you started on your professional PHP journey and will serve you well as you develop your career. Sure, there are probably a million other things I could add to this list but those five seem to be the ones I see lacking in new developers the most. Learn them and they will serve you well.

What are your 'must learn' tips for new PHP developers?

1 comment:

An Binh said...

Bạn là dân văn phòng phải đối mặt với công việc suốt 8 tiếng đồng hồ trong cơ quan chính vì vậy bạn sẽ luôn luôn cảm thấy áp lực và mệt mỏi, và thứ mà ảnh hưởng lớn nhất cho cảm hứng và hiệu quả của công việc chính là bàn, ghế ngồi của bạn.
Nếu chiếc ghe van phong tphcm của bạn quá cứng, bạn sẽ thấy đau lưng chỉ sau vài tiếng ngồi làm việc, bên cạnh đó bạn cũng không thể ngả lưng mỗi khi mệt. Điều này không chỉ làm bạn cảm thấy khó chịu mà còn có thể dẫn đến các vấn đề về cột sống khá phổ biến ở dân văn phòng.Dưới đây là một số kinh nghiệm chọn mua ghế văn phòng trong công ty của Ardeco để chọn mua cho công ty mình một sản phẩm thật ưng ý nhé :
1.Theo kích thước và kiểu dáng
- Bạn nên lựa chọn có kích thước và kiểu dáng tương đồng phù hợp với không gian ngồi của các nhân viên. Đối với không gian rộng lớn, bạn nên chọn một chiếc ghế có kích thước tương đối lớn. Phần nệm ngồi rộng rãi, phần tựa lưng cao và có khả năng ngả về sau một cách thoải mái. Đối với không gian tương đối nhỏ, bạn nên chọn một chiếc ghế xoay có kích thước vừa phải. Điều này giúp cho việc di chuyển trong phòng làm việc một cách linh hoạt hơn, tăng sự tương tác với đồng nghiệp của mình.
2.Lưng ghế và chất liệu
- Với những người phải ngồi làm việc suốt nhiều giờ tại văn phòng thì lưng và tay vịn của ghế cũng trở nên rất quan trọng, bạn nên chọn chiếc ghế văn phòng có lưng ghế êm và cao vừa phải để phù hợp với thể chất của bạn.Tránh chọn những chiếc ghế văn phòng lưng quá thấp, sẽ sẽ không thể cảm thấy thoải mái nếu ngồi làm việc hằng ngày trên một chiếc ghế như vậy.
- Chất liệu cũng là một yếu tố rất quan trọng ảnh hưởng đến người sử dụng. Hiện nay, ghế văn phòng được sản xuất bằng nhiều chất liệu khác nhau: vải nỉ (vải bố), simili, vải lưới, dây thun...
- Với những chiếc ghế xoay văn phòng dành cho nhân viên văn phòng thì nó phải được thiết kế tựa lưng cao. Tùy theo vóc dáng và sở thích để bạn chọn cho mình kích thước của chiếc ghế phù hợp nhưng phần tựa lưng giúp bạn ngả lưng khi căng thẳng mệt mỏi.
- Nếu bạn ưa thích sự năng động thì chiếc ghế xoay nhân viên là một lựa chọn tốt vì nó có khả năng xoay 360 độ và di chuyển nhờ bánh xe. Ngoài ra, chiếc ghế chân quỳ cũng là một lựa chọn tốt cho những ai muốn thể hiện phong cách cá tính của mình.
3.Giá thành và nhà sản xuất
- Hiện nay trên thị trường có rất nhiều nhà cung cấp đồ nội thất văn phòng nổi tiếng với nhiều giá thành khác nhau chính vì vậy trước khi ra quyết định mua bàn làm việc bạn nên xem xét và đưa ra quyết định một nhà cung cấp ghế văn phòng uy tín và chất lượng cùng giá thành tốt nhất.