I got into a minor debate with a freshly minted nerd, who was barely out of school … and so, lacking in experience. He thought that knowing advanced math was a requirement to become a developer. Well, that is largely not the case in the real world of software development.
… At least that’s what my 20yrs of experience has taught me. Check out the video of me yapping about this:
These days, Python and Ruby are popular programming languages with the tech startup crowd, and so, many of the venture capital backed ‘teach code’ startups, have ruby or python courses targeted at kids. The problem is, that these are not the best languages to teach programming with – especially in K12.
Why PHP is better?
In a nutshell:
1. PHP is easier to learn:
Python and Ruby are object oriented language at their core, so to do anything with the languages, you really have to understand object oriented theory and principles. This adds an unnecessary level of complexity to new learners.
Yes, modern software development is largely object oriented, but my 10+ years experience in teaching web development, has taught me that it is better to teach basic programming concepts and techniques before adding the OOP (object oriented programming) layer.
PHP has both an object oriented layer and a much less complex layer that is ideal for teaching programming to new learners – especially younger students.
2. With PHP, it’s easier do real things.
With PHP, because it was designed specifically for the web, you can create web apps fairly quickly. On top of that, getting PHP apps live is also trivial – just upload the files to a PHP enabled server, and you are done. Try that with Ruby or Python!
Ruby and Python were not designed with web apps in mind. They were put together more as general purpose languages and have been adapted for the web. Yes, they are both excellent languages, but there is that additional layer of complexity when it comes time to actually creating a web app and going live.
…. These days, if you are creating apps, they are most likely web apps! So this is relevant.
3. PHP is BY FAR the most used web development language – it’s not even close!
If you are looking to put practical skills into you students hands, then PHP is easily the best choice. Check out this simple stat: over 80% of dynamic websites, that is to say, websites that are also web apps, are created with PHP. Ruby and Python together may add up to 7%.
In fact, what I hear from new programmers time and time again (after they learn Python or Ruby,) they discover that they have to learn PHP, since there are so many more jobs in the PHP world.
Consider this next stat, WordPress runs about 23% of the world’s websites!! Add in Joomla and Drupal (two other popular CMS’) and we are probably close to 30% of the worlds websites being run by 3 web apps created with …. PHP!
.. There is no equivalent in the Ruby or Python world.
The point here is that there is a huge ecosystem in PHP that no other language comes close to. When selecting technologies, we all know from the Apple Appstore, that the ecosystem is hugely important. It’s a big reason why iPhone is so successful.
It seems clear, if you want to teach kids (adults too!) more easily and you want them to be able to easily see their code actually do something real, PHP is the obvious choice.
Add in the market viability of the language and the growing probability that Ruby will slowly fall into a micro niche (it’s already niche IMHO) … then there is really no argument. You can see why Studioweb teaches programming with PHP.
I chose to teach programming with PHP in 2004, NOT because I was a PHP programmer zealot. I’ve written software in 8 or so languages, I am language agnostic. In fact, my favourite language for years was Java … I’ve written more lines of Java code than any other language.
No, I still chose PHP to teach programming, because it was the best choice.
There are soooooooo many choices out there these days when it comes to writing PHP code. Here are just a few popular apps:
Sublime Text – uber-nerds love this one!
Dreamweaver – yes, it has a code editor too.
And there are many others, and I am not including the PHP IDE’s out there!
A PHP IDE (by the way,) is short for ‘Integrated Development Environment’. It is a code editor on steroids. They are much more powerful than standard code editors but they are also harder to learn. These days (2015) PHPStorm seems to one of the best, if not the best.
… The guys who created PHPStorm, created my favorite IDE for Java – IntelliJ IDEA. My nerd-servants are telling me PHPStorm is amazing. But, when teaching beginners how to program in PHP (or any other language,) it is best to not expose them to the added complexity of learning a full blown IDE. They can be very complex.
Back to code editors – so which is best?
In a nutshell: If I were teaching PHP, I would use either Sublime Text or Notepad++ if I was on Windows. Sublime Text works on both Mac and Windows but the license is ambiguous: it is free to demo but at some point you are supposed to pay the $70 for it. Not sure when though? I heard of some users still demoing it after 2 years!
This is a consideration for schools in terms of licensing. On the other hand, Notepad++ is free but it is Windows only.
Textwrangler is a Mac only HTML, CSS code editor but I don’t see you could use it for PHP.
The new year approaches and once again I will give you my assessment of where PHP will be in 2015. You might think me biased given killerphp is the name of the site … but you would be wrong. I am always ready to throw out a technology that no longer deserves my attention.
… That’s why I know 8-9 languages. And to be totally transparent, I’ve logged many more programming hours with Java than I have with PHP. That said, where goeth* our lovely PHP in 2015?
PHP in 2015
These days I hear the young nerdlings are all enamoured with Python. Yes, Python is a fine language and worthy of praise. But is it better than PHP? And what about the jobs – how much Python work is out there to be had?
Let’s start with the most important number: over 80% of dynamic sites run on PHP! Not Python, not Ruby. Nope, little old ugly PHP runs 80% of web apps in the world! From what I hear, web development firms have lots of PHP work but are finding it increasingly difficult to find PHP programmers.
… With scarcity comes higher prices.
PHP Frameworks are sooo 2015
Like all the mature languages out there, PHP has a nice selection of web frameworks to choose from, and ultimately, you as a budding web developer will have to learn at least one. In 2015 Code Igniter is out (although there are many legacy CodeIgniter apps that will have to be maintained) and Laravel is in.
… Anyway, once you learn one PHP web framework, learning another is not too hard. They are all MVC based and so they all work pretty much the same way. That said, some are better than others.
In a future article I will put my finger to the wind, and get into WHICH PHP framework is probably best in 2015.
Happy new year!
Goeth defined: archaic third person singular present of go.
I get asked a lot: which is the best PHP framework? Or, should I choose PHP framework A or should I should PHP framework B?
The short answer: it depends! See below for the deeper answer.
When considering a framework, besides checking out what the uber-nerds are talking about at the time, consider the current cutting-edge thinking about frameworks in general, and be sure your choice of a framework, is up-to-date in that regard.
The no-framework PHP framework
For example, the move these days, is towards the ‘no-framework framework’ style of framework – that’s a tongue-twister! Basically, the more advanced a framework is, the more open it is.
You should be able to drop in components as you need then from any source. So for instance, if you don’t like the ORM layer in a framework you happen to be using, you should be able to easily plugin some other ORM.
At the end of the day, learning one framework or another should not be considered the end of the path – you should expect to have to learn a new framework from time to time … as things mature. The good news is that once you’ve learned your first MVC framework, the rest will come pretty easily since they are all based on the same basic concepts and patterns.
This is a video (see below) targeted at those who understand basic PHP and are ready to explore the web development world a little further. You see, when you get into PHP, you will also have to learn about the client-side frameworks out there, things like jQuery and Bootstrap.
What are Web Frameworks?
Think of a framework for a house, scaffolding … or cookie cutters! Web frameworks are just libraries of code (could be code in any language) that speed up the process of doing all kinds of common web design and development tasks.
What makes Webmentor.org different than what we’ve had in the past? Again, check it out:
All the new videos will be in HD.
All videos are responsive and resizable.
Videos can easily be played back at different speeds.
Ask questions and make request – we will do our best to answer!
All courses are date stamped.
The system shows you which videos you’ve started to watch and which you’ve completed.
This is just the early launch (late stage beta but only a day away from version 1), so we’ve populated the system with our courses that are still good .. though they were created a little while ago. That said, we have brand new courses that cover HTML5 and CSS3 effects. A lot more coming over the next several months. Here is a sample:
Let’s start with the conclusion: PHP is a great language to start teaching middle and high school students programming. My 10yrs + of teaching web design and programming has taught me that.
PHP is a much more approachable language compared to other popular languages out there.
For example, Ruby is a great and powerful language but you have to grasp some pretty advanced concepts to just get going with it. If you look at PHP, it has an easy to understand layer that can be used as a gentle introduction to programming.
Ok, now to the main article:
Many K12 teachers are now being asked to teach web programming/development for the first time. This presents a challenge since few teachers have professional programming experience.
I was approached about two years ago by a couple of schools who needed a way to more easily teach web programming and web design. Luckily, I had been working on an application that would more than just help: Studioweb is an interactive web design and programming training system that automates the teaching process:
All based around a proven turnkey curriculum that I’ve been training people with for years.
The Key to Modern Web Design and Development
Web design/development has evolved a lot over the last 20 years, the way webapps are built today is nothing like the way we did it back in the early 1990’s. It is so different in fact, that web programmers/developers from that time, would almost have to completely retrain themselves!
Today, creating web apps is about:
HTML 5 … NOT XHTML
CSS and CSS3
Responsive web design – Bootstrap
PHP & MySQL
There are other server-side programming languages that are used a lot today – for example:
… But far and away, PHP is the most widely used programming language out there. Something like 85% of sites run PHP!
The Recognition of the Importance of Code
One of the biggest changes in the last few years, is the world’s realising that code is now as important as reading, writing and math. When kids learn to code, you give them a practical skill set along with problem solving experience … all the while, you reinforce logical thinking.
Studioweb focuses on teaching real-world web design and programming techniques as well as the key fundamental concepts. Students come away with demonstrable skills that can be applied in the real world on real projects. The aforementioned cognitive benefits come as a bonus.
If you want to learn more or if you are interested in trying out Studioweb, feel free to contact me.