I could code at 17, but I focused on school until I graduated. Then I got a job doing freelance game development when I was 18. Paid better than stacking shelves at the local grocery store and I was learning.
I don't do game development now, I'm in my late 20s and run my own software development business. But I don't drink (never have), never drove a car like an idiot (I even have a motorcycle license and never rode a bike like an idiot). I went to Amsterdam and tried weed, as an adult, good luck doing it when you're 17.
I'm married, have hobbies, play sports, play guitar, whatever. But those are my personal interests, and my personal choices, everyone is different. Clearly the OP came to Hacker News asking for programming career advice, not advice on how to live his life.
So my advice is, find something programming related that you're interested in. Teach yourself, post some stuff to Github and then find some work in that area once you've got proof you can do it. Manage your expectations, don't expect to be paid well, expect resistance from ageist co-workers, but also respect them because there's always room to learn.
Those early friendships and social contacts are extremely useful in later adulthood. Be it support, advice, whatever. They're also a great gateway into meeting more people in an unguarded setting, like a dinner party. It's easy to make friends when you have friends, it's much harder when you don't know anybody.
The greatest advantages of being a teenager are the free time, possibilities, and lack of responsibility. There are hobbies I had in my youth that I literally could not pull off with a wife and child. I don't care how understanding and loving my wife is, me deciding I'm going to take off for two weeks to hitchhike across Europe by leaving a short note is not going to fly.
Sports, guitar, motorcycles... they're not teen hobbies, they're shit adults to do feel like we're still alive. To feel the way teens feel lying in the grass on a warm day and not giving a damn.
Thank you.
Kids will force you into having less friends but the friends or family that remain will be closer plus kids will force you into social situations. In your 20s you can give trust more freely because you have less to lose but when you involve kids the trust and closeness requirements increase so the circle decreases.
I think the desire for a lot of friends goes down as well the older you get as well.
Perhaps the problem here is that there are two groups of people, those who feel like they're aren't alive and do things to try and feel like they are, and those who don't need to lie to themselves to feel better.
I understand what you're saying in your post above, but I think it's wrong, personally. I know many people now who followed that route and their lives suck now because they didn't invest in themselves early on.
Sure, you have some cool memories, I have some cool memories too, but when I sit here, with my one-year old son asleep upstairs, my dinner cooking away in the oven, it's not the past that my mind is drawn to, it's the future. I think about what the next year will hold, what the next five years will hold, and what we'll do in a decade. I don't sit here thinking back to the summer days I spent out underage drinking with friends, those memories are slowly disappearing one by one as I live my life, but I do remember the time I spent working on projects, exciting work, responsibility free work, starting my own business at 18 was better than drinking in the sun and waking up feeling like death still dressed in a corner of a mates kitchen.
You can spend your teenage years living it to the max, and when you come to the end of the line, you can derail and find yourself stuck in the shit, or, you can start to invest in yourself early on, while you don't have a wife & child, while you don't have meetings to attend, clients to keep happy, and bills to pay. While your brain is still fertile and you pick things up at twice the rate you will in your 20s and 30s.
"Have fun" is exactly the advice we should be giving OP, but telling him what fun is, that's not how it works.
So OP, have fun, in whatever you choose to do. Don't stop enjoying life, for in every circumstance, there are things that can bring you joy.
Programming wise, practise. Practise practise practise.
Start a project. Make a game. Commit every day for a year. Interact with other developers in a field you enjoy. And don't be afraid to fail.
Twenty years later, I don't really remember the parties, I don't recall the code, or the late nights out... but I still cherish the friendships I made. I can trace 90% of my career to people I met, who introduced me to others, who introduced me to others. You can't make those connections at 40 or 50, you can always learn another language then. The world is full of coders who have horrible jobs, because they are poor at interpersonal relations. They're a skill like any other, and 17 is a perfect age to work on them.
I had to endure few shitty jobs because of lack of connections but that got fixed when I eventually did make good ones. And that happened without any deliberate effort. I can't comment on the importance of working on inter-personal skills but in my experience, being stressful about it doesn't help.
If I were 17, I would've focused less on my programming career, and more on life itself.
But that's the rub. No take backs. No retrys, no continues, no replays, no New Game+.
So I feel the best I can do, if they're asking, and I've been there, is to tell it how it is in my heart.
But I always recommend people travel internationally in their 20s. Sure you can do it when you’re older. And it is still amazing.
But there is something about traveling in your youth that can’t be captured later in life.
If someone is only "looking at stuff and eating" as they explore the world, then they have given up on exploring themselves (maybe temporarily, maybe permanently). There is plenty of opportunity and reward for growing ("exploring oneself") when you're older, and choosing not to is simply the path of least resistance that many/most people seem to take.
Lots of younger people seem to think that the spirit of life starts to die after some age (30?) or life event (having kids?), but based on people I know who have passed these milestones, that is completely not a fait accompli. Quite the contrary.
If you don't want to smoke weed, drink/party, chase girls, play in a band, that's fine, but be absolutely sure you don't want to. And you probably never will feel absolutely sure; so just go do them anyway - that is the only way to know. A 17 year-old running around, drinking, partying, speeding, chasing girl after girl, acting awkward, etc. makes a lot more sense than a guy in his forties or thirties doing those things. You'll build social skills and have a lot of fun in the process. Of course you can still do these things as you get older, but it won't feel right. You'll feel immature and lagging behind, at least I feel that way.
People treat and perceive you differently as you age. The most valuable thing about Youth is the degree and amount of social and romantic opportunities available to you. Take advantage of them.
To the OP: if you don’t like becoming an average older person, avoid following average older people’s advice. Think for yourself.
This profession, more than any other I think, can allow you to disappear from society chasing knowledge for its own sake and it's pretty easy to wind up 30 with a fat stack of cash and glowing career but no friends, no family and no way to efficiently bootstrap any change.
This was definitely my mindset at 17 (and today).
And there is compounding impacts for seemingly trivial decisions you make at 17. They are more important, not less, than the future decisions on that factor.
Also, I hate to point out that 17 isn’t that young. That some people in the thread are so underestimating of 17-year-old capabilities is disappointing.
They really need to make Alan Partridge does Silicon Valley.
There's a long-lasting joy in creating something and sometimes, for some people, it might be mightier than any crazy party would give.
I'll never forget the wonder I felt, the joy, the prospect.
Not all teens enjoy what is described in the first paragraph. So if it is not your cup of tea, then don’t be afraid to be true to yourself. If living well for you means spending time in your basement in front of your monitor, reading books, barely interacting with other people, then just do that. Don’t try to fit yourself in something that you are not.
Regarding coding, my advice is find an interesting project and code it in as much languages as possible. C, Java, some Lisp, Erlang, Ocaml, Haskell and Scala.
Even then, for 90% of the people there far more obligations >30 (partner, kids, mortgage, work, etc.). When you are young you are much more agile, enjoying that is good advice, or you might be 40 and missing the life that you never had. Of course, you can enjoy the freedom in many different ways - if you are into programming and free software, go to FLOSS conferences, meet people, hack together, enjoy dinner together, etc.
I started programming when I was 10 or so and was reasonably good at it when I was 17 (as good as a kid without Internet, Turbo Pascal, and a couple of library books can be). Even though I ended up in computational linguistics, I feel blessed that I got fed up with programming when I was 18, and decided to study philosophy. It was mind-expanding and lot of fun. I ended up in CS/CL, but much more energized when I would've dived into CS immediately after high school. Of course, the low tuition fees in Europe allow you to make some detours ;).
At any rate: find a nice project and find other nice/smart people to hang out with.
I've never understood this. How can you miss something you never had? Is it that people regret not doing something? Everybody has regrets, but I'd regret losing everything I have now more than I'll ever regret not having done something in my childhood.
How about instead you balance out doing what you want and doing what's required to reach your goals, at all times?
I'm a bit surprised that so many commenters here are reacting to the second paragraph as if it described an extreme lifestyle that would inevitably lead to ruin, or as if you need to make a choice between having these kinds of experiences and being a successful, fulfilled adult later in life. Neither of those things are true.
Here's what I believe the parent post is saying, but stated differently: try all the things that life has to offer, and get outside your comfort zone. Let yourself make mistakes. Explore. Try to connect with many different kinds of people, especially people who aren't like you. Push the boundaries a little. When you find something you're passionate about, dive in, but be sure to come up for air regularly and enjoy the simple pleasures of life.
Don't let the anxieties or negativity of others stop you. If you do those things, I promise you you won't regret it.
I have a slightly different twist on the same advice. Living well doesn't necessarily need to be the "cool" stuff such as described above. Nerdy things can be cool too. Learn math, or physics, or electronics. Studying those things was "living well" for me. It could expand your options for what you can do with programming, or for when you get bored with it.
I did go out drinking sometimes and it was fun but living it up depends on your personality and if you are not naturally social its probably not going to be enjoyable pretending to be that guy. Plus at 17 everyone will see through it and not be polite about it.
I don't regret studying hard at 17. I had a passion and enjoyed learning. Was a great part of my life when other things were not so great.
OP, don't listen to this crap here's the stuff I wish I'd done four years ago:
- Look at real systems in the wild and ask yourself "Could I build that?", if the answer is no figure out how to and try it. I mean websites, command line tools, applications. Once you start looking at the world of computing through this lens and thinking about it you realize just how much you still don't know.
- Focus on the CS fundamentals, look up the algorithms textbooks employers will have expected you to read during college and get a start on them early. The fundamentals change much slower than the latest web framework, and if you master them you'll be employable for much longer than someone who only has a long string of obsolete web frameworks to their name in 20 years.
- If you have any hobbies you'd like to pursue, find a good book on them and do it now because you're actually not going to have all that much time later. Especially if you're pushing yourself and pursuing projects, secondary things you want to learn will start falling by the wayside. I still haven't found the time to learn piano.
- The world really is full of interesting problems to fix. Here's some advice on spotting them: http://www.jdpressman.com/2017/08/28/the-favored-mindset.htm...
- Figure out what you really want as early as possible, and I don't mean "from your career" or whatever. I mean what you want period. Lots of people say they 'just want to be happy' because that's a default trope, but if you really just want to be happy your best bet is to become a Buddhist monk. You have to think beyond such things if you're really going to find a coherent self identity.
Some stuff I did do four years ago and would be hurting if I hadn't:
- Figure out how to reliably have a great conversation with people. Carnegie's famous How To Win Friends And Influence People will get you most of the way there. This is a skill you'll use every day of your life just about, and it'll really help you get towards some of that living the parent insists is vital.
- Start trying to meet people outside of your traditional high school friend group. Unless your high school is truly elite, whoever your friends are there are probably kind of stunted and ineffectual compared to the people you can meet out in the 'real world'. Pay some mind towards how much others can help you, but people who base their entire social life around that I'd think live sad cynical lives.
- Don't get lazy, keep pushing the limits of what you're capable of. In order to learn you always need to be just a little bit outside your comfort zone. If you always stay within what you know you're capable of you won't learn.
I won't disagree that the most important thing is to enjoy life, meet people who have real problems that need solving, and to build relationships that could last a lifetime.
That said, I spent a lot of time on the computer when I was 17 (and 18, 19, ....). I still draw upon that experience today. Sometimes, when I solve a problem or fix a bug, it's rooted in something I did way back when I was 17.
On the other hand, I also wasted a lot of time too.
My advice is to get close to a real problem. Intern somewhere. Do it for free. Get close to real work, roll up your sleeves, and try to contribute. And have fun.
If you are being paid, they very might well ask you to fetch lunch and dry cleaning. And, since you're being paid, you feel obligated to comply. Many interns have that unfortunate experience.
If you're not being paid, then you just say no thanks, I'll go home instead.
The fact that you are asking the question tells me you are on the right path. Keep learning and honing your skills. If college is in your path, use it to get better at fundamentals.
Don't just code. Learn the fundamentals of software engineering.
What's the best way to spend your time? Basking in the sun. Finding a scam to score some schnapps or beer or weed. Telling somebody you love them, and just going for it. Recklessly driving a car at a high rate of speed down an old country road. Learn how to play a bass guitar. Spend your waning hours getting your hands dirty while there's still time, and before the world judges you too harshly for wanting to live in it.
And if you've done all that, and you're bored with it, maybe it's just not for you, or whatever. Then work on projects that interest you. I spent a lot of time perfecting photo galleries, and was able to stretch that in to a modest career and a house that went in to foreclosure. Linux could use a lot of things still: there isn't one good kick ass music player to rule them all like iTunes on the Mac. There just isn't anything for organizing photos like iPhoto. There's gaps in the Linux user experience that need filled with good competent software that isn't a maze of checkboxes and sad UI/UX. And if Linux isn't your bag, well, fucking learn some of that then. When I'm not a programmer, I'm a Linux server administrator, because when one don't pay the bills, the other one will.
But my stone cold honest advice: Live. Live well.