Ask HN: What is the best way to spend my time as a 17-year-old who can code?
I'm 17 and I can code at a relatively high level. I'm not really sure what I should be doing. I would like to make some money, but is it more useful to me to contribute to open-source software to add to my portfolio or to find people who will hire me? Even most internships require you to be enrolled as a CS major at a college. I've also tried things like Upwork, but generally people aren't willing to hire a 17-year-old and the pay is very bad. Thanks for any advice!
My GitHub is: https://github.com/meyer9
198 comments
[ 4.6 ms ] story [ 249 ms ] threadThe challenge is that (at least in the U.S), you can't consent to contracts until you're 18. This is legally problematic for most organizations; corporations rely on contracts for things like confidentially agreements, intellectual property, payment of wages, etc, and having someone who hasn't signed these contracts working on this can muck things up. You might be able to find small organizations that just don't care, or large organizations that can silo you off and have you work on some throwaway projects, though. When I was your age it was the thick of the dot-com boom and there were a bunch of small local businesses or community newspapers that needed websites done. It's a different time now, but that same customer base might be similarly willing to have a teenager do some work for them.
This is not quite true. You can enter into a contract at any age. However, if you are under 18, the contract is voidable by you (voiding a contract -> neither party is bound by it any longer). It is not voidable by the other party.
So it's not that you can't enter into a contract, it's that this is risky for the business, because you are not bound to honor it.
Source: I took a business law course in the spring. Obligatory: I am not a lawyer and this is not legal advice.
Also, read tech news to get the latest technology trend and what's hot in the area*Can read from http://www.pxlet.com). At this age, gain experience and build a strong foundation is the most important thing.
Then involve in open source projects by starting to read their source code and use them and submit patches and then you can get sense on how frameworks are developed and maintained.
Once you get the experience, it should be easy for you to get an ideal job. Don't rush before you get ready.
When I was younger, I used to think: "Wow, I want to create the next Facebook." I was envious. Thinking like that set me back and I was just trying to create a "mimic" of Facebook. "Everyone is going to use my product because it will be so much better." False.
It's not that you can't build something better, but don't try to be the next Facebook or the next Google or the next Twitter or the next... anything. They are huge and established. To try and "break the public" out of using these is almost impossible.
Create something different. Start on small projects so you can learn. Just start creating small useful apps that you and your friends and family can use. Practice and get good at what you do.
Just a few examples of some projects that I've worked on in the past that are now live and in the wild... https://mypost.io and https://scamshare.com
I've got at least a half dozen more projects in the works. It seems with each product I release, I'm learning and it is often well received. Unpredictably, MyPost.io became very popular in Russia. ScamShare received 21,000 visitors in about 2 weeks. I mean.. nothing to brag about, but its just getting used to some exposure and seeing what things I can create that people can use and enjoy.
My next few apps that are being released will be subscription-based.
Anyways, get comfortable with creating stuff and learning about what people like. Learn how to develop your own personality and style of your UI.
Eventually, there are two ways you can go:
1) Work for someone. 2) Work for yourself and your clients.
I'd suggest after you graduate, go work for someone for a few years. Learn how business work. See that world for a while. Then if you get tired of it, start thinking about going into business for yourself.
Also, don't forget to be young and get out there in the world. You'll have your whole life to spend behind a computer screen and being part of the world gives you a greater understanding of the roles your skills can play in it.
Build something and charge for it.
Then do it better.
It's both a good way to learn and accidentally stumble upon a business model.
2.) If you do own project, do something small. It is enough to learn technology and ability to come up with vision is different skill then coding. Technical demos or community challenges are fine for portfolio.
2.) The best way to find first job is through people you know. Yes, it is unfair, yes it requires social skills, but it is what it is. Go to meetups in your area even if they are about technology you don't care about. Talk with people and mostly listen to what they say. Something may get out of it.
You can reg a domain name and have your own project or idea/app/affiliate/Adsense site up and running for next to nothing, except your own time.
Similarly, you can build a small Windows or Mac app, a little $10 utility or tool.
I don’t think an OS related portfolio is needed at all, actually.
I personally would start in that way, as you are in full control then in what you do. It could be something sustainable you build, make money with and looks good in your portfolio while doing so!
Code a lot. Understand non-blocking I/O, memory management, parallelism.
Learn everything about networking you possibly can. At every level.
Hone that skill set over a few years and you’ll be invaluable.
You can study a ton and learn all the algorithms in the world but you have a lot easier time learning on the job in a position where you wouldn’t need them. If you’re still in high school ask if they have any local business connections that might need your assistance. I did mostly websites but I also never turned down general it help for people that had a computer that didn’t work right. I also did real invoicing and tried to treat it as a business.
How would you recommend finding them then?
In general I think you are on the right track -- you need to find some way to validate your skills when it comes to programming. That might take a few projects. It is also likely that the first clients don't care about the technical details as long as the thing works. It might feel like the people don't appreciate your skills, but as long as you are actually enjoying what you do, you shouldn't be worried (this also applies to the 'wtf go be young advice'). Better clients (or companies to which you interview to) will be able to understand you later on.
Getting a degree is highly recommended. If you don't want to go to a full time on campus uni the University of London's International Programme is great and cheap.
http://www.londoninternational.ac.uk/usa
Do sports! One that doesn't involve hitting your head on stuff. Read some of the philosophy greats. Appreciate art at museums. Go to social events like school ski trips, meet friends and ladies (or guys if that's your thing). Make a couple minor bad decisions so you know how to handle the consequences. Go to concerts. Show your parents gratitude if they've done a lot for you (protip: they have). Don't take these years for granted.
You can be a successful coder and still have time for these things. Don't railroad yourself into workaholism, maintain a healthy balance. It'll do you good!
So to summarize the advice from the dead to jmeyer2k:
1) Don't use Flash.
2) Whatever tools or languages or libraries you choose to use and put a lot of time into learning and becoming proficient at, don't sweat it when the die, just move on to better tools. It will happen again and again. It gets easier and easier each time.
(I guess I commented because I honestly couldn't quite understand or figure out the logic that went into sifdine's comments.)
Don't forget to readjust your "don't even think of that because it's impossible" filters each paradigm shift.
=Bd I'm king Games :) we not want hacker bad :D !!!!!
i am ip level S! !!!!!!!! Tc :aod get free HACK
a:D are your can get hack games for free Pro
ae ait ahr g< >k StReam Tyou D LLapo Faxei ifsx id
What's the best way to spend your time? Basking in the sun. Finding a scam to score some schnapps or beer or weed. Telling somebody you love them, and just going for it. Recklessly driving a car at a high rate of speed down an old country road. Learn how to play a bass guitar. Spend your waning hours getting your hands dirty while there's still time, and before the world judges you too harshly for wanting to live in it.
And if you've done all that, and you're bored with it, maybe it's just not for you, or whatever. Then work on projects that interest you. I spent a lot of time perfecting photo galleries, and was able to stretch that in to a modest career and a house that went in to foreclosure. Linux could use a lot of things still: there isn't one good kick ass music player to rule them all like iTunes on the Mac. There just isn't anything for organizing photos like iPhoto. There's gaps in the Linux user experience that need filled with good competent software that isn't a maze of checkboxes and sad UI/UX. And if Linux isn't your bag, well, fucking learn some of that then. When I'm not a programmer, I'm a Linux server administrator, because when one don't pay the bills, the other one will.
But my stone cold honest advice: Live. Live well.
I won't disagree that the most important thing is to enjoy life, meet people who have real problems that need solving, and to build relationships that could last a lifetime.
That said, I spent a lot of time on the computer when I was 17 (and 18, 19, ....). I still draw upon that experience today. Sometimes, when I solve a problem or fix a bug, it's rooted in something I did way back when I was 17.
On the other hand, I also wasted a lot of time too.
My advice is to get close to a real problem. Intern somewhere. Do it for free. Get close to real work, roll up your sleeves, and try to contribute. And have fun.
If you are being paid, they very might well ask you to fetch lunch and dry cleaning. And, since you're being paid, you feel obligated to comply. Many interns have that unfortunate experience.
If you're not being paid, then you just say no thanks, I'll go home instead.
I could code at 17, but I focused on school until I graduated. Then I got a job doing freelance game development when I was 18. Paid better than stacking shelves at the local grocery store and I was learning.
I don't do game development now, I'm in my late 20s and run my own software development business. But I don't drink (never have), never drove a car like an idiot (I even have a motorcycle license and never rode a bike like an idiot). I went to Amsterdam and tried weed, as an adult, good luck doing it when you're 17.
I'm married, have hobbies, play sports, play guitar, whatever. But those are my personal interests, and my personal choices, everyone is different. Clearly the OP came to Hacker News asking for programming career advice, not advice on how to live his life.
So my advice is, find something programming related that you're interested in. Teach yourself, post some stuff to Github and then find some work in that area once you've got proof you can do it. Manage your expectations, don't expect to be paid well, expect resistance from ageist co-workers, but also respect them because there's always room to learn.
If I were 17, I would've focused less on my programming career, and more on life itself.
But that's the rub. No take backs. No retrys, no continues, no replays, no New Game+.
So I feel the best I can do, if they're asking, and I've been there, is to tell it how it is in my heart.
Those early friendships and social contacts are extremely useful in later adulthood. Be it support, advice, whatever. They're also a great gateway into meeting more people in an unguarded setting, like a dinner party. It's easy to make friends when you have friends, it's much harder when you don't know anybody.
The greatest advantages of being a teenager are the free time, possibilities, and lack of responsibility. There are hobbies I had in my youth that I literally could not pull off with a wife and child. I don't care how understanding and loving my wife is, me deciding I'm going to take off for two weeks to hitchhike across Europe by leaving a short note is not going to fly.
Sports, guitar, motorcycles... they're not teen hobbies, they're shit adults to do feel like we're still alive. To feel the way teens feel lying in the grass on a warm day and not giving a damn.
Perhaps the problem here is that there are two groups of people, those who feel like they're aren't alive and do things to try and feel like they are, and those who don't need to lie to themselves to feel better.
I understand what you're saying in your post above, but I think it's wrong, personally. I know many people now who followed that route and their lives suck now because they didn't invest in themselves early on.
Sure, you have some cool memories, I have some cool memories too, but when I sit here, with my one-year old son asleep upstairs, my dinner cooking away in the oven, it's not the past that my mind is drawn to, it's the future. I think about what the next year will hold, what the next five years will hold, and what we'll do in a decade. I don't sit here thinking back to the summer days I spent out underage drinking with friends, those memories are slowly disappearing one by one as I live my life, but I do remember the time I spent working on projects, exciting work, responsibility free work, starting my own business at 18 was better than drinking in the sun and waking up feeling like death still dressed in a corner of a mates kitchen.
You can spend your teenage years living it to the max, and when you come to the end of the line, you can derail and find yourself stuck in the shit, or, you can start to invest in yourself early on, while you don't have a wife & child, while you don't have meetings to attend, clients to keep happy, and bills to pay. While your brain is still fertile and you pick things up at twice the rate you will in your 20s and 30s.
"Have fun" is exactly the advice we should be giving OP, but telling him what fun is, that's not how it works.
So OP, have fun, in whatever you choose to do. Don't stop enjoying life, for in every circumstance, there are things that can bring you joy.
Programming wise, practise. Practise practise practise.
Start a project. Make a game. Commit every day for a year. Interact with other developers in a field you enjoy. And don't be afraid to fail.
Twenty years later, I don't really remember the parties, I don't recall the code, or the late nights out... but I still cherish the friendships I made. I can trace 90% of my career to people I met, who introduced me to others, who introduced me to others. You can't make those connections at 40 or 50, you can always learn another language then. The world is full of coders who have horrible jobs, because they are poor at interpersonal relations. They're a skill like any other, and 17 is a perfect age to work on them.
I had to endure few shitty jobs because of lack of connections but that got fixed when I eventually did make good ones. And that happened without any deliberate effort. I can't comment on the importance of working on inter-personal skills but in my experience, being stressful about it doesn't help.
[1]: https://en.wikipedia.org/wiki/The_Road_Not_Taken
Kids will force you into having less friends but the friends or family that remain will be closer plus kids will force you into social situations. In your 20s you can give trust more freely because you have less to lose but when you involve kids the trust and closeness requirements increase so the circle decreases.
I think the desire for a lot of friends goes down as well the older you get as well.
Thank you.
But I always recommend people travel internationally in their 20s. Sure you can do it when you’re older. And it is still amazing.
But there is something about traveling in your youth that can’t be captured later in life.
If someone is only "looking at stuff and eating" as they explore the world, then they have given up on exploring themselves (maybe temporarily, maybe permanently). There is plenty of opportunity and reward for growing ("exploring oneself") when you're older, and choosing not to is simply the path of least resistance that many/most people seem to take.
Lots of younger people seem to think that the spirit of life starts to die after some age (30?) or life event (having kids?), but based on people I know who have passed these milestones, that is completely not a fait accompli. Quite the contrary.
Not all teens enjoy what is described in the first paragraph. So if it is not your cup of tea, then don’t be afraid to be true to yourself. If living well for you means spending time in your basement in front of your monitor, reading books, barely interacting with other people, then just do that. Don’t try to fit yourself in something that you are not.
Regarding coding, my advice is find an interesting project and code it in as much languages as possible. C, Java, some Lisp, Erlang, Ocaml, Haskell and Scala.
Even then, for 90% of the people there far more obligations >30 (partner, kids, mortgage, work, etc.). When you are young you are much more agile, enjoying that is good advice, or you might be 40 and missing the life that you never had. Of course, you can enjoy the freedom in many different ways - if you are into programming and free software, go to FLOSS conferences, meet people, hack together, enjoy dinner together, etc.
I started programming when I was 10 or so and was reasonably good at it when I was 17 (as good as a kid without Internet, Turbo Pascal, and a couple of library books can be). Even though I ended up in computational linguistics, I feel blessed that I got fed up with programming when I was 18, and decided to study philosophy. It was mind-expanding and lot of fun. I ended up in CS/CL, but much more energized when I would've dived into CS immediately after high school. Of course, the low tuition fees in Europe allow you to make some detours ;).
At any rate: find a nice project and find other nice/smart people to hang out with.
I've never understood this. How can you miss something you never had? Is it that people regret not doing something? Everybody has regrets, but I'd regret losing everything I have now more than I'll ever regret not having done something in my childhood.
There's a long-lasting joy in creating something and sometimes, for some people, it might be mightier than any crazy party would give.
I'll never forget the wonder I felt, the joy, the prospect.
How about instead you balance out doing what you want and doing what's required to reach your goals, at all times?
I have a slightly different twist on the same advice. Living well doesn't necessarily need to be the "cool" stuff such as described above. Nerdy things can be cool too. Learn math, or physics, or electronics. Studying those things was "living well" for me. It could expand your options for what you can do with programming, or for when you get bored with it.
To the OP: if you don’t like becoming an average older person, avoid following average older people’s advice. Think for yourself.
And there is compounding impacts for seemingly trivial decisions you make at 17. They are more important, not less, than the future decisions on that factor.
Also, I hate to point out that 17 isn’t that young. That some people in the thread are so underestimating of 17-year-old capabilities is disappointing.
They really need to make Alan Partridge does Silicon Valley.
This was definitely my mindset at 17 (and today).
This profession, more than any other I think, can allow you to disappear from society chasing knowledge for its own sake and it's pretty easy to wind up 30 with a fat stack of cash and glowing career but no friends, no family and no way to efficiently bootstrap any change.
If you don't want to smoke weed, drink/party, chase girls, play in a band, that's fine, but be absolutely sure you don't want to. And you probably never will feel absolutely sure; so just go do them anyway - that is the only way to know. A 17 year-old running around, drinking, partying, speeding, chasing girl after girl, acting awkward, etc. makes a lot more sense than a guy in his forties or thirties doing those things. You'll build social skills and have a lot of fun in the process. Of course you can still do these things as you get older, but it won't feel right. You'll feel immature and lagging behind, at least I feel that way.
People treat and perceive you differently as you age. The most valuable thing about Youth is the degree and amount of social and romantic opportunities available to you. Take advantage of them.
OP, don't listen to this crap here's the stuff I wish I'd done four years ago:
- Look at real systems in the wild and ask yourself "Could I build that?", if the answer is no figure out how to and try it. I mean websites, command line tools, applications. Once you start looking at the world of computing through this lens and thinking about it you realize just how much you still don't know.
- Focus on the CS fundamentals, look up the algorithms textbooks employers will have expected you to read during college and get a start on them early. The fundamentals change much slower than the latest web framework, and if you master them you'll be employable for much longer than someone who only has a long string of obsolete web frameworks to their name in 20 years.
- If you have any hobbies you'd like to pursue, find a good book on them and do it now because you're actually not going to have all that much time later. Especially if you're pushing yourself and pursuing projects, secondary things you want to learn will start falling by the wayside. I still haven't found the time to learn piano.
- The world really is full of interesting problems to fix. Here's some advice on spotting them: http://www.jdpressman.com/2017/08/28/the-favored-mindset.htm...
- Figure out what you really want as early as possible, and I don't mean "from your career" or whatever. I mean what you want period. Lots of people say they 'just want to be happy' because that's a default trope, but if you really just want to be happy your best bet is to become a Buddhist monk. You have to think beyond such things if you're really going to find a coherent self identity.
Some stuff I did do four years ago and would be hurting if I hadn't:
- Figure out how to reliably have a great conversation with people. Carnegie's famous How To Win Friends And Influence People will get you most of the way there. This is a skill you'll use every day of your life just about, and it'll really help you get towards some of that living the parent insists is vital.
- Start trying to meet people outside of your traditional high school friend group. Unless your high school is truly elite, whoever your friends are there are probably kind of stunted and ineffectual compared to the people you can meet out in the 'real world'. Pay some mind towards how much others can help you, but people who base their entire social life around that I'd think live sad cynical lives.
- Don't get lazy, keep pushing the limits of what you're capable of. In order to learn you always need to be just a little bit outside your comfort zone. If you always stay within what you know you're capable of you won't learn.
The fact that you are asking the question tells me you are on the right path. Keep learning and honing your skills. If college is in your path, use it to get better at fundamentals.
Don't just code. Learn the fundamentals of software engineering.
I'm a bit surprised that so many commenters here are reacting to the second paragraph as if it described an extreme lifestyle that would inevitably lead to ruin, or as if you need to make a choice between having these kinds of experiences and being a successful, fulfilled adult later in life. Neither of those things are true.
Here's what I believe the parent post is saying, but stated differently: try all the things that life has to offer, and get outside your comfort zone. Let yourself make mistakes. Explore. Try to connect with many different kinds of people, especially people who aren't like you. Push the boundaries a little. When you find something you're passionate about, dive in, but be sure to come up for air regularly and enjoy the simple pleasures of life.
Don't let the anxieties or negativity of others stop you. If you do those things, I promise you you won't regret it.
I did go out drinking sometimes and it was fun but living it up depends on your personality and if you are not naturally social its probably not going to be enjoyable pretending to be that guy. Plus at 17 everyone will see through it and not be polite about it.
I don't regret studying hard at 17. I had a passion and enjoyed learning. Was a great part of my life when other things were not so great.
Also: don't forget to just switch off your computer and be 17. I'm 40 and I can code as much as I want but I can't be 18...
Forget working as a developer at 17. Use your time for something better.
While you're young and don't have crucial responsibilities like earning money, you can spend your time however you want and not be pressured into doing anything in particular.
That means you can try a lot of things and make a lot of mistakes without worrying. You get a lot uf unbroken time to focus on one project if you want - find a problem that interests you and figure out the hell out of it. In all likelihood, it won't pay off immediately, but you will learn a lot and that will help long-term. Or, dip your feet into a lot of different things until you find something you're passionate about.
This is actually general advice. People don't think much of the young, so you can do many things you're "not supposed to do" later, i.e. get in trouble with few consequences.
Perhaps this isn't an answer about how to gain traction as a coder. While I'm not an authority, contributing to Free Software helped me immensely. Find a project with contributors from large companies and spend a few months asking questions and helping out. You will make useful connections and will stand out for recruiters.
So, kind-of-open secret about requirements listed in job descriptions: they're bullshit. Not meeting them is an excuse for folks to throw away resumes if they need to, but with the job market like it is, they often don't need to.
If you can code, it just means that your response rate is something like 2% instead of 4% or whatever. If you want a programming job and you're okay with the least-effort option of web dev, slap together a web app of some sort in a week or two, put it on github, and send out a hundred resumes or so. I'd be astounded if you didn't get at least a couple of phone calls.
Worst case you're out some time. A decent backup option is to attend the best CS school you can get into for as little time as it takes to get an internship/coop/cofounder and then drop out.
i know broke people who just surf or hang out all day and they sure seem happy.
i also know rich people on a mission in life, and they are very unhappy, or will constantly find something to be unhappy about, so the net effect is just never being happy.
I don't have much work experience, but I am employed at a global top5 tech company and the number of people around me who are miserable even with all the benefits the company provides that outsiders consider sources of happiness (above median salary, indoors swimming pool/gym, free food, onsite medical personnel [gp, dentist, therapist], flex hours) tells me that it's not entirely up to the environment.
The happiest people are the ones that seem to do whatever they feel like doing. I've also noticed that almost all of them, fit or not, go to the gym and do some sort of physical exercise.
I'm in my early 30s, and two very important things I've realised are: - Life is happening right now. Not in a year or 10. Plan ahead if you want to, but don't sacrifice so much that you're not enjoying yourself. - Nothing is black and white. Life is not a piece of code; things are not 'either 1 or 0'. Everything exists on a spectrum; everything is a shade of grey. Even the things you think are absolute truths can be inferred to be different in other circumstances.
Pink Floyd's lyrics have always resonated with me, and I guess this is one of my favourite bits:
which is followed by a take on modern life and how it requires us to work at all times: Do whatever you feel like doing, but know that with every decision you're choosing a path which is different than the one you could have taken before the decision. Sure, you can follow multiple paths and achieve more goals, but there will always be something else you could've done......and that's OK.
Now, if you must spend your time coding, don't do Upwork, don't do freelance. Instead, solve problems for people who don't realize they had problems to solve. Talk to your friends, parents, grandparents, find out what bugs them in their day to day life. Observe what they do and think of how they could optimize it.
Help them by creating tools to solve their problems. That's what programming is - telling computers how to help us solve problems. To code isn't the goal, the solution is. If you figure that out, figure out some skills in that area, you're ahead of 95% of the people coming out of CS schools who still think the point of their 4 years degree is to optimize a sort routine.