Hacker News new | ask | show | jobs
Ask HN: Does anyone have some good Career/Life Advice for an 18 year old
6 points by DoritosMan 4582 days ago
I'm still in High School with about 1 semester left. Once I finish up High School I will be going to a Community College for 2 years then transferring to a University. (Just trying to stay out of debt and save money) I already have about 15 credit hours from doing dual credit English/US Hist/Govt during school and the summer. I plan on majoring in CS. I've been dabbling in programming for I don't know how many years and in High School I've taken a Visual Basic .NET class and AP Computer Science (Java), both of which have come very easy to me. I have a part time job as VB Developer doing reports/SQL Queries mostly. I don't mind it but it's not the most enjoyable thing.

So does anyone have advice on what I could do to improve myself for future jobs and life in general? Am I on the right path?

11 comments

In general:

One of the best things you can do for yourself, at this juncture, is to just ignore what everyone says about your "potential" based on your grades, test scores, the schools you went to (or the schools that rejected you), your work history etc up until this point.

You have, at this stage in the game, so much plasticity available to you, and (despite all those shitty part time jobs, etc) so much time. Moreover: what people tend to forget about talent and how it really develops is that not only does it faithfully reward hard work (and focus), but it rewards it exponentially.

So anything you invest your time into now... be it advanced math classes, that hairy functional programming book that might seem hopelessly daunting and abstruse to you now... as well as non-technical endeavors like learning about how music is made, or about foreign languages, literature, psychoanalysis, etc -- might not seem to pan out, in terms of tangible benefits, for another 5-10 years. But taken together, these investments will find a way of leveraging each other synergistically, enhancing not only your potential to get a better job, but more fundamentally, your ability to improve yourself -- and over time, quite dramatically.

That, and: "it's better to regret something you have done, than to regret something you haven't done."

Specifically: the next time a fork in the road comes along, requiring you to make a decision about some major commitment of time and/or focus -- be it grad school, or a close relationship say -- and you're feeling pulled both ways about it: try defaulting to the "heavier" option (requiring greater time/energy investment) than the "lighter" one.

Point being, of course you can fail, and see energies misdirected, no matter what you do. But generally speaking you'll tend to at least learn more, and grow more, the more you are willing to make heavier, riskier investments of your resources. And you'll find yourself feeling far less ennui and regret when you think back about how things crashed and burned despite everything you tried and did... than in moments when you opted to simply duck for cover, and let the moment pass.

The advice I give to everyone is to be well-versed in programming, and to avoid debt. Congratulations, looks like you are already on that path! I'd also recommend a trade that is relatively easy to get into, such as HVAC, and/or learning a second language that will likely be very valuable if you want to travel as a programmer, or to use for a career in translation.

The value of a trade is that it gives you an alternative if sitting at a cubicle for 2000+ hours a year drives you crazy. Plus, it's always good to be helpful. You may want to look into becoming decent at auto repair or carpentry. Those are things that typically have a much higher barrier of entry, and a lower salary than HVAC, but they're both always a helpful skill.

The value of a second language is it opens up travel opportunities, and if you choose an economically important language (Chinese, German, British "English" [I have no idea what they're saying...]) or a politically important languge (Middle Eastern languages), the pay can be quite high for translation.

Many here might think HVAC is a terrible idea, and they may be right, but I'd still recommend finding a trade and making it a hobby, like I mentioned with auto repair or carpentry. Learning a musical instrument is also a great way to improve your life in general. But for the most part, sounds like you have a good head on your shoulders, and you'll do well at whatever you choose, so long as you stick to it.

The funny thing is that I do have some experience with auto repair, HVAC, and carpentry. My Dad is a general contractor and every summer I would usually go help him with jobs. I've helped build a house, work on a custom deck for a pool, and quite a few other things. We have worked on my truck and car together. Being in Houston isn't the best for doing that stuff. Being in an attic where it's 90+ out isn't very fun. Thanks for the advice though!
You're doing good. Keep on doing that.

Good to have a job related to what you're doing, always good to be able to bring in money.

Good decision on CC to Uni. When you're in University you could look in to interning somewhere during the summer, and/or just getting a somewhat better part time job.

A good long term goal is to become independently wealthy, or a reasonable approximation, by sometime in your thirties. Even if you don't become independent, or it takes longer than your thirties, you'll be far better off from the attempt than otherwise.

So learn what that would take, and start executing on that as the backdrop to whatever you're doing in the foreground from year to year. It's not just maxing your salary, it's smart and minimal spending, saving, investing and opportunities. Pay attention to your finances.

I'm in my second year of a computer science degree, and the advice I would give you is while programming is awesome and essential to succeed, there are really wordy (and mathy) topics that might not come as easily to you - finding the balance is the key.

Also you said that programming has come easily to you during school, and while I don't know the US school system you seem to be doing great; my advice is don't get complacent when you transition. It's way too easy to nail exams in school and then figure you can keep up without trying in university; for me it was a lot easier said than done. I don't know the community college->university system so maybe it'll be different, but it's something to keep in mind.

Don't ever get into business with someone that can't save money. Don't ever spend more 20% of your savings on one project/investment. If you do take risks do it when your young and don't have commitments. Stock as much as you can into a 401k as soon as you can. Find a good mentor in your space.
I think it would be a good point of reference if commenters included their own age at the end of their recommendation. People 5, 10, 25 or more years further down the career/life path might have different advice with their own degrees of experience and hindsight. (61). :)
If at all possible look for a CC that's known to be a "feeder school" for a reputable University. They usually have a pipeline into the schools and experience helping get you there.
Steve Job's Stanford Commencement Speech http://www.youtube.com/watch?v=UF8uR6Z6KLc
On programming/CS stuff: Build something. Anything. Start small, and work your way from there if you find it enjoyable.
I enjoy doing it but my main issue is finding things to work on. I just can't seem to get good ideas.
Automate something (my favorite advice), or analyze something. Find a task that has a lot of manual steps (copy a file here, copy a string from there, etc) and automate whatever you can.

Pick something apart and analyze it programatically. Email is great as there are protocols and libraries to do this with. Find a/the IMAP library for your language of choice, copy a bunch of messages to some place where you won't harm the originals, and start picking apart the folders and messages. See what you can know about what's in a folder and list it. See what you can know about a message, and list that all out.

You could do the same with a bare html document, there are really good libraries to pick apart an html doc. Beyond that, learn the DOM and pick it apart from that angle.

I started with a command line calculator when I was 17(Internet was a luxury for me back then.)

You can try your hand at algorithms. You can implement them in a language of your choice, try different methods, try to speed things up etc.

If you are in to math, you can try projecteuler.com, it is a good learning source, provides lots of interesting problems to solve.

You can check code katas. https://en.wikipedia.org/wiki/Kata_(programming)

The idea is not that important at first. By doing even simpliest things, you will expand your knowledge on programming, which in turn will guide you about what you can do with it.

Ideas as a service, you're young an full of creativity "Express ya self".
Hmm. Advice on jobs/life:

1) Start banking stuff you do.

Track your achievements, with numbers where possible, with meaningful numbers ideally.

Your pitch to employers, if you don't end up working for yourself, is largely going to be what jobs you've had and how well you've done them. No-one really cares about you as a person when all they've seen is your CV, they want to know what you can do for them.

Lots of people don't track their achievements, they don't say how much they've optimised something, how many clients they dealt with, whether they got promoted... That's your leverage before you get to sitting down with employers, and it's your leverage when you're sitting down with employers.

Start doing this right now if you don't already do it - have a big file on your computer where you list all the jobs you've done, all the people you've done them with that you have contact details for, and all the achievements you've done in them. Have a short paragraph - couple of lines - laying out what the job was.

This is especially useful later on in life when you want to construct a CV and are trying to cast your mind back, if you do a wide variety of roles. One of the things I do in my spare time is work down a charity office and watching people trying to recall what jobs they've had, when, what they did, what they achieved... painful. Don't put yourself in that position.

Also track where you live, write it down, the exact dates. Even if you're moving back and forth between university and home. It bears on some security checks and it's nice to have the numbers available if you ever end up doing that sort of thing.

2) Do lots of different things.

In all honesty you can't say where you're going to be in five or six years, having an idea of it's nice but you shouldn't invest everything in one course of action, emotionally or in terms of resources. Do a wide variety of things; different hobbies, maybe even a few different jobs. It will give you insight into the sorts of problems that other people have and how they think about solving them. This can be invaluable when you have to work in a team even if you do end up doing programming. It also prevents failure in any one area of your life being totally crushing.

As part of this - Work at least one job you hate. Nothing provided me more motivation going through uni than knowing I was going back to the estate working in door to door sales if I messed my chance up.

3) Be careful who you take advice from.

You are going to get given a lot of advice from people over your lifetime that is not in your best interests. Some of that's ignorance, some of it's malice. Before you take life/job advice from someone, look at their life/job and see whether it resembles one you'd like to have. Then see whether their advice matches what the people who have a life/job they don't want to have did.

An obvious example of this: Asking a professor about your likelihood of getting a job is, generally, foolish. They don't work in that industry, they don't know what its requirements are. Look at the job adverts that are put out for that industry and ask the people actually in the industry. I've seen people who've done very good research work find themselves utterly unable to get a job outside of academia when they'd assumed they'd be fine. But the requirements of the job had more to do with teamwork and experience in languages/frameworks.

Shoulda looked around a bit in their advice.

4) Learn about business, take a course if you struggle with this.

There's a language to business, there's also a certain way of thinking. You don't necessarily have to become an MBA or anything like that, but if you're going to be talking to business people it helps to have a common vocabulary and conceptual framework.

What's SMART management and why do people use it? Why might some people preference continual visible production over actual results? What's an OODA loop (business people actually call this something else) ? That sort of thing can be very useful to know.

Also helps you know some of the unknowns - useful if you're going into a startup or something like that and find yourself saying something like, 'We don't need an MBA...'

5) Stay in contact with the people you get along with.

It's very easy to let relationships fall by the wayside. However, in some ways who you meet at university is more important than what degree you come out with. A couple of years post-university, unless you're working in a very … technical ... area on which your degree directly bears, people are going to be more interested in what jobs you've done than what your degree was. Mine's a single line at the base of my CV at this point - doesn't even mention my grade.

Some of the people you meet may give you references, others may help you find a job, some might even hire you. A lot of jobs these days are being filled through personal connections rather than through job applications.

Don't just make contact with them around Christmas and birthdays, some people will find this offensive. Set up a little task to contact them at random points throughout the year to keep up to date.

6) Learn Lisp, at least a little bit.

I don't know if you've picked up a language that supports functional programming well yet. Doing this may change the way you look at programming. There's also nothing really comparable to Lisp macros in any other language that I know of.

If you find it difficult getting along with Lisp, try Haskell. The people who designed it weren't stupid and it's also got good support for functional programming.