I recently watched this excellent video by Fabio Akita for Alura (in Portuguese). The video is about best practices in programming. But the idea can be broadened to best practices in general, for any career. And, deep down, it is a video about communication, as I will show in this article.
Don’t know anything about programming? No problem, the text doesn’t require it, it is about careers. But if you are a programmer or interested in the field, at the end I tell you which language you should learn. Come along, I will start by talking a bit about my own career.
Best practices in my career… as a chemist! #
I trained as a chemist and I understand well what it means for best practices to evolve over time, one of the ideas presented in the video. Time goes by and people begin to realize, because of experiences that are not always pleasant, that some practices are not the best, for example, smoking around laboratories with vapors of flammable solvents!
And more than that. In the past, access to equipment for chemical analysis was more restricted and expensive, and the analyst had to think carefully about which techniques were the bare minimum needed to characterize the object of study. To keep the text easy to understand for those who are not chemists, I will spare the technical terms, but know that, at times, “manual” laboratory techniques were chosen over instruments because of cost or access. Today, most laboratories that need it have access to basic equipment, freeing up the time of technicians and chemists for activities that generate more value, making them more productive.
It is no coincidence that a significant part of the training of a technician or graduate today is devoted to the study of instrumental analysis. Some forms of bench characterization that were best practices in the 80s and 90s have now been replaced by others, carried out with instruments.
Best practices in the digital world #
OK, but you, the reader, may not be a chemist. So what? Where are we going with this text?
Well, if analyses are performed by instruments, the results are delivered as files, right? Of the most varied types and with the most varied contents, depending on which analysis is being done. And such files are shared by a whole team of analysts.
Here arises the need for practices that made no sense in the past. For example: what is the file naming standard? Will each analysis have its own folder? Will files be separated by the date of the analysis? Will the “raw” data files stay in the same folder as the final analyses? And those final analyses, if they go through review, how will the version control system work? Will there be a Standard Operating Procedure (SOP) for this type of analysis? It is no coincidence that today there are several ISOs and standards that address such points, which are important for the reproducibility of experiments and for auditing. Best practices evolve over time…

Don’t believe the topic is relevant? See the result of a simple search for “standard operating procedure” (in Portuguese) on Amazon. A multitude of books on the subject, for several fields.
Did you recognize this need in your career too? Do you deal with recurring procedures? Do you deal with file after file all the time? Do these files need to be shared with a whole team that needs to understand the context of each one? Do you agree with me that it is a matter of communication? What is the impact if there is no effective communication in the team about shared resources and digital data?
Look, even if you are not in programming, these are questions that arise from technology entering your routine, which creates the need for ways to deal with them. And of course the demand for best practices and effective communication already existed before, it was just amplified in the current technological context.
Effective communication #
The last point is what gives this section its name:

How did a video about best practices in programming give rise to this text?
Simple, every field has the concept of “best practices”. It matters little
whether you are an engineer, architect, geographer, physicist, anthropologist,
musician,
And, considering what was described in earlier paragraphs, many professions today also deal with (an excess of) digital information. You may have no idea what Git or “variable name” is but, surely, you have seen some understanding problem in your team caused by using old versions of files or by a file having a name that was not informative. Or by thinking that a given instruction in a document meant A when, in fact, it is B. That’s it.
I already showed that several fields have SOPs. The example I gave above about “variable names” is quite specific to programming. Within this field, there are also several attempts to define best practices for writing code. Variable and function names are only a small part, there are many aspects to writing code that communicates what is expected of the program to everyone involved in the development.
That is what much of the video is about: effective communication, best practices to make the team understand the context of a problem, best practices for the effective use of shared resources, best practices of language.
Programming languages and programs #
“Language”… Is everything presented as a best practice really one? Are there universal best practices or do they arise locally? Or a bit of both? Are the best practices described in standards enough?
Watching the video with a more attentive eye, we see that some discussions arise because people treat as dogmas what are, in reality, flexible practices or tools that can (should) be used if, and only if, they make sense in the context. To end this text, we will, yes, talk a little about programming just to illustrate a personal experience. But what I am going to say is brief and general enough for everyone to understand.
I already told how I observed the evolution in chemistry, my field of training, with regard to equipment. But, of course, this evolution was accompanied by the emergence of the most diverse software to analyze the data generated by the instruments. From the infamous spreadsheets, through specific programs for statistical data processing, to the use of programming languages to handle the absurd amount of data generated and to make simulations and predictions. I enjoyed this evolution so much, and learned so much, that today I am moving into data science, but that is talk for another article. The point is: I saw many “dogmas” emerge that, in reality, were momentary and circumstantial best practices and, today, are replaced by other best practices depending on the context.
Just one example to illustrate. Talking to an academic colleague once, I said I was using Python for a certain study. The colleague asked “What is Python?”. And I explained that it is a programming language that has several interesting packages for statistics and for presenting the results of the study I was doing. The immediate answer was “This is wrong. FORTRAN is for that, it is faster, it is the standard, and it has everything you need. I don’t understand these fads of using different languages”. Wow… did you see the dogmatic attitude?
First of all, I have a special fondness for FORTRAN, it was the first programming language I used regularly. I am very happy that it still has a community and keeps evolving. And I started using Python because… the main scientific libraries of Python use FORTRAN under the hood! Take a look at the SciPy FAQ page, for example. But if under the hood it is FORTRAN, why not use FORTRAN directly? Simple, the problem I wanted to solve required other things besides the incredible numerical capability of FORTRAN. I wanted to integrate with other tools and integration was simpler with Python. I felt more productive with Python. The code was easier to understand and maintain with Python. The audience that would come into contact with the result was more familiar with Python. Therefore, in an analysis of the whole life cycle of what was being produced, the best alternative for that situation was… Python.
And what I said here about Python vs FORTRAN can be replicated in many contexts involving other programming languages or software. I see engineers having analogous discussions involving Matlab vs Python vs R. Visual folks in discussions about Photoshop vs GIMP, Premiere vs DaVinci Resolve. Why? Why must you choose only one of the options? Is any of them really a silver bullet? Is the option itself more important than the problem to be solved?
What is the best programming language? #
We are in a moment of digital abundance. There are many choices of digital tools and programming languages. Every field today produces more and more data that needs to be analyzed for decision making. The market is flooded with buzzwords such as artificial intelligence, data science, machine learning, personal branding, digital marketing. Flooded with promises that by mastering these fields your business will take off or you will easily enter the job market. Flooded with courses on all sorts of programs for all sorts of purposes. Flooded with programming courses and the like, from Excel VBA and SQL to Javascript, R, Python.
What should you learn? What is the best practice of the moment? Which tool? Which language should you learn? Answer: English. Or Portuguese, or Spanish. Or smoke signals, for that matter. That is the best practice, the tool: your ability to communicate, the concern that others understand your message, your work, and that you understand theirs. The language that will allow you to communicate effectively with your teammates and clients to understand the problem to be solved. That will allow you to define the best practices for those involved in the context, at the time the problem presents itself. That will allow you to define which language, now yes, programming language, or program or any other tool is the most suitable for the situation.
Tools and best practices change. What does not change is the need to be able to recognize a problem and present solutions based on the available resources. And, in this process, communication is fundamental.
See you next time.