

15 year-old needs your advice - goshakkk

TL;DR<p>I'm a 15 year-old geek and developer from Belarus (think of it as of Russia). I care about perfect code and perfectness at all.<p>Let me tell something about me. I started coding when I was, I remember, 9. My first language was PHP (now I hate it though).<p>Some time later I started learning Python, in the hope to know more, and be more educated. That time I already knew I gonna be a developer. No other way. I kept myself being educated by new and new things about python, and actually about the web and computers. I learned many things, like linux system administration, the power of command line, etc. Most of all, I think I started seeing the life a brand new way.<p>Then, when I was in a search for something even better than Python (which, honestly speaking, amazed me a lot), I met Ruby. Well, I abandoned python and digger deeper in Ruby. I explored some part of big ruby world. I realized that Ruby is exactly what I want and what my perfect-aware nature need.<p>I learned Rails, then I learned MongoDB, and so. Pretty neat. Everything seemed cool, but I realize now I think I know many thing, I feel unwillingness to learn something new. I became too lazy and procrastinated, that's true.<p>But from time to time I feel new energy to learn something new, to make the world better. I do some research on what to build or what open source project to join but I end up with absolutely nothing.<p>As I told before, I gonna work at some IT company when I reach 18. Well can I ask you to give me some tips?<p>I doubt what open source project to join. HN suggested me before to help one of my favorite project to become better. I have many favorite projects. Some of them are complex and some of them are easy. While going to projects' pages at github I looked up Issues in a hope to see some feature requests. But most of issues was bug reports or pull requests. I didn't want to work on bugs, I wanted more to add new features. And again I ended up with nothing. Can you give me links to some interesting Ruby open source projects? Or suggest me ideas on what to build?<p>Another question is how can I minimize distraction and procrastination, get rid of laziness, become more productive and keep myself interested in learning new things and in self-improvement? Because I feel I have much power, but I do nothing with it. I waste it and my time.<p>Also I have some thoughts on my future. I have several options. First of them is to reach 18, move to San Francisco, Toronto, Vancouver, Melbourne, &#60;any other city name&#62; and work for an IT company. I have several companies in my mind, but most of all I feel desire to work at Github. Another option is to start studying at the university, Berkeley, Stanford, &#60;any other university name&#62; first, and then work for a company. Personally I think education now means nothing for a developer. But I'm wondering if studying is really worthy and can give me some excellent knowledge in Higher Math, AI, etc. So which option should I choose, what's your opinion?<p>Maybe I also should get rid of my perfectionism?<p>Thanks in advance.
======
LargeWu
Here's my advice:

STOP BEING SO GODDAMNED SERIOUS!

You're 15. You will have your _entire_ life to work. The whole point of being
15 is not having to worry about this kind of stuff.

I'm not saying don't work hard, or don't be passionate. I'm saying if you
think your future is defined by what you're doing at age 15, think again.
Please, please, please, enjoy being young. I know it sucks sometimes. But
don't wake up on your 40th birthday and realize you've spent your entire life
working. No matter how hard you work, you will never get the chance to be 15
again.

~~~
ohashi
That sounds nice, and I can't speak from a 40 year old perspective, but around
15 (I was 16) I started using my minimal programming knowledge to earn money
and learned a lot about business. It happened because I moved to asia and
couldn't play video games online and didn't know what to do with all this free
time, I had internet but not fast enough to play games. I ended up stumbling
on the world of domain buying/selling and have made a living off it for years
because of the work and knowledge I acquired mostly early on back in high
school.

I am not saying don't have fun, but sometimes an early advantage like that
opens more doors for the rest of your life and teaches you skills well beyond
your age. In fact, I might argue I got to have more fun (living abroad,
traveling, buying almost anything my consumerist heart desires) because I
actually put in some work really young and it paid off handsomely.

------
josem
I think most contributions to open source projects come from a necessity, so
you can start to create web apps, a todo list, a chat, whatever you want, and
eventually when you start to use open source projects (usually gems if you use
RoR) to build something you'll probably see some features that would be cool
to have.

Even some whole open source projects are created because someone needed
something and after googled it didn't find it.

If you can make money and/or help someone while you are building those real
projects would be awesome, if not, create new things from scratch, and
eventually you'll create your open source projects or at least you'll make
pull requests because you needed something for that project.

I hope this helps, thanks for sharing your story :)

~~~
goshakkk
As of creating simple web apps, etc. I said before, last months I can love the
idea one day, but I can lose interest on another day. I've also asked some
advice on how to stay interested. I think the loss of interest after starting
something is one of my biggest problems, yeah :/

Not sure I can money at all...

Alright, thanks for your advice anyway.

~~~
josem
Self-discipline is a must, it doesn't matter the project you are working on,
the motivation goes down from time to time.

Anyway I think you are young, really young actually, so keep starting
projects, one way to keep them interesting is to see those projects as
solutions to problems and if that helps you out with something real that would
be perfect (like a to-do lists manager).

If you can't keep working on the same project for too long, well, don't worry,
you've learnt english and you are smart enough to know some things at 15 (many
proffesional developers didn't know how to program at that age, and even
later). So try to study more, learn new things and eventually you'll start to
create things.

To be more productive try to exercise, that will help you to be more self-
disciplined and it'll give you more energy.

------
impendia
Steve Jobs said that when he was in college, he took a course in calligraphy
just for the hell of it, and then later it proved invaluable when he added
scalable fonts to the Mac.

Moral? Find something cool, something that interests you, something you _want_
to do. There will be time to change the world later; you clearly have the
ambition and I'm guessing you have the talent also.

For now, I think it makes sense to just pick something, probably something
small, and do it. Whatever you choose, you will learn something -- and you
will probably learn something that you weren't expecting!

When you are 18, I definitely recommend you attend as good of a university as
you can.

Good luck to you!

------
gary__
Some of those open source organisations who participate in Google Summer of
Code have put together interesting projects they would like to see
implemented. You have to be 18 to enter the program, but i dont see anyone
having a problem with you choosing to run with an idea on your own.

There is also the "Google Code In" aimed at the 13 - 17 age group coming up
this November, which involves completing smaller tasks with the help and
guidance of mentors again for open source projects. See <http://www.google-
melange.com/>

------
chubs
You sound like you have an awesome attitude! Maintain that attitude, it'll
take you further than any technical skillset will.

As for your dream to work at github: learn objective-c, and make an ipad app
that allows you to code on an ipad: pull a project, change code, and make
commits back upstream. If you do that well enough, you never know you might
get a job offer. And if not, you'll make enough money selling the app to not
care ;)

(make a few smaller apps first, though - don't fall into the trap of biting
off more than you can chew to start with!)

~~~
goshakkk
I'm in attempting to learn objc, and iOS dev now, BTW :) As of that app for
iPad. Well I have seen Codify yesterday, it looks cool & has a similar idea,
However I can't develop for iPad, I have no real iPad, simulator is not the
thing I need for development, real device is better.

Thanks for advice though.

------
msinghai
Firstly, let me introduce myself. I'm Mridul, 15. I run a micro banking
service. I would like to suggest you a few things. First, don't care about
jobs. Second, keep on learning. Third, check this <http://www.feross.org/none-
of-us-knows-what-were-doing/> . Fourth, I can't understand why is everyone in
such a rush? Be calm and carry one. Fifth, if you want any further tips,
contact me mridul[at]solmri.com

------
aksx
I am 17 and i totally understand you. i started with php too then c#,java and
now i am at python and lovin it. i also started when i was young (12 years). i
am from india. as much as i want to start working anywhere i understand that
education is very important so i'll be trying to get into a good college next
year and study cs and will advise you nothing different. best of luck akshay

------
leeHS
Forgive my ignorance, but is there an IT community in Belarus?

IMHO, I would go for the Computer Science degree. I didn't, and as a result
had to really work to get a foundation in CS theory. I'm still working.

Good luck to you. At least you know what direction you want to go. At 15 I was
still trying to decide between computer science, biology, and art! :)

~~~
goshakkk
And now I need some way to keep myself stimulated & interested. Learning
something new, contributing to open source. And again, my laziness.

~~~
leeHS
You seem like a smart kid. I would stick to what you're doing. Seek out other
geeks and program with them. Contact companies that interest you and offer
your services for free. Show them what you've already done. Keep working on
your projects...remember, this is your portfolio. So when ever you get lazy,
or lose interest in a project, just remember that at the very least you should
finish for the sake of this portfolio.

I'm sorry, I don't have any links to interesting open-source projects.

Keep at it. Sounds like you're on your way to great things.

~~~
goshakkk
But I don't want to waste my time anymore. Honestly, I have no public projects
at all, nor current personal projects. I know I need a good portfolio, but ...
I have no idea on what to build, neither for personal/public purposes nor for
portfolio. And I'm sad due to that.

I remember several years before I was building some new stuff for myself, I
explored things, formed my toolbox (which, BTW, changes very often). I felt
more self-satisfaction that time, now I feel almost no self-satisfaction. :(

And a though about portfolio doesn't give me a new portion of energy. And
doesn't gimme a portion of creativity to generate an idea on what to build.

------
devs1010
You're already well ahead of where most people who become programmers are at
your age. I'd recommend looking for freelance work online and start getting
paid work experience as soon as possible, there are a number of freelance
sites for this... then you can start looking into how to get a visa to work in
another country when you turn 18

------
hansy
Fixing bugs isn't sexy, but it's a pretty good place to start to familiarize
yourself with the open-source project. As you work through the source code
tracking functions, you'll be able to see different parts of the project, and
ultimately, places of improvement where none existed before (i.e.
unimplemented features you can write).

~~~
goshakkk
Well, I also noticed a lack of good bug reports. I don't want to start with
projects like Rails, because they're too complex. On another hand minimalistic
projects like Sinatra have almost no issues on github. I want something at the
middle, not complex, but not so easy as 1-2-3 that have no bugs.

I can't choice a project anyway. Some your suggestions please?

------
sathishmanohar
TL;DR;

You should probably go outside, make friends, enjoy life.

I've been through the exact same steps, PHP > Python > Ruby. I'm glad you got
here so young. But, these codes won't give you ideas or purpose or
inspiration. They comes from REAL WORLD.

So, Go outside, Make Friends, Enjoy!

~~~
goshakkk
I go outside sometimes, have both real & internet friends. Well I'm trying to
enjoy my life.

But I have many thoughts about my future career and my future at all.

------
leeHS
The other day I was at a charity who are really making a difference in my
community, but who are lacking much needed IT support. I'm really considering
offering my services for free. Not only will I be able to continue developing
my skills, but I'll be helping a really great cause.

------
davidhansen
"I care about perfect code and perfectness at all."

"While going to projects' pages at github I looked up Issues in a hope to see
some feature requests. But most of issues was bug reports or pull requests. I
didn't want to work on bugs, I wanted more to add new features."

This is a huge problem in open source projects, and you're not alone. Throngs
of developers who get off on clean, functioning code, but then turn their
backs when presented with an opportunity to replace ugly and/or broken code
with something better. I don't get it. Why the hesitance to engage in the
pursuit of what you profess to care about?

~~~
goshakkk
"This is a huge problem in open source projects, and you're not alone."

Yeah. And because of it I want to see some project with great Issues, or to
see some idea on what to build myself.

"Why the hesitance to engage in the pursuit of what you profess to care
about?"

Even though my English appeared to be not bad, sorry, but I didn't get this
sentence. At all.

~~~
leeHS
He's saying that if you are a person who likes perfection, why do you not want
to join projects to make bad code perfect, like debugging projects.

~~~
goshakkk
I think it's really, really hard to dig into somebody's else undocumented &
dirty code.

And, I think, to start I need to add some feature, learning by the way of
implementing it, about how project is organized, and thinking about how can I
refactor its code, etc.

