Re:Ask HN: How to best help a youngster who's tinkering to p...
by anexprogrammer on Sunday October 30, 2016 @11:48AM
(#12830413)
Some very good points, especially on where Clojure sits. I had years of Java before I tried Clojure so probably gave that little thought at the time.
You're right it's probably best to build on what he has. The logic for change was how especially common poor quality info seems to be for PHP. I've seen good code, and even written some, in it too.
I've got a decent set of resources to point him at to build on Python now, so I should find some for php. I'm sure they do exist, great tutorials have come to be for just about everything now. We just have to keep him away from w3schools and similar crap. :)
I'm inclined to give him decent resources for both php and python and go with whichever resonates. He'll soon enough develop his own opinions!
Thanks a lot for your thoughts. Very useful.
Given that the young person wants to build a SAAS, encouraging them to switch platforms to something unfamiliar seems a bit at cross purposes because PHP is well suited for building web applications and since the person understands it, the impediment of learning a new platform will not stand between the young person and their ambition.
Programming language choice is largely a matter of taste and tastes differ and develop over time. Odds are in a few years the young person will change their taste.
Personally, though I think Clojure is a good language, I think it is generally a poor choice for beginners because:
1. It is aimed at professional programmers and this is reflected in the focus of the community, the tooling, and the libraries.
2. There is a strong expectation that the programmer will have substantial understanding of the underlying platform (JVM, JavaScript, .NET) when it comes to debugging, because error messages will reference that context.
3. Much of the information about Clojure is written for people with years of programming background at an adult level. A significant fraction is at the computer science level. Another significant fraction is about problems that occur at scale.
My advice: do the hard work of finding good material that provides examples in PHP. It's out there. That will let you meet the young person where they are and potentially form the basis for a long term mentoring relationship.
Good luck.