Hi! I hope all is well. I am loving this instance and all the communities so far! As I am a new grad software engineer who is gonna start working in the next month, I was wondering if there are some tips, advice and some nuggets of wisdom you want to pass to this clueless person making this post lmao.
Make your code as simple and brainless as possible.
The vast majority of time spent working with code will be debugging or reading other people’s code, so if you write something incredibly clever, you’re just making the next person’s job (who could be you in 6 months) harder.
To add to this is it’s harder to read code than it is to write so write simple code so that when you come back to it you can understand.
Remember that, “other people’s code” includes the stuff you wrote 6 months ago.
Look at mister ‘I remember my code for up to 6 months’ here.
Har!
On a serious note, it’s not about remembering the code as much as it is about how much you learn and change over time. If you’re progressing as a programmer, then you’re going to be constantly humbled every time you look at your old code.
I don’t know how many times I’ve opened up a program and thought, “What idiot wrote this shit? Oh…it was me.”. And then you realize that your probably gonna think the same thing about the code you wrote yesterday in another 6 months.
So the least you can do today is to take the time to learn and follow the basics of “clean” coding. That way, your shit code will at least easy (easier, easyish maybe) to follow.
Since we’re serious now, I remember my code all too well, even stuff I’ve written 15 years ago. Specially my thinking process behind the structure of the project.
Throughout the years I learned to always solve everything in the most simple and direct way possible. That way no one should guess what was the intention behind it. And if the code isn’t obvious to the beginner, it gets comments with explanation on why is it necessary.
I had a colleague who knew too much about Perl, and enjoyed the most ridiculous and convoluted shorthands possible. And he was a team lead. It was not fun explaining every time that almost no one else is going to be able to read that, and he pushed it regardless.
Yes. Listen to this episode of SE Radio where they talk about salary negotiation. Salary is a weirdly taboo subject and doesn’t get talked about enough. Your salary is the single largest financial decision you will make in your life. Bigger than houses and retirement because you cannot do those without being paid.
On a more light note, you will experience a lot of impostor syndrome when you begin working. If your college career was anything like mine you learned how to program but not how to use popular build tools and frameworks. There will be a learning curve. Your fellow workers understand this. Try to make friends at work. Just a little small talk here and there. Especially if it is remote work because it is so much more difficult to bond. This will help you feel like you’re not being annoying when asking for help. It is better to ask for help than sit there stuck. Not everything can be figured out on Google lol, like internal tools and processes.
Edit: ALSO keep a log of everything you do to set up your development environment. A lot of places have outdated docs for that or nothing at all. Documenting it as you go will help others onboard after you and also makes a good first impression of taking initiative.