Pragmatic programmer: after PHP, what's next?

I read "Pragmatic Programmer" and I am in the section where the authors suggest that we learn a new language every year. I am currently a PHP developer and I wonder what should I learn next?

I am looking for a language that will help me improve my skills and help me with my daily tasks. Something useful.

Any suggestions?

[Edit] Amazing answers guys! Thank you I am still pondering your answers, and I rely on learning Python or the prgoramming functional language, as you guys suggested (maybe Lisp).

+4
source share
16 answers

Python and Ruby seem like a relatively painless transition to / from PHP.

+6
source

The transition to choosing the opportunity to learn something new, rather than something like what you did before.

C ++ or C
A low-level language that requires manual memory management and teaches how everything works at a lower level. A good community base is one of the languages ​​that a programmer should learn.

I would suggest one of these assemblies, although although the assembly is even lower, it hurts to create a project. Learning a language such as C or C ++ will have a bonus that allows you to learn how to build very quickly if you ever want to do it, since there are relatively few new concepts compared to moving from Java to assembly.

Haskell
An extremely functional language that completely changes the way you look at some problems. It takes a lot of effort if you're used to the imperative style of writing code.

It has a great advantage in teaching you the joys of recursion, and even if you never pay to write a Haskell string, this should affect the code you write in other languages, allowing you to see better and cleaner solutions.

Java or C #
If you do not use PHP in an object-oriented manner (not just using classes, but also functions such as inheritance), then these languages ​​force you to write in OO style. I would not recommend them if you are satisfied with OO programming.

+14
source

I would go in Java or C #, so you will learn something that is not a different scripting language.

+5
source

Javascript

And I mean, really studying it, and not just “enough to get through,” as it seems. I saw otherwise - excellent (server-side) web developers who can spend 2 days on a trivial JavaScript problem because they don’t understand this at all.

I don’t think that there is a language that a developer will come across more often than JavaScript, and when you need to use it, you need to use it: you will not have the freedom to choose another language to run in the client browser. The good news is that there shouldn't be enough time compared to some other programming languages.

JavaScript is a good place to start : a world that doesn't understand a programming language

+3
source

I believe that it would be very useful to try and choose one of the popular functional programming , since they require a completely different way of thinking and problem solving methodology. They really allow you to program elegant, yet minimalistic solutions to complex problems. Some of the most common languages ​​include:

  • Erlang
  • Haskell
  • Lisp
+2
source

Although I agree with learning a new language, it is a good idea - make sure that you study them, and not just collect them. For example, I come from the background of Java, and I continue to catch myself in other languages, to write something in Java and not to use new language features. I’m sure you won’t - but just be aware that it is a natural thing to keep an eye on this if you start to do the same!

What i learned; I would learn Ruby for the second time (plus optional Rails if you want to make web applications) - this is a very good language and a fairly simple transition from PHP. The Pikax book by pragmatic programmers is a good place to start.

If you have access to a Mac, I highly recommend learning Objective-C and Cocoa. Of course, I learned a lot by studying them - I think that more than others, I felt that understanding this made me a better developer. For books, start with Kochan "Programming Objective-C" for the language side, then go to Hillegas "Cocoa Programming for Mac OSX" for the GUI side.

Good luck

+1
source

I started learning PHP after C. Then I opened Perl and I never looked at PHP again. Causes? Perl, like PHP, was dynamically typed, but much more modular. Camel's book on Pearl was enjoyable to read. Running a Perl script from the command line was much faster than PHP, which required loading all possible libraries - Perl allowed me to choose what additional functionality I would like at run time to make simple scripts easy. The Perl community is relatively advanced compared to other languages. Perl allows you to program in a variety of styles, from procedural to OO.

+1
source

Functional languages ​​seem to be gaining interest. I plan to look at F # in the first place because I am currently working with a Microsoft file.

I also recommend looking at topics that are not linguistic, such as improving OO skills, using design templates and everything else that helps improve your skills as a developer, to make you more artisan, and not to collect languages ​​that you cannot use a significant project and therefore never cope.

+1
source

Python + Django if you want to stay in scripts.

C, if you want to understand how it works behind the scenes.

+1
source

C (as in C, not C ++) would be my suggestion. This will instantly make you appreciate what the higher-level languages ​​or languages ​​actually interpreted (or save you, depending).

This is also the first logical step for C ++, although I know many people who just dived in C ++. Learning C at first will (as stated above) either make you appreciate, or hate C ++ even more.

To be a really well-rounded programmer, you need to deal with type management yourself, as well as manage memory without garbage collection protection. It used to be that these two are prerequisites for being a programmer in general .

Also, think about how fun you could write your own PHP extensions :)

+1
source

This could be a debate.

My suggestion is to learn a new language that has something to do with your existing skills.

My "first language" was C, which brought me to C ++ and Visual C. When I hired consultants, I entered the PHP field.

From this point on, I collect skills in Javascript and jQuery, as they are closely related to PHP. (DOM, CSS, and HTML are not languages, so they are not counted here.)

Or maybe you want to go in another direction and switch to SQL.

The choice is yours, and crossroads are everywhere.

+1
source

Not sure if you are programming PHP under the MVC model? But if you are not another good methodology to study.

Examples: Zend or CakePHP

0
source

It totally depends on what you want to do. I don’t think anyone can say what you should study further, but rather share with you an experience that will help you think. In the end, the solution for your next language should be based on what applications you want to develop (desktop, mobile, website, etc.).

I will share my experience with you. I used to be a PHP programmer, and I came across the same question what I want to focus on. I finished learning Java, and I was pleased with my choice. Here are some of the reasons why I think this is a good choice.

  • Java is a widely used language in the corporate world. This means that with good Java skills, you are more likely to find (easier) work (better) than with Python or Ruby skills (disclaimer: this, of course, can vary between regions and countries, this was the case with mine region)
  • I have made many websites and applications with PHP, and I like the web as a medium. However, I felt that PHP wasn’t quite the language for creating full-blown enterprise applications - this is what I also wanted to do to participate in the creation of large enterprise applications. Fortunately, with tools like GWT or Vaadin, I was able to create enterprise applications that run in a web environment - all in Java. It was a win-win for me, I was able to create great software for the Internet.
  • Java made me think of an object-oriented object, which I also helped in writing PHP.
  • Java is multi-platform, so it’s easy to write applications for linux / mac / windows or even mobile devices (Java ME).

My two cents.

0
source

It depends on your motivation to learn the language.

If you want to learn a new language to do your daily work more efficiently, I would suggest Python or Ruby. These are popular languages ​​that are very productive for work and can be applied to a wide range of programming tasks. As someone else noted, there are versions for the JVM (Jython and JRuby) and for .Net (IronPython and IronRuby), so if you want to explore any of these platforms, this is a good way to get started. They are also easy to learn and fun to use. I prefer Python, but this is probably because I have used it for many years.

If you want to increase your employment options, go to the most popular languages ​​used in business - this means either Java or C #.

If you want to expand your mind, I suggest a version of Lisp. I recommend Clojure, a Lisp dialect that runs on the JVM and provides access to all Java libraries. There is an excellent introductory book in the bookshelf of pragmatic programmers.

0
source
  • JavaScript (preferably through jQuery and Ext.js)
  • RegExp (taste preg_match)
  • SQL (MySQL, PostgreSQL, SQLite dialogs)
  • XSLT (and XML)

All are very different. Each of them has a different purpose, and each of them is very useful for PHP web developers.

If you want to try something else, I would go with

  • ActionScript (great features)
  • C # (great IDE)
  • Python (complex ideas, misleading simple syntax)
  • Rebol (the pleasure of creating weird designs works flawlessly the first time)
0
source

Lisp.

(or some other functional language.)

I coded in PHP for many years and then took the (functional) Lisp class. There were four weeks of excruciating pain, and then pure joy. Understanding functional programming and especially recursion really gives you an edge when coding PHP (or any other solution-oriented business language).

0
source

All Articles