Yegor Bugayenko's Blog, page 4
November 21, 2023
Avoid Soft Line Breaks Inside a Paragraph
An email, a document, a research paper, a presentation, and even a JavaDoc code block consist ofparagraphs, which are ���self-contained units of discourse in writing dealing with a particular point or idea.���Visually, paragraphs are supposed to be separated by a vertical space that is a bit largerthan a vertical spacing between lines. To achieve this, for example, in HTML, we wrap paragraphs in the
tag, while in LaTeX, we use \par or just an empty line between them. However, some people i...October 10, 2023
The Method Section: A Recipe for Research
Every empirical research paper must have a section titled ���Method��� (or ���Methodology,��� or ���Study Design���). In this section, you describe what was done to obtain the data presented in the following ���Results��� section. You explain the recipe, which may be replicated later by another researcher, leading to the same (or very similar) results.
[image error]Underground (1995) by Emir KusturicaThe Method section is the essence of the research. Think of it as a recipe: youtell the reader what ing...
September 28, 2023
Related Work: A Critical Taxonomy of Prior Art
In almost any research paper, it is mandatory to have a section titled ���Related Work���(or ���Related Works���), where you refer to the results previously obtained by otherauthors or yourself. By including this section in your paper, you are not only payingrespect to those who laid the foundation for your results, but also motivating and guidingyour readers. Most of them may not be aware of existing studies orthe importance of the problem you are solving. You must put these guys intocon...
September 18, 2023
Five Ingredients of Tech Career
A friend of mine recently asked me what five things he should do in order togrow his technical career in a big company. He is not interested in being a bigmanager, or a CEO. Rather, he wants to be a software expert, an architect, anowner of a technology, and eventually a ���Fellow.��� I���m not sure I was qualifiedto give such advice, but I did anyway. This is what I told him. Maybe this willalso work for you.
[image error]8�� (1963) by Federico FelliniBoredomStay focused on one problem for many ...
September 4, 2023
Bibcop: Style Checker for BibTeX
Almost every document you may write in LaTeX format willhave a list of references at the end. Most likely, you willuse BibTeX or BibLaTeX to print this list of references in a nicely formatted way.It is also highly probable that your .bib file will containmany typographic, stylistic, and logical mistakes. I���m fairlycertain that you won���t find the time to identify and correct them.As a result, the ���References��� section in your paper may appear sloppy.I suggest using the bibcop p...
August 28, 2023
Robots vs. Programmers
The release of ChatGPT 3.5 has changed everything for us programmers. Even though most of us (including me) don���t understand how it works, some of us use it more frequently than Stack Overflow, Google, and IDE built-in features. I believe this is just the beginning. Even though, only Microsoft knows what will happen next, let me try to make a humble prediction too. Below, I list what I believe robots (with Generative AI on board) will do in the future.The further into the future, the lo...
August 21, 2023
Fast Tests Help Humans, Deep Tests Help Servers
In order to reveal errors of higher complexity, automated tests are turned into integration tests that involve external resources in test scenarios, instead of their mocks. While this approach improves test coverage, it slows down the entire build pipeline. This compromises the very idea of automated tests, which are meant to be a safety netand help programmers edit code safely. Splitting the tests into ���fast��� and ���deep,��� and then allowing humans to run the former while servers r...
August 14, 2023
The Double-Blind Review Is What Makes Decisions Fair
How does your team review ideas, project proposals, or paper drafts?Imagine I���m on your team and I need a budget allocated to a new project. I craft a proposal, elucidate the motivation, assess the risks, develop a plan, and then what? Do I create a PowerPoint presentation, present to my teammates for half an hour, answer their questions for another half hour, hear their honest feedback, after which they vote and a decision is made? If this is how things are organized within your team, y...
August 7, 2023
Is Two-Step Initialization a Solution or a Symptom?
At times, it might appear practical to execute additional initialization steps for an object after its constructor has completed. However, I���m of the belief that such requirements signal underlying design flaws, such as object mutability,base class fragility, violation of layering, and unfocused abstraction. A constructor should be good enough for all scenarios. If it���s not, refactor the object.
[image error]�������������� (2008) by Igor VoloshinThis is how it usually happens (I found it in Apac...
July 31, 2023
The Hidden Dangers of Method Overloading
Method overloading is a common feature in many programming languages that allows a class to have two or more methods with the same name but different parameters.According to Microsoft, method overloading is ���one of the most important techniques for improving usability, productivity, and readability of reusable libraries.���I disagree. In my opinion, method overloading may lead to less readable code and more bugs,because maintaining two or more implementations under the same name gives r...


