7 Things I Regret Knowing Too Late for the Industry

Jonathan Chao
5 min readSep 9, 2022
Photo by Matthew Henry on Unsplash

We can all agree that academic and work can have a gap in between. Some basic knowledge applies, but the way to go about it can be drastically different. I wish I knew some of these before entering the industry. This might accelerate my career by a lot should I apply for these practices at the very beginning.

Your school does not teach you how to program. It only teaches you the science, so get some real world practices.

The major you are in at school is often “Computer Science” or “Computer Engineering”. Your school teaches you the science behind how the system works, including math and physics. You most likely won’t need it when you enter work field.

Schools, however, don’t teach you how to program. Yes, writing code is part of curriculum, but it’s rarely about creating a functional, non-trivial application that solves real world problem. Even some internship programs don’t provide you the practices and skills for real world. I wish I had some practices before applying my first job.

Some great examples are contributing to open source projects and making fixes (even super small ones) here and there. Some good side projects that actually solve real world problems (and it’s not just a to-do list) will also stand out from rest of applicants. New grad positions are tough to get these days. You want to stand out in every possible way.

HRs don’t spend a lot of time on one resume. Make it simple and concise.

One complaint I constantly get from HRs is that people tend to be very creative when it comes to resumes. It makes these resumes really hard to read and sometimes they can’t get much information out of it. Because of it, even if this person may be great, they wouldn’t know.

So instead, tailor your resume to contain keywords and numbers. “I created application X that reduces others’ work time by Y% which generates Z revenue using language W and framework V.” Of course, it doesn’t have to be in this format, but this one sentence already gives whoever reads this resume a lot of information.

Because you’re able to shove a great deal of information into a short sentence, you can fit a good amount of information in one page. Never go over one page for your resume and keep the important, recent ones on top.

Negotiate your compensation even as a new grad, but negotiate with leverage.

Negotiating is an art. You want to show your potential employer that you’re worth X dollars, and the easiest way to do it is to show them that other companies are offering you this much, if not more.

You also run into risk of companies simply saying “we cannot afford you” and drop the offer, so it’s better to always have another offer in hand.

That being said, starting your compensation higher than others early in your career will almost always result in higher compensations in later jobs, so think about this early.

It doesn’t matter if you’re an introvert or awkward, talk to your peers and coworkers.

Sure, we should be valued by our ability to perform at job, but soft skill is also very important because we live in a society. Even with more and more remote works, we still need to talk to people.

Talk to your manager. Talk to your fellow developers. Talk to your PMs. Talk to your QAs. Always communicate, verbally and written. You will make your coworkers like you more and, even better, they will make your job easier because they tend to be more willing to help if you guys are cool.

So talk, talk, and talk. (and don’t be an asshole)

Show your leadership skill by owning a project, even when you’re a junior.

I know some of us just want to keep our heads down and work, ticket after ticket, but this won’t make you go far in career.

“I don’t know this application well enough.”

“I need to learn more before taking on this task.”

“I’m not ready for this responsibility.”

These are often what I’ve heard from more junior people. Just remember, you don’t have to own the entire project, but own some components, no matter how small. Gradually start exploring more around this component and eventually own the entire project. Never say no to this opportunity. If you truly think you don’t know enough, offer to take on smaller parts of projects and give them expectation that you will eventually grow to own the entire thing.

Once you claim a project, people will rely on you for anything related to the project. When people are more dependent on you, you’re less likely to be let go because, well, you’re important!


Your manager is directly responsible for you and your growth in the company. Talk to him or her. Make sure your manager knows exactly what’s going on. Keep some track record for all you’ve done. It’ll help when it comes to performance review. Linking back to the communication part, always talk. Accomplishments, blockers, discoveries. It doesn’t matter what topic. Talk to your manager.

Learn to refactor old code and document. Make it a habit early in your career.

Last but not least, one thing new grads often misunderstood is that companies are not always using leading edge technology. Quite the opposite. Many actually use very old technology and the documentation is often lacking. You should try to unwind the twisted logic to make it more readable. And you should document along the way (not necessarily a full documentation on a separate website. Sometimes some docstrings or comments will work just as well.)

Your peers will thank you, and YOU will thank yourself down the line. There are more than once when I think “I’m glad I refactored this last time so I can reuse the function.”

Trust me, people LOVE those who offer to refactor because it makes THEIR jobs easier.

These are the things I wish I knew earlier. I can’t guarantee these tips will boost your career to a life changing level, but it WILL make your career easier and better.



Jonathan Chao

I am a software developer who has been in this industry for close to a decade. I share my experience to people who are or want to get into the industry