Ask HN: I'm 26 and would like to make 100k/yearly before I'm 30. How do I do it?
I have a very deep understanding of html/css and I know enough jQuery/JavaScript to handle DOM manipulation, as well as build out image sliders, tabbed content areas, etc. etc. I am also very knowledgeable about WordPress. As far as locations go, I live in the central US and won't be moving to San Francisco, New York City or any other large coastal city. Taking that into consideration, 100k would be considered more in the central US than somewhere like San Francisco.
Basically, I see two options. The first option is to start learning a backend language, something like Ruby/C# and hoping for the best. I seriously doubt I could get enough experience learning a new language part time though. My second option is to really start focusing on MVC JavaScript frameworks and becoming proficient in something like Backbone or Angular.
Are those my only two realistic options? If so, are there any recommendations on which route I should go or any general advice?
52 comments
[ 2.8 ms ] story [ 111 ms ] threadWhat do people want so badly that they will give you $100,000 to get it?
give me us a resume jobs@greenpolkadotbox.com
https://angel.co/jobs
And also, what is the job pool like around you? Certain companies just don't pay as much as others.
If you want to continue web dev, learn the backend. Take some time, and write a small webapp in Django, Rails, Play Framework, Node, and anything else that sparks your fancy (and learn their accompanying languages).
Also, one other thing that will get you paid really quickly is databases. Learn your RBDMS theory, optimizations, normalization, etc. And learn about some noSQL databases, and you will qualify for a whole different class of jobs, which will be higher paying, for sure. Much less people are knowledgeable about databases.
These days, the easiest and quickest way to get a rise in paygrade is to switch jobs and renegotiate.
[EDIT] - philliphodgen's answer is possibly more right than this one. A practical application: go look on job sites like glass door, and see how much money is getting paid on average for which job descriptions, then get those skills.
Err... None of that compiles - they get interpreted.
I imagine they're alternative options.
But the point stands, those things will give him full stack experience while staying in web land
I started off answering his question but then stopped going in that direction when I figured he could get full-stack experience (which was more what he seemed to be looking for), instead of writing C kernel code somewhere.
This... was not my clearest post
Learning a new language part time is easy - if you're smart you could certainly pick up Ruby or C# in a couple of weekends. You don't need "experience" to get good at something, only to get hired for it. So again, the secret is to get hired for a position that's nominally doing something on your CV (web developer), then transition within the company to doing what you want. If need be, once you have your C#/whatever "experience" from doing it at this company you can then use that to get a job as a "C# developer" at a second company (possibly at higher salary). It's insane that this is how things work, but that's hiring practices for you.
If you want to be treated well and make money, well you're going to need to be a high-tier professional. Maybe a software architect or data scientist. Both require a lot of knowledge and practice.
In terms of making more $ the first thing I would work on is salary negotiation, not necessarily skills. There are a few great salary courses on udemy that can help with asking/answer the right questions when looking for something new or even a raise.
In terms of location/salary - I would also recommend looking to freelance for companies in NY/SF as you can get a higher rate rather than central US.
Lastly - I would say to not just think in terms of $100k but in terms of products. What products/site could you build that charges $30/month (SAAS) and can get 500 signups. Just that would get $18k/month in revenue or over $200k/year. Now $30/month may sound like a lot but take a look at Basecamp (http://basecamp.com/pricing) $20 minium a month or dive into b2b saas and checkout some of the crazy #'s they charge - http://www.marketo.com/small-medium-business/pricing.php
500 clients sounds like a lot at $30 - but no matter how you do the math (10 clients $1000/each) or (100 clients $100) a product can easily pay over your $100k/year especially if you spend the next 4 years building it. Focus on getting your first paying customer within 1 month of today and just keep going hard.
My 2 cents :) Good Luck!
Everyone knows JS - it will be much harder to compete in future. Better learn an old ERP system that gets updated and has a decent market :).
Well if that's the process then why not just up the ante and figure out how to make some absurd amount of money?
The reality is you're not going to be able to answer that question with any degree of accuracy as to make the exercise meaningful.
All you can do is put something out there that you believe has potential and gauge how profitable it is and consider the growth potential in the future.
1. don't stay at a company more than 2 years (unless they give you what you want) and ask at least 20% more every time you change jobs.
2. become a contractor and eventually run your own business
Most importantly, enjoy what you do. No matter how much you make, if you hate going to work, it won't matter.
I live in Minneapolis, and I've noticed that the bigger companies pay more. Best Buy, 3M, Pearson, Microsoft and Oracle are notable ones near here. If you don't mind giant, slow moving corps then an easy way to make more is to work for one.
100k for a front-end or JS developer is very doable, especially if you know the MVCs and a backend language. Node.js might be a good path as its growing quickly and it's done in a language you already know.
And lastly, build cool stuff in your spare time and list it all on a nice website. Use those projects as proof and reference during salary negotiations.
If you truly want to make that kind of money, become an expert in one of these: Fortran, Cobol, mainframes, project management and architecture, Oracle, SAP/Sage/SAS (or other ERP dialect). They're boring, but that's precisely why the jobs pay well. These jobs are almost always open, and almost always pay more than 100k with 5+ years of experience. You pay for it in stress though.
1. Salaries rarely go down once you've landed the job. So if he can get an $70k job now and get a $5k raise each year for the next 4 years that puts him in a pretty good spot to switch jobs and jump to the $100k.
2. Depending on his desire he could leverage his programming + design skills in a unique way that allows him to get to $100k from freelancing, building products, etc. Learning the backend is a stepping stone not the destination, but combined with #1 above means earning an extra $20k on the side is very doable.
3. I doubt that the ability to build enterprise applications out of ruby/python/js will ever be seen as bottom tier office work. People can't figure out how to work their own printers at work, I don't think we'll see these people suddenly learning how to build enterprise applications. Again, even if that is the case, sit tight and your salary probably won't decline as long as you don't leave the job.
1: Consulting on the side.
Find a company that has you working an actual 40 hours per week (government contractors are good for this), which doesn't bar you from doing some side work (bonus points if they have a culture which supports this). Then, find a client or two. You won't have to charge much in order to cross the six figure barrier.
2: Work outside of the software industry
Within a year of when I started consulting, I was recruited by a shrinkwrap products company to work in their intelligent products division. Because I was already consulting successfully, and because I didn't really feel like I wanted the job, I threw out some high numbers during salary negotiation. In the end I wound up with a compensation package North of six figures in an area with very low cost of living.
General advice:
Quit focusing on what solutions you'd need to learn in order to get to the next level. Instead focus on what problems pay the most. Never, ever market yourself in terms of the tools you use. Market yourself in terms of the problems you solve.
Edit:
One other thing - definitely do learn more. Always. The more you learn, the more problems you'll be able to solve. Just make sure that you're letting the problems focus your learning and career development, not trends in solutions.
Edit 2:
Did I really write "done crossed the six-figure barrier" up there? "Well shewt!"
The only advice I can really offer on how to get started is to network. Talk to people about their problems at work and take genuine interest, even when they're not a potential client. Where possible, help people out in meaningful ways and show (don't tell) them that you're smart and that their problems are important to you. You'll probably end up doing some free work this way, but you'll make friends who trust you and that's far, far more valuable. As long as you're clear that you're looking for consulting work, it'll find you eventually. Just don't belabor the point.
One trick of mine is to focus on selling the minimum amount of complexity. Figure out exactly the value that the customer is looking for - often times they don't know what it is. There's a saying that a person in a hardware store looking for a quarter inch drill doesn't need a quarter inch drill, they need a quarter inch hole. But more importantly almost nobody needs a quarter inch hole -- maybe they need a new shelf. If they need a new shelf, maybe they just have too much stuff. No matter what it is, get to the bottom of their problem and sell them the simplest solution with the maximum value, even if it doesn't make you any money today.
Also consider trying to tackle some stickier problems in well-known open source projects. PostgreSQL is a favorite example of mine for this as they make it very easy to contribute. Why hire someone who "knows" PostgreSQL when you can hire someone who helps write PostgreSQL?
This sounds great, but will it work in the current job market? If I have large experience say in Rails and want to join a company working on interesting problems, but they use Django. What are my chances to sell myself to them?
You're not going to do as well at a company which hires based on the solution as one which hires based on the problem. Ideally you want to be in a position where you're being held accountable by people for which the specific technical details of the solution are mostly out of their scope.
The company I work for is hiring for front-end developers on the project I am working on in Denver. It would put you over $100k. If you have strong JS skills and are willing to come to Denver my work email is in my profile.
I would actually love to move to Denver but my wife is currently working on a masters degree so moving is out of the question for the next couple of years.
Unfortunately, those that make money decisions see you as just a resource. You are a thing. You have a recurring cost, you produce products, and they don’t really care about the quality of your work unless it becomes a problem. What you are worth to them depends on the amount you are willing to take, your rarity, and what it would cost to replace you. To make more, you should learn to market yourself as a thing.
If you want to stay a front end guy, learn good design and develop your taste. Business people in general have a higher respect for designers than front end coders, as their work visibly and directly impacts the perceived quality of the end product. Being a designer also gets you more face-time with product managers, who’s opinions are generally taken seriously by the money people when deciding your value. Being able to come up with both designs and implementations for those designs will help you shorten the development cycle on projects that you are assigned to (as there are fewer required meetings, and you are not going to push-back on yourself).
In my experience the back-end plan is a better (but more difficult) one. It will open more doors for you in the long run, and is less vulnerable to shifts in the market. Your work will have more depth, and it’s an easier place to set yourself apart from your competition later in your career. It's very important that you focus on learning OO first, before taking a deep dive into the language itself.
You CAN get to “senior” level without having a real understanding with OO. Anyone that does know OO well (likely everyone in development management depending on the company) will be able to tell you are a hack when they look over your code, and will be less likely to promote (or trust) you. From a development management perspective it is common to separate the developers who work for you into two separate camps: cattle (who build what they’re told), and problem solvers (who solve problems). At all cost, you want to be in the latter camp. If you find yourself in the cattle camp, it is easier to swap jobs than change that perception.
http://adriancheok.info/post/26835527269/secret-for-innovati...
If you choose c#, the framework is massive. This is daunting at first, but you will learn to love it. It is very discoverable (you can learn quickly by poking around). Whichever language you choose, find some heroes in your company, and talk to them often. Offer your free time to help them with their projects. Ask them to mentor you. Read their code. Ask them to be rough on you in code reviews. Never talk back to them, and listen to what they say; however remember that they are just people like you, and your goal is to get better, not to become them. These relationships will be important later in your career, as these people will help you get jobs later if you are good to them.
The language choice depends on what sort of company you want to work for. C# is not often used in startups, and ruby (as far as I know) is rarely used in large corporations. There are exceptions to both, but the exceptions are not what you want to bank your career on.
Whatever path you choose, this industry is difficult if you plan to be a world class player (where the money is). You should move into something you enjoy instead of making a decision based on earnings potential.
Are you talking about the front-end side of things being the wrong industry or web development in general being the wrong industry?
Also, i'm definitely not making a decision solely based upon monetary reasons. I really enjoy what I do but I know there is the possibility to make more than I am now and I would like to advantage of that possibility.