
Ask HN: How to best help a youngster who's tinkering to proper SaaS programming? - anexprogrammer
A friend&#x27;s son is learning programming and he&#x27;s asking me for ideas. He&#x27;s nearing 18 and progressed via Minecraft to some python and PHP on a Raspberry Pi, and his PC now has Ubuntu. Not quite sure how he got to php, but he&#x27;s had lots of fun messing with sensors, cameras and web pages. Everything is entirely self-taught so far.<p>What stack would you suggest that will give him some good habits, and develop the interest? To be clear, he&#x27;s not trying to become employable yet, just to learn to make SaaS sites.<p>Ruby would get him producing quickly, Clojure might be better for all round thinking, but is it too confusing or offputting to a beginner? I want to direct away from PHP as there&#x27;s too many bad habits disguised as tutorials out there. Front end I have even less idea of best suggestion of framework for him. Good progressive online beginner tutorials will be a bonus.<p>It&#x27;s such a long time since I was thinking as a beginner, before I knew of OO and functional etc, so I&#x27;m not sure where to go with this or best order to present things. The last thing I want to do is put him off. Ideas?
======
brudgers
My personal opinion is that if the youngster is enjoying programming and
learning using PHP then PHP is fabulous for the context. Plenty of top quality
engineering is done in PHP...and like many other languages, lots of crappy
programming.

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.

~~~
anexprogrammer
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.

------
angersock
Why not just let him enjoy hacking? Why clutter that up with "best practices"?

Don't complain to the flower that it has too few branches to be a tree
someday.

~~~
anexprogrammer
He was asking me the other day for ideas to progress from static pages and
submit to sexy realtime web apps. In other words nearer to what he sees and
uses every day, rather than simple sites and submits.

I'm somewhat thinking out loud as I'm just not sure. Maybe a decent front end
to sit with PHP is the best answer, but I felt something else like Rails might
be more productive and helpful to learning for him than sticking with php.

Last thing I want to do is put him off though!

~~~
angersock
PHP or Node or anything that can AJAX without needing a framework--just
something that's easy to hack in. Let the work motivate why he might want to
move to something more complicated, and then point out frameworks.

------
kimi
Clojure is very nice, surely mind-blowing at first. "Clojure for the Brave and
True" is a nice introductions, and funny to read.
[http://www.braveclojure.com/](http://www.braveclojure.com/)

~~~
anexprogrammer
Oh I like that site! Not come across it before.

I think that's a good one to point him to.

Thanks!

------
Bioto
If he already started some python you may just want him to move on to Django
then after he gets the hang of the entire framework down have him move to
flask. Would be somewhat simple since your kind of guided when using Django.

~~~
anexprogrammer
I like that, lots of good Python tutorials. A quick skim of Django docs looks
pretty solid, so that seems a pretty good option, and keeps him close to what
he already knows.

That with Foundation is probably more than enough until he's ready to make
fancy single page apps and learn Angular!

Thanks

