Programming: the difference between writing code and being a good programmer

Transform business strategies with advanced india database management solutions.
Post Reply
shukla7789
Posts: 1270
Joined: Tue Dec 24, 2024 4:26 am

Programming: the difference between writing code and being a good programmer

Post by shukla7789 »

As in chess, in programming it is not enough to just know how the bishop moves on the board, but also to master the openings, positions and tactics.
While there are a multitude of ways to learn the basics of programming, it can sometimes be much more difficult to develop the necessary skills that support it. There is no online course that can teach you how to collaborate better in a team, and there is no magic formula for improving your cognitive or problem-solving skills.

So how can we as programmers transition from capable to good? And from good to great?

There are some innate qualities that can give certain programmers an edge over their peers, while others may struggle to grasp the basics. But the barrier for most programmers striving for excellence isn’t genetics or luck. It’s dedication—it’s passion .

It is also important to have a deliberate approach . No one jamaica whatsapp number database a master in their field by accident. It takes focus, effort and a clear vision of the level you want to achieve, and of course a plan is needed to achieve that level of excellence.

Like any other framework , whether for software development or for developing our ability to assess and solve problems, a way to measure and evaluate development and performance during the process is necessary.

While some programmers may be predisposed to have characteristics that facilitate the process, this does not mean that the “engineering” mindset is entirely predetermined. It can be developed consciously over time.

Planning: Measuring performance
First of all, what makes someone a good programmer?

There is no single, ideal way to measure performance (there are several ways of how not to do it, but they don't help in this context) and there is no scale by which we can guide ourselves and compare performance between two programmers or teams. In other words: the best way to evaluate a programmer's performance is to measure their growth over time .

If we wanted to become better runners, what would we do? The first step would be to set a goal and then develop a plan. But how do we know if we are making progress? By measuring! Races are now timed, distances are measured and speeds are compared.

The same applies to progress as a programmer. Whether it’s the number of User Story points completed in an iteration or the quality of code written – these should be measured continuously over a defined period. If the score was 10, the next goal should be 11.

As with a race, the process is the same:

Define a way to measure performance;
Evaluate performance;
Set a goal;
Continue to measure and compare performance over time;
Identify and test new strategies to improve performance;
After reaching the goal, repeat the question "Am I becoming objectively better, faster or more efficient?

Spike: Mastering the basics
Understanding the basic fundamentals of any given area is the essential step towards mastering it. For example, in chess, for a player to become a Grandmaster, it is not enough to know just how the bishop moves on the board, but also to master the openings, positions and tactics.

In programming, there are two fundamental categories for your domain:

Fundamentals of engineering;
Fundamentals of the language/framework.
The first set is universal to almost all types of programming, as it involves understanding the underlying structures, processes, and frameworks for effective programming.

In the second set, we focus on specialized fundamentals - specific to certain languages ​​or frameworks used in a given context. Programmers may not be experts in all languages ​​or frameworks, but having a solid foundation makes it easier to adapt to new technologies.

User Story 1: Exercises to improve
The basic fundamentals are just that: fundamental, but mastering the basic components of programming makes us a good programmer.

Programming is fundamentally a problem-solving exercise . It’s about taking data, understanding the context, and formulating the best possible solution. Probably the most important part of developing any problem-solving skill is repetition and pattern recognition. And that takes practice.

The more use cases we know, the more context we have to solve each subsequent problem. If we know different problems and their solutions, we have a broader range of solutions for future problems.

So how can we, as programmers, apply this mechanic to improve our individual skills ?

Task 1.1: Practice diffuse thinking and focused thinking
The idea that it is possible to train our brain to be a better engineer or programmer may seem strange, but there are scientifically proven ways to do so.

Practicing the types of thinking that are important for problem-solving is one such tool. And perhaps more importantly, it involves practicing the ability to switch between these types of thinking to discover better, more easily solutions.

In general, we have two types of thinking that are deployed when solving problems or learning new things:

Focused thinking : we concentrate on a particular problem or issue and actively try to come up with a solution;
Diffuse thinking : We let the idea incubate in a kind of passive thinking mode - we are not actively focused on the issue, but it remains in the back of our mind and we continue to look for solutions or patterns.
When it comes to improving your skills as a programmer, these two types of thinking are essential. Some problems can be solved by sheer willpower and concentration, others may just require more time and contemplation.

Task 1.2: Read code written by other people, in other contexts
We learn and grow, in large part, by consuming other people's work.

While it can sometimes feel a bit abstract to consider our own work outside of the context in which it was created, looking at someone else's work gives us the opportunity to take that abstraction away from the code and try to deconstruct and understand logical thinking in a new and different way.

It is therefore important to set aside time to review and analyse the work of others together with different team members. Understanding how someone else analyses and solves a problem can inspire new ideas and will certainly improve our own capabilities.

User Story 2: Knowledge solidification
Learning is great. But retaining and applying knowledge is what really matters.

It can often be difficult to remember what we have learned and apply it in the moment of action. However, there are some tricks that can help solidify the knowledge we have acquired and identify opportunities to apply that knowledge in the future.

Task 2.1: Interleave to learn new concepts
The idea behind interleaving is quite simple. Studies have found that people are better able to learn and retain new concepts if they mix up what they are learning—by alternating between a few different concepts or practices. For example, training courses that provide the best feedback tend to be those that alternate between three teaching methods : theory, demonstration, and practice.

Task 2.2: Teach others
For many, the best way to learn is to teach. If an individual understands a complex problem well enough to explain it to someone else, they are much more likely to be able to apply that knowledge in a practical way.

Teaching is, of course, an exercise that encourages and requires knowledge to be actively recalled, explained and applied. Therefore, teaching what one learns can be a fundamental strategy for retaining new knowledge and improving the ability to recall and apply that knowledge to one's work.
Post Reply