
Ask HN: My son wants to make side money programming - Vivtek
My son has had a little programming experience, and I used to (back when Perl was cool), but it&#x27;s been a while. He&#x27;s essentially a tabula rasa, but smart and sometimes motivated. He&#x27;s 15, thus I think the ideal age to start.<p>What language(s)&#x2F;platform(s) should he learn, and where should he look for freelance work? Ideally we&#x27;re thinking of online venues; we&#x27;re temporarily in Budapest and there are already plenty of hungry, vastly intelligent, obsessively motivated people here, so the local market is probably not ideal, although I&#x27;m not discounting it. (There&#x27;s also the fact that we won&#x27;t be here forever.)<p>To his benefit: I can teach him whatever he needs to know. Well, we can co-learn it, but it&#x27;s still better than hacking in the dark.<p>What do people here suggest?
======
underyx
Hey, I work at a startup in Budapest (allmyles.com), I'll ask the team if we
could teach him a thing or two by passing off some work. We mainly work with
Python, and having him around (office is next to Deák Ferenc tér) might prove
fun for all of us. Remote works for us as well, of course.

Disclaimer: We're rather bootstrapped, so I can make no promises. (Jeez, we
might not be able to afford a 15 year old programmer.) An even larger issue
might be that I think it's illegal to give work to anyone under 16. I'll have
to ask around and if you send me some contact info to bence.nagy@allmyles.com,
I'll get back to you once we've got things figured out.

~~~
Vivtek
He'll be 16 in March, and is a dual citizen. I think you're legal - and that
would be absolutely fantastic. He's fully bilingual and has a bus pass. :-)

------
crdb
I'll take a different tack.

In my world (data) there is a lack of developers - or just people of any kind
- with sound understanding of the relational model and its (only relatively
correct) implementation, SQL. SQL is a very declarative language, high level
and intuitive and easy to write correctly. With a good RDBMS, it's also easy
to optimize when you are resource constrained.

And literally EVERY company out there has a database that needs to be queried,
reports that need to be put out, databases that need to be normalized, data
warehouse schemas that need to be drawn up, data sources to be joined
together, questions that need to be answered and relatively few people to do
the work.

I would say start with bases in set theory and logic in parallel with C. J.
Date's books (which are easier than Codd's original paper as a starting
point). An additional benefit of starting there is he's less likely to shoot
himself in the foot with ORMs later on.

Regarding where to look for work, talking only about Singapore and ASEAN
companies, I get contacted several times a week by agents, headhunters, and
executives from local companies who have these problems. I can't speak for
Europe, but here, a cold approach or a well formed reply to a job ad with
"data analyst" in the title offering cheap ("because 15") but high quality
remote work might work.

~~~
weavie
SQL is a very practical skill for every developer to have, but I think it
would take quite an exceptional 15 year old to be able to stay interested in
it long enough for them to become useful. I would at least encourage them to
learn another language alongside it.

~~~
BWStearns
I learned it alongside learning about how Rails' ORM worked and it made it
much easier to stay interested (I still hate hand writing SQL though). It had
the nice benefit of helping to really understand what was going on in the ORM
and at the DB layer. At that point you can safely avoid abusing the ORM and
creating terrible queries that might otherwise look readable and concise at
the application layer.

------
Beltiras
Python. Fullstop.

Is he interested in games? Make him implement a roguelike, or study Panda3D,
if that's where he leans.

Does he like to design UX? Use one of the wonderful web frameworks (my fav:
Django, but also tornado, Flask, Pylons) and do some webdesign.

Useability applications for the Desktop?
[https://wiki.python.org/moin/GuiProgramming](https://wiki.python.org/moin/GuiProgramming)
more frameworks than you can shake a stick at.

Best calling card you get when looking for work is pointing to what you built.
Rent a DO dyno and post the work there. Showcase cool stuff.

~~~
Vivtek
Yeah, he's so interested in games his English homework is League-specific.
(Ever written League of Legends poetry? It's actually surprisingly
possible...)

We did some text dungeon stuff last year and that almost clicked. But the boy
is mercenary. He washes dishes in Vermont in the summer - when I mentioned
that money was to be had with programming, he sat up straight. I think he'd
never thought about it seriously.

I'm trying to get a sense of "If I were just starting now..." from the
community. And yeah, Python does seem to be ranking rather high, doesn't it?

~~~
joeyspn
Not long ago one of our customers asked us the same for his son (also 15). We
pointed him to game programming with Unity3D. Unity has Python (Boo Script),
JavaScript, and C# styles of scripting. With little work he'll see big
advances, this will keep him interested. After learning the basics, he can
jump to webdev or other fields...

There's plenty of resources for leaning Unity online, on youtube, udemy or
elsewhere...
[https://www.udemy.com/courses/search/?q=unity3d](https://www.udemy.com/courses/search/?q=unity3d)

PS: In 4 months the kid has already sent us 2 games fairly complex and funny.

~~~
Beltiras
I tried Unity while @uni. I liked Boo but I disliked the Unity API. It might
have been a case of not understanding it properly. I was using Panda3D around
the same time and managed to make a game with that.

------
karterk
I started along the same path 12 years ago, so I can share my experience.

* I started with PHP. My suggestion today is to start with Django (Rails is fine too, but Django has less magic and so things are lot more explicit)

* Bootstrapping out of nowhere is difficult. He will have a lot to learn from the knowledge perspective. So, looking out for opportunities, negotiating payment etc. can be draining. This is where you can help so that he focuses on learning his craft first.

* It will be tempting to work for free. Advice him against that. He can work for a low fee, but getting paid puts the work in the right context.

* Stay away from portals like Elance and ODesk.

* Working as an intern at a company would really help him with the other meta aspects like planning, team collaboration etc. which are all important to pursue his long-term goals.

------
nkuttler
It seems like almost everybody who replied is a web developer, and assumes
your son wants to build websites. Let me suggest something different.

Figure out which part of programming he's interested in, why he likes it. Is
he good in maths/physics, does he want to write games, websites, apps, etc.

If he's just interested in "programming" in general, get him a nice book on
algorithms and suggest different languages he can use to implement them
(something C-like, a scripting language, a functional one, a modern Lisp
dialect).

Oh right, get him to use Linux or BSD, as that will give him access to a ton
of free development tools. I also mention free because I don't think he should
focus on making money at 15, but find something he enjoys learning. If
necessary, you could provide incentives to learn this properly, instead of
following possibly short-lived market trends.

------
luch
Generating money from programming is hard, really hard. I'm a professional
developer (though a junior one) and I can't find ways to do it reliably.

If it's still interested in programming, here is my list of languages :

\- Desktop : Python obviously. You can make little graphical interfaces, easy
scripts, manipulate data in Excel or Word, even some remote automation since
there are network libraires.

\- Web : I would recommand against full-blown web frameworks like Django or
Rails. Start small by using some simple static sites using HTML+CSS and then
learn to build dynamic ones using PHP and Javascript.

I would also add that there are others ways to make money than programming : I
know a 17 y.o. which rigged up a farm of Minecraft servers for his highschool
and he's being paid by his classmates for the hosting.

------
chippy
How much does your son want to do programming? Does he do it for fun already?

What other interests does he have? Are there parts within these interests that
could have relevance for programming? For example he might like bird watching,
so perhaps a mobile app for birding might be good, or he might love platformer
video games, etc etc.

In short, he should do what he is interested in, don't worry about the choice
of technology - by far the most important thing is that there is some
interest, passion and enthusiasm. The choice of technology is less important
than the choice of what to do.

------
codingdave
It depends on why he is trying to make money, and how quickly he wants it. But
if this is the start of a long-term career plan, then I suggest doing some
small projects for free to learn more skills and build a reputation.

If those projects go well, he will quickly get referrals to do more, and then
he can charge. On the other hand, if they go badly, people don't feel like
they lost money, and instead will feel that they gave a 15 year old a
chance... and may even give him another one when he is 17.

It is amazing how quickly expectations rise alongside bill rates.

------
jakobegger
If he wants to do freelance work, I suggest browsing job boards on university
websites or on facebook. There are always lots of people looking for part time
developers there.

But as an alternative to freelancing, I'd recommend making a little useful app
and selling it on the web or on one of the app stores. I make Mac software,
and there's a big market for useful utilities on the Mac App Store. The
hardest part is probably coming up with ideas for apps; when you're 15, you
just don't have a lot of experience with the kind of problems people have.

Here's an idea for a simple app, to illustrate what I'm thinking about: Make a
CSV file converter that can convert between comma-separated-files and
semicolon-separated files. If you add hungarian localisation, you even have a
unique selling proposition.

As for what programming languages to start with, I'd probably pick Objective-C
/ Swift if your on the Mac, and C# or Java if you're on Windows, and C++ & Qt
if you're on Linux. These languages are popular, in high demand, will probably
still be very relevant in 10 years, and you can quickly get an internship in
many companies if you have basic knowledge of those.

Why? Native development has a bit steeper learning curve than web development,
but in general the tooling is better (IDE, documentation, etc) and there's
less competition.

------
davidw
I'd recommend this book and the bootstrapping community in general:

[http://www.amazon.com/Start-Small-Stay-Developers-
Launching/...](http://www.amazon.com/Start-Small-Stay-Developers-
Launching/dp/0615373968?tag=dedasys-20)

He could probably do ok with Ruby on Rails, Django, Node.js or something like
that.

------
toyg
15 is late -- by mainstream reports, at that age you're either a billionaire
already or you're never going to make it. </joking>

Back in my days, I'd have built websites for friends and some would turn into
(badly) paid gigs. If he's got other interests (sports club etc) they could
become engagements.

If really he wants to do websites, you'll have to start with
JavaScript/jQuery, then graduate to server-side (node, PHP, Python/Django,
Ruby/Rails, pick your poison).

Consider that the real dazzle these days is mobile, and it's not that much
harder than making websites (or he can make mobile-optimized websites, which
can be almost as cool). It might be easier to get engagements on that side at
the moment, since most people/clubs/businesses already have a website but they
likely don't have an app.

~~~
hga
My goodness, I was 17 when I was first introduced to programming, punched card
FORTRAN "IV" on an IBM 1130 ^_^ (academic year 1977-8). Which I found to be
very neat, but sufficiently frustrating that I went straight to my local
college's library (the machine was hosted at the college).

In general, I agree with those who say that at this age he should play around
with stuff he find interesting, and FOSS and Moore's Law makes that
inexpensive. In the next summer wandering around the file system of a UNIX(TM)
V6 computer for undergraduates went hand in hand with playing the Colossal
Cave Adventure game. I learned enough UNIX(TM) from that, e.g. that system had
a DECtape which started me on backups, which for some reason I find to be
fascinating, to be employable when I was "dumped on the streets" in 1980....

------
vayarajesh
If he is interested in web development I think Khan Academy is a good place to
start ([https://www.khanacademy.org/computing/computer-
programming](https://www.khanacademy.org/computing/computer-programming))

Great teaching lessons and lot of jobs around the world for the web

------
edtechdev
There's contract work - like creating little websites or web apps for people.
So, learn things like Wordpress, CSS, Javascript, image editing, to start.

If I were him, I would first ask around - family, local businesses,
organizations, etc. to see if someone needs a website or internal database or
something like that, and then learn what you need to learn to do it. Another
option might be to find groups or small businesses or individuals that do
coding and see if he can learn from them and help out.

What I wouldn't do is just try to learn programming for its own sake - such as
taking a course or buying a book without any idea of how it might be useful.
He'll just forget it and perhaps even decrease his interest in programming.
Flip it around and find a project first, a reason to learn programming.

~~~
Vivtek
Yes, I've tried the learning programming first route on him. Last time it
_almost_ clicked. Finding a project first is exactly what I think will work
this time.

~~~
galfarragem
Do your son show interest on programming? Or you as a father (and knowing more
about the market) want him to become one to increase his probabilities of a
stable life?

------
facepalm
My personal opinion is that JavaScript is the most fun and the most versatile.
For example if he is into making games, creating HTML5 games with JavaScript
works very well.

Not sure what is best for generating money.

But for learning, starting with a personal project (like a game) tends to work
well.

------
sheraz
Love an entrepreneurial spirit!

Bust first, some comments/questions:

\- Programming is too broad. I would sit down and get him to think through
what he means when he says "make money programming." This can go in a lot of
directions (games, setting up wordpress sites), SEO, data scraping, etc.

\- Get to know the local ecosystem. Check
[http://www.3cosystem.com/budapest](http://www.3cosystem.com/budapest) to see
what meetups are coming this month. (Disclaimer - 3cosystem is a pet project
of mine). Go to those events and ask the same questions here. See what is in
demand. See who is making money locally and abroad.

\- I just checked, and there are quite a few events coming up this month. That
is a good opportunity for both of you!

Good luck!

~~~
Vivtek
Holy schemoley, I really didn't expect so many events in Bp. Thanks!

~~~
sheraz
You are welcome! Please bookmark it or add it to your home screen as I'm
really hoping to get people using it day-to-day.

------
barrystaes
Yes experience is important. I'd say "software development experience =
spending time hitting walls".

So find an interesting wall, and let him spend time on hit. For me the
interesting things where thrill to see the computer do things, but for others
that may be a paycheck.

Do not make cheat time by arranging or buying stuff, except for maybe a
laptop. The time consuming obstacles motivated me a lot, i spent more time and
effort in learning than i would have otherwise. I went through several
programming books that way, just to satisfy my curiosity. Not deliver to some
boss.

Later, ofcourse i descided to work for a boss, but by then i discovered what
exactly i really found interesting.

------
glxc
Learn programming fundamentals through TopCoder and HackerRank, which have
programming puzzles and teach algorithm and data structure fundamentals

Then also get involved in an open-source project, just keep looking for
interesting subjects and find one you like. Programming is more about managing
projects, and it will give you something to put and talk about on your resume,
and meet new people, and lead to jobs

Everything you need is online. "Pick a job and become the person that does it"
\- Mad Men

------
fjord777
Python, specifically winpython 2.7.x You can see variables in the Variable
Explorer and ipython is the default shell. Easy to install packages using the
WinPython control panel.

Download it at [https://winpython.github.io](https://winpython.github.io)
Windows packages at
[http://www.lfd.uci.edu/~gohlke/pythonlibs](http://www.lfd.uci.edu/~gohlke/pythonlibs)

------
steedsofwar
If it's solely for the purpose of making money (as opposed to learning for the
challenge/curiosity) then do some research: freelancer.com, odesk etc etc. I'd
check which technologies are in demand and go from there. It's also important
to play to your strengths, for instance i find web development very finiky, i
tend to excel in more meaty things like transaction processing. hth

------
thejew
I started at 15 (15 years ago). Although today I am a Python guy and generally
a little anti PHP. I think that the ease of PHP with web servers translates
almost immediately with beginners. It will teach him to search for what else
is out there. Plus if he is going to be doing little church/synagogue
websites, he start to grasp HTML/CSS/Javascript at the same time. Same way I
started.

------
bobx11
Maybe you guys should offer wordpress services for setting up websites. Then
you would be:

1\. working within a large piece of software (learning)

2\. up and running fast and feeling good about making progress

3\. able to use google to resolve more of your issues since stackoverflow and
many blogs talk about the common beginner mistakes

4\. have more customers up front (since money is the motivation) where many
people are willing to pay for wordpress setup and management

~~~
Vivtek
Isn't the market saturated for Wordpress? Where would you even market that?
Like I say, locally is a weird situation for us; we're Americans in Hungary.
(Well - he's got double citizenship; my point is that as perceptible
foreigners I'm having troubles seeing a good selling strategy for that.)

------
nnain
Honestly, if the lad's driven and 'wants to make side money programming', he
should be curious enough to ask this question. I find it weird that people are
suggesting SQL or Swift or Python, without even knowing what he's like. Maybe
he likes microcontrollers. Who knows!

That you can mentor him is great but programming needs an innate interest. You
can't really do his homework.

~~~
Vivtek
Honestly, I see him in management pretty soon. He's amazingly good with
people. He's _not_ yet good with people he doesn't know - it costs me nothing
to ask for good platform recommendations on a site I've frequented for years,
whereas for him, posting this question here would be a real hurdle. He'll grow
out of that pretty soon; the trendline is pretty obvious at this point. In the
meantime, I've got some interesting things to get him started on.

------
gremlinsinc
He could also try building something... I'm always trying new ideas like my
latest : GlitterAndPoop.com -- a clone of the ShipYourEnemiesGlitter.com site,
don't know if it'll make money, but took 3 days to build--and everything on
your portfolio makes you look better and better.

------
kamalisreddy
I suggest he start with creating his profile at odesk.com and freelancer.com .
Initially, he needs to apply for smaller projects and at significantly lower
prices than the other bidders. He can build a good portfolio and start moving
to bigger and paying clients.

He could start with web development initially. It's the fastest way to get
going. Then move to other subjects like algorithms, machine learning, Big
data.

Ask him to build some stuff which can solve some real world problems that he
faces in every day life. If other people also face such problems, they will
pay to use his tools.

Good Luck

------
robodale
It does not matter what language. Focus on value creation.

------
jkot
Programming is very competitive market. Python is probably good choice for
first language. Together with programming language I would recommend to learn
some database, perhaps Cassandra, RethinkDB or SQLite.

------
gghootch
A lot of kids start with Wordpress customization or selling themes on
ThemeForest.

------
jacquesm
KISS: Python, Ruby or PHP, Django, Rails or Yii.

If any of those take the world will be his oyster.

~~~
gremlinsinc
Don't forget Laravel, one of the largest PHP MVC frameworks and communities
around, definitely a good choice to get started, tons of great packages too
(checkout Packalyst.com)

------
WorldWideWayne
Don't count out C# and SQL via SQL Server because C# runs everywhere and has
got the proper tools to support it running everywhere (mobile, web, desktop)
and SQL Server because it's the easiest to start using with C# if and when you
get to that part...

Other languages like Python, PHP, Javascript etc. need to be shoe-horned into
their mobile, web or desktop environment and don't have really good tools for
one environment or the other. Furthermore, those languages come from the open-
source world, the "Bazaar" if you will and they're simply not engineered as
well as an industrial language like C# or Java.

------
Thiz
Swift.

The money is in mobile right now, and for the foreseeable future. Try Java for
android too. In a couple of years he'll be making good money without leaving
home.

Or anywhere in the world for that matter.

~~~
nsxwolf
There is money in mobile games, but not for the independent developer. And it
would not be easy for a 15 year old to get hired into a large mobile game
development house.

------
willholloway
A $450 Seiki 50" 4k display makes an excellent teaching tool. It's so large
you can see code from a higher elevation so to speak. Visualizing and "seeing"
how a script flows become much easier. You can stand by the display and point
to how a function call executes the code where the function is defined and
things like that.

This is the stack I would set up with, optimized for ease of use, elegance,
and market demand:

Debian sid or Ubuntu

Tiling window manager

Vim

Python flask on the backend

Bootstrap on the front end.

A hacker that is comfortable with Linux and the command line, python, html,
css and js can find work anywhere.

~~~
wingerlang
> .. ease of use, elegance ..

I wouldn't put Vim or ubuntu on either of those for a somewhat beginner.

How about, sublime and some web server like AMPP. That's way easier to get
started with. Literally no friction.

~~~
gherkin
You've got to start somewhere. More often than not you start with the easiest
option and find that you're knee-deep in crap a ways down the line. If all you
care about is ease-of-use over learning opportunity you might as well default
to Windows with whatever flavor of Visual Studio you can get.

