Hacker News new | past | comments | ask | show | jobs | submit login
Ask HN: How do I earn money as a teenage programmer?
189 points by Sxw1212 on June 6, 2017 | hide | past | favorite | 98 comments
I'm having trouble working this out, because I have to earn money to pay for car insurance and such, but software companies are not willing to hire people my age for good reason. My resume is also limited because I have only built applications for a few businesses who I had previous connections with. I'm looking for advice for how to start freelancing, because that seems to be the most viable way, without a large resume to start.

>but software companies are not willing to hire people my age for good reason

I doubt it. I've hired two 18 year olds to work remotely for me, one of whom does excellent quantitative analysis I've yet to see out of anyone I've employed with an advanced degree.

Companies are by and large very stupid. Don't devalue yourself or your skills.

Craigslist is decent.

One of the best things you can do is invest in a Github or open source portfolio where you demonstrate proficiency with various technologies, methods, and algorithms. It'll be easy for me (or other hiring managers) to look at it, ring you up, ask you questions to make sure you didn't fully steal all the work, and task you with some basic contract work to see if it's a good fit. Then we go from there.

I got a lot of recruiting requests after I contributed a pretty solid amount of documentation and debugging work towards Facebook's HipHop (now hhvm, sort of anyway) repository and project.

You won't get paid upfront, obviously, but consider it a good investment. Hiring managers are more increasingly wanting to see proof that you can do work, especially independently.

Good luck. And if you're handy with R-stats, quant work, machine learning, and maybe even some Python/shell programming (have an application that could use some freelance work), hit me up. Info in my bio.

Seconded, and can confirm. I came to my current software company at 17 and I've been treated fairly to my skill level since (18 today). There are people out there who will see beyond the age, if you look for them. I also fully agree with investing in open source portfolios, and being able to explain how / why you made the choices you did in projects. If you want to go freelance, I'd also suggest talking to local smaller businesses, since that's where found it easiest to find willing clients. But there, again, having a show-able portfolio of work that's similar to what you'd want to be doing goes a long way.

Sure, but what if he's 16?

I started doing remote web development for a company I'm still involved with at 16.

I don't care if he's 14.

Legality issues spring to mind.

Don't use UpWork or similar. The rates are low even for a teenager.

The best projects and rates are through your network.

Family friends, businesses your family uses like you mention.

So start asking around who needs a website or web application. Those will be your best gigs, projects and clients.

Look for ways to setup recurring revenue. Maybe a business needs a website offer to build them a basic website, maintenance, hosting, backups and updates for $99/mo set it up with Stripe or Paypal recurring payments. Increase the cost as pages grow. Offer to include once monthly limited updates, usually clients will only update a page every month or so but you can adjust pricing accordingly.

Or if you build a web application for a client offer a maintenance plan that includes hosting, maintenance, database backups, etc.

This podcast has some great information to start building your own products and apps.


And like others have mentioned patio11 has tons of great info.

Good luck.

>Maybe a business needs a website offer to build them a basic website, maintenance, hosting, backups and updates for $99/mo set it up with Stripe or Paypal recurring payments.

I did this as a teenager and it ended up being a nightmare because you become a magnet for people who want thousands upon thousands of work done for no upfront cost and a low monthly fee. And it puts you in a terrible spot as you are strongly incentivized to say "Yes" to those people because you are desperate for the money and experience.

My recommendation would be to estimate and bill for the actual time put into those projects and have a fair hourly rate that reflects your knowledge and experience.

I agree. Never sign up clients on a monthly arrangement until you have a decent amount of IP available that is readily re-useable.

That way your value proposition for a monthly fee is that it effectively acts as an extended warranty, and saves the upfront costs for a client. But you need to be confident they will sign a term agreement (24+ months) and they need to be confident they can depend on you to fix things when/if they break over that long period of time.

I've seen plenty of scenarios where money has been left on the table for a client who was willing to pay upfront and the contractor did themselves out of a nice fat cheque by talking the client into a monthly arrangement (which just gives them a debtor issue).

The best projects/rates are through your network if your network is in a rich country. For someone who is in an average country, and even more so for a teenager, upwork and similar places can be very useful. Definitely were for me when I was a teen.

Regarding the rates being low on sites like this. Sure there are low rate jobs, and a bunch of people who compete by lowering rates. That doesn't mean you have to do that. It's completely possible to ask for more money on upwork & friends. The classic patio11 advice of charging more works just as fine on upwork as it does elsewhere.

If you're in a rich country, you're still very likely to get very poor rates through friends and family as a teenager, around 1-10% of market rate for a college graduate, at least that's my experience, but maybe I just sucked at marketing myself when I was a teenager.

$100 a month for website maintenance and backups?

In the UK the low end of website design has been eaten up by the DIY web-builders (eg Wix). Usually you can tell, because of the inferior (!) design the small companies that aren't using such tools - often they appear to be using "bedroom companies".

When you get up to a reasonable price then IMO you can't expect to get a good enough product from a singleton worker any more (I used to do some full-stack web design/dev). Sure the design could be great, what about the back-end security, what about the optimisation, what about the SEO, social media promotion/interop, ...

Even just a couple of years has changed this market considerably.

That said small businesses don't always know about the advances, so you can probably still get work.

For local businesses you can sell a package at $99/mo for creating the site, providing hosting, backups, maint. for a simple 4 page site. You take a little risk forgoing the initial payment for building the site but once they are on board you'll make more over the next few years. For a teenager once you have a few of these on board you won't be as hungry for taking low budget projects. But yeah lots of businesses expect a full site for $375.

The rates are low for your first jobs, but if you're good at what you do you can still charge a lot more on those sites.

Yeah, they're obviously not as good as your own network. But, if you literally don't have anything else going on they're a start.

The best projects and rates are through your network. Family friends, businesses your family uses like you mention.

Indeed. Consider taking out an ad in your school newspaper; I had good luck with that back in the day.

Start with minimum wage for your first project. You're likely going to suck, and you don't want to piss off your family friend or have an awkward money discussion.

That's for strangers for business relationships. You should up your rate every 2-3 months to begin with as you build up your portfolio.

y, increasing your rate is a good idea. Don't start with minimum wage though. For early clients I liked to try to do things at a fixed fee that I had a good handle on how long it would take. With a fixed fee they can't see your hourly rate and won't raise a red flag if they are paying you more than they make. Some clients are really sensitive when they hear things like $50 or $100 per hour.

For starting out I would target at least $20 per hour as your target hourly rate. Sounds like you have a bit of experience so you could probably go higher. Use this target hourly rate to set your fixed fee prices.

As you gain more experience and get better clients and projects increase your hourly rate. You'll get faster at things too. So you can increase your rates over time up to $50/hr and $100/hr+.

Learning Rails or Laravel to expand your skills and earning potential. Plus they make working on even small projects easier/faster. I'm a big fan of Laravel. Check out forge.laravel.com for setting up and deploying to VPS.

Also break projects down in to phases. That way you don't have a large fixed fee phase that takes up too much time.

For new/most clients get 50% up front and 50% upon completion for each phase.

Create a simple contract that outlines the scope of work for each phase. If there are changes or additions make sure to send the client an addition to the scope of work with a price increase to approve for that phase.

I've been there while I was still in the first year of college of a 5 year MSc in CS course and needed some extra cash.

I started on Upwork with a very low rate (~$20/h) and applied to as many jobs as the platform allowed me to, with a custom cover letter for every single one. It was time intensive, but without any reviews it's your only way to stand out.

After I got my first project, I made sure that my client was blown away by everything: communication, turnaround time, code quality, etc. When I was sure the client was happy with the result, I asked him if he could leave me a review describing the process of working with me. By asking, you're letting him know that his review matters, and he'll probably put some extra effort instead of just writing something for the sake of it.

I kept (slowly) increasing my rate and continued sending custom proposals for clients. This is your advantage over all the low bids you can be sure they're getting.

After a few projects under my belt, I've built my personal portfolio, making sure Upwork reviews were there, along with a small description of the projects I completed. I've published my portfolio around in a few relevant websites and this has brought me client work directly to me a bunch of times.

After a while, you'll notice you're getting more proposals than you can handle, mostly uninteresting and low pay. That's when I've set my Upwork rate to something high enough that clients that weren't serious just wouldn't contact me.

I was 20 when I started doing this. I'm 23 now, with my MSc almost complete (just delivered my thesis this week) and a remote job working full-time at a startup with a great salary.

This is not a fool-proof plan, I may have gotten lucky here and there, but it is absolutely viable to do this without a resume. I've never had a resume to this day.

Can I ask what type of skills you recommend for upwork? I've done a lot of mobile and now I'm working in Unity and when I looked through Upwork I didn't see many opportunities.

I'm not sure how well this advice translates. I found my first job (as a teenager) by scouring craigslist. I sent my resume probably to 3 or 4 hundred companies over the course of a few weeks. Finally, I found one that didn't want a resume but wanted me to complete a project instead. I spent a few hours working on that, submitted it, and got called back -- they didn't care I was a teenager and paid me $23/hr on a contract. This was fantastic money, since the other places I was looking at were places like subway and best buy.

So again, not sure how well the advice translates to your area -- but try looking for places that ask for coding samples or projects instead of resumes.

I am in a similar boat as you(a broke teenager) but I don't like freelancing that much. I tried a few websites and they mostly make you do uninteresting work at low rates which doesn't justify the time you put into it. Sure, you can do all of this for the sake of learning but remember time is limited. I don't study CS at college and I've done projects in freelancing websites which I regretted later. It affected my regular college work and in the end I felt like I didn't learn much from it nor did I earn a lot due to the low pay offered. I personally suggest you to try getting involved in some open source program or religiously do bug hunting for a specific company. If you are a student in a college, OWASP code sprint, GSoC, X.org EVoC,Mozilla winter of security are some programs to get involved in.

Also, unless this is your full time work, make sure you concentrate on other aspects of your acads. I lost out a lot in my regular college trying to freelance(gain experience) with little to show for at the end both money and projects wise. It's quite hard for me to find work locally as well as internationally now that I am about to graduate(non CS degree) and most of the companies are skeptical about hiring an Indian without a relevant degree to do work that matters. I want to work on low level stuff/networking and all I could find are web development profiles.

If you want to get paid, you have to make stuff people want. When I moved into tech from language teaching, I focused on JS, specifically Backbone.js and CoffeScript. I wasn't specifically interested in front-end work but I did it because that was what people wanted to hire for. After getting some experience and some money, it became much easier to transition to adjacent roles.

It might take you a couple of hops to get there, but I think the fastest way would be to limit yourself to what people want to hire for and then pick the one closest to your interests, excel for a year or two and then use that professional capital to pivot closer to what you're really interested in.

When I started my first development job I didn't even know how to write HTML, I came from writing Windows applications (MFC and Winforms) and AVR/Arduino. Over the past 10 years I've learned that there is actually quite a lot of interesting stuff to be done in web development land outside of UI/JavaScript. Right now I'm working for a company building a Docker/microservices framework, touching nearly every part of the modern software stack (UI, web APIs, networking, Linux, etc). For me being able to code professionally was far more important than being able to code the stuff I was interested in specifically at the time, and it's worked out very well for me.

I totally agree with this. Even I started with web development (backend though) and for a brief period tried to grok some JS frameworks. Took up jobs immaterial of the front end stack and started learning them on the fly. Played with Angular the most. Somehow later my quest for figuring out how a computer works bought me to operating systems and then to a lower level where I deal with assembly these days. I still understand I haven't gone down deep enough but I very much like the path I am pursuing and want to know how deep this rabbit hole goes. However, I wonder if I would be employable with all this knowledge except in some niche places which are absent in India.

Do you think it is possible to build hardware projects with low level stuff to show your expertise regardless?

This story sounds a bit depressing. I hope you will find a way to do what you love. Maybe there are some hardware startups where you can work.

I don't exactly work that close to hardware. Sure, I have done hardware projects involving arduinos and other micro controllers however, I would like to get into/work on the systems level. I am currently teaching myself reverse engineering(I play CTF's sometimes), systems programming etc but the opportunities for such stuff in India seems to be non existing(at least for a non CS graduate).

Also, adding to the fact that I am entirely self taught I sometimes wonder maybe I am missing out on a lot of theoretical stuff they teach in a CS degree.

> Also, adding to the fact that I am entirely self taught I sometimes wonder maybe I am missing out on a lot of theoretical stuff they teach in a CS degree.

A CS degree is useful for a software engineer, but most of what you learn is only tangential to software engineering. Many of the best engineers are self taught.

That said, some of the basic stuff from CS is pretty useful. I'd definitely encourage you to learn data structures and algorithms. Just pick up a good textbook and go through it! (I like to recommend this one: https://www.amazon.com/Algorithm-Design-Manual-Steven-Skiena...).

Another suggestion I have is to seriously think about why you want to do work in lower level stuff. The large majority of jobs are in web development right now, so trying to avoid that really limits your options. There's really nothing more sophisticated or interesting going on at the low levels. I've seen a lot of people come into a software engineering career with preconceptions about exactly what sort of work they want to do, and at the end of the day, I don't think those preconceptions have made any of them happy.

Again, I didn't start pursuing CS in college to get employed. I started learning more about computers, learnt to code websites and then went back to figuring out how a computer works. However, I haven't figured out which area of the stack to develop an expertise in.

I will definitely check that book out. Thanks

>Also, adding to the fact that I am entirely self taught I sometimes wonder maybe I am missing out on a lot of theoretical stuff they teach in a CS degree.

Short answer is very probably not.

Theory helps, and it can help a lot depending on what problems you're solving. But if you know the basics (Why's and How's) of the code that you write, that'll be enough theory to get you where you want to go, especially in the late teens/early 20's (in my experience).

Source: I'm also self-taught, and proudly so. I don't really find that people ask why I don't have a CS degree, as long as I write good code.

Think longer-term. Don't over-focus on the money. Unless you're already living independently, you're in a privileged position wherein your expenses -- while still annoying, I'm sure -- are far lower than they will be at any other point in your life. You can take advantage of that by adjusting your priorities. Rather than having a primary goal of earning money, your primary goals should be building up your expertise, your portfolio of work, and (especially) your passion -- (since passion can carry you farther than just about anything else in life).

So, first and foremost, look for projects/companies/organisations where the work is both maximally interesting and maximally personally challenging. There's a lot of living-on-the-edge startups and NGOs that can't pay very much, but wouldn't care about your age if you've got the skills they need. The monthly Hacker News "who's hiring" threads are littered with such companies. The best hire I ever made was via a "who's hiring" post -- I had a scrappy but exciting startup, and was thrilled to find an incredibly talented developer who wanted to work on it at way below market rate. Took me almost a year to find out that he was 19. Really didn't matter, given his competence. He's now accumulating a co-founder's worth of equity, so hopefully the investment will ultimately pay off for him.

Tl;dr, here's your sort algorithm, in order of priority:

1. They don't ask and/or care about your age. (You don't need that BS.)

2. Company/organisation/product is something you actually feel quite passionate about.

3. The role you'd be given is very challenging and would do a lot to develop your skills.

4. Last and least: salary.

I would recommend getting involved with Udacity as a classroom mentor/forum mentor/project reviewer. All you have to do is demonstrate enough domain experience for whichever course you want to help out in. You can do that by either completeing the course in stellar fashion or demonstrating your skills via a stellar personal project. For more info on it, you can check out my other comment from a couple of days ago: https://news.ycombinator.com/item?id=14472353

On a similar note, maybe offer to teach programming during the summer. There may be parents who are willing to pay a bit so their kids can be exposed to programming, and being a kid yourself, you could create a fun and non threatening atmosphere. Plus, for kids, it's not so important that they learn exactly the most marketable languages and techniques, but just to expand their brains and tickle their interests.

Another idea is to tutor introductory college students. I made reasonable money in college as a math tutor, even as a freshman. The college had a tutoring center, who paid my wage, so I didn't have to deal with collecting money from my students.

I am in your position right now. Being 18 and working part time when having school / full time now because of summer break, and doing this since I've been 17.

My biggest advice: get involved into local meetups. Talk to people, try to make a good impression. Try to get friends with the organizers, so you can become a coorganizer eventually.

I'm getting a lot of job offers, but really, the only worth looking at, are those you get offered by other programmers you get to talk with.

Try to read a lot of development blog posts/be active on chats as this way you get knowledge to make up for your lack of experience when discussing technical topics.

EDIT: Addition: Nobody cares about your age if you can deliver.

One thing I'd add: be eager to find opportunities that aren't just money-makers but that help you move up, meet people who are better than you at what you do, and can help you grow.

Don't let age get to you, my best hire was someone who'd just graduated high school.

I was in the exact same situation as you a few years back. I started freelancing on my 19th birthday (literally) after finding out eLance existed. At the time, I had advanced HTML/CSS skills and could barely build a WordPress theme.

My first 2 projects on eLance were the worst. Effectively doing copy and paste work for what ended up being less than $5/hr. I did get some good reviews though. From there I actually got some good clients, some of which I still work with today. My focus was getting projects the final 20% of the way when hiring cheap work overseas didn't work out for them. Clients were more willing to hire a local (USA) contractor and at higher rates to solve their problem, remember this.

After about 6 months, I stopped using eLance. The model is skewed against high quality work and creates a race to the bottom pricing wise. I was able to find enough work to sustain me through local networking (Meetups are awesome) and a coworking space and I haven't looked back.

I'm 24 now, and I have grown a small freelance gig to my full time income. I have multiple Fortune 1000 companies relying on my services for their performance on search engines, and I have the luxury of working on projects/clients that are a good fit (rather than taking on bad clients because I need to).

My best recommendations: - Focus on what problem you can solve for a business rather then what technologies you use (you're an artisan, not a tool). - Network. Network. Network. This can be in-person or virtual. - Don't focus on your age, clients care about your ability to get work done. - Keep honing in /learning new skills that can make you better serve your clients more efficiently. - Don't be afraid to ask for the sale, or to ask clients for referrals to others

If you'd like email me (in my bio) and i'd be more than happy to pass your resume along to some people in my network.

Good luck!

All jobs are about convincing someone you are worth it. If you have good examples, that helps to convince them. If you are looking to improve your skills as much as make some cash, you can get some stuff for $15/hr. If you expect to get $50/hr from someone you need to be an "expert" in something or be able to convince them you are at least the perfect person for the job.

I have a bunch of side projects and had some college kids that were interested in a paid internship kind of thing. I spent time and money getting them set up and explaining the project, etc. They totally flaked out and just didn't follow through. You have to understand that time and energy is expended on the other side. I've always taken a "prove myself" perspective. "Yeah, I'll do a little work at $10/hr but then we need to reevaluate things based on my value". You aren't locked in to a bad contract and have the ability to move up. I'm sure there are people on here who will give you a chance, including me if you have any web experience.

You'll get to a point (with lots of hard work and good decisions) where selling yourself isn't the hard part of the job and you don't have to spend as much time and energy marketing yourself. Juggling time and projects and choosing who to work with and who not to and also finding time to study to get better is the tough part for me. And also having a life. You'll figure out how to manage your rates and increase them as your skills warrant, but if you're good people will hunt you down. You can only handle so many clients at a time as a sole proprietor though, so it's important to focus on the best clients and lose the duds. I only have 5 clients, but charge $135/hr. (I also have an MBA and lots of business experience) With that few clients, it's important to not let all your eggs end up in 1 basket, which is tricky sometimes since the client mostly determines the project timeframes.

I've started to work as a software developer when I was 16. My first job was a small programming job as a casual employee (20h/month) for a research institution (publicly funded) - it was for minimum wage and I hated it.

After 4-5 months, I've decided to become a freelancer and searched for contract work. I've never used Fiverr or other platforms and I'm convinced that neither should you, because this work will only lead you down the wage path where no one really values what you do.

Try to find small local software companies in the range 1-30 employees, go to local meet-ups for software developers (or even organize your own ones) and get to know those people who can give you a job. I'm currently 19yo and I'm meeting executives at my local chamber of commerce. It's not that hard. But first, you have to lose the attitude described in this sentence:

> software companies are not willing to hire people my age for good reason

This is simply not true. Maybe there are some, but not all. I've get paid the same amount of money as other freelance senior developers. They don't care about my age. They just care that

- I can what I say

- I can do what they need (I'm doing web applications & app development)

- I do it professionally and communicate properly

Just go out, drink coffee with other software developers, tell them that you would love to have a meeting with their executives and you're ready to go.

Be confident in your skills (but never ever make the mistake of overestimating yourself), be calm, show your expertise and that you can and will do the job.

Connect with people, this is the most important part for freelancing work - every time you go out and eat something, go with some project managers who happen to be there, too.

Maybe this sounds too easy to be true, but this is what I did. And I'm sure you can do it, too.

I'm 23 and I also got my first programming job at 16. In my case it was pure luck - I was on a camping trip with a friend's family and they asked me if I knew how to program. I said yes and came in after the trip to start.

It's important to realize that everyone started with no professional experience. Someone will be willing to take the risk of a few dollars spent on time and/or labor to see if it works out. A bit of charisma, luck, and dedication goes a long way. I now have professional experience in project management, training, hiring, communicating effectively, database experience, etc. because I worked hard for the opportunities I've been given.

I think networking is excellent advice. It's not uncommon to be at a coffee shop or bar and talk shop with strangers and be offered work. Maybe that's because of my location but certainly it's a good way to find work. There have been plenty of times where I see someone working on software and I'll walk up to them and ask if they wouldn't mind talking about it for a few minutes. People are typically friendly and enjoy some discussion. It can go a long way.

Unfortunately, unless you are lucky and have the connections and required social skills (e.g. you live in a place where engineers are respected and you know people who are not age-biased and to whom you can argument your value), the chances of finding well-paid work as a teenager are slim.

For self-taught programmers, before you find work with good pay, there seems to be a phase of self-validation. In a way, you have to pave your road somehow to demonstrate your value. For me, this meant freelancing for individuals and small businesses to gain work to which to refer to when later interviewing. I had done five of these gigs before landing a job opportunity which paid going rates for university graduates. Before that, I had worked three years and made the equivalent of two-month salary in my new job. I had been underpaid. My boss even implied that I had been a bargain, but working for under the minimum wage besides studies was what it required to me to gain some experience.

After the aforementioned job experience, I turned my twenties and at the same time the "age discrimination" I had experienced before turned upside-down. To me, this seemed like I had reached the point of self-validation, after which I was seen as an equivalent of a university graduate.

So, if possible, do not give up because of the low pay as long as you are able to learn. In my opinion, investing in yourself when you are still young is one of the best investments one can do.

In a way, people here talk about product-market fit. To me, it seems like you as a freelancer have been able to a figure that out already by finding businesses which have ordered applications from you. I think that if you are able to continue whatever you are doing now and also learn new (to increase your social capital), have some fun (to avoid burnout) and to make some money (for ramen profitability or to justify your family that you are doing something of value on the computer) then you will eventually land the job opportunity by "chance" (recruiters) or then you are able to justify your skills once you apply to a job which interests you.

I was in your shoes 10-15 years ago. Here's a few bits of advice:

* Upwork (well, Elance back then) worked out pretty well for me. The skill test are a nice way of showing that you can do the work without having much history.

* You don't have to tell everyone that you're a teen - don't lie about it, but don't shout it from the rooftops.

* As other folks have mentioned, a GitHub and/or personal website can help you.

* Create a couple of side projects - they don't have to be that original or full-featured, make a simple game or something. Just put something out there that you can point to and say "I built that".

I do some mentoring and also occasionally hire folks for contract work. Email is in my profile if you're interested in either.

Keep checking in with your network for jobs they need that you can do. Present yourself well online (your portfolio and yourself). Expand your network.

Two previous threads about starting to freelance: https://news.ycombinator.com/item?id=8761088 https://news.ycombinator.com/item?id=14424699

I'd pick a technology to focus on, and present yourself as a person who specializes in it. Put your skills and work first and foremost online / on your resume. Choose something you can use quickly, and fully build the projects you have or are about to have. Whatever it is. Start with the HTML/CSS/basic JS. Or Wordpress, Drupal. Or React or Rails or Flask. Practice most for the job you have. Second most for the job you want.

Work with the businesses you built things for to be references, and if at all possible get a good looking project one to be publicly accessible. At least as a few screen shots. Clients want to see what you've done.


Good luck!

I started working as a programmer the day I turned 16 in the early 90's, at $50/hr. Freelancing is a good idea... I would focus on small organizations, possibly non-profits. Learn about what organizations do and talk to people there about ideas you have and/or your ability to implement their ideas. Basically, you need to learn sales.

A few decades later I still rely on the approach I learned back then. While many of my peers have a mentality that they are at the mercy of the job market, and need people to create & define work for them, I can create customers wherever I meet people. I have a number of small business customers who would likely never have done development if I hadn't sought them out.

While this isn't the top way to earn a lot of money as a software developer, I continue to work heavily with small businesses because I like it, and because it eliminates a lot of the factors that others seem to dislike about a programming career. Regardless it's a great way to get your foot in the door... companies who can't afford $80,000 programmer salaries -- or the contract equivalent -- can't afford to be prejudiced against your youth and inexperience.

Are you a kid in school? If so, I suggest approaching companies in your local community and specifically saying you want a job "for summer vacation". IMHO the biggest risk for an employer is getting stuck with someone that's no good and has to be fired later. By coming in as a freelancer, intern, or summer employee, you take that risk away. And given the desperate shortage of good IT people out there, if you prove yourself better than terrible you'll very likely be asked back.

I would not target "software companies" but rather ordinary companies that lack IT talent. Lots of businesses out there need simple edits to their web pages, or SQL queries from their ETL or CRM (systems they buy but don't know how to work with "under the hood"), and could use your h elp.

Hey, I've got a bit of first hand experience here. Been doing professional work since ~15ish and had a handful of friends in similar situations.

1. Use your age as a strategic advantage not a limiting factor.

Seriously, I wish I'd appreciated this a little more because it changes the day you graduate high school and become a college student. You have a unique ability to talk to just about anyone right now as a virtue of being young and curious. Reach out to people you admire, not specifically asking for work, but for mentorship and advice. The returns will be high. People in this industry love young ambitious developers.

2. Get involved in the community.

All the work I got before college was through personal connections. Show up at hackathons (big one), go to technical meetups if there are ones in your area, get to know people on a personal level. Forget "networking" start making friends with other people in the field, you'll start getting calls about work.

3. Code a ton

Seriously, open source, personal projects, whatever. Just improve as a developer. My first steady contributions were doing volunteer web development for a local non-profit and that kickstarted all the professional stuff I was able to do pre-college.

4. Understand your value

Unless you're truly an outlier - you aren't going to be getting paid what a CS grad with 10 years experience is. That's just a reality of your experience level. That said I see way too many younger developers accept gross underpayment. Do not work for someone paying you $10/hour. Your time would be much better spent contributing to meaningful open source work.

5. Get into the best school you can

A good CS program will be a game changer for you, or at least it was for me. Get the grades and exam scores you need to do that. A resume of relevant experience is also massively helpful.

Companies are much more interested in your skills than your age. Startups in particular are very willing to hire teenagers if they can see that you will provide value. Keep learning. If you want to chat more email me (in bio).

Can only speak of 10-15 years ago - but if you know anyone who knows anyone at a (probably smaller) company in your area, that might work - an introduction can be enough to get a shot. I do think smaller companies are better for this than big ones, but ymmv. Also, meetups. But I guess they've in general changed a lot and I don't really too many really young people (who are not studying in college or similar already).

I started doing programming at age of 16. I learned PHP then I posted in fiverr.com for freelance projects. I got many project through that and learn a lot

If you're a student, Google Summer of Code is an option. It's bad timing because the application period is around March/April (so that the work period falls within the summer break), so it would only be something for next year, but I can highly recommend it.

The idea is that Google chooses several open-source projects for the program each year, and then students can apply to the projects with their own ideas (or by taking one of the ideas proposed by the project's contributors). The project chooses the best proposals, pairs the students with mentors, and has them work on the chosen topics for about 3 months. Reviews are submitted to Google at multiple times during that period, and the student is expected to both deliver code and engage in the project's community. Also, the student gets a nice payment from Google for each completed milestone. (I think it comes out at about 4000 dollars or so.)

So in the end, you have a small pile of money, some code to put in your portfolio, actual work experience, and the "Google Summer of Code" checkmark for your resume.

Disclaimer: I have served as a mentor for KDE in GSoC 2009.

You got it relatively easy: I assume you don't have any good contacts on the business, which is the obvious first choice. You can find clients at upwork or some freelancing site. Prioritize portfolio building and long term projects/recurring clients over one time deals and money. After a trial period, if you are good and trustworthy enough, ditch upwork and start charging them what you are really worth. Obviously don't be a dick and be upfront about your intentions of charging them more when you prove them you are worth it. It is a lengthy process. You need to be reliable and smart, otherwise you will not find good clients and you'll be taken advantage of. I don't want to discourage you but if you aren't good enough yet and you need the money now you'll be better off working at mcdonalds or some other simple teenage job.

Get on Upwork or similar sites and price low and deliver. You can up your rate as you earn reviews and a portfolio.

I think most advice on how to start freelancing applies to you despite your age; it's just going to be a little harder for you than for a more experienced and/or older person. There's a ton of advice on this topic in previous discussions here. See https://www.google.com/search?q=start+freelancing+site%3Anew.... I think it's very doable though.

I'd also caution you not to focus on freelancing to the extent that it hurts your schoolwork. If you want to program as a career, graduating from a top 10 CS school will open a lot of doors for you, and I would make laying the groundwork for that your primary goal.

I made a few thousand a year as a teenager in addition to a typical teenage job at a bagel store/CompUSA by leveraging family friends to build websites for their pet projects like a craft business or band website. You have to actively market yourself and constantly reach out via parents, but if you are persistent, you might find work. People will often think that a teenager is both cheap and capable (which they often are) so you might be able to get contracts that formal companies cannot. It takes a lot of practice to understand how to communicate with clients but you will get the benefit of the doubt as a young person.

It isn't sexy but small businesses need help setting up websites and stuff like that. It's good experience both with programming and also working with people (which is usually the hardest part of any programming job).

Would you care to put an email or other contact info in your profile, in case someone wants to reach out to you?

I see someone also mentioned Patrick (patio11), you would do very well to follow his advice. TONS of value in his stuff.

I'm in Canada, we wouldn't discriminate based on your age (in fact I think it'd be illegal).

I'd say start contributing patches to open-source projects you like. You'll have to fork them, which will make your Github page less empty (but no one will be fooled into thinking they are yours), and you'll learn how the open-source world (and therefore some teams) works.

If you don't like any particular open-source projects, start finding some to like because it's a big part of the culture (unless you absolutely want a corporate soul-sucking job).

If you are very good, you will get jobs, either hired or as a freelance.

So work on becoming very good. Choose a platform and a problem domain, and become very good at it.

I was in charge of a software development departament inside a company and i never took the ages of the applicants into account. Only their skills and how nice/approachable/good-humored they were. I got people ranging in age​ from 19 to about 34, no problem within the team.

In this business what matters is not how mature you look. What matters is to get the job done on time and keeping the customer happy.

Go for it!

Start a blog, create a course or two for something like PluralSight or Lynda.

Check out Simple Programmer.

As others have said, this is more an investment than a direct payment... but it will pay off.

Sounds like he/she wants cold hard cash. But if an investment is on the table then writing some open source is a wonderful way to go. I wrote some and have a few hundred thousand downloads, a few million page views (for the manual) and it is amazing the sort of businesses that like that on a CV. It's opened up a lot of doors for me.

Freelancing is hard when you are doing it alone. Try to work with someone who can get projects. So you can just focus on delivery or vice versa. Check out triplebyte (yc startup). It is pretty difficult to get in though. Try to master just one skill.I used to look out for latest skills like elixir , go (when they were new). In your case , look for angular 4, kotlin, swift or elixir. Just pick one and keep at it.

All the Best.

My school used this online grade management system and the students access to it was really bad and only showed the letter grade for each calss average. So I made a python app to manage all your grades and calculate the by scarping the online site using python. I sold the app and made some money so i don't know if you can do the same. Otherwise just keep learning and follow everyone else's advise.

Open an account at freelancer.com and similars and see how the system works and what can you offer. It really works, though competition is high. This will help you build a portfolio and make money in the process.

Search for people problems and build an app to solve it. Apps are hot.

Github portfolios, open source projects, etc... may make you look important but it does not generate direct income. Try to avoid the ego trap there.

I think freelancing is only one of the many awesome ways you can earn money and build your career as a developer :)

If you're interested in working with people, you can always apply to become a mentor on Codementor. If you earn some positive reviews, you'll gain a bit of credibility to help you work as a freelancer as well!

Keep programming and stay passionate!

I personally have hired a young person on the apprenticeship scheme in the UK, hes great. Hes doing so well he is getting his qualification early and hes also doing very meaningful work for the company.

I dont know if thats an option in your country but people so hire younger coders, perhaps start approaching local companies that are smaller in size?

Not sure of age requirements but maybe try bountysource is the only thing that comes to mind:


I've not used it, but seen projects I keep an eye on put down some good rewards (even users / companies do as well) so maybe worth checking out.

Make open source contributions and establish yourself as someone whose code is trusted and accepted by your peers (the open source community). I don't mean to just publish your own open source project, but rather to be involved in other people's projects, specifically the ones that you plan to use for employment.

Step 1: solve someone's problem

Step 2: collect money

The small business world is filled with unsolved problems. Get out there and find 'em.

Look into making hacks for games or rotation bots using C#. Or go into advance HP/UI scanning for FPS. Bunch of teenage hackers charge $30-$60 a month for those services. Use http://selly.gg for setting up digital shops

What type of stuff are you interested in ? I'm looking for people to help with mobile app dev and could consider remote applicants. Have a look: http://getapony.com/job.html

Not OP but am in a similar position. I had a look at your website and would love to help out with developing the Android app. I'm looking for 1-2 days a week while I'm a student, is this suitable? Once I finish my exams in a few weeks I can send you my CV. Also I'm in commutable distance to your Hatton Garden offices.

You mostly have a presentation problem if you have marketable skills that won't sell. I started when I was 15 and the trick was displaying confidence, humility, and maturity in every interaction. It's harder than it sounds.

Search for patio11's posts. Also, develop a great website as part of a portfolio.

It is possible to become very successful through freelance work - make sure you keep in touch with good contacts and try and move from the position of hire to business partner. Can be done, not easy

Without a resume and being a teenager, I would probably do a couple of apps and get them in the app stores. It can get you some money and provides a nice opening line for freelance work.

Not sure how well the market is doing now, but I made quite a bit of money (half of fulltime jr dev salary) doing freelance Minecraft development work off of forums like SpigotMC.

What kind of work are you interested in? I have a few web apps that I'd like to get up and running if you want something that fits your schedule. My e-mail is in my profile.

When I was in high school, my summer jobs included: lawnmowing, building construction, dishwashing, and being a gas-station attendant. It worked out just fine.

And so you're saying that because you did this work and he would like to do technical work that somehow he is wrong? What value are you bringing to this discussion for this young man?

> And so you're saying that because you did this work and he would like to do technical work that somehow he is wrong?


> What value are you bringing to this discussion for this young man?

My goal was to help him not feel stressed out if he has trouble finding this kind of work right away.

join a tech meetup, ask to help someone out and pair program and if you're trusted they might give a few projects or tasks to you.

Thanks for all the responses! I've got quite a bit to sort through, so it may take me awhile to get back to you.

Getting employed part-time at a normal company is still one of the viable options. How many did you try to ask?

Try UpWork. In the past I have used UpWork to hire a programmer aged 19 or 20 and paid $23 per hour.

I did freelancing at age 16, sometimes had to lie a little but elance (now upwork) is a good way.

Keep programming fun and do a normal job. Imagine that you decide to pay for your car bills by working on some type of car garage place, either doing mechanics or serving customers. By being part of this business you will learn many skills that may not seem as important as the latest Tensorflow coolness, but are best learned now rather than later. Learn how to put the customer first, learn how to negotiate, learn how to survive being on your feet all day, take on responsibility, have great camaraderie with the team, learn how to be an entrepreneur, learn about how much effort a company has to put in to pay taxes, staff and suppliers.

Sure you will be too tired when you get home to do all that wonderful programming, but this is not a forever job, it is a job that gets you solid experience that may be more useful than you think.

For instance, imagine some fantastic Tesla gig comes to town. You want to be programming that centre console with some Tensorflow coolness. You are up against some other guy that wants to do the same. You just so happen to know how to sell a car because you have done it, you have also done it as part of a team and appreciate the nuances of it. Your idea of what shows on the centre console will be better than the other guys because you have seen how customers behave on the showroom floor. So for you it is not just a programming job, it is about customer satisfaction and the bigger dream.

I provide an automotive analogy here, I recommend any 'normal job' and that can be in retail or in factories or an office, it matters not. Specialist sales is true retail, stacking shelves or sitting at a till is not what you want.

Essentially all software is for someone or some industry, clearly there is 'plan9' exceptionalism, but the general deal is that software solves a real world problem. So you can do normal jobs in this real world, to therefore understand the world of the problems that the software is trying to solve. So if you work in retail and learn how to put the customer first, that will come in handy if you have to do online sales stuff. Will they want the guy that sat in the basement programming, or the guy that spent time hard at work learning the core thing the hard way? I suspect the latter.

With this strategy you can keep programming fun. By that I mean not patching some legacy system that needs a complete rewrite but that is organisationally impossible. It means not being micro-managed. Also, with 'normal' jobs, the hours may be long but you don't take your work home. With software there is none of that, it is as bad as studying for always having more one can do.

With a lot of normal work there is an aspect of where you are making the world a better place and making a difference. If you find your work is valued by customers or the local community then there is job satisfaction that is quite hard to find if sat behind a screen.

Every business has pinch points, these can often be automated by someone who can code. So in that apparently mundane factory you might see an opportunity to solve a problem or two, in code. It is for you to see these opportunities, however they are everywhere and you can develop a niche new product for your company, if you polish it beyond MVP you might be able to sell that across the sector. For instance, returning to the car analogy, you might find that a common problem in a particular dealership where a product puts you through a hoop or two more than needed. You could be bright and fresh to the problem and get it right for those too encultured in the old ways to see that better is possible. Having solved the problem for your original employer you could then put a 'v 2' version of your software out in a specialist marketplace, then learn how to support and sell a full commercial version of what you originally built. You can also do this whilst keeping the original normal day job. In making such a creative solution out of thin air you have got on with the job and not stood around waiting chicken and egg style for someone to hire you.

Regarding creativity, there is a lot to be said for getting programming gigs in fiercely competitive creative industries. Here technical talent can be hard to find, particularly those willing to cross the line of being actually creative. It is easy to hide in the programming world and to be a 'dunno' with creative decision making. But if you can straddle the both then there are plenty of non-technical types wanting to give you work.

you're a teenager, so work at mcdonalds (for the money) and do code for free or work on a project that'll impress someone in an interview.

No no, in this time it is possible to normally get part-time programming job at a company. No need for MCD. (if you know coding of course).

yeah, possibly the report generation monkey or typo fixer could be a possibility.

Lots of teenagers out their who are great at setting and customising wordpress for small businesses.

Question: why the job?

Do you need to make money, or are you looking for a validating project to work on/experience? If so I have some other ideas but first things first

1. Make sure you stay focused on grades and definitely do Computer Science/Computer Systems Engineering one or the other. Find a school that welcomes the geek like mentality. While I have heard Harvard and such has good Compsci programs, going to a geekier school might be helpful. For me, going to an Engineering school where 80% of the majors were engineers was kind of awesome, it was like everything was a programming club. If you are into that stuff it's fun. You will get a great education elsewhere, but not the same sense of community and experience. It's really fun.

So in the midst of everything, dont forget to make going to a good college a priority. Theres going to be lots of downvotes and explorations of whether college it worth it or not, but I say its worth it because of my following theme: the people

2. Like many have said "oh I did that once at your age and worked for some mind numbing job somewhere etc"

Don't do that here are some ideas

3. Do you live in a big city? If so, places like LA, Bay Area and NYC WILL hire you for projects if you go to the startup scene.

4. In big cities there are hacker houses, reddit meetup groups etc dedicated to programmers. Find and do all of those things and begin to meet other people in your community who program. Going to a hacker house and meeting college kids doing the same thing as you will give you unprecedented advice, let you work on projects with them and you may get an internship to one of the companies they work with.

I dont' want this to sound like political networking stuff, I'm saying that in this field the quality of your work matters, but so do the people. Real programmers will be impressed with you and find places for you meeting them in person you would not be able to find elsehwere.

In San Francisco there are hacker houses dedicated to highschool dropouts starting companies and the little sister of the 17yr old female Russian now woman who started Wanelo I think was the one who started it. In big cities you will find open minded things like this. I would focus on finding communities like this ALONGSIDE your search but you may find these communities find you more venues for work/interesting projects for pay/stock options than you initially anticipated.

I dated a guy who by the time he was a freshman in college had worked for multiple startups because of his programming abilities. He grew up in Boston, his dad worked at Oracle and he went to things like MIT startup bootcamp. Sure he was well connected but also motivated, and in big cities like that you have access to things like that.

5. Continue to beef up your github

For you, learn this lesson now, don't sell yourself short, every great aunt, manager, passerby on the street will want you to code their next unicorn app for them and say theyll pay you later once they "figure out the profit" stuff and its no uncommon for people in your position to get caught being overworked and underpaid on less than stellar ideas.

I would say your best bet is to find projects you like, dive into an area of expertise, VR, AI, compression, graphics, whatever you like and find people working on projects like that whether startups, bootcamps, hacker houses, etc and find those people and work with them and don't settle for working on anythign that youre not interested in and getting valuable learnign experience in.

This is why finding other people who can code is important, otherwise youll be treated as a gruntwork engineer doing data entry or writing someones "app"

6. Finally,

7. You can always make your own stuff opensource and host on a website, even if it doesn't make money. I would say at your age unless you really need the money to get buy and have to choose between working shifts at a restaurant or coding, to focus on your knowledge/interests and produce your own projects in areas you are interested in.

8. Again, if money is not number one priority, you can also use community service as a venue. There are probably businesses in your community, clubs or charities at your school etc who could benefit from some development, and then you can not have to spend time on extracurriculars at school just to impress a college, and turn them into real world experience for you.

As someone who started very early in his teenage years doing something similar to provide for his family and pay off family debt, I'd like to think my advice is at least somewhat relevant.

> software companies are not willing to hire people my age for good reason

First of all, many people have not been through this and are unable to relate. I'll tell you now, yes, as a teen, it will be incredibly difficult regardless of your capability, to have buy-in from the wallet holders of these companies. However, there are ways to mitigate this while not lying:

- Differentiate yourself from your competition. Sure, everyone can code, sure everyone can talk and say they can deliver, that they're meticulous and detailed-oriented. Everyone sounds the same, so how do you sound different? Think about what's important to the business owner. Truly understand why they are pursuing a certain project. Most likely, someone didn't just dream up a project and decide to dump money into it; it's an investment, they want to gain something from this effort. Speak to their hopes, address their fears, and demonstrate an understanding of their business. This insight is sorely lacking in our industry, especially amongst developers who are often too stuck in the mental map of their software architecture, and miss the bigger picture.

- Do not draw attention to your age. I don't want to get in your head that older people, business people have a prejudice against you simply because of age. But it's there, it's incredibly noticeable, and invites questions. Sure, most people will not take issue with your age, but subconsciously, all sorts of questions arrive in their heads. Trust me when I say there is little you can do to ease most of these concerns, no matter how reputable you are, how amazing your past work has been, or how mature you seem. The answer is simple: don't make mention of your age or anything that may indicate you're a teenager. If possible, avoid phone calls and in-person meets; be sure to mention early on that email communication is preferred, and that you are more accessible via email. Over time, if people notice you are more responsive via email, that's how they will reach out to you.

- If they're not going to buy, they're not going to buy, learn to accept it. You will invariably face a lot of rejections, and it may be because of your age, it may not. Either way, accept it and move on. If someone tries to lowball you "because you lack experience", "you're too young", you do not need to beg and chase them to "give you a chance". Don't start off on the wrong foot, it'll cause more headaches than it's worth.

- Avoid bidding sites. It's a rat race to the bottom. You're at the whim of these sites, and whenever they feel like it, they'll increase their cut while offering you nothing more of value (see: Upwork changing their fees from 10% to 20%). If you absolutely have/want to, charge your standard rate, don't lowball just so you can get contracts.

That said, all of this is assuming that you have a lot to offer and are good at what you do. Focus on your personal growth and learning, try to take projects that further that mission, and focus on providing value.

Good luck!

What languages and platforms do you know?

The most honest answer is you don't. Unless you are a legit genius-level developer, in which case you wouldn't be posting this question on here.

No need to be a genius, a passionated teenager can do as good as a junior dev that went through university

I'm typing this on my way from work to university.

I'm 19 with no formal qualifications except high school. Not a 'genius'.

There are jobs out there for young developers!

I paid my way through private high school by building websites for small businesses 19 years ago. Nowadays you can build a CRUD web app with the same effort. Many small businesses will beg you to solve their little technical problems.

This may sound mean but truth of the matter is - a lot of people think they're way better than they really are.

I wouldn't trust most working developers I've worked with to be able to deliver me something decent from start to finish, alone.

That's why companies have BAs, managers, testers, etc. Because doing it solo is a rare feat, unless we're talking gluing a wordpress theme together, in which case I'd recommend they look into squarespace :)

   I wouldn't trust most working developers I've worked with to be able to deliver me something decent from start to finish, alone.
I have the same feeling for a lot of my CS university peers but yeah like you implied being on its own is a different situation

Big companies work like mafia.

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact