There's no need to be so hard on yourself. You don't go about dismissing other people because they haven't reached the pinnacle of success at 21, do you?
I did the same thing, but without the added benefit of making any money like you're doing now. I had such a strong notion of what I wanted to do, and as I spent more time messing around with ideas in my spare time and learning more about what I wanted for myself, those notions changed so radically that I went from stem cell research to IDEs in a matter of years. The thing that helped me the most were the people around me. I was able to talk out all my thoughts and worries and anxieties. I was able to share in other people's interests and passions to see if maybe those were mine too. It made me feel like I wasn't alone, like things weren't hopeless, and like I had the potential to be extraordinary if I wanted to be. Ultimately the things that have truly begun to define my life came from utterly unexpected places, and almost entirely from the cast of friends and family around me.
Hang in there, the path gets clearer.
You're already hacking on code 40 hours a week, it may be time to hack on something else in your spare time.
"There’s this primary America of freeways and jet flights and TV and movie spectaculars. And people caught up in this primary America seem to go through huge portions of their lives without much consciousness of what’s immediately around them. The media have convinced them that what’s right around them is unimportant. And that’s why they’re lonely. You see it in their faces. First the little flicker of searching, and then when they look at you, you’re just a kind of an object. You don’t count. You’re not what they’re looking for. You’re not on TV [haven't founded a startup/haven't built a famous app/changed the world].
But in the secondary America we’ve been through, of back roads, and Chinaman’s ditches, and Appaloosa horses, and sweeping mountain ranges, and meditative thoughts, and kids with pinecones and bumblebees and open sky above us mile after mile after mile, all through that, what was real, what was around us dominated. And so there wasn’t much feeling of loneliness." - Pirsig, _Zen and the Art of Motorcycle Maintenance_
So, that's called life.
During life you do spend a lot of time wondering what the heck you are doing here after all. Some people say the point is not to find the meaning of life but to make your life meaningful. Others prefer to just enjoy the ride and make the most of it. Your mileage may vary and nobody knows what paths your life will want to take.
But there's one thing that makes life so vivid and that is death.
Without death you would never reach even a partial conclusion of what to do here because you just wouldn't be bothered to and you would be procrastinating instead for your whole life. Death conveniently and equally applies to everyone, and it makes you think about what really matters for you in your life.
The unescapable end of your life may seem like a long way ahead for someone who's 21 years old but when you're older it feels that was just a moment ago when you actually were 21. Years go by quicker than you think, and each year you will be thinking about it more and, most importantly, prioritizing your life accordingly.
Some people see it coming early, and make a better life of theirs after that realization. Some people hit it late, but that's all right too because eventually you will not only merely know but also realize, with all the cells in your body, that you won't be here forever. For real. And why that matters is because you know you can't fool yourself anymore.
And suddenly then some things don't matter anymore and other things really start to matter. You will see for yourself at the time but I'm willing to bet a lot that your career won't be one of your key questions.
Rather, it sounds to me that what you were really worrying about was whether you will "never ever create something that truly changes the world". But that may or may not involve your career: you don't know it yet. Life unfolds in most unexpected ways: if only you go with whatever works for you, you will bump into something that truly changes your world.
And it is then you know what you will do with the rest of your life.
Before I took an office job, I could make small projects but couldn't program beyond maybe 1000 lines of code without running into trouble. At my job, I learned to be a great programmer, an engineer and a software architect. I became focused and patient. It is often a necessary right of passage for those 'great engineers' and 'people who change the world' to work in an office. It can take years, but you can become a better engineer than you ever dreamed you could be.
Trust me on this: you might like it a lot more than you think.
You are 21. Give yourself a bit of time to ramp up to 'changing the world'. Its going to take time. Its going to take working those 'boring' jobs to make your bones, improve your skillset, develop what you need in order to do that truly impactful stuff.
Highest honors? Great! You know how to code. I can guarantee you though, there are a 1,001 other things that a classical comp sci degree hasn't prepared you for in the business world, while working with teams of other developers. Take the time. Enjoy the time. Learn from other's mistakes, learn from the business mistakes that happen in the companies you work for, and learn from your boss, your leads, etc. In 5-10 years...take on changing the world, with a toolbelt of useful things you have learned, and a much more realistic view of the world around you.
You are just getting started. I know the tech world makes it seem like any of us can just EXPLODE onto the scene, change the world, make millions, but in reality this career path is no more a shortcut to insane riches than any other, and the same rules apply. We have our flukes (Insane purchases from startups) but those are the exception, not the the rule.
Welcome to life, my friend, its a little rough around the edges, its not what we dreamed it would be, but it's the only one we've got.
I've had some luck with meetups.com and going to a couple of them. For example, I recently joined a non-profit that makes/helps maintain other non-profits full stack websites. Even though the programming isn't challenging, I get enjoyment from the idea of helping others. Try to broaden your interests. You (and me) are only 21. We have our entire lives ahead of us. You know a highly marketable skill, so you don't have to worry about getting a job. You can shape your own adventure, make your own life and do stuff that makes your happy.
Beyond that, why don't you try to push yourself at work by taking on more work or by creating new work for yourself? There are hundreds of posts about jobs that are boring and how to improve them. Luckily for you, software engineers are often given a lot of freedom to experiment.
When I lived in Brighton I got to meet O'Reilly authors and core devs of popular languages.
It's also great for building confidence (by doing talks) and getting hired.
Years 5 through 12, I developed my skills in project management and people management. Being able to code is one thing, being able to plan out a project takes it to a whole new level. Instead of a 5-10k line of code project you are now working on 100-500k LOC projects.
In my late 30's I am now off on my own, started my own company and I am close to releasing my first product. The keys to making this happen are the extremely valuable experience I acquired by "just being an employee", also I saved about $200k before I quit "working for the man".
Getting a job is not an end, like I said it's the beginning. How much you learn from the experience is up to you. If you really want to eventually do something big focus on making every situation a learning opportunity, also don't get sucked in by the lifer's. Don't waste money on fancy cars, don't buy a house, don't get married. If you tie yourself down with debt and responsibilities you may very well find yourself working for the man until you retire.
In this the protagonist discovers he is special, exceptional. He devotes time to thinking and researching career goals and world-changing ideas. Dreaming of reification and being lauded as the (Gauss|Galois|Mozart) of his generation, the present may be bleak, but the future is glorious.
Act II: The Crisis
In this, the protagonist discovers that he is challenged for his position. Others, caught up in the race of life, don't look deeply to see his talent, and communion with the muses is precious only as long as it relates to engineering goals. He is human, suffering financial and relational setbacks, feeling the muses have deserted him and he is fully mortal after all.
Act III: The Resolution
In this, the protagonist discovers he is not alone. Others around him, few to be sure, are equally talented and working to achieve their purpose. Perhaps he's at the 99.9th percentile and realizes there are still 6 million contemporaneous peers. Einstein, Crick, and Jobs all went through this before their breakthroughs. The protagonist finds a passion, gives it his heart and soul, and achieves Movement I of his life story.
It's a huge adjustment, and I still find myself backsliding, but you can train yourself to dedicate that bit of time you have free to working on your own stuff. It won't happen overnight, and you have to be understanding with yourself when you're tired, but a 40 hour a week job doesn't limit what you can do.
I find this to be very true. When I started out in the professional world, I rarely wanted to work at all on my own professional development after work. After a year or so, I became much more comfortable with my responsibilities at work and was a much more competent employee.
I found that frustration at work fueled my motivation to rise above the 'average' developer and truly master the technology stack that I currently work in. I started identifying activities that were eating up my time and my productivity (too much web browsing, too many games, etc). I started working on SMALL projects with realistic scope. Completing these small projects motivated me even more and the momentum helped me continue the trend.
Now coding outside of work is fun again, and even though I'm not changing the world, I know it made a noticeable impact to my skills as a developer.
OP, I think a lot of us have been in a similar boat. Making the transition into the real world can be an anxious or even scary time. Don't worry, keep your head up and don't try to focus on all of the unknowns at a once.
Look at your current employment as an opportunity for personal growth. If you are confident about your technical abilities, hone your interpersonal relations instead. Use the time wisely and try to reflect on your progress as objectively as possible. Try to find someone at work that you can get along with and maybe ask for advice from time to time.
Also, you say you've created dozens of projects but they were all unsuccessful. Why? What caused them to fail? You might be able to use your office job to learn skills that will help you avoid those failure modes in future projects.
(One common failure mode, which pg talks about in many of his essays, is not making something people want. Your office job should at least help you learn how to do that--even if it's making what your boss wants instead of what users want. But that still helps you get over the mental block of thinking that whatever you have coded must be important because you coded it. If you're coding for fun, it's fine to think that way; but if you're trying to make a "successful" project, then you have to face the fact that you don't get to define what success is. Don't feel bad if you have that mental block: most coders do--I certainly do. It's just something you have to learn to deal with, and that takes time.)
2) Read some Stephen R Covey books. The best thing I ever took from Covey was his statement about life "To live, to love, to learn, to leave a legacy" When I question myself, I ask if I am fulfilling one of those 4 goals.
3) Stay out of debt! Debt will ruin you.
4) Don't wait for tomorrow. It never comes. (To live)
5) Mentor someone (To leave a legacy)
Good luck!
I eventually managed to get a job (onsite IT support) after 9 months of unemployment and held it for 2 years, until I finally got fed up of it and decided to find a job doing web development. I found one working for a design agency and moved out of my parents' house to go work here.
Once again, this was a boring job. I eventually ended up getting fired from this job (due to unrealistic expectations of a junior developer on the employer's part) and was unemployed for 8 months.
After 8 months, I started working at my current place of work, I moved closer to work in February and really enjoy it. Best of all, I get to have an impact on people's lives for the better (education software).
I guess the point I'm trying to make is that yes, while we all go through shitty patches, it's those experiences that make us who we are and what we go on to do. If you feel depressed, please go talk to someone.
Working a full work week doesn't mean you have to drop your own projects. I still work on my own projects in my own time and I'm sure many others who work the same amount of hours do too. Don't let a dry patch ruin it for you, you never know when inspiration might strike next. Ideas don't come if you force them, you just have to relax and let them come.
I'm sure I've missed a load of points, but seriously, if you want to talk my email is in my profile.
If you're feeling a moment of "that's it", if that's what you're feeling means you can aim higher.
One of the main things not taught in school is it's not about what your degree makes of you but what you make ofyour degree.
It's important though to appreciate opportunity, be humble, work hard and work on building discipline and consistency in improving what you do.
Learning that we're not special, not because we're not unique, but because everyone's special is a valuable lesson of my 20's.
By saying things aren't right here and now yoy may be implying you are done learning and where are the results. I'd say you have quite a bit more learning and experience gathering to do beyond what the echo chamber of funded startups allows.
Again, this is perfectly normal, and attracts intelligent people to figure out this gap for themselves. This opportunity is the gift. The startup of you is the most valuable startup because it will be present in everything you do, and those things you do, become destinations you stopped off at along the way.
If I could tell myself something at 21, it would be to shut up like I did, be thankful for any opportunity, learn twice as fast to get half the respect, become four times as good to get equal respect to folks twice my age, and then become eight times as good to get ahead of where I want to be.
No one said an extraordinary life doesn't take extraordinary effort in the right ways. Being aware of what you just wrote is really important.
Feel free to get in touch if you like, I have a similar story to yours plus some things that I got lucky with.
I don't mean to be harsh, but there are recent grads like me don't have a job yet...I did spent a few months just sitting home and think hard about what projects I want to work on. But getting a job by passing interviews has proven to be difficult for me...
> However, I haven't had any unique (at least a little bit) ideas in months, and it's killing me.
Everyone have ideas. I have tons of start-up ideas and cool open source project ideas. I think the main problem I have is I am bad with front-end. But I am starting to implementing some of them by just writing the backend first.
But you will benefit from having a job. Trust me. I will love to have a job because there are always some problems to solve, instead of sitting by myself all day. Personally, I like making tools. So whether i work in a startup or not, there are always chances I can launch a new tool to improve the existing procedure. Writing internal tools MAY not be my main job in the future, but it can be a hobby and a way to promotion and recognition. It can even be open-sourced :).
Don't be so nervous :) I hope the best for you.
What I wish I'd have been able to do at your age is learn the stuff I'm learning now. Design patterns, how to refactor. Test-driven and Behavior-driven development. But that's just me, your problems might be different and need a different approach.
If you don't have any ideas, learn more about the world. That will give you ideas about what you can do in the world. Just go with your gut. Do you feel like learning new programming techniques? Take your first paycheck and buy a bunch of books. Do you need problems to solve? Get out and meet some people. If there's one thing about 'people' that's remarkably consistent it's that they all have problems. Do you just want to have more fun? Try a local bar or save up some cash and travel.
There are tons of directions to go in the world. All you have to do to feel fulfilled is to pick one and start moving.
One day you'll cherish the day you realized you were ordinary.
Think about all the people who run, run, run, all their lives, chasing some fantastic dream of success (whatever that means), only to retire slightly wealthy and die of a stroke 2 weeks later. They never got that insight, and they lost their entire lives for it.
So stop achieving objectives and start answering questions. Pick a question, any question, and answer it. If you need a starter question ask this one "What is the difference between a life well spent, and one that is wasted?" There are a number of written works where the authors have talked about the answer. read at least six if them, do you agree with any of them? all of them? What do you disagree with? Why? Answer that question. Continue until you die.
* Move fast and break things.[1]
To learn what you like, what suits you, what you are good at and what you aren't, the only option is to try things and fail, as much as possible. You can't read about your life in books, you can't find out from Hacker News, and you certainly can't rely on your friends or family to tell you. The only real option is try-fail-try-fail-try-fail. If you aren't failing hard, you aren't trying hard. (In both careers and relationships.) Now you can afford to take these risks, before big commitments take priority (mortgages, employees, family depending on your financial and emotional stability, etc. etc.).
The most important thing to learn is about yourself. 5-10 years from now, you'll need to make life-long decisions: Marriage, career, etc. You'll need to know yourself well enough to promise someone, at 29, that you'll still love them at 69. Knowing yourself is crucial to choosing things that will make you happy, and 90% of your life will be spent with your spouse and at work -- getting them right enables you to live up to the commitments you make to all those people (spouse, children, business partners, etc.), and can feel like more joy than any human deserves. If you don't know yourself, how can you make a promise to anyone else?
Finally, believe in yourself. No matter what you do, there always will be idiots telling you that you are doing it wrong. Smile and ignore them, feeling sorry for their limitations. Like stopped clocks, they will be correct occasionally in a literal sense (that you will fail) but wrong in every way that matters (that you are moving forward with each failure while they stand still, the managing of risk, etc.). Everyone is doubted, from Einstein to Jobs (remember that he was fired) to Lincoln to MLK to prophets to saints. You won't be any different.
Embrace the adventure! Life is what's happening now.
[1] There are many analogies. e.g., use the Agile to work out your life; Waterfall just doesn't work -- you can't possibly know enough ahead of time.
"Whichever route you take, expect a struggle. Finding work you love is very difficult. Most people fail. Even if you succeed, it's rare to be free to work on what you want till your thirties or forties. But if you have the destination in sight you'll be more likely to arrive at it. If you know you can love work, you're in the home stretch, and if you know what work you love, you're practically there." - http://paulgraham.com/love.html
Recommend reading Ryan Holiday's the Obstacle is The Way, good food for thought for anyone facing difficulty. Here's a podcast interview> http://www.artofmanliness.com/2014/04/26/art-of-manliness-po...
My 2 cents to you is to do good work at your job, but if you work for corporate don't let it define you. Take some time to travel and take up some hobbies outside of work. You never know when inspiration strikes.
Find mentors at various stages of life. Talk to them, figure out what worked for them and what didn't. And why they're there.
If you don't like what you're hearing, take a counter-strategy. At a previous job, I noticed most of my coworkers were out of shape, divorced, and unhappy. Also completely out of touch with technology.
I did the opposite and I got out after a year or so.
Hope this advice helps in some fashion.
It feels like it sucks but you're in a good position now.
http://waitbutwhy.com/2013/09/why-generation-y-yuppies-are-u...
Don't take your 40-hours a week job as a death sentence. Take it as a way to make ends meet while you plot your course.
http://ecorner.stanford.edu/authorMaterialInfo.html?mid=1549
You still have a great deal to learn and you will be learning for the rest of your life. Doing technical work at any organisation, even a 'boring' one will provide you with opportunities to learn and grow:
1) You may be a brilliant coder but you admit that you lack social ability. Do not view this as a permanent handicap but rather a skill to be developed just as you would a new programming language or methodology. Working as part of a team in a professional environment will teach you to communicate and provide opportunities to build your confidence.
2) You also admit that you have 'created dozens of projects but they were all unsuccessful'. One of the key tenents of building a "change the world" startup like the one that you hope to create some day is to build something that people want and will pay for, (see the notes from Peter Theil's CS183 for more on this: http://blakemasters.com/peter-thiels-cs183-startup). Working in a real company will teach you the importance of building great products which customers want to buy. It might also teach you how you might convince customers that your product is great and that they want to buy.
3) You are fortunate that you will be able to earn a professional salary at such a young age. As mentioned in previous comments, this will allow you to enjoy life but also to put some money aside. If you want the flexibility to do great things, being financially independent is a huge plus, (Jimmy Wales talk about this here: http://www.quora.com/What-advice-would-Jimmy-Wales-give-to-t...).
4) You already have a qualification. With a couple of years of proven experience, some open source projects and a little money up your sleeve you will be in a great position to make your next move. That would be a great time to do some serious travelling or even temporarily migrate to another country. Nothing will improve your perspective more than seeing the world and the many ways in which its citizens live their lives.
Hold on to your passion for doing great things. Don't become encumbered by consumerism + debt. Remind yourself every day of all of the things for which you are grateful. And above all don't fear the path you're on: the road is long and there are still so many forks to come.
live a little, sounds like your already burnt out. pick up some hobbies, learn new things. inspiration comes from strange places.
oh, and there is no need for self deprecation. everyone's got issues... accept them, work on bettering the ones that bother you the most.
The 1% club can't be inclusive, that's just how it works.
I graduated last month, 2nd in my class for computer science. I previously interviewed with Google, Microsoft, Amazon, and Twitter -- all rejections! It was super depressing. One of my only friends at school landed a job at Twitter and his GPA was much lower than mine, he didn't work as hard, and now he gets paid 50% more than I do. Yes, 50% more, no exaggerations. Fuck me, right? haha
So what am I doing now? I started my first full-time software engineer job last Tuesday with the same Fortune 500 retailer I did internships and co-ops with in the past. I code business applications for the company, it's fun but not super interesting. I'm making good money -- not top dollar, but a fair salary (maybe a little lower than I expected for having 4 internships before graduation, but still.)
The real world is boring and no matter what work you're doing, it's probably not going to be super interesting. Think of it this way, even Google needs teams to do their boring work... I'm sure there are bored people at Google getting paid much much more than me (and you)!
Needless to say, I'm not excited about my job. I'm excited about getting paid, but work is work. I'm working with the frameworks and languages that I want and I think that's all that really matters in the end.
The last thing you need to keep in mind is that the work you're going to do, as a programmer/engineer, will most likely NOT change the world. Company's taglines like "Come Change The World With Us" -- shit like this -- is used so you think their company is doing great things, but they really aren't doing anything great. They use these strategies to attract top talent. It's the same reason Target and Coke use the color 'Red' to sell their products via their label (red means cheap!) Honestly, if you really want to change the world, change professions... and remember, becoming rich != changing the world -- you could own a sweet startup that does nothing more than sends "Yo!" to a friend on your friends list, but this doesn't change the world.
So what can you do now that you're bored and you're fortunate enough to have a job in this economy? My suggestion is to work on something you really care about on the side. Make a project for yourself or work on an open source project that you think is helpful or "world changing". Live your life day by day and every now and then think about "how can I make my life easier" -- and build something that does make it easier.
Transitioning from school to the real world is really weird. I've done it 4 separate times before graduation (internships and co-ops) and I've always loved work way more than school. We all have high hopes for graduation and when we don't get what we want, we can dwell on it for some time. Your best bet is to take things slow and take action on ideas when they come to you in your free time. Work on open source projects or make something for yourself. Be happy that you have a job and can pay off loans (if you have them)
Sorry this response was so long, but I hope it helps in some way :)
What we think is 'impacting' and 'fulfilling' is all relative. What I'm trying to get across here is that most jobs aren't super exciting. If you're not happy in your current situation, keep looking for a job that IS exciting/fulfilling/impacting and don't complain, because you already know what you want and that's not what you currently have. Of course there are jobs that actually impact the world directly, there's just a smaller number of these jobs available. The Google Search team is a team that changes the world, but good luck joining them.
Go help with the government health care crisis if you want to change the world. Health care systems are in a terrible state for the future.
I'm not trying to be an asshole, I'm just trying to show you that the real world isn't what you've imagined throughout your college career, that's all and it's all good.
One of the best little essays on life and growing up was written, and spoken, by Laz Buhrmann. You can find the text of it here: http://www.chicagotribune.com/news/columnists/chi-schmich-su...
> Don't feel guilty if you don't know what you want to do with your life. The most interesting people I know didn't know at 22 what they wanted to do with their lives. Some of the most interesting 40-year-olds I know still don't.
...and this is true.
It is human nature to compare ourselves to others. That is how we measure our own progress. We don't measure it in absolute terms -- we do not tend to say, "I have four more units of happy this year than I had last year," instead we tend to say, "those other people get to take vacations all around the world, and I don't."
And so we strive to have what other people have.
This effect can be especially poisonous in environments like HN, where you see so many examples of bright, young, successful people, especially those that are more successful than you. And so you look at yourself and you think, "all I have is this uninspiring, unimportant job, and those people are making a difference, and that's what I want to do, but I don't know how."
It is a cruel unspoken truth of reality that a major part of success and difference-making is based on no small amount of luck. Sometimes -- maybe most of the time, maybe even all of the time -- making a difference, or becoming wildly successful, is a matter of simply doing the right thing when you are in the right place at the right time.
It certainly cannot be forced, despite what a few notable examples might lead you to believe.
So if you love coding, then code, and if you ever stop loving coding, then stop coding and try to find your next life (http://www.smbc-comics.com/?id=2722#comic). I have done this a few times, and it scares the piss out of me every time, and every time I love it and I would never go back and choose not to do it. I have met the most amazing people because I did something unexpected.
And if you are lucky, you will find sufficient happiness in coding and stability and you will have a comfortable life and you will find your rewards in yearly vacations, hobbies, and maybe family. Or, if you are lucky, you will look inside yourself and realize that you could never be happy enough having just all of that, and you will strike out into a more frightening and unknown future; maybe you will try your hand at your own startup, maybe you will fail, maybe you'll try again, and maybe as a result of all of that you'll never get those vacations or that family, but at least you will have tried and that will make you happy.
If you are unlucky, then you will do one when you should have done the other. Try not to do that.
But most importantly, and I want to say this with all of the conviction that I can muster:
Do not be in a hurry.
I can very nearly promise that if you wait until you are 25 to start something of your own, you will be just as happy with the result as you would have been at 21. The four years from 21 to 25 seems significant at 21, and utterly insignificant at 30. By the time you are 50, you'll find it funny how much pressure young people place on themselves to grow up more quickly.
Do not dismiss your own troubles, they are as important to you as finding dinner is to other people. You are, again, comparing yourself to others.
You can always work on interesting things in your free time.