Marcell Ciszek Druzynski

Developing as a programmer

A collection of thoughts on how to develop as a programmer

October 20, 2023

Advancing as a programmer can be a challenging journey, and contemplating the next steps in your career can be stressful. In this post, I'll discuss a few tips that can ease your path and illustrate how small changes can significantly impact your career as a software developer.

No matter where you are in your life or career right now, you might be eager to progress further in your professional journey. Whether it's finding a new job, advancing within your current company, acquiring new skills, or transitioning from a backend developer to a more full-stack role, there are steps you can take to become a better programmer.

Improving as a developer isn't just about technical skills; soft skills are equally important. In this blog post, I'll discuss some key points that I believe will set you on the right path, drawing from my own experiences. This post will primarily focus on the soft skills, the mindset, and the mental models you need to take that next step in your career.

Listen Actively

Listening is the key to problem-solving.

Listening is harder than talking, but it's essential. When someone has something to say, take the time to listen without interrupting. If you have questions, write them down and discuss them later. Reflect on what you've heard and try to understand the core message.

If you're a junior developer, make an effort to absorb as much knowledge as possible from your more experienced peers.

Collaborate Effectively

In the world of software development, we're not isolated individuals working in silos. Solving complex problems requires teamwork. Working entirely remotely and independently doesn't typically involve complex problem-solving. You and your team should act as a unit, supporting each other's individual and collective growth.

Avoid blaming team members for mistakes; instead, collaborate to resolve issues. If you discover a bug introduced by someone else, don't point fingers. Take responsibility and fix the problem if you can. Remember, you'd appreciate the same support from others.

The more you work for the betterment of your team, the stronger your team and company become. Be a team player.

You Can't Be an Expert in Everything

As a software engineer, there's an overwhelming amount to learn, and it's impossible to master everything. Once you accept this reality, your work will become more manageable. Identify what you're most passionate about in programming and focus on it. Keep in mind that you can always change your direction when your interests shift.

Perfection Isn't Attainable

Your code will never be perfect, and striving for perfection will prevent you from shipping your work. While it's essential to care about code quality, don't be afraid to submit a pull request (PR). Your team will review your code and identify edge cases and potential issues. In some cases, it might be better to let something fail, analyze the problem, and learn from it. There's no such thing as perfect code. If we are waiting for perfection, we will never ship anything.

Be a Mentor

Mentoring is a great way to improve your skills and help others. If you're a senior developer, consider mentoring a junior developer. If you're a junior developer, consider mentoring someone who's just starting out, like an intern. Mentoring is a great way to learn new skills and gain experience. One of the best techniques for learning is teaching. When you teach someone else, you're forced to think about the problem from a different perspective.


  • Actively listen to others.
  • Accept that you can't master everything, and that's okay.
  • Embrace collaboration; software engineering is all about teamwork.
  • Recognize that you won't catch every corner case.
  • Be a mentor; it's a great way to learn.