Ask HN: What advice would you give to an early career software engineer?

3 points by ngngngng ↗ HN

5 comments

[ 0.22 ms ] story [ 18.7 ms ] thread
Learn to deliver value not code. Code is expensive to maintain and deliver. You should create as little as possible to get to your end goal.

Keep all your code as human readable as possible. If there are business rules related to your code make sure the comments explain the business rules.

Learn SQL, it's an amazingly powerful tool. Becoming very good at creating complex queries is very valuable.

Keep it simple, complex solution are only good when a simple one wouldn't fit.

Learn to Read The Fucking Code (RTFC). While it sounds obvious many developers often never really learn to read code outside their favorite approach, api, and framework.
Leave now before you lose your sanity. Humour aside, there are a variety of things that you can do. The other comments given in response are a useful guide for you.

If you still want to be in the field then learn and keep learning about as many different areas as you can. When you get involved in a project, try to get a good handle on the problem domain subject matter, especially from those who are the problem domain subject matter experts.

Expand your study into areas unrelated to software engineering - it is irrelevant whether these be technical or non-technical areas. What this will allow you to build in yourself is an appreciation of a broad range of areas that make you a more competent human. Look at everything from gardening to astrophysics, medical research to woodworking, religion to science philosophy, raising animals to raising finance. There are so many different subjects that can help you.

When you broaden your appreciation of many subjects, you will enhance your ability to understand people and their problems and what they actually need for them to move forward.

Expand your appreciation of the very many different "technologies" that have been developed in the past for electronic computer systems. Study diverse areas in computer engineering, everything from languages, compilers, operating systems, networking, database technologies, computer graphics, hardware, etc., etc., etc. You don't have to be an expert in any or all of these areas. However, having a basic knowledge and appreciation will allow you to look at different ways to provide solutions to the vast array of problems that will come your way as you develop as a software engineer.

Keep in mind that software engineering is more an art than a science.

Finally, be prepared to change to a completely different career when the time comes and if you keep an open mind, you will know when that time comes.

This is a well-paying job, so it's tempting to adapt your spending to the amount you're making. However, if you do so, you will have to do this job forever (well, until you retire). It's smarter to be very wary about lifestyle inflation and just save a lot of money. The freedom of having decades' worth of living expenses in your savings account is amazing.