this post was submitted on 06 Feb 2024
37 points (97.4% liked)

CSCareerQuestions

946 readers
15 users here now

A community to ask questions about the tech industry!

Rules/Guidelines

Related Communities

Credits

Icon base by Skoll under CC BY 3.0 with modifications to add a gradient

founded 1 year ago
MODERATORS
all 25 comments
sorted by: hot top controversial new old
[–] [email protected] 21 points 9 months ago

Finish projects: this will teach you how to set reasonable goals and expectations and how to break down large problems into smaller steps.

Whenever you are facing something you don't know how to do yet, recall a previous time you were faced with something you didn't know how to do and that you learned how to accomplish it and moved forward: this helps me a lot with blockers and imposter syndrome--it shifts my mentality from being lost and not knowing how to keep going to one of "I'm capable of learning, that's gotten me this far, and will continue to advance me."

[–] [email protected] 19 points 9 months ago* (last edited 9 months ago)

Network. Lots of great opportunities can come from other devs, who you've developed a mutual respect with.

Don't neglect your personal projects.

Learning architecture, and how to document it, is absolutely invaluable and can get you the big bucks.

Don't overengineer in an attempt to predict the future, and instead build deliberately and flexibly.

[–] [email protected] 14 points 9 months ago

Learn to work in a team. Most careers will have you working on a team and it’s important for you and the people around you to work effectively together.

First and foremost don’t be an asshole. I hate that this has to be said. This doesn’t mean you have to be friends with everyone but honestly liking the people you work with all the time does make the job more pleasant.

[–] tatterdemalion 11 points 9 months ago

This might sound cheesy but I recommend reading the book Radical Collaboration. Software breeds a lot of disagreement, so it's important to be able to approach arguments with co-workers with a level head and learn to reach alignment before making decisions.

[–] [email protected] 9 points 9 months ago

Most of your job won't be focused on actually writing software, most of it is understanding requirements and building a solution to fit their problem.

Oh, join or form a union if you get a chance.

[–] [email protected] 6 points 9 months ago
  • Learn how to write and propose ideas.

  • Develop empathy with users and put yourself in their shoes.

  • Think ahead about how what you're working on is going to be used. If it requires a lot of steps, take out as many as possible before writing a single line of code.

  • Automate the crap out of everything you do, so it's a one-line command to build, test, and install it. Your future self will thank you.

[–] [email protected] 6 points 9 months ago

If you are working in a decent workplace, you will receive lots of feedback on your code and what you do. Don't take it personal and learn from them. Sometimes there are multiple correct answers and yours can be one of them, but each workplace, project and senior colleague has their own concerns and priorities. Sometimes feedback seems to be on a trivial mundane detail, and sometimes it really will be. If you think it is valuable feedback, learn. If you disagree, discuss. Enjoy!

[–] [email protected] 5 points 9 months ago (2 children)

Don’t be afraid of failure.

[–] [email protected] 2 points 8 months ago

Sometimes code doesn’t do what you want or the end product isn’t what is needed. Iterate till you get it right.

[–] ericjmorey 1 points 8 months ago (1 children)

Could you elaborate on that advice?

[–] [email protected] 1 points 8 months ago

Oops replied to wrong comment.

[–] [email protected] 5 points 9 months ago

Learn to learn new languages quickly. You don't need to be an expert in every language you need to recognize the pros and cons of different languages the same way you would with any tool.

Don't get hung up on one language. It shouldn't matter what language a job is in if you build the ability to learn a new language fairly quickly.

[–] [email protected] 4 points 9 months ago

Organize your knowledge. Identify where you have gaps, and address those. Establish a study plan, make it realistic, and follow it. Know which form of learning works the best for you (e.g. books vs videos)

[–] graphicsguy 4 points 8 months ago

I like to not think of anything as "absolute" or "dealbreaker" (within reason. If there's a culture of harassment I'm gone, for example). But spend intentional time throughout your career reflecting on what matters to you in terms of team culture, code culture, career growth opportunities, compensation, etc. There are a lot of factors to being happy in your work, and a lot of ways to get there. Be intentional about it, and try to always move toward it. It matters a lot more than whatever software you're writing.

[–] [email protected] 3 points 9 months ago (1 children)
[–] ericjmorey 3 points 8 months ago (1 children)

Would you agree that you should typically make an earnest attempt on your own before asking for help?

[–] [email protected] 2 points 8 months ago

What I agree with: show some interest in the people around you and what they do. Ask them for feedback when you feel you could use some. Every person can provide feedback, even through rubber ducking.

Find the courage to ask questions in meetings.

[–] [email protected] 3 points 8 months ago

“Perfect” is the enemy of done. Sometimes you’ll get to 90% of a project and discover 20 ways you can refactor it. Sometimes you just need to ship code and not spend weeks tweaking it

[–] [email protected] 2 points 9 months ago

don't do it, become a circus clown instead...

[–] alexdeathway 2 points 8 months ago

!remind me 2 hours

[–] alexdeathway 2 points 8 months ago (1 children)
[–] alexdeathway 1 points 8 months ago (1 children)
[–] RemindMe 1 points 8 months ago

Gotcha! I'll remind you at Friday, February 9, 2024 at 12:41:57 PM UTC.

[–] [email protected] 2 points 8 months ago

Understand programmatic approaches to testing, unit testing, test driven development (TDD), behavioral driven development (BDD), and integration tests.

Understanding TDD and practicing it as a new developer forces you to understand the end result wholly. It's one thing to understand how to solve a problem, but understanding how to validate that the problem is solved programmatically, before you have implemented the solution makes you a better developer. It gives you a better view of what you are doing and will change you way of thinking about solving problems.