
Ask HN: Tips for students before starting their first job - oltdaniel
Hi, I&#x27;m 19 and currently in my second CS semester. I&#x27;ve got some projects on my portfolio, did some internships and will start an job as an research assistant at an institute next semester. However, I really have no clue how I can prepare myself enough before landing my first job after university. The only things I can find are: build a portfolio and contribute to open-source.<p>Which advice did&#x2F;would have helped you landing your first job after university? And whats your best tip for life in general?
======
CapitalistCartr
A few useful phrases to memorize:

When someone asks for information, rather than try to answer immediately, or
rush to research, ask, "When do you need that by?" Even if they tell you it's
urgent, it causes them to consider.

"Sure, I'd be glad to. Just let my boss know you need me." If they hem and
haw, be suspicious.

"What budget is that coming out of?"

Other useful tidbits: Politics is a euphemism for, someone's ego will
otherwise get hurt. Tangentially, your ego _isn 't_ you. Don't let it getting
hurt affect your thinking.

Most people are naturally good; the one's who aren't work hard to position
themselves in a position handling communications. So be careful to route
communications as directly as allowed, and regularly check what's incoming.

Faith is blind, trust is earned.

~~~
bonyt
> Most people are naturally good; the one's who aren't work hard to position
> themselves in a position handling communications. So be careful to route
> communications as directly as allowed, and regularly check what's incoming.

I'm really curious what you mean by this, "a position handling
communications"?

~~~
Benjammer
Most people aren't bad actors. Some people are. Almost all bad actors know
that they are bad actors, it's not a matter of ignorance or stupidity. The
easiest tool of bad actors is manipulating communication. Lying, changing
expectations, telling different people different parts/sides of the whole
story, weaseling out of responsibility, brown-nosing, etc. A lot of bad actors
will strive to put themselves in "lead" type of roles where they don't
actually have the responsibility of direct reports, but where they can get
their fingers into the communication channels for their team. Then, they use
that position to get their fingers into the communication channels of other
teams as well. They keep doing this and moving farther away from actually
having to produce _anything_ themselves. The manipulative communication
becomes their entire output and job function, so they optimize it over time
and get really good at it.

------
noir_lord
> And whats your best tip for life in general?

1) Take copious notes (in whatever format works for you).

2) Confirm managers decisions with a recap email (especially when you disagree
with them).

3) Understand that while you may not like politics (I don't) knowing how the
game is played allows you to mostly stay out of it.

4) Work time is work time, learn to be productive and _then go home and switch
off_.

5) Work friends are NOT friends.

6) Learn to say 'No' in a way that doesn't ruffle feathers but does result in
the no case.

7) If something seems interesting, go for it - all the best experiences in my
working life have resulted from stepping outside my comfort zone.

~~~
KineticLensman
> 5) Work friends are NOT friends.

I have made some extremely good friends through work, including the individual
who, outside my family, is the person who I still see that I have known the
longest in my life (we started our new jobs at the same company on the same
day, approx 35 years ago).

The mistake is when your colleagues become your only friends. Changing jobs
can see you lose your entire 'support network'. Always take the time to
maintain friends outside your current work.

~~~
DonHopkins
That's a good point.

Here's an important corollary:

Don't shit where you eat.

[https://en.wiktionary.org/wiki/don%27t_shit_where_you_eat](https://en.wiktionary.org/wiki/don%27t_shit_where_you_eat)

That is, avoid getting into romantic relationships with people at work. And
for God's sake don't think of work as a cruising ground for members of the
appropriate sex(es).

Sure, there's a chance both of you might simultaneously be two of the lucky
ones for whom everything always goes perfectly, without any hitches or
conflicts. But back in the real world, relationships have problems, and jobs
have problems, and when one of those problems inevitably occurs in one domain,
it sucks if it dominos over into the other domain.

In the ideal world, we'd all be eternally happy with our personal
relationships, and eternally happy with our jobs. But if you suddenly become
unhappy with one for some reason, it really sucks if you also lose the other
because of it.

And also remember what Freewheelin' Franklin of the Fabulous Furry Freak
Brothers said:

"Dope will get you through times of no money better than money will get you
through times of no dope."

[https://pbs.twimg.com/media/ETBgAc0WoAEEZMF.jpg](https://pbs.twimg.com/media/ETBgAc0WoAEEZMF.jpg)

[https://en.wikipedia.org/wiki/The_Fabulous_Furry_Freak_Broth...](https://en.wikipedia.org/wiki/The_Fabulous_Furry_Freak_Brothers)

~~~
Benjammer
> two of the lucky ones

I honestly think there's a huge amount of survivor bias in this mindset. I'm
in my thirties and I know more married couples who met at work than those who
didn't meet at work. And the ones who didn't meet at work met at school. Even
had two senior managers at my first job break up their marriages (both with
kids) to get together. As far as I know they got married and are still happily
together.

I think you just hear a lot more of the wild stories of the ones that go
wrong.

~~~
rflrob
The thing is, most romantic relationships fail. If it’s someone you met online
or even a friend of a friend, you likely won’t see them that often after you
break up, which is decidedly not the case for a colleague. So while it might
work out with a colleague, and the odds aren’t even _that_ bad, more caution
is warranted.

Of course, it’s probably not terrible advice to tell everyone in a breakup to
treat their soon-to-be ex as if they will one day be your manager. It’s just
not likely that everyone will be able to follow through.

------
travisjungroth
> And whats your best tip for life in general?

This will sound snarky given the context, but my best tip is to stop looking
for personalized advice for common problems.

You haven’t given enough details to for anyone to seriously tailor their
advice to you. So it’s just going to be generic. And if you’re willing to go
with generic, you can do better than what fits into a comment on HN.

You could get the same advice much faster by googling the same question and
looking at threads. You could find authors that seem respected and find out
what they say about the matter.

If you’re going to go for personalized, share as much as you can. Fit as many
details as you can while still keeping it organized. If your question is worth
asking, ask it all the way.

And, this applies a ton in programming. You’ll be much faster if you learn to
do as much as you can pulling from resources, and then pushing a great
question when you need to.

~~~
peterwoerner
Another important thing to know, is that people's advice will be based on
their personal life goals--which is likely different from your personal life
goals. If you go ask wall street playboys advice, they are going to give you
advice on how to make $X,000,000 (start a business on the side) and become a
player. If you ask a preacher for advice they are going to tell you to do a
mission trip abroad, find a wife and get involved in a church.

------
rschapman
\- Until you build a network job hunting is a numbers game. Be ready to apply
to hundreds of places.

\- Be willing to move. During the great recession a lot of my buddies wanted
to stay near home and it hurt them a lot. I moved across the country and have
been the better for it.

\- Be thoughtful about your partner/spouse choices. I married admittedly
younger than most do now but your long term partners/spouse will have a huge
impact on things like work and where you live. Make sure those are aligned
well.

\- Don't lie on your resume but don't be shy either.

\- Work on your network as much as you can. Hiring is still a networking game
no matter how much we wish it weren't. People like to hire people they know.

\- Stay out of debt! I spent the first couple years paying off bad college
credit card mistakes.

\- Start an emergency fund. I would say at least $1000 but calibrate for where
you live.

\- You're probably living as cheap as you will ever live. Stay that way as
long as you can. Don't be too eager to get rid of roommates or upgrade
lifestyle any faster than absolutely necessary.

\- Start a good routine of exercising and eating right. It only gets harder
later and time is not forgiving for putting it off.

\- Start being thoughtful about what you have on social media. This will
depend on where you work, live, and want to do but give your last few years of
online life a good pass and consider purging anything that doesn't represent
who you are now.

\- Takes courses on ethics, philosophy, speech, and other things that help you
to think clearly and speak confidently.

~~~
szaroubi
\- Be nice to as many people as you can. Your interviews start when you
communicate to HR, walk thru the door and talk to the receptionist/ security
guys. I used to ask them how potential hires treated them.

\- Softskill are important, learn how to explain technical problems to non
technical people. Try explaining CI/CD pipelines to your non tech friends and
see if they understand.

\- don't focus on tech all the time, try to understand why people around you
are pushing for certain things that "don't make sense" ( there is usually a
valid business reason).

\- collaborate, don't say no, say "yes but here are the impacts" (it is not up
to you/me/or a single person other than the CEO, to know if it is worth it to
invest 2 months in what seems like a useless task).

------
alexmingoia
Start saving money now and planning for retirement now. The earlier you start
the more of an advantage you have.

Stick to the 50/30/20 rule: When paid, put 50% into an account for bills, 30%
into a savings account, and 20% into an account for spending. Setup auto-
billing and never touch bills and savings accounts. Live on less than 50%
income and let the extra money in bills account roll over as additional
savings.

Once you’ve saved one year’s living expenses, invest new savings into an index
fund. Saving one year’s living expenses should only take 1-2 years if you’re
living on 50% or less of income and saving 30%.

If you stick to 50/30/20 and grow your income, by the time your 30 you’ll have
at least $250k if you only earn $60k, but probably over $1,000,000 if you
increase your earnings over that time.

If you start planning now you can retire by 35-40 just by working a job and
being financially disciplined.

I could go into more detail with a financial plan, email me (in my profile) if
you want more info.

~~~
HenryBemis
If I may suggest (only because I have become a fan of the guy's principles),
check out Dave Ramsey and his 7 baby steps. I wish I knew these 35 years ago,
I could have avoided most of the "stupid". I know that his ecosystem is about
sucking you in and but all his books, but still, if you can phase out the too-
much-Christianity bits, he gives some solid advice. (YMMV)

~~~
wil421
Dave Ramsey is good but I think a sane mortgage can be healthy. Another thing
I like about him is being wise with money instead of being cheap. Some places
like /personalfinance are focused on being as cheap as possible and I feel
like you can’t have fun.

~~~
rubidium
Dave Ramsey is Really good if you are starting from a bad place financially
(eg credit card debt, no financial plan).

He looses steam when you’re in the actual wealth building phase. Boogle head
and other resources are better there. Tax law is hardest and for that it’s
probably worth paying someone (once you have >$200k in assets).

------
andy_ppp
I’ve only recently learned this but letting go of your ego and being easy to
work with rather than constantly believing you are “right” is going to get you
extremely far and you’ll be able to learn how people think and be able to
judge if you want to model them (or absolutely not).

So basically if you think your boss knows nothing, got there by luck and you
are finding everything they do irritates you; it’s you not them.

We could also talk about not getting too involved in general, work is work and
you should have important things you’re interested in outside of what you are
doing in exchange for money.

~~~
IggleSniggle
I had to learn the opposite lessons:

\- sometimes, you _are_ right, and you need to assert your opinion

\- your confident boss might not know what they are doing,

\- and getting involved with your work makes the work a lot more fun.

~~~
andy_ppp
I think the default for me is probably to bluntly say what I think. Maybe what
you learned is needing to “assert your opinion” more. I think either way
taking your personal ego out of what is said has been an important lesson for
me.

------
humanrebar
Up until now, educators have been required to be clear about expectations
(rubrics, curricula, syllabi) and outcomes (grades, certificates, report
cards).

It varies a bit by profession, but that sort of structure goes away very
suddenly once your career starts. In some ways, that structure is already an
illusion because many professions utterly ignore grades after only a few years
of experience are added to a resume.

Initially, it is very liberating to not have another quiz, test, dissertation,
or other deadline looming. Enjoy that reprieve.

People canny about doing excellent work and advancing their careers will soon
notice that they have a relatively open feedback loop. They deliver work,
someone accepts the work with little constructive criticism, and then they
move on to the next bit of work. But was it 'A' work? We're there mistakes to
be corrected? Was the work below average in quality? Was it overproduced?

Will your work get you the raises and promotions you want? The next job you
want? Will it advance the goals of your team? Does it even give you decent job
security? Typical companies will have annual or semiannual feedback processes,
but that is like turning in all the homework, quizzes, tests, papers, etc.,
then only getting a semester report card for feedback. And only then finding
out that your grader ignored homework and valued office hour participation
highly this whole time.

What to do? Understand that it's _your_ job to seek high quality feedback from
whoever you can find. Peer reviews, mentors, your boss, your boss's boss,
people who have the kinds of jobs you want, and so on. You might have to get
out and network professionally to grow a set of people to help you in this
way.

That means, to be excellent at your job and career, do _not_ exclusively take
direction from your immediate supervisor. Certainly be an excellent team
member and keep your boss proud of you, but if you are only waiting around for
the next assignment from the boss, you'll likely stunt your growth.

There is no set program for you to follow anymore. If you don't want to be
wandering around blind, you need to do your own research and get your own
feedback.

ADDENDUM: I guess I didn't say this explicitly. For the same reasons, it's
also your job to make sure expectations are clear before starting an
assignment, project, or other goal. Good bosses are good at this, but everyone
has flaws and you want to thrive even under mediocre or poor management.

~~~
juangacovas
> it's your job to seek high quality feedback from whoever you can find

Agree. Not always of high quality, but also for "reality check". For example,
you'll have to write a feedback tool yourself (i.e. for a B2B, private
software that hundreds of people can use daily), so you get how the _users_
value the product (typical star system with optional comments, etc).

------
khazhoux
My pro-tip for when you land your first job:

You'll be tempted your first week to " _clean up_ " the code you find there.
Don't.

~~~
fsloth
This in an excellent advice. In real world the value of a codebase is _not_ in
it's aesthetics. It's how and what sort of added value it bring's to it's
users. And how much value your employer can capture from it (i.e. it's price).

The question you should ask is not "how to make this more beautiful" but "how
to bring in more value to the customer". Don't go on a refactoring crusade
alone.

If you want to become a valued individual contributor try to understand the
added value created by the product as much as you try to understand the
codebase.

~~~
closeparen
The principle here is intellectual humility. Keep Chesterton's fence in mind.
Take some time to listen and learn why things are they way they are before you
disturb them. Consider your own expertise and its limitations. Assume
competence good faith on the part of the original authors. Be willing to
change your mind about that, but slowly.

That said, intuition and sensibility are your most important professional
assets; you definitely want to nurture and listen to them. The feeling that
code is "ugly" is often a signal that it hides surprising behaviors (bugs) or
that changes involve more effort and risk than they should. Any software org
you want to be part of does care about its ability to continue shipping
working software. Protecting that capability is very much part of your job.
Don't check in sloppy work. But let senior people take the heat on correcting
others' sloppy work, at least until you learn what the attitudes about it are
like.

Similarly, don't go having opinions about customer value or business strategy
until you have a relationship with the product manager and an understanding of
the context, intentions, and roadmap. When you do, they should be weakly held
and gently expressed. Software engineering is your domain; there will be times
when you know something that others don't and you have a duty to be firm about
it. This will never be the case for business.

------
adingus
When you are new, say yes to everything. Stay busy, if you have nothing to do,
ask for something. You want to take the load off your team members where you
can to contribute & build some clout/respect. Find the most knowledgeable team
member and shadow them.

Real jobs are just college group projects that never end.

~~~
ergocoder
> Real jobs are just college group projects that never end.

For a decent company, the differences are:

* The skill set of group members probably suits the tasks (e.g. some good at leading, some good at coordinating, some good at coding)

* The reward is real and can be life-changing. (e.g. becoming millionaires)

* The punishment is real (e.g. being fired)

~~~
lnsru
Being fired is very normal procedure in current corporate world. You loose
game of office politics and you are out. Maybe not immediately, but with next
downsizing wave. Shouldn’t happen in decent company, but nobody is perfect.

Becoming millionaire as a salaried employee is a pipe dream. Company owner
will become millionaire, salaried employee will get yearly 10% bonus. In
decent company maybe 20%.

I agree on skill set, but I saw many different things like electrical
engineers writing C# code because manager wanted this.

~~~
ergocoder
> Becoming millionaire as a salaried employee is a pipe dream. Company owner
> will become millionaire, salaried employee will get yearly 10% bonus. In
> decent company maybe 20%.

In a typical FAANG company, you can simply stick to a job for like 4 years to
earn a million USD (before tax). If you do well on top of that + stock growth,
your compensation will sky-rocket.

There are 10 of thousands of employees reaches $1m in earning. Maybe it
probably takes 4-5 years to save $1m. But it's not hard.

~~~
lnsru
There are many employees at FAANG for sure, but majority will never work
there.

------
raintrees
Set up a financial plan before you accept your first dollar, if you wish to be
most efficient.

Use percentages, such as saving 10% for long term wealth, and 5% for a fun
account so you don't sabotage your financial plan.

Learn enough of the tax code in the country you live in so that when you make
financial (and employment/business) decisions you are doing so while obtaining
the best treatment in taxes, one of our biggest expenses.

Once this is all rote, you can focus on doing what you want, following dreams,
exploring new realms, acquiring new valuable skills, etc. knowing that you
have your financial base set up to grow solidly.

~~~
praveen9920
This I think is the most important aspect most of the engineers ignore

------
nrjames
Best life tip? Have a hobby or two that you love and that can occupy your body
and mind for hours or days. Spend time wallowing in them. Be proud of enjoying
them and share that enthusiasm with the people you meet. Mostly, these hobbies
should not be what you do for work.

Regarding CS as a career: take classes in the humanities: art, history,
political science, psychology, philosophy, etc. You’ll find you are better
able to understand why you are doing what you are doing if your mindset for
approaching problem solving is rooted in both technology and humanity.

~~~
saalweachter
I would augment this by saying "try to have many things in your life that give
you meaning and enjoyment". Have some hobbies. Find a charity to get involved
in. Have a semi-regular game night with some friends, or join a meetup group.
If you're religious, find a religious community to be a part of.

It's very easy to end up with one or two pillars in your life that define it
entirely, and that can make things harder when your life has ups and downs.
And your life will have ups and downs. If the only thing in your life is your
job, and you lose your job -- or are worried about losing your job -- it can
really wreck your whole world.

Having a lot of things that are important to you gives you more resiliency.
You may still care deeply about each individual part, but when one is going
poorly you can at least take solace in and enjoy the parts that are going
well.

------
snarfy
19 and a portfolio. My former employer would have been tripping over
themselves to hire you after the internship.

I was told multiple times over the years that I was hired because of my
attitude and work ethic, not my skills, which were comparable to every other
candidate. Something to keep in mind.

Politics dictate promotions over merit, so don't burn yourself out trying to
get promoted. They'll just expect the extra work as normal. They might not
even have a place in the hierarchy to promote anybody. If you want a higher
position, they are out there, but you'll have to interview for them. As geeks
we don't want to deal with the business side of the equation, but that's what
career advancement is.

For tech advice, always study the fundamentals. It will be your job to know
and be proficient with the latest JS frameworks and backend stacks, but don't
forget the core fundamentals like algorithms and data structures. You should
know what a trie structure is. You should know the advantages of merge sort.
You should know what Big O is. If you only stick with the js frameworks and
such, you can end up as a programmer with 20 years experience and not really
know anything. You have 20 years of 1 year experience, each in a different,
now obsolete tech stack.

For life advice, your daily routine is everything. Your sleep schedule, diet,
commute time, study time, entertainment, etc is key to advancing your life
progress. Highly successful people have routines behind them where large
swathes of events are managed in a clockwork fashion.

------
Smaug123
Tip for life: human memory is essentially a _solved problem_. Spaced
repetition Just Works (TM). Learn how to use Anki, read Michael Nielsen on
Anki, read through the first essay of
[https://quantum.country](https://quantum.country) (even if you don't intend
ever actually learning any quantum computation) just to see what good spaced-
repetition flashcards look like and how to convert a text into flashcards. You
can memorise very nearly anything with Anki.

Edit to add: even if for some unaccountable reason you choose not to use Anki
or one of its siblings, you must read and comprehend
[https://www.supermemo.com/en/archives1990-2015/articles/20ru...](https://www.supermemo.com/en/archives1990-2015/articles/20rules)
.

~~~
8589934591
Are there examples/blogs of how to use Spaced repetition for
math/sciences/computer science/programming?

For discrete math currently, I solve problems, and either I come across 1
complex problem for each topic which I might have struggled with, or a problem
which has concepts of multiple topics interleaved. I add that to my deck and I
solve them regularly.

~~~
Smaug123
Nielsen has [http://cognitivemedium.com/srs-
mathematics](http://cognitivemedium.com/srs-mathematics), for example.

I would strongly recommend not having entire problems as a single card; it's
absolutely crucial that answering any particular card is a single mental
motion. (You can get by with a very small workload if your cards are more
complex than that, but it doesn't scale even in the medium term.) I wouldn't
go any more complex than "what is 75 * 43".

As an example, the definition of a red-black tree for me is six cards:

* What, imprecisely, are the colouring rules on a red-black tree? ["global; local; base-case"]

* What are the leaves of a red-black tree? ["null"]

* What is the base-case colouring rule of a red-black tree? ["leaves are black"]

* What is the local colouring rule of a red-black tree? ["red node => black children"]

* What is the global colouring rule of a red-black tree? ["black depth is well defined"]

* What is the black depth of a node in a red-black tree? ["the number of black nodes encountered on a path from that node down to a leaf"]

One might naively have created a single card that is "what is a red-black
tree?", but in my experience such a card is too big. The difficulty of
learning a card grows at least quadratically with the number of mental motions
it takes to answer that card, and small/simple/easily-learned cards are
incredibly cheap in that Anki very quickly learns not to show them to you if
they're genuinely easy.

Maths-wise, my cards usually look like:

* "Does path-connectedness imply connectedness?" [yes]

* "Does connectedness imply path-connectedness?" [no]

* "Counterexample to connectedness-implies-path-connectedness" [topologist's sine curve]

* "Definition of the topologist's sine curve" [union of the y-axis and a squashed sine]

* "Definition of the squashing of the sine component of the topologist's sine curve" [whatever]

* "Main idea of the proof that path-connectedness implies connectedness" [use "all locally constant functions into [0, 1] are constant"]

------
Illniyar
Can't really say much about landing a job. But I think the best advice I can
give when getting a job is this:

Your job will most likely have nothing to do with what you were taught in
school. It might have some superficial resemblance because you might use the
same tools or in rare cases even apply something you learned but the the day
to day work, the skills you need succeed and what you need to do to do
something well are simply stuff you are never taught in school.

Higher education is used almost exclusively as a signal in hiring. Higher
education teaches you how to be an academic (and if that's you career choice
than forget what I said) it isn't a vocational school and neither the people
who ran the institutions nor the people who will hire you expect Academia to
actually teach you how to do the job.

This is true for almost all degrees to some extend, not just CS, but it is
very evident in CS and many fresh graduates who land their first CS job have a
hard time to adjust to the change in expectations.

For CS the shock usually revolves around understanding that most of what you
are going to do is combining and interfacing with other people's code (whether
colleagues, open source libraries or 3rd party services) and rarely if ever do
algorithmic or data structure work.

~~~
oltdaniel
Always important to learn stuff besides theory and the stuff from school.
Something I do since 7th grade with CS.

------
jedberg
> Which advice did/would have helped you landing your first job after
> university?

Every job I've ever gotten was through friends. Including my first job.

I got my first job because one of my college friends got a job and recommended
me. I got my second job because one of my college friends recommended me for
it, after we worked together at the first job, which I helped him get. I got
my fourth job because one of my friends from my second job worked there and
vouched for me. (My third job was with a startup where I just approached the
founders and told them I want to work there, and they said not right now, but
we became friends and eventually they hired me when they had money).

Now most importantly, all of these college friends were made while working in
technology positions in college.

My point is, it's never too early to start building your network. Make friends
with people in the same career track now, show them how good you are at your
job, return the favor when you're in a position to help them, and then reap
the benefits throughout your life (not to mention the bonus of lifelong
friendships).

~~~
mkolodny
I felt a lot more comfortable about the idea of "networking" once I started
thinking of it as "making friends with people".

When I first tried networking, I thought that I was supposed to help other
people, and then ask those people for favors. To me, that felt really
unnatural. It felt like we were just using each other.

Now I see that my friends are the people who help me the most. They're people
who I care about, and who care about me. So when people tell you to "network",
I would just translate what they're saying as "go make friends".

------
nogabebop23
A lot of this advice sounds like old people spouting cliches - well, I'm old
and have lots of obvoious advice too, so...

You're 19 and in your second semster, concerned about a post-uni job. It's
great that you've started thinking about what the future could look like but
also pretty pointless. There are too many factors out of your control when
you'll be a new grad is 3+ years. Focus on the now. Explore classes that you
really enjoy, take your breadth courses outside of CS or what you think
employers will want. Do some dumb, fun things with other people, both
technical and non-technical. Consider an internship or student position that
lasts more than a summer - a 12 or 16 month work term delays graduation a year
but look FANTASTIC on your resume when you go for that first post-grad job
interview. Develop some interesting personal aspects beyond your technical
skills. I love to hear about someone's exchange in Japan, or the non-profit
they've worked with out of love vs. resume padding (it's obvious), or a deep
passion for vintange computers or Russian lit or _anything_ genuine and
unique.

After you graduate you'll probably have 2 or 3 careers and countless jobs.
This is amazing! Live in the now of each job, not always looking for your next
move. The progression and change will come naturally or suddenly. Mapping out
a decades-long career may still happen, but I've rarely seen it outside of a
few industries/companies/fields.

You're going to make mistakes, the goal is not to be error-free. Don't make
the same mistakes repeatedly and try not to make any fatal mistakes. Younger
people are generally pretty good at try & failing and not destroying
everything with their screw ups, but it's the good ones who avoid repeating
them. New hires don't know much but this also means the good ones are willing
to try anything and jump in to new areas. Be Courageous, not Fearless.

There are lots of other tidbits but I'm saving them for my opportunity to
deliver a commencement address some day. If I only had one thing to say it
would be that there is a lot more uncertainty about the future of a recent
comp sci grad these days vs. the past ~25 years or so, when it was
unambiguously really good or really bad. Prepare for this by cultivating
flexibility and adaptability now.

------
bprieto
1.choose jobs for their learning potential, not their earning potential for
the first years. This will pay off later.

2.be willing to change jobs if you don't have a clear chance of promotion
inside.

3.be a likable person. Have a coffee with your colleagues, make small chat
with your boss, ask about their lives, remember their families' names... In
office politics it doesn't matter how good you are as much as how much people
like you.

4.be your own advertiser. Probably no other person will be. Make sure that
when you have a success everybody knows it was yours and what you did.

5.be willing to do more than your job's description, but don't be a pushover.
Ask for compensation or recognition every time you do something beyond your
duties.

~~~
fsloth
"4.be your own advertiser. Probably no other person will be. Make sure that
when you have a success everybody knows it was yours and what you did."

Yes! This! This does not mean _false promotion_. It means being able to
express succintly and understandably that what you are good at. The world is
drowning in noise. You do a disservice to everyone, including yourself, if you
don't create a "personal brand".

It does not mean being obnoxious or pushing yourself. It just means you can
explain clearly - when the need is - what you are good at in as few words that
are as effective as possible.

------
austincheney
Be good at writing. I cannot stress this enough. Be comfortable articulating
original ideas in writing. Be thorough, precise, and objective.

In the corporate world that one skill is what separates the adults from the
children in the room.

------
gfodor
I'll go against the tide here, since much of the advice in this thread seems
to be from people who have gone through bad experiences, and laying on advice
that might make you feel cynical or cautious about your work life. When life
deals you a bad hand, it's important to not over-correct in the other
direction. Digest the lesson, but don't assume doing the opposite of what you
did before will result in better results. Try to integrate the lesson into a
greater whole. Be cautious of views that are superficially contrarian, if you
see many people holding them.

Work hard. When you are young, this is the best time to go deep, and get good
at something, since you are free from other responsibilities. Later, you will
have many things you care as much or more about than work, and so the time in
your life will have passed to be as deeply engaged with your work. A lot of
the work you do will ultimately be lost, be failures, or end up in the trash
bin for other reasons -- take comfort knowing that the work was done to mold
you into the person you will become, not for the sake of the project itself.

Read Hamming's "The Art of Doing Science and Engineering." Have a plan, even
though it will change with time, to move your career towards working on things
you think are important. Even if you don't know what those are, make a point
to "check in" with yourself every year or so to ask the question: "Am I
working on the most important problems in my field? If not, why?" This doesn't
mean you will always be working on these problems, and it doesn't mean that
it's wrong to not be, it just means that you should always have a plan, a
path, and a strategy towards getting there, and catching yourself if you are
falling off-track.

Understand regret minimization as a framework for making good decisions.

Most of all, avoid listening too closely to advice :) Realize there are many
paths through life, and yours is your own to write. Luck favors the prepared
mind: prepare yourself, through work, and through reflection, to be able to
recognize the doors that will appear that are uniquely suited for you to walk
through. And, when they do, don't hesitate to go through them: the world, your
peers, and 'common sense', will often try to pull you away from them.

Good luck!

------
hliyan
Much of the advice I came to give has already been given in other comments
(which is great). So I'll leave a piece of meta-advice:

 _McIntyre 's Law: Anything I tell you could be wrong under the right
circumstances._

Advice is more often than not, colored by the personal experiences of the
person giving it.

------
fsloth
"Which advice did/would have helped you landing your first job after
university?"

I got no advice, I just tried to find something interesting (that I was not
really competent enough to do). But it turned out well.

In the large scale life is ruled by statistics. In the small, personal scale
by serendipity and chance. You live on the personal scale.

"And whats your best tip for life in general?"

Try to find a domain in which to work which is intrinsically interesting for
you. _You_. Not the general public. Not interested in <hot topic X> that seems
to be trendy? That's totally fine.

Try to be strategic with your career. Try to think time to time where you want
to be in five years. You need a _plan_ with alternative scenarios. They all
probably go wrong - and that's fine. They are just a framework for your own
reflection. But you need them.

Read biographies of people who've worked in your or similar domain.

Find out what the other guy is thinking. Not interested in management? Read a
few books on management anyway. And _don 't_ use your knowledge in
discussions. Because it will sound (no matter how you put it) like you read a
few books on topic X and now think you are an expert.

There is a good book on _every_ subject.

The most critical decision for your happiness will be who you will marry.

------
hnruss
Find different ways to collaborate with others on software. Learn how to
review code and how to respond when your code is critiqued. Contribute to
medium-sized open source projects that are still maintained and have a fair
number of users.

As for life in general: learn about personal finance. Once you’ve got a decent
salary, you’ll need to know how to invest for retirement, save up for a house,
pay down debt, etc.

~~~
fsloth
"Contribute to medium-sized open source projects that are still maintained and
have a fair number of users."

I've never contributed to an open source project and my career has evolved
just fine, though.

I think this audience over stresses the need of open source contributions.
It's fine if you don't want to work in the open and don't want to share your
code.

Natural curiosity of open codebases is a good thing to have, though :)

I've known several excellent 9-17 coders who work, and then go home to do
other things.

------
hakanderyal
Some random thoughts:

1)

Depending on where you live, there will be hundreds/thousands of new CS
graduates every year, but a smaller number of available jobs for juniors.

So, you need to differentiate yourself from the rest.

Starting from there, there are two paths you can follow to increase your
chances of finding a good job (not mutually exclusive):

\- Do what everyone does, but better.

\- Do different things then everyone

2)

First principles thinking.

It has been an invaluable thinking method for me to improve myself, in all
areas of life.

Some random links:

[https://jamesclear.com/first-principles](https://jamesclear.com/first-
principles)

[https://www.theengineeringmanager.com/growth/first-
principle...](https://www.theengineeringmanager.com/growth/first-principles-
and-asking-why/)

Some examples on how you can apply it to software development:

\- You will be using various languages/frameworks/libraries when creating
software, with various level of abstractions. At the beginning, you won't have
the necessary experience to understand how everything works underneath.
Whenever you find time, try to dig through the abstractions to discover why
they were built the way they built, how they work together. This understanding
will make you a better engineer.

\- When working with non-technical clients/project shareholders, what they say
they want and what they really want will usually be different. Often, you will
have to dig through their requests to find out how you should continue.

------
ryeguy_24
Perception is reality. Your personal brand is insanely important. In a job,
you are always assessed and your career progress will be based on how others
perceive you (unless you are in a very metric focused career like sales).
Anyone can say differently, but whatever other factors people mention, they
all drive the final factor which is perception.

I always tell people two things when they start:

1) Impress everybody you meet. First impressions are very sticky. Impress
people first, they will hold you to a higher standard, and then you aim to
continue to impress. I’ve seen very few cases that people have shed their
initial impressions.

2) Over-communicate. Make sure you ask questions, write thorough emails that
explain rationale. It’s really important that you aggressively set and meet
expectations. A major problem people have is expectation mismatch. Make sure
both you and others are in sync and this usually happens via over-
communication.

~~~
dbg31415
> 2) Over-communicate. Make sure you ask questions, write thorough emails that
> explain rationale. It’s really important that you aggressively set and meet
> expectations. A major problem people have is expectation mismatch. Make sure
> both you and others are in sync and this usually happens via over-
> communication.

Eh, this is not great advice for new hires. Let's not encourage them to spam
their managers for every decision. Ha.

~~~
ryeguy_24
Spamming was not my intent. I agree that spamming “is it ok if I” and “should
I” emails is definitely bad. I do think that communication is an incredibly
important focus for new hires though. Confirming what they are hearing, asking
questions, setting expectations (verbally or written). I think those things go
a long way.

------
Mr_P
> Which advice did/would have helped you landing your first job after
> university?

Take a few advanced, specialized CS classes by your 3rd year. These often have
large end-of-semester projects that can be fairly open ended.

These final projects are a great way differentiate yourself from the thousands
of other CS grads looking for jobs.

Sure, you could get an 'A' in class by doing the bare minimum for a project.
Alternatively, you could go beyond course requirements and have something to
show off for potential employers, even if just another resume item to use as a
conversation-starter. If you're doing the project anyway, going an extra 10%
over the top is relatively easy, especially compared to trying to land a
meaningful contribution to an open-source project or building a separate
portfolio project from scratch.

~~~
gopalv
> These final projects are a great way differentiate yourself from the
> thousands of other CS grads looking for jobs.

The bigger firms recruit for raw numbers and then reassign roles. So this
might not mean the difference between being hired and not in some of the
bigger companies, but on what you're actually pushed towards at the end of the
placement cycle.

The technical talent of a new grad is rarely used to explore the deep end of a
complicated problem, but instead is full of work that takes time rather than
thought. So the last year or so of your course is the last chance for the next
3+ years to work on a complex problem which you are obviously not qualified to
work on.

The bare point is that nobody hires you to run a hilly marathon, but will give
you tasks that are mile-times instead & expect you to sprint through them. And
these are expected even with the best managers, who expect you to grow out of
that phase at some point (as frustrating as it is going to be for you).

So the project is going to be the most useful thing for someone to pick you
over someone else when dealing with a problem somewhere in the same region of
CS.

The thing I did to "get hired" was learn J2EE, but what actually guided the
next problem someone threw at me was because I did a bunch of compiler/byte-
code junk as an undergrad which ended up being career defining for the next
six years.

If I was in a class in today's world, I might do the same with a neural
network or some computational genetics.

Not because it is directly tied to getting hired, but very relevant on whether
a manager/tech-lead throws a similar problem at you soon. And possibly you'll
get to work with the best people who do that for a living.

------
HenryBemis
You don't have to be a developer all your life (or not at all) :)

I recently met someone who started out as a dev in a bank, then took interest
in the numbers part, and now he's a director in a mega-big bank in Internal
Audit. Cool person.

In similar paths, I too studied CS, hated programming, started as help-desk,
then moved to sys-admin, then to IT Audit and then IT Sec, GRC and now I am
mixing and matching the above (Sec-Audit-GRC). I enjoy what I do and I never
imagined that I would move from IT Ops if one would have asked me 20 years
ago.

Ask people what parts of their career they enjoyed and why.. again this is
about their life, but you can understand the CRITERIA more than the actual
subject. Listen to their WHY and it may help you construct the rule-set that
may lead you to your why/what/where/when.

------
brunojppb
One thing that worked well for me was to look for a mentor early on. Try to
find someone experienced in the field that could lead you through your career,
recommend books and give you feedback. Two things that happened to me while
following this:

1\. I was learning much quicker and way more valuable content than my peers
during university. I think it was mainly because I was getting curated
content/tips from my mentor which saved me from learning things that I will
probably never gonna need. 2\. I got job offers even while not looking for
jobs. Interesting enough, my mentor casually mentioned me within his network
and those people ended up contacting me.

The best part of it is that you can get it 100% for free if you search
carefully. The tech field is full of good people that are willing to give
their time(usually very expensive) away to help newcomers. Specially those
like me that got help from the start, paying it forward feels like a
obligation.

But you might ask: “how can I connect with those experienced people?”. There
are many ways to do it, but some very effective are:

\- go to meetups and talk to people. Don't just sit there and watch the talks.
Be part of it.

\- use Twitter. You will be impressed by the amount ok knowledge that is being
shared there.

\- reach out To your local companies. Send them emails, knock at their doors.
There is nothing cooler than seeing folks interested on your product/company.

~~~
oltdaniel
What would be a good way to find a mentor? I had looked into that topic a
while back, but haven't found something promising.

And I think the first step for me would be getting to know people in the
institute district we have here next to the university. But meetups are
definitely something I want to go to in the future. But Twitter was something
I always failed on. Any tips for Twitter?

------
rangasamy
Have an open mind to do work that's not your job by definition.

Those are the kind of people who become indispensable for a company and it'll
help you when you become an entrepreneur.

------
mattlondon
Beat advice I can give you is to be endlessly positive and do whatever they
ask you to do as well as you possibly can even if it is not what you want. If
on your first day they give you a mop and a bucket and direct you to the
toilets, then be damned sure you make those toilets the cleanest they've seen.

Silly example I agree (they won't ask you to clean the bathrooms... probably),
but _demonstrating_ a strong work ethic will get you noticed and earn you a
good reputation that will pay back many times in the future.

I've had interns who get surly and moany when they don't get asked to work on
machine learning to cure cancer and turn lead into gold, but got asked to fix
some unit tests or something else unglamorous. They become a real pain to work
with because you know they'll complain about whatever you give them so you end
up just giving them scraps or at worst basically giving them nothong and
letting them spend their time on tiktok or whatever because it's less hassle
than trying to satisfy their ego. Don't be that person who makes a fuss for
being asked to do real-world work and you'll go a long way.

Good luck

~~~
Broken_Hippo
_If on your first day they give you a mop and a bucket and direct you to the
toilets, then be damned sure you make those toilets the cleanest they 've
seen._

Unfortunately, this can easily backfire. Make sure it is clean, sure, but at
some point you are going to take time cleaning and it won't be appreciated at
best. At worse, you are going to be told it took you to long to do the work.
This is coming from someone who, at a foodservice job, had someone teach me
how to mop. Their standards - for mopping anyway - were quite a bit lower than
the standards I grew up with at home. It hasn't just been that establishment,
either: Everywhere has some of this.

I'd much rather see someone be told, "Do well, but there is no need to be
perfect. Be efficient where you can". This goes so much further and besides,
most folks expect the new person to do a few things that are a bit off.

Not being fussy about the work you do, though: Solid advice. I've generally
tried to do something other people dislike, if possible.

------
ggm
You have about six weeks where you can ask otherwise outrageous questions and
actually effect change. After that they will just think you are an idiot.

~~~
stblack
I came here to say something like this, except for the last part.

I would say, rather, there are no stupid questions.

After awhile it will become increasingly clear who fields questions well, and
who doesn’t.

Cultivate the former, avoid the latter.

~~~
ggm
Yes. this is a better phrasing. The key point is that you can ask almost
anything in the critical new window.

After that period the ability to make other people re-think things
significantly is made harder by their preconceptions about you, from their
shared experiences.

BTW I've been telling new hires this for years, decades even. Not the 'after
that they'll think you're an idiot' bit.

------
rdiddly
Other than school, which is sort of an anomaly, I find that the only thing
that prepares you to do something is actually doing it. So the corollary is,
you're never actually prepared for anything ahead of time. Don't worry about
it, just trust yourself to either know or figure out what to do when the time
comes. We make the path by walking.

~~~
vaylian
Plus, OP shouldn't expect that the tasks that they get are always well thought
through. In school you get assignments where the teacher already knows that a
clear solution exists. In the real world your supervisor might work on flawed
assumptions when giving you a task.

Also: The amount of effort needed for a task does not always correlate with
the importance of the outcome. Sometimes big wins come easy and sometimes
small wins are expensive.

------
isatty
If you're joining a company that does not have an established, tried and
tested onboarding programme you may find documentation missing (whether it be
technical or process) and pitfalls you fall into as a beginner. It may help to
write it down in a public forum or help fix the stale documents which'll help
other new joiners.

------
balazspapp
In general: listen to everyone than follow your way (C) nav.al

In practice: being research assistant is a good start. Do it as long as you
can afford - I mean no family, no obligations whatsoever. (3-8 years)

Find a small company - this will teach you applying theory in practice. (3-8
years)

After that you will have the potential to start up your business. (3-8 years)

If you really enjoy, continue what you are doing. If not -but only if you have
tried all above-, look for employment in a big company. No matter if it is
tech, automotive, beverages or anything else. It will provide stable living
for the remaining time.

If you've done everything fine up to this point you can't be sorry missing
anything in your profession.

During the whole time listen to the sounds! :) Contemplate, analyze what fits
you most? Which topics you are interested most? What you enjoy most? What are
you the best in?

Share your thoughts with the younger.

~~~
MaxBarraclough
> being research assistant is a good start. Do it as long as you can afford -
> I mean no family, no obligations whatsoever. (3-8 years)

I'll be blunt: this sounds like work that pays poorly (it's academia), is
likely to be quite demanding (it's academia), doesn't give great industry
experience (it's academia), and doesn't get you a PhD (at the end of it you
still aren't an academic). What's the upside?

------
choeger
Learn the foundations. Linux/Unix shells, C programming, debugging, how
linking works, how you can disassmble something, how strace works, networking,
etc.

The reason here is that all this low level stuff is the literal foundation of
whatever abstraction (python, JVM, C#) your company uses. And while it is not
directly applicable it will help you a great deal when things do not work. Be
not the guy that says "I did everything like it is written in the manual and
it it does not work". Be the guy that says, "looks like libfoo.so on my system
here is ABI incompatible to the libbbar.so I downloaded. I think we need to
recompile libbar.so to make it work, where is the source?"

~~~
fsloth
"Linux/Unix shells,"

On the other hand if the work is done on Windows it's much better to learn
_that_ platform than pining for something else.

Go with whatever is platform specific, and available out of the box. Avoid
complex configuration packages just to get the specific interface flavour to
the computational substrate you would prefer to use privately.

The reason is, if there is specific computational platform that the employer
is using, you are _much_ more helpfull to all around you if you operate with
the vanilla settings rather than try to find something more special.

Privately try to find the best methods that work for you, in public,
collaborating, try to find the most simple and straighforward method of
contributing. Simple in this case does not mean a kludge, but it may mean a
few extra lines of code or configuration here and there.

------
maps7
Your first job will give you lots of new and important experience. My advice
would be to ask questions and say you don't know when you don't know.

When you get the answers make sure you learn from them.

Other than that - enjoy it! I much prefer my working life to my college life.

~~~
oltdaniel
Always be true about knwoledge gaps. Thanks will do. And I am waiting for a
workplace since school, but university is something I enjoy too and will help
me landing a job more easily.

------
bvergara87
It really depends on what kind of career you want to have. If you're looking
for a career at a FANG company, you pretty much just need to do what everyone
else is doing and cater to your PM.

If you're more risk-prone, find a problem and start a company. Too many good
developers are wasted at FANG companies instead of solving the world's biggest
problems. When you graduate, you'll likely be around 22-23, if you spend 4
years working hard on something you truly care about you'll only be in your
mid-twenties and haven't really lost all that much time.

Obviously, handle any financial obligations (Student Loans mainly) before
jumping into the startup deep-end.

------
medialucky20
Your internship and research assistant are really good starting point. \-
Observe the work culture in your current workspace and ask feedback from your
manager and coworkers. -Make a list of your weak and strong points.For me this
helped me choosing the kind of work I love to do. Example: I like talking to
people and solving problems,so I prefer customer support or BA role than a
programmer. I know programming but I struggle to sit and code longer hours. \-
If needed improve your softskill. Many online free training available \- Be
flexible with relocation if the role promise long-term career growth and build
strong skillset for your profile.

~~~
oltdaniel
Thanks. Specially the part, talkong to people in order to find what you'd like
most. I haven't found the perfect position for me yet.

------
saagarjha
Figure out what other people are doing, and copy it. You might think they’re
doing it wrong, or they’re inefficient, or whatever; just copy it and see if
you can ask questions. Take a bit of time to get in the flow and understand
the environment. You’ll find that together a lot of the strange decisions will
make sense once you know the context. Some of them won’t, so when you have a
little bit of clout try to politely suggest an alternative; if they listen to
you that’s great! If not, see if they’ll let you document the rationale behind
it. Overall, don’t come in pretending to be a know-it-all. Even if you are,
it’ll hurt you either way.

------
exolymph
Do what you're doing right now — ask lots of questions! Especially if you get
stuck!

------
noufalibrahim
That's generally good advice. Another thing I can recommend is to learn to
market yourself and your work. Getting a job is, in a way, selling yourself.
You have to convince the potential employer that parting with his/her money
for your time is a bargain. This is a mix of persuasion, presentation, and
communication. A few mock interviews with someone who knows the ropes, some
time spent on your appearance and speech would help a lot. I landed a job in
2000 right out of college even though I had a CGPA below the cut off just
because of how I was able to talk myself into an interview and then impress
the interviewer.

------
Cactus2018
Read The Beginner's Creed, by Peter J. Denning

[https://web.suffieldacademy.org/cs/intro/beginners.shtml](https://web.suffieldacademy.org/cs/intro/beginners.shtml)

------
lonelyasacloud
I have recruited quite a few grads over the years and if you are like the
majority of those (and I was) then I'd recommend:

1) Properly understanding what motivates yourself. What were the key parts of
past jobs and activities that made you forget the time of day, do it for free,
enjoyable.

2) Seek jobs with lots of the parts identified in 1) that you are confident
you can be _bloody_ good at and people will pay you enough for.

3) When you apply for those jobs; apply for the job - tell the recruiter that
you have read their advert, what it is that motivates you and that you are
worth them spending time on.

For life in general; keep learning.

You'll be fine, but good luck anyway

------
ivan1783
What worked for me: I got an internship at a big company in the field I wanted
to work in. I stayed with that company throughout the entirety of my studies,
I knew just about everybody in the company and had a list of job offers to
choose from when I graduated. I declined all of them and moved overseas with
the same company - was difficult to find but I managed it in the end. Had I
wanted to stay in the US it would have been very easy to find work. Also, I
graduated in a not so bad economic time - so I guess luck was part of it as
well.

------
PopeDotNinja
Learn to write a CV/resume without adjectives. When you do your best to fill
up one page, and find your experience lacking, you can ask someone who hires
new grads if they would hire/interview you. If they say no, ask why not. The
answer they give will give you a clue as to what you need to improve on. Ask
enough people and a pattern will emerge.

Also, no matter how hard things get, keep a positive attitude, or at least
don’t become negative. People wanna work with people they’d like to spend time
around.

------
qqj
don't.

[http://www.paulgraham.com/boss.html](http://www.paulgraham.com/boss.html)

do what you can to not work for anyone but yourself. even if it means reducing
the scope of what you can work on and earning less.

and the hardest thing of all: find people you like, respect and trust - and
stick with them. loyalty and fidelity above all else.

yes this sounds weird, but to me sleepwalking through life, being constantly
distracted and dealing with office politics is by far more weird. to each his
own i guess.

~~~
sojournerc
I'm don't think there's a dichotomy here. I've had jobs with a spectrum of
autonomy. I like working for an organization because I can focus on my
expertise. I don't want to market, do sales, or chase investors. To each his
own.

~~~
qqj
excellent, you've provided another great life lesson: seemingly benign but
nonetheless false assumptions can have disastrous consequences. so much talent
and potential has been lost to hubris.

remember: don't ever rely on intelligence alone when making critical life
decisions, it will only serve to dissuade you. after all, it's not the
reasonable men who change the world.

------
axegon_
A few things off the top of my head, no particular order:

* Read the documentation. I can't stress enough on that.

* Don't over-engineer stuff. Keep it plain and simple. Remember - most of your co-workers will have a lot of experience and you won't be able to impress them with something revolutionary. Chances are, they've seen it and had it for breakfast a million times.

* Don't be afraid to ask, even if it seems like a stupid question. Especially if you get wrapped up in a big and complex project. Most people are aware that during the first 5-6 months, new developers are often a net loss to the company, regardless of their skills and knowledge - there is always and adaptation period. Use that to your advantage.

* Be __brutally__ strict about the working processes and don't try to re-invent the wheel. Application structure, naming conventions, pull requests, code review - stick to it no matter what(unless there is a very specific situation and you are instructed to do otherwise). I.e. if everyone on the team makes short commit messages, that explain the change and link it to the relevant jira, github, gitlab(or whatever tracking system they use) ticket, do the same. No need to write a 50 line commit message describing the change in all files. And vice-versa - if they do write 50 line commit messages, explaining every line of code they've changed, do the same.

* Pay close attention to the most experienced people and try to understand their thought process and mentally train yourself to be able to think like them. Their thought process might not be the most efficient in general and it might be something completely different in your next job some day, but if it's proven to work for that team/company, stick to it.

* When you are given a task, check or ask if something similar exists. If it does, go over it, see if there is something you can re-use or at least understand it's mechanics and keep it close to that.

* You won't be in a position to say no, but everyone is in a position to require further details if needed. Which is not to say you should freely jump over to a senior developer every 3 minutes. Rather spend several hours trying to clearly understand what needs to be achieved, organize your questions in relevant clusters. That may help you answer many of them yourself. Whatever is remaining, ask someone if they have 10 minutes, go have a coffee with them if needed. If your questions/concerns are valid and relevant and what you are expected to do makes no sense, they can step up for you or tell you who you should talk to.

Good luck!

~~~
fsloth
"Read the documentation. I can't stress enough on that."

There are lot's of production codebases with very little or no documentation,
though.

"Don't over-engineer stuff. Keep it plain and simple."

This in an excellent advice.

"Pay close attention to the most experienced people and try to understand
their thought process and mentally train yourself to be able to think like
them"

Yes, this is similar apprenticeship. Just being able to work with talented
people is an outstanding thing to have. On the other hand, if you are a junior
contributor, but can't find the obvious master programmer around, that is a
huge red flag that the organization is filled with mediocrity through and
through and it probably would be best to work somewhere else.

If you actually feel you are the most talented programmer, and are confident
of your skills, that is an important datapoint. If your organization does not
value your skills in couple of years you should definetly move on.

~~~
axegon_
> There are lot's of production codebases with very little or no
> documentation, though.

Indeed. But the advise is equally as valid for libraries or frameworks used in
a project, which as a junior developer, chances are you have very little
experience with. Read those :)

> On the other hand, if you are a junior contributor, but can't find the
> obvious master programmer around, that is a huge red flag that the
> organization is filled with mediocrity through and through and it probably
> would be best to work somewhere else.

Also correct. That said, you can go through the history of the project you are
working on and see who's done the heavy lifting, granted they are still
around.

------
11thEarlOfMar
As someone who hires CS professionals, a few pointers. Be deliberate about the
industry that you are working in. You won't know how long you'll be there and
after a few years, your industry knowledge will comprise a larger body than
your technical knowledge. This is a lever for amplifying your value, because
that crossover is when you can start thinking in terms of the value in the
products and services you're developing, in addition to their technical
implementations. The flip side of this is that the longer you are steeped in
that industry, the more difficult it will be to change to a different one.
You'll want to be in an industry that challenges you. For example, 10 years as
an embedded RF engineer is not the same as 10 years in back-end banking. If I
were looking for the former, I would not interview someone from the latter.

CS pros have to be intelligent to get in the game. Once they are in, the
primary success factors are a. Do you participate effectively in a team and b.
do you work hard and pull your weight. Most universities today have coursework
that includes extended, team projects. Do well in those programs, encourage
your teammates to be competitive and committed and actually make something you
can show off when you start interviewing. Be ready to go into detail, not just
on the technical, but the team dynamics: What role you played, and here's a
nugget: What were the different strengths of the team members and how did you
deliberately take advantage of those strengths. A new grad who displays that
type of insight will set themselves apart.

Many jobs are landed through networking. Establish relationships with
upperclassmen and keep in touch after they graduate. When you're ready to
start looking, some of them may be working at companies you target. When you
do your summer internships, connect with everybody you can. You can reach out
to them, and in many cases, they will have moved and seeded other companies
that you could interview with.

Finally, just some out of the box thoughts for getting that first job: Cast a
wide net. Submit a lot of resumes. Take a lot of interviews. Before each,
research the company. Not just their technical products, but again, what
market do they serve and do you believe you'd be challenged by that industry
for the long term. Be good about following up. Don't be a pest, but don't let
more than a week go by without checking in with your contacts on how it's
going. Many companies are _really bad_ at keeping candidates apprised of their
status in the hiring, or where they are in the process. You don't want to just
be left hanging when they've made a decision weeks ago.

Good Luck!

------
hailhash
1\. Have max fun with your co-workers, crack jokes whenever, always laugh with
others, help them in every which way possible while knowing they may not
always reciprocate.

2\. Work like there is no tomorrow and save like you will live forever. Max
the fudge out 401k.

3\. Learn about office politics and stay the fudge out of it. Co-workers are
human and they will make human mistakes and might hurt you intentionally or
otherwise. Grow a thick skin don’t take everything others say or do so
personally.

------
giantg2
I had side projects like Android apps, good grade, decent soft skills, and
extracurricular clubs/sports. Those seemed to help.

I think your internships and being a research assistant should be your biggest
assets. Try to remember some of your accomplishments and how you handled tough
situations. Managers/recruiters love to ask you about past experiences. Try to
get letters of recommendation from your bosses and from a professor too.

------
wojciii
I landed my first job because I knew someone from uni who got work at this
company first. Networking is everything for me and I suck at doing it. Later
jobs I got because of what I knew and could do.

I have a CS degree. While young and unattached you can spent time on learning
a lot and becoming a better sw developer. Do this now before wifey (assuming
male gender) and children will take a considerable amount of your time.

~~~
DavidVoid
> Do this now before wifey (assuming male gender) and children will take a
> considerable amount of your time.

*(assuming male gender and heterosexual and wanting to have kids)

------
Perenti
Despite what courses you did, or how great your grades were, when it comes to
working in the Real World, you know very little. I know that sounds really
arrogant, but experience trumps qualifications. By showing that you know you
have a lot to learn, and are willing to take the advice of the more
experienced, you'll get on much better with your team.

This probably applies to any profession.

------
BenGosub
\- Don't try to get it 100% right on the first time, it's an iterative
process. \- Communication is key, be 100 focused when getting the specs. \- If
you get lost, if it's too much, it's time to refresh your mind. Whatever it is
you can outgrow it with less effort if your mind is fresh. \- If you don't get
a good treatment, maybe it's not the right place for you.

------
alok-g
A related discussion [1] and my response on that one [2]. This is somewhere in
the middle of the two questions asked.

[1]
[https://news.ycombinator.com/item?id=18128477](https://news.ycombinator.com/item?id=18128477)

[2]
[https://news.ycombinator.com/item?id=18128901](https://news.ycombinator.com/item?id=18128901)

------
peelle
There's a whole bunch of technical skills that Universities didn't teach when
I was there. I would recommend reading The Pragmatic Programmers by David
Thomas and Andrew Hunt to help with that.

Equally important are your soft skills. I would recommend reading The Hard
Truth About Soft Skills: Workplace Lessons Smart People Wish They'd Learned
Sooner by Peggy Klaus.

------
boruto
Write good emails. Take your time in composing them and do not send in haste,
especially when you are sending to a list.

------
rawgabbit
You will be judged on how you look, how you speak, how well you write, and
what you produce. You need to make an effort on all four. In every group, some
will take advantage of you, some will sabotage you, some are bullies, and some
you can trust. Your best strategy is to recognize them as early as possible.

------
rkwz
I wrote about this topic based on my own experiences -
[https://medium.com/temasek-root-access/career-advice-for-
new...](https://medium.com/temasek-root-access/career-advice-for-new-
developers-23c5e7196fef)

------
literallycancer
Whatever you do, don't get lowballed. Plan ahead so you can retire at 30. If
you aren't able to get offers from multiple companies so you can negotiate
properly, start your own company (unless you have dependents already, in which
case you are fucked).

------
sys_64738
Your reputation is built on what you do not what you say. So leave all the
latest fads at the door as new college grads are dime a dozen. You're nothing
special until you do something in the new role. So don't be a smartass.

------
almost_usual
Be receptive to feedback from _anyone_.

Senior engineers and managers usually have lives outside of work. Don’t bother
them off hours if it’s not an emergency.

The late night hacker archetype is usually immature and not a team player.

Careless mistakes are worse than calculated mistakes.

------
Cthulhu_
I don't have much besides: Stay curious and never stop learning, don't put all
in one language, don't hesitate to look around every once in a while (in terms
of jobs), and try to keep making and maintaining friends.

------
victor9000
Learn how to give constructive feedback. If a coworker comes to you for
assistance and you reply similar to some of the negative comments in this
thread, then that's probably the last time they come to you for anything.

------
brailsafe
I'd recommend not sticking to a specific idea of what you want that job to be.
University is a lot more interesting than most provate sector jobs, so explore
non-cs stuff as much as possible.

------
lucasyvas
My best tip, for your early career especially, is to embrace the idea that
switching jobs is in your best interest. It usually is.

By all means, focus on your early growth. But try not to be blinded by
loyalty.

------
benjaminsuch
Really find out what you want in life. This is not a philosophical task. When
I think back to my days in school, I really wish someone actually took his
time, explained and showed to me what that means.

I'm talking about goals and it doesn't matter if that is being an entrepreneur
or the best ballerina in the world.

When you know what you want, as early as possible, you can work on a path to
that goal. And if you have a path, you know what to do and how to do it.

In my opinion this will increase your happiness in life tremendously as you
don't walk through life "unconsciously".

This question "What do you want" isn't so straight forward and easy to answer.
It requires a lot of thought, but is very rewarding.

------
remotists
Be open to opportunities and do not reject anything based on face value or
your comfort zone. Also, friends at work are not your friends so keep your
friends talk to yourself.

------
JJMcJ
Unlike school deadlines tend to be more flexible but finishing is less
flexible, maybe not flexible at all.

Don't show off.

Yes, the system is a mess and everyone knows that.

But we can't fix it.

------
dietsche
create a text file, and write down every piece of information you hear. server
names, where documentation is, who knows what, etc...

I simply call mine "life.md" .

This will be invaluable because you won't have to ask twice about a piece of
information that you've learned because you'll already have it written down.

~~~
rgblambda
I second this. People get very agitated when having to repeat themselves.

------
master_yoda_1
Forget machine learning or ai and learn a compiled programming language in and
out. It will help in long run.

------
ykevinator
Read "a message to Garcia" its 3 pages, it's everything you need to know

~~~
RhysU
[https://en.m.wikipedia.org/wiki/A_Message_to_Garcia](https://en.m.wikipedia.org/wiki/A_Message_to_Garcia)

------
franze
” Showing up is 80 percent of life.” attributed to Woody Allen

------
6510
Don't get overly attached to it.

------
adaisadais
Ask lots of questions. Why? Why? Why?

------
PhoenixRobo
This is ironic but stop looking for advice on the Internet/random strangers
who you know nothing about, especially tips on life.

------
jongold
Some reflections at 31: \- you can’t buy self-actualization. The most
devastatingly miserable times in me & my friends’ lives have often been when
we worked at big corporations doing nonsense work. they’re extremely good ways
of earning good money whilst becoming extremely depressed, watching your life
pass you by, whilst also losing agency & willpower to escape.

\- work on projects you actually care about. I can’t stress this enough. If
you take a project or a role for the money, make sure 1) you’re honest with
yourself about your reasoning, don’t lie to yourself to sugarcoat it 2) you
have a plan for leaving (e.g. taking a role with a high signing bonus so you
can pay the down payment on a house or buy land, and leaving after the 12
month probation period so you don’t have to pay it back), 3) consistently
checking in with yourself about how things are going. Which leads me to...

\- go to therapy regularly, even if you don’t think you need to. and journal
regularly. like...on paper, in the morning, with a cup of tea, about your
feelings. don’t let things fester, don’t live with regrets or sacrifices.

\- have creative hobbies. don’t let your guitar gather dust, don’t let your
paint dry up

\- enjoy having a lucrative job, but don’t let it turn you into a yuppie. I’m
a terrible person to take financial advice from, but I could never do the
“high paying job, save 95%” thing - it’s soulless and you want to have fun
whilst you’re young or you’ll just be old, financially independent, and bitter
about all the things you missed out on. Have fun, eat at fancy restaurants,
travel as much as you can. But don’t waste your wealth on expensive yuppie
materialist goods either - especially if you end up in London, NYC or SF it
seems hard to not blow your money on all of the trendy expensive things that
everyone else in tech buys. Spend money on experiences.

\- live in community as much as you can. live with lots and lots of roommates
because you’re excited about living a life together, and then invest your time
in them. Cook with them, hang out with them, do wacky art projects with them,
put on events, raise kids with them, build something greater than yourself.
Isolation is a disease. The Bay Area has an excellent co-op community - imo no
one in the Bay should be paying $3500 to live by themselves in a nice-but-
boring studio apartment. It’s SO nice to come home to a house full of people
who care about how your day was.

\- party more - your 20s will go extremely quickly and I promise you won’t
look back wishing you spent more time in an office. seriously. go to that
party.

A motto I picked up from a dear coworker at the one Big Corporate Job I had:
“tell good stories”. Live a life where you amass interesting anecdotes to tell
at dinner parties, or to your grandkids, or to your roommates when you’re
stuck in isolation because of a pandemic. “And then I spent 5 years in an
office” isn’t an interesting story.

------
text_exch
[https://getatechinternship.com/2020/04/27/how-to-succeed-
at-...](https://getatechinternship.com/2020/04/27/how-to-succeed-at-a-
technical-internship/)

Tl;dr -

1\. Don’t go straight to Stack Overflow

2\. Learn the standard libraries

3\. Put away your phone

4\. Figure out how to unblock yourself

5\. Figure out when to ask for help

6\. Keep track of what’s going on in the industry

7\. Stop being insecure

------
andywkff
don’t focus on work after work. work to live, not live to work

