Hacker Newsnew | past | comments | ask | show | jobs | submitlogin
So you want to be a PHP Developer? (dannynunez.com)
38 points by JeremyMorgan on July 7, 2014 | hide | past | favorite | 63 comments


This is a rather low effort post. PHP The Right Way [1] already covers the basics of modern PHP, without turning into a laundry list.

Today the most important thing is Composer, not frameworks, especially to those who are just starting out. Learning a full framework is pointless if they just want to see the basics in action. Fabien Potencier's Create your own framework series [2] is really good for this: it shows how much you can do with just a couple of Symfony components and a front controller.

[1]: http://www.phptherightway.com/

[2]: http://fabien.potencier.org/article/53/create-your-own-frame...


This is certainly also the most important thing for existing PHP developers still hanging on to the "old" way of writing PHP code. Having worked on sites where everything is an undocumented mess of manual multi-level includes with shared globals and half-baked implementations of things which already exist, in a better form, well tested and documented elsewhere, I feel like I need to shout from the rooftops php has a package manager! f_ing use it! and url routers are a thing now!

It really is surpising how far you can get with a little effort now in PHP, and how much suffering you can avoid by just letting go (of what, admittedly, makes the language fun for some - it's raw, ugly, stupid simple quick-and-dirty hackability) and embracing structure. And open source code.


Betteridge's law of headlines strikes again!


I for one needed to Google it (https://en.wikipedia.org/wiki/Betteridge's_law_of_headlines): Betteridge's law of headlines is an adage that states: "Any headline which ends in a question mark can be answered by the word no."


Simply add "why" or "how" on the beginning of sentence i.e. Why you want to be PHP developer? In marketing they are calling them "open questions", the question to which you have to answer with more than just yes or no


It strikes me as more of a rhetorical question/could have just as easily been ended with an ellipsis.

But yeah... ha-ha. :)


Ah, but this is a question i am pleased to say 'No' to. x


Drupal: Pros:

Low Learning Curve Cons:

Oversaturated Job Market

I will be the first to admit that Drupal does not have a low learning curve. (And you can blame me for some of that. Or a lot of that if you wish :P)

But oversaturated job market?? There has been a shortage of good developers ever since there was such a thing as Drupal-developer-as-a-job, at least a decade.


Agreed. Any Drupal developer who is having a hard time finding work, come to DC. There are over a dozen shops hiring Drupal devs right now.


Drupal absolutely does NOT have a low learning curve. If you want to do anything beyond a basic configuration blog-style site, good luck finding developers who know how to deal with Drupal's internals, especially in the last version.


I was wondering at that too, but I don't have experience with some of the other frameworks so I thought perhaps it was just all relative :)

I love Drupal, despite some of the flack it gets, I think on the whole it does what it does really well. But easy to get into "it aint".


Not to mention how there is no backward compatibility. That's what made me abandon that platform.


This list fails to mention http://www.phptherightway.com/


So anyone in here can give me a opinion, how i can improve myself as a worthy developer.. I am 22 years old fresh graduate and a ruby developer with currently 1 year experience, before i have learn node.js(express), php(cms, news site), db(sql,nosql)... but i got a feel(*is it true?) that america, europe is getting a worthed salary as a programmer they are valued rather than here in my country i got around $6000/year with living cost $3600/year this is really a standart in my country. its really hurt me, so as a fellow programmer here can you guys give me a suggestion to improve my living?how bout emigrate?


An alternative to emigrating could be finding a local company working on projects for foreign clients. For example, I live in Eastern Europe and work for a company that deals 99% with clients from Denmark (Central Europe). I make significantly more than the average worker here does. Just be careful and make sure the company values quality and best practices over a quick buck.


where do you live currently?


Well i am in indonesia..


I would suggest you to find a job in Singapore or even Malaysia. Browse http://startupjobs.asia/ and try to apply for jobs in countries around you.

After you have 3 to 5 years experience, try to emigrate to United States, Canada, News Zealand or a couple of good European countries. Germany, The Netherlands and Sweden off the top of my head. In the mean time, try to learn French or Spanish beside improving your English. It will give you much better advantages when you speak different languages.


that is what i aim for, unfortunetly some prefer local people so they didnot need to mess with working permit or anything, for now i am looking for a post-graduate 1year study chance and give me 2-3years stay in that country did you know any of the country like that?, Thanks for the suggestion :)


My personal advise is to stop wasting your time with studying anymore. A lot of web agencies and startups do not care if you have a university degrees or not, they only care about your programming skills. Find a job in Singapore, Malaysia, Hong Kong, Taiwan, etc. If you look at http://www.startupjobs.asia/ you will see that a lot of startups welcome developers from other countries.

But then again, this is my personal advise. If you firmly decided to continue studying aboard, don't let a random stranger on internet change your mind. Good luck to you anyway!


The best thank you :)... God bless you..


I wouldn't recommend Zend (I find it rather resource heavy) - but rather Laravel or Symphony, CodeIgniter is also nice and extremely easy to learn - probably the lowest entry level that I can think of, but 2.0 is taking it's sweet time to come along so that's a huge downside, plus, Ellislab wants to sell the project...

Regarding CMS work, I have personally found that Magento is one of the best things to specialise in. Ecommerce is a huge market.


No, don't even think of learning CodeIgniter. Besides being pretty much dead (version 3 has been coming out for, what, about 2 years now?), it has terrible architecture. The superglobal singleton is just awful and will kill you slowly.


This. I don't understand why CodeIgniter gets mentioned in the same breath as Zend or Symphony, or any other fully-fledged framework. CI is, to start with, much smaller: it's tiny, the sort of thing you could knock out in a week. It also has deep-rooted architectural issues that are preventing some of the longest standing bugs being fixed (for example, take a look at the router). Lastly it's not anywhere near as modular as it purports to be, and the code and architecture quality is rather poor.


The only reason why I mentioned it is because it's extremely easy - for a beginner, it's not a bad choice because it doesn't overwhelm you. Take baby steps.


Just because something it easy does not make it the right choice.

Conversely, it is a bad choice because it teaches you bad practices and you will be forced to implement so many hacks on any reasonable sized project. Just don't use it.


I found CodeIgniter to be really useful for a self-taught, spaghetti-style PHP programmer. It is the only framework that most such programmers can grasp by themselves using tutorials and docs available online. Any other framework, and they would require a lot of hand-holding.

Switching from CI to something better later is really not that hard and it's much, much easier that learning one of the modern frameworks from scratch.

I'm talking about self-taught begginers without CS degree or working-in-a-large-team experience.


But then you're better off with something like Silex. It's tiny and easy to pick up, but you're using a solid software and along the way get familiar with Symfony components as well.


I'm not familiar with Silex, I'll check it out!!


Even though CodeIgniter is indeed an easy framework to start with, I would not recommend it as it's quite an old concept and it's not being developed anymore. Laravel is more recent and not too difficult if you follow the nice docs. There's also plenty of nice articles online (especially in Tutsplus - code.tutsplus.com/search?utf8=✓&view=&search%5Bkeywords%5D=laravel&button=).


There's a lot of money in Magento because it's so utterly horrible to work with.


Indeed, it has a steep learning curve. I have been working with Magento from day 1, and I'm still learning new things. But additionally, another main reason why it pays more, is that the client is willing to pay more + will actively pay for updates since it's not just a regular boring website, but an actual online business.


I agree. Learn CodeIgniter first because it is easy. Once you create a couple of projects with CI, switch to Laravel (or Yii framework). CI is really good to get a grasp on MVC way of thinking, and learning Laravel later will make you appreciate all the features is has (and CI is missing).


What you mean by resource heavy? Symphony at least is one of the heaviest frameworks, and not just for PHP.


I haven't used Symphony personally but always thought it was less heavy, I stand corrected!


Resource heavy? That's not the problem with ZF. The problem with ZF is that is was designed by committee. And it is built in a very class-centric style. Symfony also has a much larger community around it.


A big suggestion missing here is a CS degree. I like Steve Yegge's take on it[1]:

> The best tip is: go get a computer science degree. The more computer science you have, the better. You don't have to have a CS degree, but it helps. It doesn't have to be an advanced degree, but that helps too.

My own take on it is that most programming languages are like cars and the skill of driving computer science: if you can drive one car, you can learn to drive the other and with programming if you can program in one language you can probably program in the other. Knowing the fundamentals about computers, how information is represented as bits, how they store and process information, how they communicate over networks, how you can use them to solve problems like sorting, cache invalidation, etc is really important stuff that is orthogonal to learning a programming language. Personally if I am using programming language X at my job, and you have 0 experience with it, but are a good programmer, I may not give a shit and hire you anyways.

[1] http://steve-yegge.blogspot.de/2008/03/get-that-job-at-googl...


One of my favorite parts:

>Unicorn Skills That will be required – (Some how through magic)


If you're going down the Drupal route you're just as likely to need Drupal 6 - one of the challenges in this market is there is a lot of legacy work to be done, so you often have to know two or three versions of the framework.

In the "Unicorn skills" section, you're as likely to need cPanel or Plesk as pure Linux skills (although having the latter will make the former much easier). I would also say you'll probably be using SVN and not git. Lastly, add FTP and SSH to the skills you'll need.


> I would also say you'll probably be using SVN and not git.

According to http://www.itjobswatch.co.uk/jobs/uk/php.do these are the number of PHP jobs asking for Git and Subversion respectively in the UK in the past six months:

Git: 2244 jobs Subversion: 1559 jobs

So no, you're actually more likely to be asked for Git than SVN.


Being that both are popular and it's common to see both, you really ought to know both.


Does anyone have any good "tick-offs" that you'd ideally have to meet before you could be classified as a PHP Dev?

I had a look at the Zend certification link, and I know most of things on the list. It was surprising, because I wouldn't classify myself as a "dev" or anything even close to it. I learnt (and use) PHP via the "hack and see" method.


Recommend the Flight (http://flightphp.com/learn) framework for creating RESTful APIs in PHP. It is lightweight, flexible, and does routing nicely.


Drupal 8 incorporates quite a bit of Symfony, so learning Symfony starting now will probably open some Drupal doors in a year or two when 8 is stable and being heavily used.



What's the best of learning a CMS or Framework? or which one should a beginner start with and how can I go about the first steps?


No, as a full stack web developer, I use node.js so that I don't need to switch between js and php frequently.


is it easy to find job in the PHP world? and does it even pay good comparing to other languages like Ruby or Python


Yes, pretty easy.


Why would I want to be a PHP developer? :O


Because finding a job is incredibly easy. Because it pays well if you know your stuff. Because you don't have to work with people who will judge you based on something as in-significant as what programming language you decide to use.


Because it still pays and if you are good at it - pays well.


TIL: Symfony has a high learning curve.


How about http://platform.qbix.com ? Shameless plug.


Chrome 35.0.1916.153 Contribute: Need to define QP/contribute/response/column1 Need to define QP/contribute/response/column2

Features: The "You will just have to try it yourself."-Button is not doing anything.

Sign Up Link: Uncaught TypeError: Cannot read property 'login' of undefined features:1


Congrats to the author on breaking the stupidly absurd font-size world record!


no, because i'm a perl developer, and perl is php's big brother


haters gonna hate


"PHP-elitist" is an oxymoron, right? Like a dumpster-foodie or an instant-coffee aficionado?


Stating that disliking/hating the mess that is wordpress makes someone an elitist is stupid and sounds like an apologist to me.

Would you call someone a ruby elitist because they embraced best practices and disliked/hated a project that refuses to embrace best practices and encourages bad practices?


That comment is also under joomla, which is even worse than WP.



There you go! There's a person (and programming language) for every taste...




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: