DEV Community

Cover image for 22 Valuable Lessons From Decade of Software Engineering
Void⚡
Void⚡

Posted on

22 Valuable Lessons From Decade of Software Engineering

Programming life lesson

Career of a software developer is a journey of life long learning. So, I took sometime off to lookback and reflect.

In this article, I have documented my learnings in 22 lessons that will guide those who are starting or early in their tech career.

Let's go! 🚀

  1. Start applying for interviews before you think you are ready.

  2. The tech world moves quickly. Make learning a habit.

  3. Consistency and patience will help your career more than any technology.

  4. Train your mind to see failure as feedback.

  5. Building in public is the cheat code to new opportunities.

  6. Getting a job with your network >>> Sending resumes.

  7. Doing tutorials hide knowledge gaps. Building projects expose them.
    coding cat

  8. Working on a project that you are passionate about will 10x your learning.

  9. Your time estimations will be way off. Underpromise and over-deliver.

  10. Be comfortable with not knowing everything. Be confident that you will figure it out.

  11. Career growth without acquiring soft skills can be hard.

  12. Learning to ask for help is an underrated skill.

  13. Learn googling. You don’t need to build what you can search for.

  14. Don’t fear mistakes. Fear not trying.we can code this

  15. Avoid over-engineering as much. It will distract you from the main task.

  16. You don’t need more courses. You need to build projects.

  17. You can only improve what you measure.

  18. Make time to unwind and recharge.

  19. A good portfolio brings contacts, clients and potential employers.

  20. Knowing how to code is not enough. You need to create something.

  21. You learn by finishing projects, not by starting them.

  22. Working on an exciting project is a form of self-care.

That's it!

That's it

I hope you found these lessons helpful.

Give me a follow for more of these. 😊

If you personally had contrary experience, I would love to know about that. Share in comments. 💬

Latest comments (22)

Collapse
 
clearlens profile image
Omar

I recommended creating a system around your daily life that improves goal consistency. You'll get the best of yourself through exponential growth. You'll run slow in the beginning, but faster in the end.

Collapse
 
deadsechs64 profile image
hamed pourjafar

Could you elaborate a little bit more on No 5. ?

Collapse
 
ninjanordbo profile image
ninjanordbo

A lot of good advice

Collapse
 
noobscience123 profile image
Noob Science

Well, I am a project person. I find that by doing them, I learn a lot more then tutorials. Thanks void for the confirmation :)

Collapse
 
explorer14 profile image
Aman Agrawal

Mostly agree with Jon, except "estimates are a waste of time", precise estimation in complex endeavours is a waste of time because you just don't know at the start of a project. Unless you are doing the exact same thing over and over again (in which are you really in the right job?), your estimates will be off. And that's ok! It's an estimate, not a promise! And you need to challenge your PO/manager if they desire precision.

Which brings me to a couple of things that I'd like to add:

  • Dont just try to learn everything preemptively or speculatively, it wont stick until you actually work on a real problem that benefits from that tech

  • Get into the habit of writing your thoughts down: notes, blog posts whatever. Nothing surfaces the loop holes in your thinking faster.

  • "Learn to speak in business terns". I cannot stress enough how important this is to actually getting critical engineering work done or think about the work critically. Your super amazing tech idea is no good if it gets put on the backburner or your manager/PO wont sponsor it. This means learning to understand the economics of software engineering. What's the work? What's the cost (estimate)? What's the value/ROI (return on investment)? To the business, these numbers make more sense than "cyclomatic complexity" or "tight coupling" or what have you! So if you can adjust your message for the business audience in terms they can relate to, you become that much more valuable because you are helping put your and your team's technical vision on the product roadmap.

Be under no illusion, this is going to be HARD but after nearly 20 years working in this industry, I wish someone had told me to focus on these things or I had paid more attention to it back then.

  • "learn the business". Understand how your company makes money and how it makes decisions. Spend time learning the business domain you are working in, it's going to be infinitely more valuable than learning the fanciest new frontend framework or programming paradigm or cloud thing. Tech serves a purpose of solving real problems, don't make tech a goal in itself.
Collapse
 
athifbinu profile image
Athif binu

Thanks

Collapse
 
joseph2802 profile image
joseph2802

valuable points for an beginner to take care of his career..

Collapse
 
cubiclesocial profile image
cubiclesocial • Edited

Learn googling. You don’t need to build what you can search for.

Google is fine until you get back: 0 results returned and there are no suggestions.

That's when I know I've either misspelled something OR I've entered a completely esoteric area of software development that no one has ever explored. I know I am probably on my own at that point. Every 6 months or so this will happen to me. I then start measuring how many browser tabs I have open, which is a pretty good metric of topic complexity.

Oddly, Googlebot doesn't seem to search GitHub source code and also seems to miss a lot of StackExchange/StackOverflow posts. Running the same search on those search engines sometimes turns up hundreds or thousands of results when Google returns nothing. Also, starting to type up a question on SO/SE sometimes turns up results that their own search engines missed earlier. The current search engine fragmentation makes me wonder if Google employees are even able find important, authoritative information. Of course, when I get back nothing in all of the search engines, then I have some level of confidence that I've reached the current limit of human knowledge. This only happens to me once every 2-3 years. The question then becomes: Do I pursue it knowing it might be up to six months before I surface again? Running a cost-benefit/ROI analysis can be useful to avoid unnecessary pain.

Collapse
 
mandrewdarts profile image
M. Andrew Darts

These are great, number 21 and 22 hit me where it hurts! I am the worst about starting a project and not finishing.

Collapse
 
yonashenok profile image
Yonas Henok

thanks alot