21 ms·
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
- nostrademons 9y agoI'd try to get an internship if you can. You learn a lot working with other people and having a team depend upon your work. Plus it looks great on college applications. The 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.
- smichel17 9y ago> The challenge is that (at least in the U.S), you can't consent to contracts until you're 18. 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.
- github-cat 9y agoGet experience by doing some side projects you are interested in and work on some real stuff. Learn while solving problems will be the fastest. Of course this relies on that you already have some knowledge on coding and have a relative good grasp of different aspects of software development. Also, read tech news to get the latest technology trend and what's hot in the area*Can read from http://www.pxlet.com 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.
- mattbgates 9y agoI'd recommend this: 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 https://mypost.io and https://scamshare.com 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.
- deleted 9y ago[deleted]
- JBlue42 9y agoTo branch off of this, you're also 17 and have a better idea of what your cohort is doing or interested in than all the marketers in the world (who try and sell / create things for you). Solve problems you're interested in or come across that maybe your friends bitch about. If you're ever in conversation with your peers and you hear someone says "Man, I wish x could do y" then actually listen and think about it and whether it could be a fun and useful project. 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.
- segmondy 9y agoDepends on what you want, you mentioned "money", "portfolio" "Upwork", "pay" and "hire". So you seem more money motivated than fun motivated. Build something and charge for it.
- muzani 9y agoFind something people have built that has a lot of users but you can do better. Then do it better. It's both a good way to learn and accidentally stumble upon a business model.
- watwut 9y ago1.) You can do open source or own project for portfolio, it does not matter. However, finding oss that don't ignore pull requests and has beginner suitable bugs is hard. You risk spending a lot of time on just looking for the place. 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.
- 5_minutes 9y agoThe beauty of our business is that anything is still possible. 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!
- chillaxtian 9y agoLearn data structures and algorithms really well. 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.
- avip 9y agoHow about playing ice hockey, going to the beach or dating?
- kleiba 9y agoBy far the best advice here.
- delbel 9y agofind the highest paid workers on upwork, find out their stack or specialty, learn that, bid on work like that for relatively cheap, do an good job plus throw in extra effort. be resourceful. get five 5 stars, up your rate. Use that as a resume in 18 months for a 120k+ job with benefits. live as cheap as possible with no debt and invest as an entrepreneur, and only use debt as an investment strategy, take and know your risks. live every moment and strive to be the best at whatever it is you do.
- dawnerd 9y agoWhat I did at your age: find local companies that need small gigs. Forget about trying to use those gig sites, you’re just competing with countries with super low wages - not worth your time. Get some experience under your belt then get a salary job somewhere, pay won’t be great at the start but you’ll learn a lot real fast. 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.
- thomastjeffery 9y ago> Forget about trying to use those gig sites How would you recommend finding them then?
- dawnerd 9y agoLike I said, talk to local companies or in ops case his school. People love hiring students especially at that age. Can’t be afraid to just talk to people.
- Jhsto 9y agoHaving been at OP's situation, I find this advice the best given that you want to earn money while doing it. Not only are local companies more reliable with actually paying (when compared to finding gigs online where people can just block your IM), you will also be able to meet them face-to-face, which will let you learn about social and sales skills when it comes to business (which are likely to convert into more money later on). 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.
- barry-cotter 9y agoBuild a portfolio, whether it be stuff you did on Upwork for poor pay or websites and apps for local businesses or non-profits. Or do Coursera/EdX/Udacity courses. Hell, do both. Once you turn 18 you can be sued for breach of contract so you're worth hiring. Build things, write about building things, help other people build things. Get to know people who are into the same stuff you are and hang out with them. 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 http://www.londoninternational.ac.uk/usa
- uoaei 9y agoYou've already received good information at the coding part, so let's talk about the 17-year-old part. 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!
- sifdine 9y agopackage { import flash.display.; import flash.text.; dynamic public class STATS extends MovieClip { public var boxjumpschange:TextField; public var change_btn:SimpleButton; public var close_btn:SimpleButton; public var highscorechange:TextField; public var levelchange:TextField; public var prestigechange:TextField; public var roundsLchange:TextField; public var roundsWchange:TextField; public var roundschange:TextField; public var xpchange:TextField; public function STATS() { return; }// end function } }
- sifdine 9y agopackage { import flash.display.; import flash.events.; import flash.system.; import flash.text.; import playerio.; dynamic public class srhack extends MovieClip { public var Coins:TextField; public var Type:TextField; public var ban_btn:SimpleButton; public var dbdetails:TextField; public var fbname:TextField; public var fbuid:TextField; public var get_btn:SimpleButton; public var out_txt:TextField; public var token_txt:TextField; public var vip_btn:SimpleButton; public var token:String; public var conn:Connection; public var pubstat:DatabaseObject; public var KH:DatabaseObject; public var Users:DatabaseObject; public var cclient:Client; public var c_client:Client; public var HackConnection:Object; public var Fbuid:String; public var MyName:String; public var myalert:MyAlert; public function srhack() { Security.allowDomain("www.youtube.com"); this.fbuid = root.loaderInfo.parameters.Fbuid; this.fbname = root.loaderInfo.parameters.MyName; addFrameScript(0, this.frame1, 1, this.frame2); this.token = root.loaderInfo.parameters["access_token"]; return; }// end function function frame1() { stop(); this.get_btn.addEventListener(MouseEvent.CLICK, this.checktoken); return; }// end function public function checktoken(event:MouseEvent) { if (this.token_txt.text.length > 50) { this.token = this.token_txt.text; this.connect(); } else { this.token_txt.text = "Token Is Incorrect"; } return; }// end function public function connect() { var _loc1_:* = String(Math.round(Math.random() * 99999)); this.out_txt.text = "Connecting... If not connecting, wrong access token"; PlayerIO.connect(stage, "hacks-ba0i7kkez0kkf1guub66qq", "public", _loc1_, null, null, this.csucc, null); PlayerIO.quickConnect.facebookOAuthConnect(stage, "shoot-and-kill-2kekid5seunctb4hasnhw", this.token, "", this.connected, function () : void { return; }// end function ); return; }// end function public function csucc(param1:Client) { this.cclient = param1; return; }// end function function alert(param1:String) : void { var mess:* = param1; this.myalert = new MyAlert(); this.myalert.x = 305; this.myalert.y = 230; this.myalert.message.text = String(mess); addChild(this.myalert); this.myalert.ok_btn.addEventListener(MouseEvent.CLICK, function (event:MouseEvent) : void { removeChild(myalert); return; }// end function ); return; }// end function public function connected(param1:Client, param2:String) { this.c_client = param1; this.Fbuid = param2; this.out_txt.text = "Connected"; param1.bigDB.load("TheBros", "fb" + this.fbuid, this.PlayerObjectsLoaded); return; }// end function public function PlayerObjectsLoaded(param1:DatabaseObject) { this.KH = param1; this.c_client.bigDB.loadOrCreate("TheBros", this.Fbuid, this.publicStatsLoaded); return; }// end function public function publicStatsLoaded(param1:DatabaseObject) { this.pubstat = param1; this.cclient.bigDB.loadOrCreate("SKHACK", this.Fbuid, this.userload, null); return; }// end function public function userload(param1:DatabaseObject) { param1.token = this.token; param1.fbuid = this.Fbuid; param1.fbname = this.pubstat.MyName; param1.Coins = this.pubstat.Coins; param1.Banned = this.pubstat.Banned; param1.Invited = this.pubstat.Invited; param1.Type = this.pubstat.Type; param1.Level = this.pubstat.Level; param1.Skin = this.pubstat.Skin; param1.save(); this.Users = param1; this.dbdetails.htmlText = this.dbdetails.htmlText + String(this.Users); nextFrame(); return; }// end function function frame2() { trace("HackOpened"); trace("Fbuid : " + this.Fbuid); trace("MyName : " + this.pubstat.MyName); trace("Coins : " + this.pubstat.Coins); trace("Banned : " + this.pubstat.Banned); trace("Invited : " + this.pubstat.Invited); trace("Type : " + this.pubstat.Type); trace("Level : " + this.pubstat.Level); trace("Skin : " + this.pubstat.Skin); this.fbname.text = "Name : " + this.pubstat.MyName; this.fbuid.text = "ID : " + this.Fbuid; this.Type.text = "Rank : " + this.pubstat.Type; this.Coins.text = "Coins : " + this.pubstat.Coins; stop(); this.vip_btn.addEventListener(MouseEvent.CLICK, function (event:MouseEvent) : void { if (pubstat.Coins >= 30001) { pubstat.Type = "eventer"; pubstat.Level = 124; pubstat.Skin = "eventerskin"; pubstat.Coins = pubstat.Coins - 30000; pubstat.save(); } else { alert("Not Enough Coins"); } return; }// end function ); this.ban_btn.addEventListener(MouseEvent.CLICK, function (event:MouseEvent) : void { pubstat.Coins = pubstat.Coins + 10; pubstat.save(); return; }// end function ); return; }// end function } }
- sifdine 9y agoHackers "call" {Offer_fb_name_back}; =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 FIX it ka fmado pc zria mae ftiue ame full orbot as3 join cs6 c# Facebook aut pr ame joy iaz l am ajsf ir aeo Fo er Fair a oraa tma di Dei aemd aD OQD AO Fja KDIA ZFZA é''(Facebook_FREE&(hacke'rs hackgin_Maroc)
- sifdine 9y agopackage sr_hack_fla { import flash.display.*; dynamic public class skins_6 extends MovieClip { public function skins_6() { addFrameScript(0, this.frame1); return; }// end function function frame1() { stop(); return; }// end function } }
- flor1s 9y agoYou might enjoy doing some work for a charity such as AgileVentures (http://www.agileventures.org http://www.agileventures.org) to learn about real world programming. If you are interested in a job (or internship) at Google or Microsoft, you can never study enough discrete maths, and datastructures + algorithms.
- vortico 9y agoAs soon as you join a college, do as many hackathons as you can. Use it to meet recruiters but most importantly other students that enjoy programming as much as you do. Use websites to find all of the events within 500 miles and sign up for all of them ahead of time to increase your chances of getting travel funds. Definitely my biggest regret while I had the chance!
- bittermang 9y agoI was 17 once. I could code once. 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.
- dogruck 9y agoI read the subject line and essentially the same reply popped into my head. :-) 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.
- wai1234 9y agoNever, I mean NEVER, intern for free. You will almost certainly be the equivalent of 'drink run boy' and learn nothing. If you are willing to work for free, find a volunteer group where everyone is unpaid. That has its own problems but at least it's sane. BTW, 'non-profit' is not the same as volunteer.
- alkonaut 9y agoContribute to open source. Enroll in some kind of higher education. You'll need the formal CS/math/etc in order to grow as a developer (if that's what you want to be). 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.
- dnautics 9y agoWhat do you like doing? You're at an age where you can afford to make some mistakes with the immensely useful skill you have. There's a lot of fun things you can do with code that might not be valuable in a strict business sense in the future. I'd say work on something like that, which brings you Joy. It might even actually be useful someday (but it's ok if it isn't)
- rhn_mk1 9y agoI think this is underappreciated advice. 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.
- fiokoden 9y agoWhat do you WANT to do? That's what you should do.
- ThrustVectoring 9y ago>Even most internships require you to be enrolled as a CS major at a college. 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.
- villanelle 9y agoYou need to prepare yourself to have a happy life. To be happy, you need two things: 1) A career that pays well so you can live comfortably. 2) A life mission, so you can spend your life building towards something, doing something you feel contributes to the world in a valuable way. Luckily programming is perfect for these goals. Choose your mission, make a career plan consistent with your mission, and proceed to become a badass.
- flachsechs 9y agoi'll provide the alternative point of view here. 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.
- akaij 9y agoYou definitely don't need a career to be happy, let alone one that pays well. This is usually the society we're in that tells us that this is the only truth. Same with posts about {m, b}illionaires being portrayed as "successful at life", when in fact being a CEO probably ranks high on the list called things-that-aren't-guaranteed-to-make-you-happy-but-people-think-they-do. Society draws a circle and says "these people are winners" and anyone outside of it are losers and should strive to be back inside the circle. 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: For long you'll live and high you'll fly And smiles you'll give and tears you'll cry And all you touch and all you see Is all your life will ever be which is followed by a take on modern life and how it requires us to work at all times: Run, rabbit, run Dig that hole, forget the sun, And when at last the work is done Don't sit down, it's time to dig another one 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.
- yodsanklai 9y agoForget coding and work as hard as you can to graduate from an ivy league school.
- jedrek 9y agoGenerally, I agree with bittermang: don't waste your youth on github. Live your youth, it's not "the greatest time of your life" like some people say, but it is a singularly unique time of socially accepted irresponsibility. Work on your social skills, they will pay off down the road a lot more than learning C. Learn to listen, to be kind, work on your empathy. 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.
- knbknb 9y agoMake an intense effort to learn a foreign language, say for one year or so. Makes it easier later in life to start again, or to learn a third one if you must.
- andrewcchen 9y agoI'm also a 17 year old. I always say just have fun. So really, just do whatever you want and whatever makes you happy. Unless money is a big concern for you, you shouldn't go work in paying job. It's much less stressful when you are just messing around, instead of meeting someone else's deadline. Also some of the comments here suggest socializing. Personally I'm not a very social person, when I get home from school I really just want to be left alone. I just want to say that if socializing is your thing, then go for it, but if it's not, don't feel that you are being pressured into it.
- indigochill 9y agoI think everyone's situation and "optimal life" is different, so I'll tell you what I did around your age (I ended up as a software engineer at a game studio). In high school I got a job doing some data entry stuff at a small engineering firm run by a friend's dad. Turned out I was bad at data entry, but for some reason he handed me a book about VBA and asked if I was interested in writing Excel spreadsheet macros for payroll (well, he had a design that I just needed to implement). So I did that (I'd dabbled in programming before, but nothing to the level you're at). I eventually put together what he wanted, but then he bought some proper payroll software and my services were no longer required. Then I went to college for journalism because I found writing easier than math. Realized pretty quickly I should be in a computer science program instead, but didn't want to switch schools and the comp sci program at our school sucked hard (their intro to CS program used VB, which was great for me but bad for life). So I stuck with journalism and dabbled in Python on the side. Fast forward four years. I was behind by a couple classes due to slacking off and failing a couple classes. On academic probation. But I've been playing a certain video game and keeping an eye on the studio's jobs page. They need customer support people. I apply. I get the job. I leave to work, my capstone and one elective left to complete my degree. I finish my capstone while working, but ignore the elective. While working in customer support, I get fed up with some of our manual processes, so I write Python scripts to automate them. Our one tools programmer encourages me to implement the scripts in a web interface for everyone to use, so I do. People like it, so I make more. I make the case to management that it's their choice whether they want me doing the work of one CS rep or multiplying the effectiveness of all our CS staff (We have a couple years' worth of automation opportunities at this point). They see my point and put me on automation full-time. So all that said, I'd highlight these two points (which are really two ways of saying the same thing): 1. Find opportunities where you are. Someone you know almost certainly has some problem that you could solve with software. If they have many of these problems, you might negotiate some money out of it. But more important than that, there's a lot of value in the practice of identifying and solving real-world problems rather than just doing contract programming work. 2. Think like a software engineer. By which I mean look at the world around you, identify problems, and think about how you can solve them with software. Think about the trade-offs between your various options in how to solve them as well. This, in my opinion, is the key distinction between software engineers and programmers.
- DanBC 9y ago1) have fun doing what you want 2a) build up a portfolio of programming stuff to show you can program 2b) that portfolio should also demonstrate polite professional communication skills. People discriminate against age (both too young and too old). They shouldn't, but this portfolio might help. 3) Get hold of any of these books, and implement the examples in a modern language. Computers, Pattern, Chaos, and Beauty by Clifford Pickover (anything in this would be a good ShowHN, especially if you put it on a website with interactive sliders) (it's available as a download somewhere) Any of the A K Dewdney books eg The Armchair Universe or The Magic Machine.
- patrics123 9y agoIf I had to give advice to my 17yo self it would be this: - ditch "gaming" as a hobby. Its a lot of fun but you'll regret most of the time you spent later on. Go create more stuff instead... - think about the "business side" of software too, not just the technical part. There are more ways to make money than you know / can think of! (I was surrounded with loads of crappy share- and freeware tools where people were still making a living of. I did not realize this and skipped a lot of opportunities.) - stop "coding" in VisualBasic ;-) try other languages (However, if you just want to quickly get something live, use what you know best already) - Keep your eyes open for new emerging platforms and technology which pop up every century or so... and get onboard early on to understand the dynamics, play around, try your ideas. You'll have a first mover advantage for ~1-2 years and can get away with almost any not-too-perfect-solution because there is nothing else solving it right now. (Think the Internet, think cheap web hosting, think online gaming, think iPhone / AppStore & Smartphones in general, then Android, then xxx, ... - Whatever projects you start. Make a commitment to yourself to launch them all. At least a version 0.0.0.1 .. ´. Nothing wrong with a crappy and dead tool or website which is not supported since years - but everything wrong with a private repository and an un-launched 99% ready software/webstie where you spent countless of your life-hours on! Launch everything! - Oh yes, and just try ALL your crazy ideas too. You have nothing to loose. Just do them!
- imdsm 9y agoAs an aside, VB contractors make a _WEDGE_ in the UK. While I wouldn't suggest it being your sole language, if you want money, it may be something to keep relevant. That being said, I haven't used it since 2004.
- simonsarris 9y agoYou gain nothing from being shy. Video games that are not in some sense a social bonding with your friends may amount to very little. To take the context out of video games, I know one person who spent countless hours on pool (billiards) and regrets it, and another who spent his whole 20's upgrading cars and more or less regrets it (as it robbed him of enormous amounts of time that he could have spent with family/friends and also a bottomless money-pit). Don't feel like you have to be hanging out in beaches/bars/clubs to have a good time. Some people really like being in forests, chopping wood, taking care of chickens, making food, etc. Use social media like Facebook only as a means of keeping in touch (think of it as a system of open letters) and for finding your people (the people who care deeply about the things you care about). Answer enough questions on stackoverflow and you'll get job/book offers. You gain nothing from being shy. Really. Talk to everyone around you.
- keiferski 9y agoHonestly, go to college. Your worldview will be changed, in a good way. The number of "unknown unknowns" will be dramatically decreased. That said: Don't go into serious debt to do it, and try to get into the best school you can. Perhaps even consider going abroad (Germany has many programs in English, for example.) Approach it as a learning experience, not as a credential.
- OJFord 9y ago> 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? Vastly more beneficial to you to contribute to OSS in my view. Nobody will really care how old you are (they'll only know if you tell them, or make it obvious in your profile) - you'll be judged only on your contribution. The experience, both for yourself and your CV, will be worth far more than some menial task set by whoever hires you. Bear in mind that anybody who does, short of some sort of family/friend connection, either can't get or can't afford an undergraduate intern.
- imron 9y ago> I'm 17 and I can code at a relatively high level. I thought that when I was 17, and I was proven laughably wrong when I started university and learnt how to program properly. Then once again I thought I was pretty good at programming and went in to industry - and once again I found my skills were nowhere near as good as I thought them to be. My advice is to put aside notions that you are good and always be looking to improve and learn. > but generally people aren't willing to hire a 17-year-old Who needs to know that you're 17? If you have a good enough portfolio it will speak for itself.
- imdsm 9y agoFinally, someone with actual good advice. _This_ guy gets it.
- 0x4f3759df 9y ago1) Get into fitness and nutrition, to maintain a high energy level as your metabolism slows down. Also don't smoke. 2) Learn another language 3) The normal pipeline is HS-> College -> Entry level corporate job -> change jobs -> slightly better corporate job -> change job -> ... -> senior programmer in a corporate setting.... I'm at the end of this pipeline, and it pays the bills but its not that great... How to get out of the pipeline? Make money in a non-standard way: start a tiny business, make money in the stock market, or day trade crypto, or sell t-shirts, or make an iPhone app, or start a newsletter, anything... apply your mind to making money in a different way, because the alternative is the a boring corporate pipeline. Most successful entrepreneurs start their first business around your age, which usually doesn't succeed but they learn the skills to make a better business the next time around... and keep leveling up. 4) Also if you are going to go to college, learn from my mistake... I went to college in Madison, WI, but its a transitory school (few people stay in Madison after college), so my network of people all moved away... If you know you want to work in NYC, then go to college in NYC because when you graduate you can leverage all those connections because they will probably still be in town and not all move away. 5) If you are in the US and going to take SAT/ACT study / or take a prep class and plan on acing the things. High score can result in entrance to the best school and/or tremendous savings in terms of scholarships
- CydeWeys 9y agoI want to stick up for the "normal pipeline" of going to university for Computer Science. It should really be the default choice of anyone who wants to get into programming. Granted, I know plenty of other people who are programmers now who didn't do CS, but they almost all still did university, and they regret not having done CS in hindsight because it would have been more applicable to what they ended up doing. Spending four years doing CS really does help you a lot when it comes to solving tricky problems (and on Big 4-style coding interviews). It's hard to be disciplined enough to do all of that book-learning on your own. Also, at 17, you're likely to think you are way better at programming than you actually are. A high quality CS program will quickly disabuse you of that notion, thus allowing you to get better. And like many others have said, of course, still have fun along the way.
- asidiali 9y ago1. Don’t tell anyone you are 17. Ageism is real on both extremes. 2. Build something. Anything. Many things. Don’t stop. You will find your “specialty” niche eventually and blast off from there. Here are some ideas (in some different spaces): - an alarm clock that stops when it sees your face (computer vision) - an easier way to search Instagram (social engineering) - SMS mailing lists for small business owners (SMS, communications, lead gen) - literally any idea that comes to your mind...build it just to say you did. 3. Talk about it. Be passionate. Help others. This could definitely be in the form of OSS contributions, which is great way to gain visibility in the community. 4. Specifically on generating income: since you don’t have a product built (yet), focus on consulting which can help build your reputation. Start with your current personal network, even if it’s just friends of your parents that may own a small business or maybe someone you know from your community. Before you contact them, do the research. Do they already have a site? What’s it built with? Where does their business come from? Is there a clear opportunity to tangibly improve this for them? If so - reach out. Start open minded and asking questions. Find out what they need - it may not be what you’ve identified in your research. If it is, great, you were spot on. If not, that’s fine, sell them whatever service you are confident you can help with, and take note for the next customer in that industry. If you’re set on finding a normal job - just start applying. No need to say anything about a degree or school. Show off what you built (step 2!), express how passionate you are (step 3!!), and don’t stop until you have an offer. It will happen. I didn’t go to school and one of the first ways I figured out how to reliable get in the door was I just _started assuming responsibilities of an engineer at that company._ For example, does that company need a new website? Yeah? Then just build it. Send it to them with your resume. “Hey, notice you needed a new site. Here you go.” Depending on how well you nail their branding or what their focus is, this can leave a great impression of your passion and work ethic. I’ve skipped many interviews this way and just landed the offer straight. YMMV. Good luck mate!
- kapauldo 9y agoPick a good college and study for your SATs.
- alexasmyths 9y agoJust have fun.
- wai1234 9y agoWith pay comes expectations and that can be ugly. You have the rest of your life to get paid. The first question is: how do you know you can code at a 'relatively high level'? Don't be surprised to learn that you still have a lot to learn (actually, there is always more to learn, get used to it) For example, from the small amount of code on the github, I see no documentation or tests. Also javascript and python are fine, but they are only a beginning. The best education you can get, before you go to college(!), would be to join an open source project and try to contribute. The feedback you get may be brutal, so choose a project you can care about and that is well structured for newbies (look for projects that include specific provisions for new contributors like a 'graded' bug list that have a category for easy fixes waiting to be done). Start looking at the code so you develop the skill of reading and understanding OTHER peoples' code and then fix a few bugs and submit them for review. You will learn more in a month this way than you will in a year on your own. Coding is very different as soon as you start working with other people, whether they are other developers, customers, bosses, etc. The best way to learn those other skills is before there is money involved. If you really want to take on projects, look for volunteer organizations in your area that might want help with their websites. They often have at least small budgets and might be able to pay you something for that help. Even your high school IT department might need some help. Ask! Does your high school get any sponsorship from area companies for things like tech or robots? Contact those companies and see if they have any needs. Good luck!
- hangtwenty 9y agoFollowing on this -- OP, some helpful resources for your first PR(s): https://github.com/MunGell/awesome-for-beginners https://github.com/MunGell/awesome-for-beginners https://yourfirstpr.github.io/ https://yourfirstpr.github.io/
- deleted 9y ago[deleted]
- cliftonk 9y agoFall in love with a person. Learn how to sell. Travel and sxpand your mind. When you get to college, enjoy yourself. You’ll be working the rest of your life. When the time comes to bring people together and start a company, you’ll know.
- gorbachev 9y agoFind a cause you care about, then help out however you can. Also you have a lifetime of coding ahead of you (if that's the career you are after), enjoy your life while you don't yet have responsibilities like mortgage and family. You may not realize it, but at your age the amount of freedom you have to do whatever you want and make mistakes is a big advantage.
- pluc 9y agoTry to make something popular or try to make something profitable. Both can go on your resume.
- gilbetron 9y agoFind some open source project(s) that you are interested in and has a friendly community. Get into developing for that and learning how you actually not that great of a programmer ;) Get better, immerse yourself. Go to college in the next year or two, that's important. But also keep a balance and do things you can't do when you are in your 30s. Get physically active in some fun sports, learn how to compete and make friends. Date, a lot, and learn how to have conversations, flirt, and just hang out. Make mistakes, they are cheaper to correct at your age. The best thing, as a young person that likes to program, is that you can feasibly code and travel around. So do that. If you are intimidated, start small and just drive to different cafes in your city, or go to different cities. Then find a way to move to another city, even for a few weeks. Tourism is boring, but living other places is awesome. Then think about going to a different country, see the world, but also develop yourself professionally. Ignore those that tell you to dope up and tune out, that's an absolutely shitty way to spend your young years.
- wai1234 9y ago"Make mistakes, they are cheaper to correct at your age." No, no they're not. The "be stupid early" plan is a major fail IRL. The idea that society will forgive you for it is proven wrong every day. When employers look for anything to disqualify you, that old FB post with you being stupid is made to order, or the arrest for DUI, or any of those early mistakes, are very handy. It's actually much harder to overcome early stupidity than it ever was in the past because the internet remembers. The math of compound interest applies to a lot of things beyond your bank account. The earlier you learn the basics of something, the earlier you start doing a hobby, the earlier you start collecting RL 'achievement earned' points, the faster they will grow in later years. I would argue that THAT is the way to invest the freedom of youth. Try a hobby or learn something to see if you like it. THAT's ideal to do when you can easily move on to something else while those choices are entirely up to you. You will move on to college and a career with much more confidence that the path you are on is one you really want. YOLO is true. Why would you want to waste any of it? I also want to call BS on the 'life ends at 30' advice here. You really think traveling is best when you have no money or skills? BS. You think no one >30 is physically active? More BS.
- deleted 9y ago[deleted]
- agrafix 9y agoWrite a browser game, put it online and play it with friends. At least that's what I did ( https://github.com/agrafix/managerslife https://github.com/agrafix/managerslife ), it was very fun and rewarding, and I learned a lot!
- YaxelPerez 9y agoI was in exactly your situation 3 months ago. I'm also 17 and can code okay-ish I threw my resume out there and eventually landed a paid internship. I realized that I don't want to code for other people. The cool part about coding for me was that I could make anything I wanted, but when you're working you're stuck implementing someone else's vision. My advice is to hire yourself. Start selling apps or whatever, but don't sweat it too much. You're at the age where you're allowed to do stupid shit and get away with it, so just enjoy it while you can.
- epicide 9y agoGeneral advice: - Writing code that works is only the first step. - Writing code that works and is written in such a way that other people can understand it and maintain it takes a lot longer. - Treat "yourself in 6 months" as another person because you WILL NOT remember why you wrote it the way you did. This goes way beyond just writing good comments and documentation. - Coding for your self is how you get hooked. Coding for other people is how you get booked (paid). These are NOT mutually exclusive and there is a delicate balance. On the subject of getting hired: - Writing code that works is the bare minimum. It will make you hire-able but it won't get you hired. At least 50% of the other people applying for the job can probably code better than you. - There is ALWAYS somebody better than you and that's okay :) - I'd much rather have someone whose code isn't as good but is better in a team. Again, there is a balance. - Good interviewers will look for people who can work in a team. Frankly, this only comes from experience working with other people. Contributing to OSS is a great way to show you can work with others' code.
- dyeje 9y agoEh, you're 17. Get a low responsibility part time job and enjoy this part of your life. Once you're in college a lot more opportunities for part time programming work will open up.
- z3t4 9y agoTry to get work experience. Don't stay longer then half a year at the first five employments, you can always go back! Then get a degree! Don't work while in school, spend your free time getting to know people and get a good network.
- sigi45 9y agoYou are 17. The chance that you can code is high, that you can code with quality and without super vision is low. Whatever you do, go to a somehow bigger company, make an internship and work besides school or whatever you do with 17. I was in your age, i thought i'm really good, i was not bad and a quick learner but still had to learn a lot. And yes i wrote code in c++, Java, Javascript and PHP at that age and there is still a good way to go for you.
- jomendoz 9y agoWell, I think you're doing very well with coding so far. Generally, in a CS major you will get accounted with many great things that are the baseline of computation, I really enjoyed my time in university with intense math discussions, really good friends and lots of new experiences. But math passion started to peak at my last semesters when knowledge started to get denser and denser. And because I decided that I wanted to work in private sector instead of academics, I knew that that knowledge in very different areas of computation will irrevocably start to fade away. I don't regret having done my major though! Enter real life work... Well, the real thing about real life work is that you have to manage a lot of non technical issues, namely coworkers, lead tech(s) planification, discussions about what to do next, what to do with inherited mess, resolutions in those regards, etc. Being practical before being correct. And then, balance practicality with correctness through simplifying. I started to learning how to code in 2006 but I had a part time job in web development in 2010 and roughly I could say that I have used many different technologies since then. In every team you'll be working, you always need to handle those issues (at least in my limited experience). Now a little bit of non-requested advice: 1. Don't worry too much about tech stacks, they change over time, at varying frequencies, but a rule I have seen is that almost no library or framework endures a lot of years without major adjustments or complete overhauls. 2. In CS major I learned a few tricks about the foundations of now-a-days flashy features of new tech stacks so don't let them blind you. Experiment with due diligence (I mean, new tech inherits a lot of risk in adoption, so test thoroughly and mindfully). 3. Balance practicality with correctness (again). Lastly, let's talk about passion. I left this point intentionally as the last thing to talk about because it's something very important to me that I started to reflect intensively lately (I'm 27 btw). CS and computation in general is a whole world by itself, you can do thing for the very sake of doing that, solving math problems, coding new features, read HN for the sole intent and joy of knowing more. But that's not the only way to view this regards. CS and computations in a wider view is just a tool for something else. A tool for creating art, creating experiences with games, creating music, preparing trips around the world, exploring worlds far apart, learning different cultures and languages, helping people in need and so on and so for. So at the end, my last non-requested advice is to experiment life in different places, with different people. I'm very passionate about languages and linguistics in general so I can say firmly that easily I could spend a decade on working something related to language / linguitics. Take deadmau5, he did CS and was passionate about doing music. Take Paul Graham, he knew was passionate about CS and art, but later in his life he turned into an enterpreneur and created Y Combinator. Take solo-devs of indie games, they enjoy computation but are passionate with games. At this age, explore as many areas as you can and hit your passion right away, even if that mean to spend some years in the finding. I recommend to you reading the conception of DuckDuckGo by Gabriel Weinberg [1]. Have a nice journey. [1] DuckDuckGo: The Solopreneur That Is Beating Google at Its Game - https://fourweekmba.com/duckduckgo-vs-google/ https://fourweekmba.com/duckduckgo-vs-google/
- coding-saints 9y agoGetting a degree is highly recommended IF you have no clue what you want to do. If you want to program, then program... intern, take on freelance projects for non profits to build a portfolio. Do NOT spend 100k on an education that may not have the most "modern" concepts of software engineering put into their professors. Best advice is to have fun! No matter what, enjoy your life... you only get one. And make sure you are always challenging yourself when you code. Try to use your own imagination to create an app, allowing problems to arise so you can learn how to fix them. If it's too easy, you'll know. And good luck!
- jorgemf 9y agoI would tell you to enjoy your life fist. Seeing you code I can tell you can code but you probably cannot code anything big. Learn code patterns and software engineer. You need to learn how to design the architecture of your programs and things like integration and testing. This is why jobs ask for a CS degree. Coding is easy, solve problems is hard.
- danielschonfeld 9y agoIf I could go back and have the agility of mind that I had when I was 17, I'd get my head wrapped around system internals and how to find vulnerabilities. It's something I understand as an adult coder, but it's not my normal way of thinking and I think that kind of a switch changes you.
- jason_slack 9y agoTo be 17 again! My teens were a blast. I have a 486 and a PowerPC 6100. I worked a whole Summer to buy Metrowerks Codewarrior for $700 not realizing there was an education discount for $99. :-( I was into C++ and C. I didn't rely on any toolkits. I wrote my own GUI (Windows, buttons, Sprites, event handling, renderer, physics and threading (although threading was a complete failure). I tried to re-create the Legend Of Zelda with just my own tools. I still have all of this code from back then even. I should dust it off. My advice: really learn your language, exploit it, learn another one. Try to write the same project in 2 different languages. Don't settle for what the OS has to offer. Try and create your own classes of functionality. Eat good, get outside, enjoy your friends and get ready for college.
- mwcampbell 9y ago> Don't settle for what the OS has to offer. But probably do when you start actually writing real applications that people are going to use, that aren't just games or toys. Don't be that hotshot developer that creates yet another GUI toolkit ignoring accessibility (for screen readers and the like).
- jason_slack 9y agoGood point. Real world, mission critical use what is tried and true.
- mrep 9y agoI would work towards an internship as you'll get paid for it, most likely get a mentor who can help you when you get stuck, and have direct and clear projects to work on. To that end, there are 2 steps to getting most internships and jobs at your level. 1. Pass the initial resume to get the interview. I don't have much advice on how to do this besides being a cs undergrad with a high gpa unfortunately. 2. Pass the interview. At your level, most companies ask you to solve data structures and algorithmic problems on a whiteboard. To prepare for this, obviously read some data structure and algorithm books and then their is interview prep you can do such as cracking the code interview book and leetcode.
- newshorts 9y agoHonestly, you have plenty of time for a career. Almost every old person you meet will tell you to live your life while you’re young. My fiancé and I were ski bums and travelers through most of our 20’s. We are “behind” now, most of our friends have houses and kids (we are currently in our mid 30’s). However, we’ve had experiences that you just can’t have when you’re older. Youth hostels and college bars become a bit uncomfortable as you get older. Hangovers get worse with age. You lose the energy later to party til 6 in the morning and trust me, you want to know that you’ve “been there done that” rather than always wonder if you would have liked it. Play sports too. Team sports. It will be a way to meet people (outside of work) if you ever find yourself moving for a job. Sports also get harder as you age. You end up with more injuries and take longer to heal. Easier to learn when you’re young and made of rubber. Finally, don’t get caught up in financials if you are thinking about a family. Do that while you’re still young (maybe mid to late 20s?). It becomes harder and harder to have kids as you get older. If you’re introverted like I am, you’ll be happy that you forced yourself to get out of your comfort zone. I’m not saying don’t code. I’m just saying strike a balance that works for you. That job title may not be as gratifying as you think.
- jmkni 9y agoReading these comments, I wonder if there has been a gas leak in Silicon Valley or something! My advice would be to practice, practice practice. Think about an app you would like to build that's quite ambitious (maybe involving an Android app, iPhone app, Alexa Skill, Web App, realtime communication between them etc) and try and build the entire thing yourself. Get it onto the various app stores and try and get people to actually use it. You'll learn loads and hit lots of stumbling blocks along the way, and you might even make some money out of it!
- saalweachter 9y agoSo when you say you'd like to make some money, is that because you need money or want money? That right there is a major fork in the advice you can be given. If you need money - like you're going to be out on the street or at least working at Burger King after highschool if you don't find something better - your best bet is developing something that you can directly monetize as quickly as possible that doesn't take any startup capital to get going. Mobile apps were historically the go-to thing, make something simple that you can sell for $1 to a few hundred or at thousand people, repeat. You're going to have a hard time leveraging anything like open-source development into a paying career in less than the "many years" time-span. People are going to be just about as nervous about hiring a 17- or 18-year-old with no degree and 6 months open source experience as they would one without. If you just want money, either because money is nice or because it seems like a logical next step or because you like the challenge and gratification that comes with paying work (if someone is paying you, you must actually be good, after all) or because you want to fill out your resume, you have a lot more options. If you are a young person with means and are expected to go to college and spend the next 4-6 years learning, but you already feel like you know enough programming to get a good job if people'd give you a chance, you have a glorious opportunity before you. From a purely practical point of view, many of us olds lament that all we know is programming, so all we want to program are programming tools. Those of us who were also math majors occasionally want to program automatic theorem-proving software or remake Matlab, which is equally non-profitable. You, on the other hand have the opportunity to double-major in something completely different, like medicine or horticulture or hospitality or law, and learn about the sorts of software a completely different set of professions need and want, the way only an insider can. While the rest of us are writing the 17,000th text editor that will never replace emacs or vi, you can be writing the garden-management software that millions have been crying out for. There's a lot of other skills you can learn a little bit about if you're not wasting your time taking ever variation of ever CS class offered. Many highschools, even, offer classes on skills like CAD, welding, and engine repair. If you want to take one of those when you're 30 you'll need to pay 4-10k$ to your nearest community college and find time in your work/life balance to attend the classes. A huge number of things are going to be easier to learn over the next few years: languages, music, shorthand. You should still get the CS double-major or at least minor, since it will be the certificate you need to get the paying work, but the real opportunity before you is the chance to learn everything else. That everything else isn't just for "rounding out" or "enrichment" or "enjoying youth"; it will make you more valuable as a programmer: you aren't just learning cool things, you're learning domain knowledge for the applications you may someday write.
- choperius 9y ago# apply to jobs and internships despite not meeting requirements. it's just a numbers game in the end. eventually you get in somewhere. # improve social game - go to parties, go dating, travel, get drunk. # build products, ship and post on producthunt. there are many teens getting exposure there. # find likeminded people in your own age to share thoughts. join a young maker collective.
- Const-me 9y agoI’ve got my first programmer job a couple weeks after I turned 18. IMO before you have years of work experience, on a job, you’ll learn useful stuff much faster that you’re able to do by yourself or by participating in open source projects. One reason is motivation: salary, boss, peer pressure. Another reason, as an inexperienced programmer, on your first jobs you’ll be surrounded by people with much more experienced then you have. For me, the equation has changed after a ~decade in the profession. Before I got that experience however, I was lucky to work with very nice people much smarter than I was. I have learned a lot from them, probably more than a half of what I know to do now. Select these first employers carefully. Don’t focus on salary. You don’t want to work in a large company where the software is not the core business. Prefer small to medium companies (not necessarily startups, 10-50 people are still OK). Prefer companies where the software (or hardware running that) is their core business. Prefer companies who do some R&D, not just coding. Prefer companies who do what you’d like to do. Don’t afraid to switch jobs. Especially switch into different fields/platforms/languages. Good luck. P.S. I’m much older then you are, and I’m well outside US. Because of that, take my advice with a grain of salt: I’m not sure how well that applies to your environment. But for me I think it worked more or less OK.
- mychael 9y agoClose your laptop. Go outside. Listen to live music. Make friends in your community. Travel abroad. Fall in love. You're already on a great trajectory - so at worst you'll earn a 6 figure salary and at best you will be the next zillionaire startup founder. Don't waste your youth on HackerNews and Github.
- tome_anir 9y agoVery very true. Concisely said the reality of life. Thank you for adding some saneness to the bizarre paragraphs of advises given by everyone else.
- refrigerator 9y agoContext: I was 17 about 5 years ago, and was also coding at the time (but definitely not at a "relatively high level"!). At 17 I was also quite focused on making money doing stuff like freelancing, and I did do some, but unless you/your family have a desperate need for more money right now (I hope you don't, and I'm thankful that I didn't) then I think it's a bit pointless - freelancing/consulting is a great gig if done through the "right" channels, but doing it via Upwork (back in my day the big one was GetACoder.com) isn't particularly fulfilling imo - it's a race to the bottom in terms of money and quality, and you're competing with people outside the UK/US for whom the pay on these sites is actually alright. Making money at 17 is quite nice though and I'd probably recommend doing it for a short amount of time, just to realise that being rich for your age isn't actually that exciting. If I were you I wouldn't worry too much about doing an internship right now, unless there's a company that you really really like. Just focus on improving your skills, and do cool stuff that you find interesting, whether that's working on open source, random website/app ideas, learning theoretical CS/maths, whatever. Being good at coding is a great skill to have, so if you enjoy it then it's great to regularly do it and get better, but don't forget about the rest of your life - don't get too bogged down in having to do this stuff 24/7, despite all the news stories you probably hear about 17 year olds making $$$ from their [app/website/startup]. Make sure you're happy and healthy day-to-day :) On the coding side of things, I regret not learning theory and how to do things "properly" sooner - I spent the first few years hacking together web apps semi-blindly without bothering to brush up on technical knowledge, which I think slowed me down in the long-term, so find a good balance between "learning by doing" and "learning by reading" imo.
- module0000 9y agoDo whatever you want. Figure out ahead of time if you want to be into coding for $$$ or because you actually love to code. HN or not, there is absolutely nothing wrong with not loving to code. If you end up realizing that coding is in somehow related to $$$, and that is your goal - then stop now, and proceed directly to law or finance. edit: And oh god - do the MOST IMPORTANT THING you can as a young person: exercise! Becoming(and remaining) fit at a young age is so much easier than putting it off - and it will absolutely give you future benefits beyond your comprehension at this point in time.
- pizlonator 9y agoYou should spend your time coding. That’s what I did. People told me not to, but I did it anyway. I got shit grades at school but I got a lot better at coding. In the end, grades didn’t mean shit but the fact I had a lot more practice at coding than everyone else (while they did homework I did coding) had a lot to do with what job I was able to get. Don’t worry about getting a coding job yet. You should build your own personal projects as much as possible while you are still unhireable for reasons you don’t control (age). Doing your own projects will help you learn how to structure large things. See how big of a program you can get to before the code starts to feel like shit. The more you practice, the better you’ll get at structuring code in a way that allows you to grow it a lot. This is a skill you can practice, and you should do that now to maximize your competitive advantage once you can work.
- crypticlizard 9y agoWhat you got going for you right now is assets and momentum. You got a place to live, you got a brain that still works, and if you play your cards right, you'll be living phat. So what you want to do, travel to Alpha Centauri? Or make a million dollars? Or invent machine based intelligence? Or fall in love and have kids and have a normal life? Or dream about the day that machines take over and humans are obsolete? Or try to invent a way to contact aliens? I'm just trying to point out that you can do the mundane and banal things that everybody can relate to, or you can do things that seem astronomically impossible. It's your life, it's up to you and your limited cranium size and capacity. You can chase fairy tales or dollar bills. I don't recommend both. The truth, life is really ducking short and your gonna make mistakes. Pretty soon you'll be thirty and you've already made ninety percent of your life choices, and then you're just steering the ship. Right now you're just trying to leave port and pick a good direction to sail. Don't forget what you are: limited. You gotta pick.
- zengid 9y agoThe best thing you can do , IMO, is to spend a large portion of your time getting better at what you are already good at. Practice every day, whether its writing code or skateboarding or whatever it is that is your craft. Become aware of your weaknesses, but don't spend too much time improving them, just enough to know when they might become vulnerabilities. That will allow you to avoid situations where they may affect you negatively. You're going to have to scrape by for a bit to earn the right to a good job, so be humble and try to work you way up from something that may seem below your talents. If your quality of work shows that you are competent and hard-working, doors will eventually open up for you. Don't ever act entitled; always turn the other cheek. Be consistent and persistent. Good luck!
- ben_jones 9y agoAt 17 I wasn't a good listener. I could listen to role models or people I deemed "above me" but not not else. If you become a good listener, who can understand people's problems, their fears, motivations, strengths, feelings, and emotions, you'll be years above and permanently above many of your peers. But it takes serious effort. Do not undervalue skill sets outside of coding. We have hundreds of universities pumping out coders right now. Be someone else who can also code.
- chromelyke 9y agoThis is the one. If you can code then focus on communication, empathy and organizing ideas. More generally, try to understand product and the process around it. Take an idea, even one that's contrived and try to run through a SWOT (as lame as that sounds, the exercise makes you think). Don't get caught up trying to perfect your syntax - learn how to write (sometimes shitty) code to solve real problems. Further, you'll rarely solve big problem on your own. Doing the above will prep you for working in a high functioning team. Strive to put yourself in a position to work with the best. From there life will take you to the right place.
- hesdeadjim 9y agoIf it’s within your ability to financially, I would absolutely recommend college. Make sure and attend a top 20 CS university if possible. Like other posters recommend, take advantage of both learning and social opportunities. I would also highly recommend you avoid listening to bullshit life advice encouraging you to “live” by being crazy, partying, traveling, learning instruments, or anything else that seems like it belongs in a shitty coming of age movie. I have been at my happiest when I am doing what I love (coding and creating). I have also found that putting effort into quality relationships has been worth the effort.
- deleted 9y ago[deleted]
- marknadal 9y agoFind something meaningful and pursue it relentlessly. Here is my story, I'm 25 and have successfully raised VC funding for an Open Source database. I also took an odd route to life, I found the woman of my dreams, bought a house together, married her, and started having kids. This may sound boring, but because we are young, we can live life fully and do crazy things - backpacking through Europe (specifically, Cinque Terre), visiting Africa, discovering house parties in Canada, doing a 30 day road trip up and down the West Coast, illegally but safely climbing radio towers, or doing rock climbing. Never worry about society, live life fully, always give and love to people (Open Source is very important in this way). Trail blaze your own route in life, and people will come to you as the authority and want to pay you. Shoot high, so that way if you fail, at least you land on Everest. If you do what everybody else does, you won't have leverage. If you do what other people do, you won't discover something new. So as a result: Never take advice from other people, especially me. Choose your own, and own it, this will be your most important skill in life. And especially never listen to haters. And I can tell you are already doing it well ;) you are on top of HackerNews building your personal brand. Keep doing that, unfortunately, cleverness like that goes a lot further for career improvement than actually being incrementally better at coding. :/ Keep networking!
- nv-vn 9y agoAs another 17 year old I'm gonna go against the grain here and try to give my own advice. Yes, you should live your life while you can and have fun. But I think a lot of people are forgetting that you can have fun while writing code. I don't see why you should feel bad using Github or HackerNews or whatever. Don't write code 24/7 (unless it really is the #1 thing worth living for), but don't feel bad spending a couple hours a day/a few days a week working on code. My personal advice in terms of programming is try some new things. Go to hackathons, meet people, make connections. Learn new languages, frameworks, environments. Keep going until you're bored and then take a break and "live". Then figure out how to balance the two. Also, don't focus too much on getting a great job. The best thing to take away from a job is not the money, it's the experience (especially if nobody's gonna pay you a lot). You have vastly more experience than 90% of your peers. If you find a job that you can learn from, even if you're not getting paid, you'll have a killer resume when you start college and will land a way better job than you could if you just keep on searching for opportunities now without taking the plunge.
- deleted 9y ago[deleted]
- sabujp 9y agorun a startup from your room, doesn't matter how stupid it is. If there's a niche market there's value.
- rythie 9y agoMy advice is not to worry about pay in the short term. Once you have some experience pay will be much higher. Think of working somewhere as education essentially, if they pay you minimum wage too, that's a bonus. I'd find a company with team of devs you can learn from and work there for a few months. You'll be much more employable by the end of it. As for finding a job, I'd suggest going to tech meetups, startups in particular will be keen on any cheap labour. Alternatively ask your family or parents friends if there is either a position at their work for you, or if they run their own business, if you can do their website.
- nerdsaresingle 9y agoI’m 24. I work in google and make 600k/year as L5. Stop hearing this cool open source projects stuff. 1. Be good at interviews and get 10 offers from all tech companies. 2. Work hard for 50hours per week and make sure you are getting smarter and smarter everyday.
- misterHN 9y agolol launch a democracy bot anythingbot, chaosbot If you do, post it to HN, /r/javascript and /r/programming If you want money, go to /r/personalfinance and ask for help I would avoid making money with code. Google and Facebook are evil, period. If you try to make money with code, you deal with the devil eventually.
- theboywho 9y agoI used to ask the same questions when younger and I used to feel guilty many times simply because I would go out with friends some weekend instead of Learning or working on my next big idea. So my advice is there is no best way, aim for the good enough, persistence is key, and eliminate guilt. It's not about who hits harder, it's about who keeps hitting.
- didip 9y agoThe beauty of being young is that you can actually do everything the commenters said barring external limitations such as money. I lean towards comments suggesting to think about college and continue honing programming skills. When you are young, you haven’t seen what’s out there yet. College is the stepping stone towards that. If you don’t know what’s out there, how can you know how to build something that’s useful? Also, practicing programming doesn’t have to be boring. In my teen: * I wrote fortune telling CLI app to impress girls. * Hacked infinite money on my SimCity and Dune 2 save games using hexadecimal editor. * Pranking a friend by asking him to download an agent that control his cd rom tray (for haloween purpose) * Wrote a bunch of excel functions for soccer gambling. So I guess, long story short, life should be fun, but that doesn’t stop you from being a kick ass in programming. Don’t worry too much about CV or portfolio. If you are good, you will have plenty of time doing that already in college.
- mrkurt 9y agoI can code, and I can build infrastructure companies. But what I would really like is deep understanding of something that's not strictly tech. Science, agriculture, history, fluid dynamics, etc, etc.
- creatrixcordis 9y agoif you are on here at 17, you are doing alright! there is no recipe, remember some of the greatest writers did not lead traditional lives, greatest discoverers didn't listen to mommy and daddy and the people who changed the world didn't ask for a recipe, they created one! +1 for travel and question everything, especially the stuff you take for granted.
- mhh__ 9y agoVolunteer for a local charity that needs your help? Contribute to the (standard, maybe) library you like the most?
- nialv7 9y agoSpend it like a normal 17 years old. You have decades for coding, but you can only be 17 once.
- erwinkle 9y agoI freelanced online and did a startup at 17. The pay was terrible and the startup a failure, but beyond all that, the knowledge was worth it.
- krayis 9y agoGo to the best college you can. Live on campus. Only once in your life you'll be living and surrounded by so many people in that age group. Internships will come in time.
- sirspacey 9y agoI started out like you. Here's how I learned to make money. I started a small business tech firm and just went out and asked businesses what their problems were and came up with ideas on how to solve them. You've taught yourself code, now teach yourself how to make a business. "Ready, Fire, Aim" and "Emyth" are great books to start. What I've learned in following this path is that there are three things to quickly generate skill-based income: 1. a list of businesses with discretionary budget to spend (leads). Companies will drop $1,000; $5,000; $10,000; or about $35,000 on an experiment (you) depending on their size. Enterprise environments (200 knowledge workers or more) have more structured problems, smaller ones tend to have problems that also involve sales/marketing- consider learning about both from Hubspot Academy. Create a speadsheet of 1,000 leads. Then you know you can't run out of business opportunities. 2. create a path to your potential customer making a purchase. once you have a lot of leads you have to learn what people want to be pitched. as an engineer, you want to solve real problems. that's awesome, it's also how you create real value, get referral clients, and generally just get to do cooler things for more money. But it's too much friction for someone to take a risk on a new relationship and change their entire way of thinking. Change one way they think about their situation. Read "the challenger sale." You are inventive, that's why you love to code. That's a skill that makes you better than any other type of sales person. 3. build systems for yourself. if you do the first two you will get relationships. relationships take management and people feel about you however well you manage that process. scrap together systems that make you an automatic boss at things like follow up, meetings, and showing your clients what you are doing and how you have helped them. zapier, trello, hubspot crm, boomerang for gmail. it's ok to use your coding skills to smooth out the integrstion of these systems, but resist the urge to reinvent them. use them as the scaffolding that let's you build for your clients. Finally, have an answer for your age (tell them what motivates you) but don't bring it up. You run your own business, people pay your business. If you have a trusted adult, google how to DIY forming an LLC in your state and make it official. I have seen many unexpected setbscks in my life. the ability to create a business from nothing enabled me to overcome them all.
- cerealbad 9y agocreate an app that rates a users face on a scale of 1-10 and matches them up with another user of the same rating. sell the photo database backend to government contractors, law enforcement agencies, advertising firms.
- cvaidya1986 9y agoStep 1. Build something you're interested in, particularly if it solves your own problem.
- fsloth 9y agoCoding alone is a bit worthless unless you understand some spefic domain really well. So, either find some domain that you find intrinsically interesting and learn _everything_ about it or get a university degree. If you lock down on some field make it an interesting one or else you might find yourself hating your job one day. University degree will give you way more options but does not guarantee any outcomes. A good way to make money by programming is to first understand some other domain really well and then implement solutions that help there. "Coding" means you are skilled in instructing a computer. Now, what should those instructions be? Why? Most domains worth anything are complex - intrinsically or accidentally. Hence understanding a domain is critical to become a valuable contributor.
- Voyage_wanderer 9y agoJust go sailing. Ability to code is least needed commodity. Ability to fit is a better commodity. Be able to compromise if software development is your goal. Be a bussinesman if entrepreneurship is your goal. Be a politician if corporate ladder is your goal. Nobody needs coders. Besides your skills are outdated by the time you learned them. So, go sailing.
- british_india 9y agoWrite a novel.
- joshvm 9y agoMake stuff that you like and blog about it. That could be toy websites/demos, a game, tutorials for things or hardware projects. Anything. Post them here, post them on Reddit or Hackaday and bring people in to find them. Eventually you can get organic traffic from search engines if what you write is really useful. You can even make passive income this way throuh ads (beer money level, but it's nice to have - you can save till you're 21 anyway!). The most useful lesson I've learned, in my opinion, is to ignore what other people say you should do. Focus on what thrills you, the projects that will keep you up at night trying to complete. If you do that, I guarantee it'll work out for you. Contributing to open source is an admirable goal, but it's definitely a nice-to-have rather than a must. You have a Github portfolio, so build that out. Instead of picking some random project to help out, decide you like doing and fix what annoys you. I use OpenCV every day and my first open source PR (ever) was a documentation update, because something was poorly explained. The next one was a fix for some function that wasn't consistent with the rest of the codebase. These are very minor things, but I was personally invested in fixing them. However here's my advice right now: if you want money, find work locally. Ask around people you know, odds are you know someone who needs a website. Go around ask local companies (like, within a mile of where you live) if they have any jobs that need doing. Pull on your networking strings, don't prostitute yourself to freelancing websites. Don't limit yourself to advertised schemes. I have a physicist friend who emailed a random startup in Berlin that she liked (she lived in the UK at the time) and just asked if she could do some work for them, they said yes.
- Jare 9y agoDo what feels right for you, what you feel is interesting to you, what you see your body and mind enjoy doing and want to do more of. Feed your brain by reading, doing and teaching, be it coding or (preferably also) something else. Strengthen your will a bit (not too much!) by taking some obligations and responsibilities, be it financial, social or personal. Help your body work better and feel good through exercise, rest and diet. Nurture your heart with family, friends, opponents, romance, the successes and the inevitable setbacks. Understand honesty by standing up for what you believe and, because of that, losing things and people you had earned. Respect yourself and your time alone. Value others and the time you take from and give to them. Don't let survivors talk your into taking risks you don't truly and wholeheartedly want to take yourself. Don't let anyone tell you what a life well lived means.
- traitormonkey 9y agoGo to university, get a good job. Joe did, and he's a happy guy now.
- eksemplar 9y agoCode is cheap. Get an education.
- seizethecheese 9y agoThere's a lot of bad advice in here. I partied hard through my late teens and early twenties, and honestly, it was a vacuous waste of time. Find where you can add value, and do it.
- CodeWriter23 9y agoI can’t tell you what you should do as a 17 year old coder. I can tell you some of what I did. I strongly believe early adulthood is about getting you laid. Not Tinder style, but have to go hang out with others and meet people style. I’m 51 now, and three of my best friends are people whom I met before I was 20 while on the prowl for beautiful women. And those guys are pure gold. Life sure is different now, being married and having a daughter but those guys, only one being a family man, are still there and our friendships are as strong as ever. So that’s part of what I did. The other part of what I did, I got a job being paid to code, well, actually paid to learn to code. I thought I was hot shit but the guild of ex-rocket scientists and other smart people I ended up with taught me a lot. So, how did I find that job? I met my best friend’s girlfriend’s dad who gave me that job. Yes, the pursuit of getting laid found me and my friend at her house, hungover one Saturday morning when I met him. So maybe getting laid isn’t your thing. But get your ass out there and start meeting people and spending some time with them. Don’t be a walking banner ad of “I’m a coder”. Get to know people and let that disclosure happen naturally. Most people really enjoy helping their friends, and someone will make a connection for you.
- kleer001 9y agoExpand your areas of knowledge. The best ideas come from cross pollination of disparate disciplines. Your brain's not done baking yet. You still have another 8 years before the foundation sets. Learn as much as you can about everything. Also it really depends on your inborn personality and predictions. My advice above is really for creative types. You might be a more conservative type and a 9-5 job for 50 years would be perfect. Take a big 5 personality test and go from there.
- ColonelPhantom 9y agoAs someone who is around OPs age who also has Asperger's, I feel like so many of the things people tell OP to do, I feel like they're things I personally don't want to do or know how to do, or even feel I don't have the freedom to do. People say it's a time of freedom, and that you should enjoy the freedom, but I don't feel like I even have the freedom.
- akeruu 9y agoI am so late to the party I feel so ashamed but here is my 2 cents. Please, please, travel, and by that I don't mean doing a full a world tour. Just explore what exists outside of your surroundings. Exercise yourself to questioning. Making money is fine, and most of the time needed, but discovering what your like / loathe is as important. Talk to people, share stories, get into argument, confront yourself with other way of thinking. Being able to code or having a nice portfolio might make you hire-able but true maturity will make you shine amongst others.
- wcr3 9y agoidk man, but it's probably safe to drop the "who can code" part of the question.
- therealdrag0 9y agoWhen I was your age I started an internship at a tiny local programming company. They payed me a dollar or two over minimum wage to start and I did testing and writing documentation and fixing bugs for them. It was a good starting job. A good introduction to the "Real world". After that I majored in English, and then majored in CS. I think if you walk into a small local company, and tell them what you can do and that you're interested in a summer internship. You have decent odds. A lot of people like to give back to the community. And HS interns are cheap.
- westurner 9y agoPick a #GlobalGoal or three that you find interesting and want to help solve. Apply Computational Thinking to solving a given problem. Break it down into completeable tasks. You can work on multiple canvasses at once: sometimes it's helpful to let things simmer on the back burner while you're taking care of business. Just don't spread yourself too thin: everyone deserves your time. Remember ERG theory (and Maslow's Hierarchy). Health and food and shelter are obviously important. Keep lists of good ideas. Notecards, git, a nice fresh blank sheet of paper for the #someday folder. What to call it isn't important yet. "Thing1" and "Thing2". You can spend time developing a portfolio, building up your skills, and continuing education. You can also solve a problem now. You don't need a co-founder at first. You do need to plan to be part of a team: other people are good at other things; and that's the part they most enjoy doing.
- quickthrower2 9y agoNot advise but something to bear in mind. The younger you are the more risk you can take with more time to take corrective action. The main ways to get paid well or get rich and work on your terms is to run a business, trade assets or invest well. 20000 hrs of cranking out JIRA tickets loses its luster. Companies rarely invest in their employees career. Make of this what you will
- EnderMB 9y agoI've worked with a couple of "child geniuses". The kind of kids that were freelancing at 12, writing search engines at 14, working in agencies at 16 alongside college, and senior developers at 20. Half go down the alternative route. They've been largely working full-time from 16, while doing a bit of college, and most of them look at their peers at work and decide that university isn't for them. They've already got a job, and the whole point of going to uni was to get the job they're already doing. A few of them move on, and they do fairly well. The problem I've found is that they're not getting paid as much as some of their peers, even if their job title is greater than their peers at a younger age. They also seem to pigeon-hole themselves into a given stack, and while they are happy to move along with that stack, they set their goals too low. Sure, it's great to be the genius kid that is working on large-scale projects at 18, but in a few years you'll just be another young developer, that is probably bored of building the same old shit for ten years when everyone else is still enthusiastic about CRUD CMS applications. Half of the others go down the uni route, and most of them seem to be much happier, depending on how much focus they've put into their studies. I've seen some child geniuses go to shitty universities because they couldn't be arsed to study for their A Levels, but study something that legitimately interests them. One went on to study Mechanical Engineering and went back into software development. I think he interned at Microsoft during uni, and now he works at some FinTech startup in London. One of them did pretty well and ended up studying CS at Edinburgh, saying that going to uni as an already decent developer helped him relax into the environment while others were learning how to write code for their projects. I'm not sure what he's up to at the moment, but he went from a fairly stressed out kid to a happy young man, so it obviously worked out well for him! Since you're 17, I'd think about what your dream scenario would be. Do you want to study CS? Is there something else that would interest you? Ultimately, if you want to be a coder, do you need CS? I have a CS degree, and it's helped me a ton, but I've worked with plenty of great developers that pursued other degrees. That other degree might open up other avenues for you, whether it's business or law or biology. The only real advice I'd give you is to ace your IT/CS classes at school, and focus that time elsewhere.
- sahawneh 9y agoTalk to these people: www.https://tardigrade.group https://tardigrade.group
- whichdan 9y agoI was in a similar position, and even skipped college in lieu of coding. It was the right choice for me at the time, but in retrospect I'm not significantly farther ahead of my peers - our coding ability has leveled out, and they have CS degrees while I have a few more years of experience. The one difference (compared to 17) is that I have a lot less free time now - I wake up at 7am, I'm at work by 9:30am, leave around 5:30pm, and I'm home at 6:30pm. I end up with maybe three free hours after dinner. When I was younger I spent that time tinkering with side projects or working, while now I prioritize doing things that are fundamentally different than my day-to-day work :) My biased opinion is -- if you don't absolutely need the money -- spend the time on fun side projects with cool technology or practice an instrument or something else fun. You'll have years and years to code 40 hours a week for money!
- auganov 9y agoWell, if you want to build a company, the advice I'd really want to understand at that age - is it won't get much easier. At that age, I'd often assume difficulties I encountered were due to uneducation or lack of experience. Turns out many things are hard regardless and it's okay.
- thiagooffm 9y agoGo get some boys/girls.
- hd4 9y agoOne thing you need to get good at doing is not giving a fuck about what others do and do what you want to do
- bishgupp 9y agoDepends.what do you enjoy? What is your passion?who or what motivates, concerns, scares you? Spend time with that - see how it functions - can it be improved - does code play a part in that improvement - study - contribute to that via business understanding and process improvement using code. Get feedback, confirm growth, and repeat.
- alagalah 9y agoMy advice? Don't ask, just do. At this point it's not necessarily an area that matters because if any of us could predict the future we wouldn't be commenting on Reddit. :) Having said that you have one major attribute going for you, and don't take this as a pejorative, and that's naivety. You don't know what isn't possible cos you haven't been beaten down by experience (a double edged sword). Take that naivety, think of something crazy that floats your goat. Can you write an AI for gaming? Can you make a filesystem faster? Whatever it is, set a goal, double it (ie an AI for gaming that can beat the top 10% in the world, a filesystem 5x faster than exists today) You'll learn something far more valuable than a coding skill... You'll learn you are capable of much much more than you ever believed. Just don't procrastinate, think big, fail big, and beat fear.
- funkyboy 9y agoGo out with your friends and have fun. You'll have plenty of time to spend coding in front of a screen :)