Ask HN: Tips for students before starting their first job

132 points by oltdaniel ↗ HN
Hi, I'm 19 and currently in my second CS semester. I'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.

Which advice did/would have helped you landing your first job after university? And whats your best tip for life in general?

176 comments

[ 2.7 ms ] story [ 224 ms ] thread
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.

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.
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.
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.
(comment deleted)
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.

This is good advice. Saying yes to everything is basically the most important thing. The other thing is to try to tackle headache problems for your team or manager.

You’ll know it when you see it because you will literally get uncomfortable when thinking about completing it.

High output involves completely finishing things. It will be impossible at first, but as you get more experience, in both total and your current company you will be better at it.

Except there's no recess and the grades count for more.
> 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)

I’d say at least two out of those three points are usually true.
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.

> 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.

There are many employees at FAANG for sure, but majority will never work there.
> When you are new, say yes to everything.

Anecdote: Back when I was first starting, we were experimenting with different agile styles, and were pulling cases off a backlog whenever we needed something new to do. It wasn't strictly ordered, so you could pull off the top several if there was something you wanted to do more.

The top two items were getting skipped for a long time, so I took one and stumbled around trying to figure it out. Ended up asking a few newbie questions (non-technical, about how the feature was intended to work) that our manager had no answer for, resulting in the case getting officially bumped way down. Then tried the second, and the same thing happened.

Even though I technically didn't get anything done (which did feel kinda bad at the time), I learned a decent amount about how those systems functioned, got rid of some eyesores, and brought it to everyone's attention that the cases hadn't been sufficiently fleshed out. Net positive, I think.

While saying yes to everything is an interesting way to learn new things. Keep in mind that saying no is also a skill to be learned.

As a person currently struggling with always-say-yes related burnout symptoms I cannot stress enough how important it is to manage your workload to keep yourself sane. Balance is key

This is true. I should have stressed the "while you're new" part and added "say yes but communicate when you're overloaded". After a while you'll start to see the good projects from bad ones and can stategically keep your mouth shut when someone pitches them.
> When you are new, say yes to everything.

Maybe, but not if you already know what is being asked of you is boring because you have tried it before and it did not work. Also, don't be afraid of sharing experiences that you may have had - if a particular library/algorithm is sub-optimal and you know it, speak out.

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.
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.

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.
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!

"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.

> 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.

> * Read the documentation. I cannot stress this enough. Always something to read. But also important to compare the different functions to get the best result for something.

> * Don't overdevelop things. Keep it simple. Remember - most of your employees will have a lot of experience and you won't be able to impress them with anything revolutionary. Chances are that they saw it and ate it millions of times for breakfast. But also important to not use a package for every little thing. I personally experienced many that e.g. in the NodeJS ecosystem, use huge packages to use a minimal set of functions or someone can easily copy from Stackoverflow which just makes the project more overcomplicated. Just a single package not updating can fck everything up.

> * Don't be afraid to ask, even if it seems like a silly question. Especially if you are involved in a large and complex project. Most people are aware that new developers are often a net loss for the company in the first 5 to 6 months regardless of their skills and knowledge - there is always an adjustment phase. Use that to your advantage. Above all is asking questions in the first weeks starting a new job. Else it is just stumbling around through the project.

> * Be __brutally__ strict about work processes and don't try to reinvent the wheel. Application structure, naming conventions, pull requirements, code review - stick with it unless (there is a specific situation and you are instructed to do something else). That is, if everyone on the team creates short commit messages that explain the change and link it to the appropriate Jira, Github, Gitlab ticket (or the tracking system they use), they do the same. There is no need to write a 50-line commit message that describes the change in all files. And vice versa: if you write 50 line commit messages and explain each line of code you changed, do the same. It is important to expect at least some knwoledge from the developers not to explain everything, because good naming already makes the code so easy to read, like a book. But, Magic lines need to be explained often with more than one line.

> * Pay close attention to the most experienced people and try to understand their thinking process and train yourself mentally to be able to think like this. Your thought process may not be the most efficient in general, and it could be something completely different for your next job someday, but if it turns out to work for this team / company, stick with it. Tips on not be annoying but still have a good amount of messages and discussion with them?

> * When you receive a task, check or ask if there is anything similar. If it does, go through it, check for anything you can reuse, or at least understand the mechanics, and keep it close. And always automate if something takes longer or is a recurring thing. Whats your opinions on prototypes? In terms of how functional they should be. Personally I build prototypes just to work and show the general concept, but could not be used by clients for "production".

> * You won't be able to say no, but everyone will be able to ask for more details if needed. That doesn't mean you should switch to an experienced developer every 3 minutes. Rather spend several hours understanding clearly what needs to be achieved and organize your questions in relevant clusters. This can help you answer many of them yourself. Whatever is left over, ask someone if they have 10 minutes and have a coffee with them if necessary. If your questions / concerns are valid and relevant and what is expected of you makes no sense, they can stand up for you or tell you who to talk to.

So better collect for a bulk of questions and try to solve them in the meantime.

> Tips on not be annoying but still have a good amount of messages and discussion with them?

This point refers to being observant. I.E. open up a ticket about a feature that's already been implemented, and go through the implementation, how did the developer go about implementing everything. Preferably a more recent one, as old ones might be something that was rushed through at an earlier stage of the development or simply legacy code.

> Whats your opinions on prototypes? In terms of how functional they should be. Personally I build prototypes just to work and show the general concept, but could not be used by clients for "production".

Double edged sword. Prototypes are a great thing when you are 100% sure you have plenty of time ahead of you. Otherwise they just become a "working" solution that sneaks into the codebase and goes to production with a "TODO: refactor" somewhere. Sooner, rather than later that bites back.

> So better collect for a bulk of questions and try to solve them in the meantime.

Bingo. And by grouping them together, some questions will answer some of the others. My advice - open up a text editor and write them down.

Do what you're doing right now — ask lots of questions! Especially if you get stuck!
> 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.

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.
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.

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.

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.

If testing is a thing in that company you can contribute by writing more tests in order to understand the existing codebase.

This will give you a good position to literally question the legacy code without being perceived as smartasserish.

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.

That said, if there are small cleanup opportunities in your first commit related to the commit, that's usually ok.
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.

"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.

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.
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.
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.

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.

"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.

(comment deleted)
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

I would like to give the opposite advice. Learn to tell the difference between doing unglamorous work (which you'll need to do) and being taken advantage of by your employer.

> demonstrating a strong work ethic will get you noticed and earn you a good reputation that will pay back many times in the future.

No, this is an exception rather than the rule. Depending on your employer/manager, a strong work ethic may or may not be noticed. If it's noticed, it might even impact you negatively since you'll be the guy who can be abused and overworked in the future especially if you can't speak up for yourself. The other options are that nothing changes with your work ethic or that you're rewarded in some way. In the cases that you are rewarded, it's more likely that your employer is giving you meaningless tokens, praise and/or more responsibility rather than actual perks or increased compensation.

I think an organization should be able to deliver on what it promises when hiring someone even to an intern and both parties expectations should be expressed in good faith as clearly as possible. Frankly if someone told me they were cleaning toilets unexpectedly in their software development internship my advice would be to look for ways to get out of that internship if they can because engaging with that company is clearly a waste of time.
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.

Oh ok that last part sounds "bad". Something my dad always thought me: you cannot always do something you love in work. A hobby is something where you do something you will "always" like.

But you should have a workplace you like, because that is key, from my point of view.

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?"

"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.

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.

"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.

this is golden. except may be 2. which contradicts with 1. You probably don't need promotion in the initial years unless you are looking for management career, which would be good if you end up like Sundar Pichai but bad if you just become a redundant replaceable resource especially in bad times like this.
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://www.theengineeringmanager.com/growth/first-principle...

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.

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.
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.

> 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?

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.
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.

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