Live data from Hacker News

Ask HN: What is your best advice for a junior software developer?

news.ycombinator.com

311–320 of 460 posts

Re: Ask HN: What is your best advice for a junior software developer?

#311
Start learning how to figure out what your customers want. At the end of the day, it doesn't matter how pretty or scalable your code is if it doesn't solve real problems. I'm not saying that you shouldn't learn how to be a great developer, but a lot of great developers end up working for a series of companies that build cool technology but don't do well.

Ask whether you can sit in on calls with customers, either prospective or current. You will find out what they want, and whether your product is solving their problems.

Re: Ask HN: What is your best advice for a junior software developer?

#312

I admit this is more of a laundry list than a single advice — as you are looking for the most important advice — I’ll nevertheless list them down. Roughly ordered by importance :-) * You are expected to manage your career and growth. Don’t rely on or expect your manager or someone else to do that for you. You’ll get lots of good advises around how to grow in your career. It essentially boils down to taking initiative…

If this was ordered by importance, I would move this to the top

> * Make full use of vacation policy. No one’s going to tell you to take a vacation you gotta take care of your physical/mental health yourself.

Re: Ask HN: What is your best advice for a junior software developer?

#314
post #146

Earlier quoted context omitted.

> Read at least HackerNews and possibly some other tech news site regularly. And then make sure to not get too caught up in the hype for new stuff. Interesting because I advise the exact opposite: do not waste time reading HN, just find one thing that is interesting and master it. Then repeat. As much as I like HN there is a lot of noise here. Novice mind can easily fall into a trap looking for signal here.

I've gotten a lot of value from reading HN. I've also wasted a lot of time. It helps to develop a personal filter. Mine is * Avoid headlines that make me angry, unless the news is really important. The discussion is never worthwhile, don't even bother. * WSJ, Bloomberg, and WaPo won't let me read articles with w3m, so I skip the article. If the topic is tremendously interesting, I'll check the comments. * TED and nau…

"object orientation is a failed paradigm"

uh... wtf?

Re: Ask HN: What is your best advice for a junior software developer?

#315
post #215

Earlier quoted context omitted.

It isn't just a huge hint, most of the time it tells you exactly what the damn issue is. This discussion is blowing my mind. I am honestly speechless. IT GIVES YOU THE LINE NUMBER AND THE FUNCTION CALL AND THE REASON! Why would you ever even attempt to debug without parsing it?

That’s only true if the developer of the class module let the entire stack trace get through to the consumer. In C# it’s the difference between... try { .... }catch(Exception e) { //Do stuff throw new MyCustomException(“Something Bad happened”); } And try { .... }catch(Exception e) { //do stuff throw; }

In what case would you ever want the second example?

Re: Ask HN: What is your best advice for a junior software developer?

#317
post #146

Earlier quoted context omitted.

> Read at least HackerNews and possibly some other tech news site regularly. And then make sure to not get too caught up in the hype for new stuff. Interesting because I advise the exact opposite: do not waste time reading HN, just find one thing that is interesting and master it. Then repeat. As much as I like HN there is a lot of noise here. Novice mind can easily fall into a trap looking for signal here.

I've gotten a lot of value from reading HN. I've also wasted a lot of time. It helps to develop a personal filter. Mine is * Avoid headlines that make me angry, unless the news is really important. The discussion is never worthwhile, don't even bother. * WSJ, Bloomberg, and WaPo won't let me read articles with w3m, so I skip the article. If the topic is tremendously interesting, I'll check the comments. * TED and nau…

> Avoid headlines that make me angry, unless the news is really important. The discussion is never worthwhile, don't even bother.

> Know your prejudices and look for information that challenges them.

How do you prevent the two of these from coming into conflict?

Re: Ask HN: What is your best advice for a junior software developer?

#319

Earlier quoted context omitted.

I think that's naive. The parent comment phrases it a bit more cynically than I would have, but it's in everyone's best interests to casually document plans and intentions. People forget, people misremember, people promise things without fully thinking through the implications in the moment. A friendly email restating the key points of a discussion is conscientious, professional, and keeps everyone on the same page.…

My response to that would be that if someone remembers differently, they should treat their coworkers with respect and give them the benefit of the doubt if there is no reason why anyone should be skeptical. That is not a good work dynamic if your coworkers are not doing that, and is cause enough for me to start job searching. If there is reason to believe that there are disagreements in actions to be taken, then mes…

You are still focusing too much on the cynical/mistrustful motivation. Positive, professional intentions indicate the same action.

If you think documenting plans and discussions is "self-defeating", I really don't know what to tell you.

Re: Ask HN: What is your best advice for a junior software developer?

#320
Be humble. You're not the smartest dev in the room. I was guilty of this in my early career.

Related to this is realizing that most software degrades over time, being touched by many people under varying deadlines. Assume best intentions of your teammates until you _know_ there's a endemic problem.

Read code. Don't despair if you check out some cool OSS project and a lot of it is going over your head: pick another project or start consuming the code in small chunks.

Don't engage in bikeshedding.

Don't be an asshole.

Always be able to explain _why_ you: picked that solution, developed it that way, favor X over Y, etc. Explain your thinking.

The "right choice" is typically right at the time the decision was made; time will usually erode that "right choice" until it looks wrong.

If possible, document the reasons why critical/large decisions were made in the project/codebase (e.g. "we had to do this like X since system Y wasn't compatible with system Z at the time of writing").

Think of the next developer to touch your code. Think of you touching your code 8 months from the time of writing. Both will help you documenting the "whys" of your strategies if it may not be abundantly clear.

Follow coding conventions of everyone else at your company; don't try to buck the standards.

Don't be cynical. Don't be a source of constant negativity. Those people suck to work with.

Find programming forums/message boards and consume at least a few times a week.

Don't obsess over picking the "absolute right solution", pick the one that sucks the least given the information on-hand at the time. If it's a big choice, document why you made that choice.

Do not burn out. If your company commonly features "death march" projects, seriously consider leaving. I suffered a nervous breakdown around 5 years into my career by working 60-80 hour weeks for months on end while dealing with veiled threats about all our jobs. This was during an economic downturn and an especially hard time to find dev jobs, but I still think it would have been better in the long run to leave. I believe our company, knowing the tough local market for devs, intentionally grossly overpromised on a deadline to a huge customer because they knew many of us wouldn't have many options. I probably made less than minimum wage that year, never did the math.

Related: in many cases, the company is not loyal to you at all. Do not devalue yourself for loyalty to your company.

Always, always give credit where it's due. Never take credit for another's work or ideas.

One of the best things you can do for teammates is relieving them of stress and sharing the burdens; leave no one on your team behind (metaphorically). This obviously depends on how close-knit your team is, but there were many times I stayed late to help a close teammate with a production problem that technically I wasn't directly involved with. When they did the same for me, I was very thankful to have that other set of eyes, the person to discuss the problems out loud. I know together we solved those problems quicker, to boot.

Post reply on HN