So far my bff computer buddy said, pure functions, no variable mutations and no math in variable declarations. Those seemed like solid gold.
I want more please.
On second thought why would I not just ask chatGPT?
In that same vein, don't believe any crap that the bosses say about your company being "family". It's pure manipulation. The company has no loyalty to you.
Don't put in overtime to meet arbitrary deadlines. If the production system is broken, sure, fix it. But if someone wants you to lose your weekend so that the project can meet any arbitrary deadline, forget it.
"We'll do X later" means "We'll do X never". There's always talk of having more time after the immediate priority is taken care of, but there never is any slack time after delivering a project.
Never talk to your manager about spending time dedicated to refactor code. They'll always say no or say you can do it later. As mentioned before, later means never. Refactor as you go and don't talk about it with management.
This may all sound rather cynical, but this is what I've learned over my nearly 20 years in the industry. That said, I have always had good relationships with my managers... I have just learned what works and what doesn't.
By which I mean every circumstance is different. Every coworker, every manager, is different. Pay attention and figure out what actions get stuff done. Which people get stuff done.
For example in a small company if you need a new laptop, you just ask someone. In a corporate space you need to be in a budget, so planning far ahead is important.
Some managers like lots of feedback. Others don't. Some companies are cheap, others are generous. It's a game - learn the rules. It's no good being a football player in a baseball team.
But my one liner is: "Don't be afraid to ask questions."
https://letterstoanewdeveloper.com/
(Wrote a book too, but the blog is free.)
PS Congrats! Getting the first job is the toughest.
If you're asked to estimate a task in real terms (days/hours/minutes) and not rough estimates, over estimate ALWAYS. It suggests that the technical understanding isn't there for the project planning so when things go wrong and you say you need more time you'll find real friction. Similarly if you are estimating in rough times or even better Fibonacci scales then you are likely to be in an environment that will accept delay because of unexpected findings... CHECK THIS THOUGH, if you don't want to ask, ask or listen out for what happens when something goes wrong and timescales slip, cos they will.
Make friends with people that you enjoy spending time with, but if you are working on something complicated, try and find a coding buddy who doesn't think like you (as long as there isn't actual tension). Threshing out ideas with someone 90 degrees to your perspective can lift weird and wonderful rocks.
Never trust your instinct, but listen to it ALL the time. Remember correlation is not causation but something is making you think you should look. The more you look the more you'll feel an understanding for something so follow your instinct, but learn on your own terms.
Many things never get renamed when they should do, so just because something seems sensibly named and it's behaviours are beautifully documented, don't entirely believe it until you've passingly proved it.
Any business that isn't honest about wanting to earn money off your work is lying to you and sometimes worse, themselves. Those that are honest about this are (in my experience) easier to work for, as your expectations on what you need to deliver are so much more obvious (money for the business) rather than some fluffy nonsensical indefinite esoteric concept.
The less state (mutable variables) you have in a solution, the less you will have to hold in your head when trying to debug it.
Don't make jokes about peoples' names; the risk outweighs the reward.
If you have a "dumb" question ask it. Odds are you're not the only one wondering and that will actually make you look smart.
That's a risk. Risk costs money. Aggressively save for the first while until you have 6 months of income as liquid investments.