As a 16 year old, I find it nearly impossible to find work on software that I can do, because of EULA's on most freelancing(i.e Upwork) and pay-for-fix sites(Bountysource). I already contribute to open-source software. What other options are available for me to gain experience?
Just build something - it really doesn't matter what. You have a good window of time where you have very little requirements in terms of paying rent, bills, etc., so take advantage of that and just write as much code as you possibly can.
Beware of foregoing formal university education just because you are getting coding gigs.<p>CS/math fundamentals are golden and make the difference between you being just another redundant dime-a-dozen ruby coder and a world-class engineer. Not to mention personal enjoyment of what you do down the line. Take a look at the Silicon Valley for proof.<p>Learning all this stuff on your own is possible, but much harder when you're "working 18 hour days". Harder yet if you eventually have financial commitments (e.g 14 cases of child support payments, har har).
Look first for local software development shops and contact the CTO, group manager, or if available, HR about your interests. Consider looking first for services companies (e.g. web development shops, digital agencies, etc.) as they typically can use an extra set of hands. LinkedIn should be a good source of contacts. Explain your background and that you are interested in shadowing or being an intern. Even though you may be beyond the abilities of an intern, take it if the opportunity looks interesting and you have an opportunity to learn and expand your skills.<p>Be prepared to show your work and have something in a document, or better a portfolio website, describing your background and that you can send on request.<p>If that doesn't produce results, you could try expanding your search to companies that are not in your area, but it will likely be more difficult.
You could work on things for yourself. As a 16 yr old presumably living with your parents there's no risk.<p>I'd suggest starting with a small mobile iPhone or Android app. Make a little bit of side money while building a portfolio you can use to your advantage later.
I started working full time at a web development consultancy at about that age, you'll get screwed a bit: you'll likely be brought in at a less-than-appropriate salary, as I was.<p>If you're stable and have all the basics; food, shelter, access to electricity and computer networks; Try to write some software of your own accord, and attend some meetups. It sucks to be below legal drinking age at a free beer event, but you'll meet some people you'll like for sure.<p>Write some open source code if you want to attract people who have technical ability, write something you think would be useful, and test it with the market, if you would like to attract business.<p>Another thing mentioned a bit too pro-university here, was the importance of culture and theoretical knowledge. You should probably know your O notation and vacuum up Wikipedia pages on graph theory, discrete maths, or whatever tickles your fancy. Maybe take a weekend to learn how formal verification works, and write a proof or two in Isabelle or Coq. Maybe broaden your horizons to natural language processing, or go into the bowels of the machines you're programming, figure out how adders work.<p>By far what has helped me the most to prevent myself from being alienated from my industry(which is full of theoretically astute graduates), has been a focus on being cultured and knowing everything they know and more about the topic at hand.<p>Do not, under any circumstance, let your elders outknow you, or you will be defined by your age.
How much are you looking to get paid? If you don't care that much, try putting an ad on craigslist or see if your high school's CS teacher has any connections. (Others in the school who might help network you are web dev teachers, computer networking teachers, and IT.) There may be a solo guy in the area who's working on his startup (probably funded from his personal savings and/or from a wife, or the startup might be a side-project while he works a 9-5 or occasional consulting) and who would find it worthwhile to pay a bright student $10-$20 per hour to do work. Or they might be a small shop with multiple people who don't realize they could use a cheap intern until the cheap intern asks them if they'd consider it. :) If you'd like a shot at more money, I'd either go the app route others are suggesting, or do your own freelancing. Ask your dentist, etc. if they need a new or updated website, that sort of thing. If you want other ideas, observe how people are operating at their jobs and try to imagine how software could make them more efficient, and if you think you could write that software talk to the person with the power to pay you.
Find something you want to build and build it. Mobile App idea? Website Idea, anything really? The more passionate you are about it the better it will be.<p>If you can't think of anything then maybe try a code camp over the summer. They cost money but they will definitely teach you how to write code at a company vs open source and they might even be able to hook you up with a nice internship once it is over.<p>If you can't afford that then you could try getting an internship by going to coding meetups and when people say they are hiring people go ask them if they are will to bring on an intern. Tell them you learn fast.<p>You could also use one of your parents to sign up on those sites. If you wanted you could even just build a site for yourself and marketed it a little at local meetups. In the end it is up to you to make the effort.<p>On all the talk about if you should go to formal school or not that is up to you. It isn't needed but just know you will have to learn a bunch about software design and different libraries on the job. Formal schooling will teach you theories and code camps will teach you one way with current processes. So if you enjoy theories and building compilers than formal schooling might be perfect for you. If you just want to build cool stuff and are will to learn as you go then skip the $100,000 price tag and learn as you go.<p>Just know whatever you learn at code camp, in school, or even your first job or internship is not the only way. Programming for a living is learning every day. There are many correct ways to build a system and Ruby, Python, C#, Javascript whatever you learn first isn't the only way. Find what you enjoy and do more of that.
I actually started programming around 16. I built my own social network.<p>I actually used it as reference for my first programming job at 18-19.<p>Just build something you're passionate about. At the time I wanted to be like Steve Jobs/Bill Gates.<p>Who are your heroes? Any website / apps you want to make? Any games you want to make?<p>I suggest you learn a language like Swift or JavaScript and build a webapp, iphone app or iphone game.<p>Since you are young, maybe you can program something you and your friends want?<p>Good Luck!
At 16 if you are contributing to open source you are well ahead of lots of programmers with jobs so kudos to you.
If I were you I would use this to my advantage by having the git repos etc on my resume + LinkedIn and then start searching for volunteer orgs. for programming gigs and get noticed there and take good references and then apply for full time jobs. Good Luck!
As many have said, just build something, put it on the internet, learn about building homepages that converts well, learn to ask users before building the next project, charge if you can find a way (donations, paypal, parents)<p>Then when you get to be legal, you will have a few (or a lot) of side projects that each will deliver a little trickle of money. Use these as fun money or even bette channel it into larger and larger projects, hiring others to do the important stuff you find uninteresting.<p>Find a mentor, someone wiser than you, let them help you level up faster than is possible alone.<p>Join a mastermind group, be accountable to others, learn to ship real stuff.<p>When you reach legal age, travel to conferences, talk to older more experienced people, learn how they did and copy what you like.<p>When you hit 20-25 you can have a steady income high enough to support you.
I like to mod games I enjoy. I don't even play games, but I mod them. It's enjoyable, and gives me a lot of experience in technologies and setups that I'd never have seen without modding.<p>Also, the joy people get from your work is really high, they are very supportive, and it's an all around fun experience. The negative is you'll get used to that, and then when you work on your own, or for a company wonder why no one is as thrilled :)
Email a professor at a nearby university talking up some interest in his field and pitch him/her your interest in gaining experience building software, he/she may have something in store if you're willing to do it for free?<p>Having said that, the other thing that will help you down the road may be getting some good theoretical knowledge in related fields (math, cs); as noted by paul_milovanov in this thread.<p>Good luck.
When I was your age I was doing freelance web development. Keep working on OSS and start doing some contract work and you'll be golden.<p>Flash forward a bit... And the summer before my senior year in high school I interned at a startup in Honolulu. Just keep learning and working hard and good things will come of it.
Don't try to get money while you are 16. At least if you don't need it badly. Build stuff, you'll learn so much more. I am 27 and two kids, getting paid a lot but I regret the time where I could spend hours on my own project. Now if I have an hour per week I am happy.
When I was 14 I got my first job at a local company. They let me "intern", with good pay. When I was 16-17 I did remote work for a company I found through stackoverflow careers. It did take a while to find one that would take me with my lack of experience, but it happened.
Find someone you trust that works somewhere and who can employ you or get you employed at somewhere you trust, that would be the easiest path for you.<p>Regardless of that, you should also contribute code to an open-source project you really like. This will also get you a good resume.
Apart from contributing to well known open source projects or starting your own, you could also try to write a plugin for some product that has a large community (e.g. Jenkins) and/or marketplace (Atlassian's one, though not sure if you have to be 18.)
Also regarding Bountysource (laughably low bounties) and Upwork, for that matter Elance, odesk - all of those are races to the bottom.<p>Go to local tech meetups, give a presentation on something and say HEY by the way.. I'm looking for work! Someone is bound to take you under their wing.