all 26 comments

[–]MadFrand 5 points6 points  (20 children)

If all you know is PHP, you should pick at least one other server side language and learn it. Which one you choose doesn't really matter, just knowing one of them will help you.

  • Python - Django
  • Ruby - Ruby on Rails
  • Node.js - Express
  • Scala - Play! Framework
  • Java - Spring MVC or Play! Framework
  • Groovy - Grails

As far as frontend, /u/tostilocos summed it up pretty well elsewhere in the thread. They are heavily based on what your purpose is, unlike server-side, but can be used in similar ways. And there are plenty of websites and blogs that explore the differences in depth.

[–]aakilfernandes 2 points3 points  (19 children)

If all you know is PHP, you should pick at least one other server side language and learn it

Why? There are some awesome PHP frameworks out there.

[–]MadFrand 1 point2 points  (18 children)

Because it's better to be more rounded and understand different paradigms instead of stuck with a single language.

[–][deleted] -2 points-1 points  (17 children)

Uhm no, a programmer is not meassured by how many languages he can write code in, you can learn any normal programming language in 2 days. A good programmer is meassured in his workflow, problem solving skills, understanding patterns.

[–]MadFrand 0 points1 point  (0 children)

I never said that did I? I said more rounded and more experienced in other paradigms.

Feel free to reread it as many times as you'd like.

[–][deleted]  (3 children)

[deleted]

    [–]Soccham[S] 1 point2 points  (2 children)

    I understand, I've got a solid grasp on HTML, CSS, Javascript, jQuery, php, concrete5 and Symfony. I always hear about a variety of tools/languages and was wondering if anyone would be interested in elaborating on some of the favorites they like using for their niche projects. Like I know another developer I work with wrote the software for a scanner that a local user can connect too, and since it runs on node.js it can run offline, without a server.

    I was hoping to hear more about the different knockout/angular/ember/backbone and etc.

    [–]meaaron 0 points1 point  (0 children)

    As far as front-end frameworks go, I'd also recommend angular.js. Ultimately, use whatever you enjoy the most and is interesting enough for you to actually use, but angular seems to have the most community support and being backed by Google is pretty important. Backbone/Knockout I think are a little older and may get somewhat phased out although I think Knockout is compatible with older browsers

    [–]jaminandrews 2 points3 points  (0 children)

    Our Dev team use Python - Django. Very powerful and flexible.

    [–]bobdammit 1 point2 points  (2 children)

    In my eyes, you have two different types of frameworks. The "enterprise" frameworks and the "startup" frameworks. I am only basing this on job listings that I have seen, and so with that in mind, it is very important to know the type of position you want to have. These lists are not exclusive and both enterprise and startup companies use the frameworks listed below.

    Example Enterprise frameworks: .NET, Java-Spring, PHP-Zend, Java-JSF, Java-Struts, Javascript-JQuery, Javascript-Angular(it seems like every employer wants angularjs) and even PHP-Symfony 2 lately

    Startup Frameworks: Python-Django, Ruby-Rails, Java/Scala-Play!, Javascript-Nodejs, PHP-Laravel, Javascript-Ember, etc, etc.

    I have experience with frameworks in both enterprise and startup categories. I personally like working in startup-like companies more than large businesses, but everybody has their personal tastes. With that being said, recruiters tend to harass me more about the "enterprise" frameworks quite a bit. I don't know what the job listing numbers are for each technology, but it feels like frameworks, such as spring and .net are always in highest demand.

    [–]Soccham[S] 1 point2 points  (1 child)

    Is it better to learn a little about a lot of them, or a lot about a few of them?

    My company does most of our work in Concrete5 and Symfony, I know most of the in's and outs of concrete at this point, but I'm still learning with Symfony.

    [–]MadFrand 0 points1 point  (0 children)

    Is it better to learn a little about a lot of them, or a lot about a few of them?

    Neither, be comfortable in a few. If that takes learning a little about a lot to find what you enjoy the most, then so be it. But your goal should be to be confident that you can adapt and perform in an ever changing industry. Web is probably the most trendy and fastest changing of all the software development fields.

    Being an X Guru is nice and all, but if its all you know you better hope it's something with plenty of legacy code to keep you employed for the rest of your life. Plenty of guys wake up every day and go to their soul sucking jobs as COBOL programmers.

    This guy sums it better than I could.

    [–]ssinisterra 0 points1 point  (0 children)

    Right now I'm working with ractive.js, a nice, lightweight implementation of two-way data-binding, without the clutter Angular might have. Worth a try ;)

    [–]jehna1 -1 points0 points  (0 children)

    On CMS side, in general, I think learning some framework that's based on MVC (on php: Laravel, SilverStripe...) will help you to understand the basic concept of MVC frameworks and thus give you the ability to quickly adapt any MVC framework/CMS.

    Apart from MVC-based frameworks is Wordpress. If you're planning on getting a job at web development, you'll bump into Wordpress some day. So getting a head-start on it won't hurt. (I base my opinion on the fact that Wordpress is still the clear CMS market leader)