How to Be a Good Developer: 20 Practical Tips From Our Senior Programmers
Tags: webdev, programming, productivity, beginners
Published: 2023-02-03 09:28:21

Although many aspire to become good developers, in practice, it turns out that not everyone can make it. As in other professions, in programming, success has to be fought for, and it is constantly essential to remember that it is the product of hard work, talent, and a specific set of qualities and skills. So what can you do to become a good developer? Here’s a list of ready-made hints and tips from professionals experienced in the developer profession.

---

## What makes a good developer?

Programming is a kind of communication with a computer, which can happen through various languages and methods.

Computer science is changing at a breakneck pace. New trends and guidelines are emerging, determined not only by the development of new technologies but also by the needs of end users. Therefore, to become a good developer, you first need to have an aptitude for it and a strong desire for self-development.

The industry has undergone a significant change over the past few years.

Today, a developer is no longer associated by practically anyone with an introverted worker in a flannel shirt, sitting incessantly at a computer. Nowadays, the developer’s profession is perceived as specialized, requiring expertise, lifelong learning, and chances for high earnings.

Developers, therefore, emphasize their development, teamwork and skillful reading of business needs. Only in this way are they able to write helpful code and create a product that meets the expectations of the customer and target users.

Now let’s take a closer look at the tips we prepared along with very experienced developers from [Stratoflow](https://stratoflow.com/). These will help answer the question of what makes a great developer.

---


![How to be a good developer](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/38v0r9g3ekmy3jf50q71.png)

### 1. Write code regularly

Let’s not be afraid to clarify that practising coding is more important than education.

Of course, the aspect of self-development can’t be overlooked, but without using the skills gained in practice, it’s hard to verify the abilities possessed. To become a great developer, it is not enough to be interested in computers, technically advanced, or have a scientific mind. Even in high school, it is essential not to neglect science subjects such as mathematics or physics, which expand and train the mind. In college, on the other hand, acquiring theory alone is not enough either.

The best way to learn computer science is by trial and error, verifying piece by piece the written code for compliance with the assumptions.

If you manage to write code that solves a specific problem, you are one step closer to becoming a good developer! However, the more practice you get, the better guiding what specialization in programming you want to choose.

This way, you can expand your specific skills in a programming career by attending courses and boot camps, industry events, following [best practices](https://stratoflow.com/java-best-practices/) and reading books.

---

### 2. Try to get something out of every project, even the most boring ones!

In a [conversation we had](https://stratoflow.com/michal-boronski-senior-java-developer/) with our Senior Java Developer as part of our [StratoStory series](https://stratoflow.com/category/from-the-inside/stratostory/), Michael compared programming to construction.

> “With programming, it’s a bit like a building – you seemingly use the same tools and skills for each project, but you build different objects. Once, you work on building a summer house, once a railroad bridge, and another time a shopping mall or a skyscraper. Each one of them is entirely different and unique”.

In programming, it is the same. Each project can be other in the field of business, the specific choice of technology and the requirements of the target customer.

Michał adds:

> “All this makes it possible to feel a breath of fresh air and arouse curiosity even after fifteen years of work. So, yes, there are times when someone as a developer in a corporation can work on one product for as long as ten years and, by all means, have the right to get bored with it. But it depends on the person – many don’t mind the routine”.

However, it’s worth changing projects or employers to get a fresh perspective on writing code. In this way, you can gain absolute satisfaction from programming, from gaining new obscurity and from being able to solve problems.

---

### 3. Don’t get too attached to one technology, let alone a programming language

It is effortless to come across various discussions and arguments on the Internet about the superiority of programming language A over B and vice versa. However, in practice, any project can be spoiled with the best programming language or technology.

> “More important is how we use it in a given project so that the daily work is not frustrating and the final written code is functional” – recommends Michał.

---

### 4. Be open to innovation and dialogue even with senior software developers

Are you proposing an innovation or improvement in the project, and do you hear the critical voices of the old-timers?

Michał Głomba, CEO at [Stratoflow](https://stratoflow.com/custom-software-development/) suggests:

> “Don’t get caught up in the “experienced old vs innovative young” conflict”.

Yes, senior developers have already used many keyboards on other projects, got burned many times, and may show fierce resistance. Often they do so justifiably, so listening to their arguments at the beginning of your career path.

However, sooner or later, there will be a field where they will (or should) give way to the arguments of younger developers because no one can keep up with all the news and always be up-to-date.

---

### 5. Learn from your colleagues and mentors

> “In the case of complex projects, the ability to work in a team and share knowledge is key”
 – underlines CTO of Stratoflow Arkadiusz in an [interview about working environment](https://stratoflow.com/working-environment-in-stratoflow/) in our company.

In fact, few projects are small enough and require a limited number of skills to be implemented by a single person. Therefore, learning to work in a team is also one way that can help break through the stereotypical perception of the loner developer in the IT world.

Teamwork is the foundation of a developer’s success, whether virtual or in the office. Moreover, good developers have strong communication skills, which are crucial in project discussions with other developers. It also comes in handy when communicating with clients and developing functional solutions for them.

Group work is also an excellent opportunity to brainstorm and exchange experiences. During group conceptual work, the best programming solutions are often created.

---

### 6. Test your skills in open source projects

Open source projects are those whose source code is publicly available. As a rule, several people work on them, maintaining and developing the project.

Google, Facebook, and other technology companies noticed the benefits of using open-source solutions a long time ago and are also more willing to share their output, making the source code public and helping to develop existing solutions. As a rule, working on an open-source project does not involve earning money, at least not in material terms.

It’s more about gaining experience working in a remote team or discovering new processes and software project management systems.

It’s also a chance to learn something from others and receive constructive feedback on your work. Furthermore, it’s worth seeing different approaches to writing code and verifying other perspectives and requirements.

Tomasz, who used to contribute to open-source projects, says:

> “Of course, it’s great when you can devote your time to it at work, but even if not, you can try your hand at home once in a while, instead of the next episode of the series on Netflix”.

---

### 7. Read code and do code reviews

Code verification is valuable time.

Keep in mind that the result of the code is the individual functionalities that the testers will finally verify. However, the code itself also needs to be tested. Such verification is the best way to improve the quality and readability of the code.

Checking the code by the developer makes it possible to ensure that no aspect of good programming has been overlooked, the software will run [efficiently](https://stratoflow.com/efficient-and-environment-friendly-programming-languages/), and without [latency](https://stratoflow.com/latency-numbers-every-java-developer-should-know/), and this can happen even to the best.

Another developer on the team can also do code verification.

After all, reviewing the work of others by team members allows you to expand your knowledge, and adding people with less experience and expertise to the code review is one way to learn the details of a project and bring new people into the team.

---

### 8. Write clean code

Probably every great programmer has encountered messy code, wasting a lot of time understanding and adequately interpreting incomprehensible variable names, complicated program structure, and hidden method behavior.

Such a mess slows down work, breeds frustration, and creates some fear of making any changes.

All this also significantly increases the cost of software production.

That’s why learning how to write clean code from the beginning of your programming adventure is crucial.

Clean code demonstrates a developer’s knowledge and competence and is also the best way to succeed, meet deadlines, and create quality software.

Piotr, Java Developer, suggests one more thing:

> “I recommend writing a self-documenting code. This is because such code is easier to understand and more pleasant to read. Colleagues have a lighter job on code review. Also, in the future, if I need to get back to the task and remember nothing of it, such code is priceless, because it helps to embrace it faster”.

At Stratoflow, our software engineers always pay a big attention to clean code. In fact, even our client pointed this out by giving us feedback:

> “This large codebase is in excellent shape and has very good metrics. This codebase has excellent complexity metrics, which is a positive sign for long-term maintainability. The code scan is one of the cleanest we have seen“.

In addition, every programmer should know a few numbers critical in building high-performance systems, regardless of the chosen technology or programming language.

---

### 9. Develop your good communication skills

As a good programmer, you must remember that efficient and transparent communication results in projects being completed on time and according to specifications.

Although sometimes it seems that the technical error made is due to the developer’s ignorance, in practice, it often turns out that the cause lies in poor communication.

For this reason, learn to communicate with your team and clients. The better you know the project, the client’s requirements, and your role, the more likely you will write helpful code.

---

### 10. Learn best practices from other developers

Information technology is rapidly changing and constantly evolving.

This requires programmers to adapt to changes, which requires systematic learning and acquiring new competencies. In this profession, as in the work of a doctor, you are a lifelong learner.

It is also essential to be open to new things.

In addition to just focusing on programming, expanding knowledge of related topics is worthwhile.

For example, [Blockchain](https://stratoflow.com/why-blockchain-is-important/) technology is becoming increasingly popular among developers. This allows not only to increase the range of possibilities but also, over time, better evaluate the position and usefulness of all these innovations.

Often even from a secondary, tedious project, there is something you can learn. You can constantly improve something and, as a result, show your good side to other developers and co-workers. Learning from each other inside the development team is also essential to continuous professional development.

---

### 11. Learn how to estimate your time

With the job as a developer comes the need for estimation skills.

As a rule, this applies to the work time on a given project and individual tasks. This is because orders are priced on this basis.

So if your boss comes and asks: “How much time do you need to write code for an application that handles reservations for hotels?” you need to be prepared. Will you be able to answer him specifically to this question right away? No. After all, you need to know the business requirements, the team’s composition or the detailed functionalities to be implemented.

By dividing the whole process into small elements, you can estimate how many hours you will spend implementing the tasks assigned.

The profitability of the entire project depends on how well you count the time. If you underestimate, there is a risk that you will miss the deadline. If you overestimate, the project may be too expensive for the client.

For this reason, it is worth developing competence in estimating the time to become a good software programmer.


![java software development](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/pvx0hgm3c1lxoouf3qtw.png)

### 12. Be a good team player

Teamwork is the work of a group of people (employees) who perform activities and tasks arising from job processes.

It requires joint efforts, cooperation, helping each other, and various functions. What’s more, people working in a team usually bear collective responsibility for the results of their work.

Although it seems that a developer can work independently, this is a very misleading view. It takes consultation with other developers, project owners, and clients to write quality code.

The ability to work in a team is therefore very beneficial – it increases efficiency and commitment and creates a better working environment and atmosphere.

---

### 13. Share your knowledge

Indeed it happens to you to look for answers to some questions about programming on the Internet, in forums, or in books.

You also ask others about issues you are interested in.

When you can’t find what you’re looking for, you get frustrated – can’t anyone share their knowledge? However, when you are the one who is asked to speak up, to share your competence, you have a dilemma – will sharing knowledge benefit you? It certainly does!

As a developer, you can, for example, maintain your blog or create articles for your [company’s blog](https://stratoflow.com/blog/), just like Stratoflow’s developers do. This way, you will present yourself as an expert in a particular field.

Sharing knowledge is also very important in the context of teamwork. Exchanging experiences helps to complete projects and create team spirit, which is invaluable in day-to-day work.

---

### 14. Try new approaches and techniques

Having a wide variety of experiences is helpful in a developer’s job and improves programming skills.

So it’s worth testing different programming techniques and languages. This way, you verify not only yourself and your aptitude but also expand your competence.

Your value as an employee also increases. The IT industry, although constantly growing, is also very competitive. If you learn a few programming languages, you have a chance to participate in many exciting projects, which will undoubtedly add to your budget.

---

### 15. Ask questions

He who asks doesn’t wander – also a software developer.

The ability to ask the right questions is the secret that leads us to important answers.

> “Authentic dialogue and listening skills are characterized by a highly developed competence to analyze, draw conclusions and communicate based on constructive questions. And this is very important in the work of a software developer”
 – Michał.

When you were young, questions would pop up in your head by themselves, and without a moment’s thought, you would utter them. Why? Because you wanted to know as much as possible and get an answer immediately. Over the years, this skill, unfortunately, tends to be neglected. However, it is worth cultivating and developing it.

Skillful questioning is the key to gaining valuable information that will help you in your daily work – writing code, testing, and introducing new functionalities into your software.

---

### 16. Try to understand the issue you encountered

Issues of business and private importance are purely a challenge and an opportunity for development. They are also opportunities to rise higher, gaining new knowledge and experience.

Remember that when you call something an opportunity, you subconsciously want to take advantage of it. So treat every problem you encounter as a challenge. This is a valuable and helpful trait in a developer’s work.

---

### 17. Learn from your mistakes to improve your programming skills

A new task and a new problem are ideal opportunities to think about possible alternative solutions.

You can do some reading and ask Google because, most likely, someone has already solved a similar problem before.

You can also discuss specific issues with more experienced developers on the team. This way, you can deeply understand the topic you are working on and finally write good code.

Although in practice, there is not always time for extended analysis and research, this approach is worth implementing in your daily work. Learn to solve problems to draw conclusions from each one and gain valuable knowledge that you will use in future projects.

Don’t give up – test different possibilities, consult with others, review other people’s code, and look for ways to cope. This is a valuable experience that will help you in your work as a developer, as well as in everyday life.

---

### 18. Be the “some new blood” in software development

Do you know why so-called “some new blood” is highly valued in projects?

Often, very well laid out and structured projects have it that they are not improved and updated. Everything is kept at the same level, but nothing more. Sometimes projects are not even run at an acceptable level, and the teams don’t mind.

Following the principle of “If it works, don’t move it”, many applications do not keep up with trends.

Versions of libraries, methodologies, architecture, and ways of solving problems stay the same from the beginning to the end of the software’s life because it’s simply more convenient.

If you’re looking for a recipe for becoming a good programmer, then – whether you’re a new team member or not – be that “some new blood” who is always looking for better and more unique solutions.

---

### 19. Learn to anticipate

You will encounter many problems in your day-to-day work as a developer – poor UI/UX, display problems on different devices, faulty connections between systems, etc. Your job as a developer is not only to solve problems but also to avoid them whenever possible.

So before you start coding, consider where the potential difficulties might arise. Eliminating bottlenecks at the beginning will make you write good working code faster, and [software performance](https://stratoflow.com/improve-java-performance/) will be great. But, of course, this requires knowledge and experience. Don’t worry – you will develop the ability to anticipate with time.

---

### 20. Never lose the joy of programming

In a developer’s work, there are always more difficult moments and times of doubt. But if you derive pleasure from turning your ideas into working programs, then try to cherish this state.

If you feel that a moment of professional crisis is approaching – take a break. If it’s temporary, do what relaxes you – read a book, play on a PlayStation, go for a run. If you need a more extended break – plan a vacation.

When your head rests, even the most challenging programming tasks become painless, and writing good code becomes as easy as a piece of cake.

---

## Be a good software developer – closing thoughts

Remember that great programmers have worked for many years to become who they are. Therefore, start writing code systematically, streamline your daily job, learn new things, and develop your competence by taking training courses and sharing your knowledge with your team. This way, you will also become a good developer and create helpful [custom software](https://stratoflow.com/java-development-company/) – especially as the [demand for Java developers](https://stratoflow.com/java-developers-in-demand/) and those specializing in other languages continue to grow