Live data from Hacker News

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

news.ycombinator.com

371–380 of 460 posts

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

#373
post #76

do not burnout I know you are young and you feel like you're invincible. I know you can pull an all-nighter and work the next day just fine. We have all been in that situation and believe me, it is gonna take a toll at your performance ... and it could even trigger or help you develop some health issues in your life that can sabotage you down the line. Realize there's only so much progress one can do in the day. Stop…

I've found this oft-cited advice of avoiding over work and late nights misplaced if the argument is that you get no net benefit from it, esp if you are young and have the energy. The best work I've done has largely been the product of intense personal focus, and late nights of long deep work sessions. I don't buy the notion that there is no "free lunch" and that pushing yourself always results in "performance debt" -- though it may come at the cost of other things like relationships or personal health. I think being conscious of this, as you said, is the key -- but I don't think you are just given a flat balance of performance and ultimately "pay it back" if you throw yourself into your work in your 20s.

It's certainly possible to go too far but certainly the path to mastery is paved with many hours of practice, often to the sacrifice of other things. It may not make one feel great to consider you can't become Mozart without deep sacrifices and it doesn't make for advice one feels like giving others. I think the best version of this is probably "work really hard but be aware you have limits, and that sometimes it's important to sacrifice performance and skills development in the name of a balanced life and good health." I don't like framings that could be interpreted to mean if you hustle or don't hustle you'll get the same result, since "there is only so much you can do in a day." Knowing there is a real tradeoff and "know thyself" is a better pov imho.

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

#374

Earlier quoted context omitted.

I work in QA and I wish more developers thought this way. Also run your code before hand off. Please. If I had a nickel for every time I got a user story or bug to validate and it immediately crashes then I would have a bunch of nickels. Which wouldn't be super helpful, but still. Please at least run your code, or ideally you should have CI/CD with unit tests, but we all know that isn't always the case especially in…

It's easy to make the assumption that developers haven't ran the code at all, but I find in reality that's rarely the case. In my experience it almost always has something to do with an unexpected environment variant. It's very easy as a developer to get so comfortable with the "happy path" of navigating code that you forget to look outside of the happy path when devising your test cases. It takes time to learn to id…

As a QA dev, myself, I run across this occasionally. For a recent bug, the dev couldn't reproduce it, yet I could consistently. The difference: the width the window we were using; he was using the default, I was not. Most of the bugs I run into are not config dependent, so it is always surprising when one is.

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

#375
Some foundational stuff I usually recommend: - algorithms and datastructures (princeton coursera course) - functional programming will make you a better developer - "head first design patterns" is a book that will get you to understand the heuristic of design patterns in OO fast

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

#376

Earlier quoted context omitted.

Could anyone explain this a little for me, please? Does this mean you save 93% of your income and only use 7%? From the website, there is a graph that shows how many years you supposedly have to save for retirement but it does not take into account the actual amount you make. As a "junior" dev, if you save 97% of X peanuts you still have peanuts.

The 7% is referring to the rate of return on your investments. He is making the assumption that if you invest $100 in the stock market on January 1, then on Dec 31 your account will have $107 in it. This assumption is an average over many years. There is a common rule of thumb in the investing world that you can safely remove 4% a year from your investments and they will continue to grow. (7% return minus 4% withdraw…

The 4% number comes from 7% mean return divided by 3% mean inflation. If you take out 4%, your investment won't grow, but remain constant, keeping pace with inflation. Eventually, you will hit an off year and stumble. The probability of that per year is low enough that it is reasonable to take out 4% every year of a less than 30-year retirement.

Perpetual income, or an early retirement, therefore takes less out every year, such as 3%, and has that 1% growth buffer to smooth over the down phases of the business cycle. You can also avoid spending on life insurance, and just draw up a last will document.

Divide your target income by your withdrawal rate, and that's your target nest egg. To get $50k/year, you need $1.7 million to retire early (3%), but $1.25 million is just fine if you clock out at 65 years old (4%).

If you assume a mean 4% growth in excess of inflation, and your income and expenses rise with inflation, you can hit your target making $80k and spending $50k in just 30 short years. If you want to retire in less than 40 years of working, you'll need to spend less than 73% of what you earn (or earn 37% more than what you spend). Spend only 66%, you can do it in 34. Spend only 50%, and you're working just 22 years. Cutting your expenses can only get you so far, though. You'll have to keep that level of consumption down for the rest of your life. At some point, there's nothing left to cut, and you simply have to earn more if you want to retire. Also, you are likely to earn less earlier in your career, where the compound interest counts for more.

So this is my advice: invest at least 25% of your net income--or more, if you use it to pay off debts--before you buy anything else. When you get raises, don't spend more than 75% of them on your living expenses. Pay your future-self first. By the time you become them, you'll be very thankful for the contributions of your past-self.

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

#377

Try to sleep 8 to 9 hours every day. In this JRE podcast [0], Matthew Walker, a sleep expert, claimed that sleeping poorly can decrease your performance by 30%. Strive to maintain a good work-life balance. Burnout sucks. Your health and family are more important than work. A workplace that doesn't consider this to be the case is likely to be toxic. As for actual software development advice... Beware blanket statement…

I'm currently in the process of changing careers into software development. I have a family of 5, a full-time non-tech job, and I just landed my first part-time coding job.

I definitely don't want to burnout, but I also know that I will need to work very hard for a short period of time until I can exit my current full time job and secure a full time software development position.

Do you have any advice on how to strike a balance between working very hard and knowing when you're burning out?

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

#378

Earlier quoted context omitted.

Related: Read the official documentation. I can’t count how many times junior folks have asked me things like, does FooBarFactory constructor take an array of ints or floats? Well, what does their documentation say? Sometimes the official documentation is crap and that’s a reasonable question, but usually the answers can be found in TFM.

I noticed a similar trend in JS dev: asking/looking for (video) tutorials instead of reading the official doc. Even when the doc is good and quick too read (React, Redux, Vue, etc).

Yeah, it's a bit weird why people have this expectation to reach for tutorials by random person X instead of looking for the official docs. I can't count the number of time someone asked me which tutorials to read to learn Go, but hadn't even considered reading the docs.

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

#379

Robots are coming and so is automation. Programming opportunity will only exist in custom projects but most companies want to use COTS solutions to not beholden to contractors in the long run. This change is starting to emerge and the programming opportunities for the future will start to erode.

Lol, who do you think is writing the COTS software in the first place if not programmers? All signs are pointing to opportunities for developers increasing, not decreasing.

Programming is moving towards a lego style model. That isn't actually software development any more. You don't need much programming experience to be able to attain those skills.

It's why sites such as stackoverflow.com are so popular.

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

#380
Soft skills matter!

Learn how to write good emails. Write to the point of view of the person/people receiving the message. If you can't describe a requirement without technical jargon, you probably don't understand the requirement.

Learn how to phrase questions and responses in a thoughtful manner. Knee jerk responses are usually detrimental.

Learn how to present. You're going to have to make a case for your ideas in meetings. You'll also have to defend your actions sometimes, particularly with respect to operations and support.

Communication is so critical. It helps requirements become better understood. It keeps issues from becoming escalated so that you have more time to do the enjoyable part of the job: creating something for someone.

Your job is to make someone else's life better with your development skills. Whether it's saving a step in a task they need to do or providing timely information so they can make decisions important to the organization...whatever...you're there for them.

Explore what areas of development you like the most - analysis, project management, UI, backend, etc. - and follow them. Keep in mind that it may change in the course of your career.

Try to develop a good rapport with your colleagues. You spend a large portion of your waking hours with them. It's easier when you like them and vice versa.

Find enjoyment in each job. It's a long career. Don't stay with something that isn't enjoyable to you.

Post reply on HN