In a world where almost everything is mediated by technology, writing code is one of the most interesting and necessary skill. It is an activity that has become creative and playful.
In the area of communication, for example, writing code has become extremely important. No wonder, the old skills of the communications field since they can no longer respond to current management problems and consumption of information. You need to think about algorithms and computational logic dominate. Anyway, you need to master new skills to solve new problems.
Today, learn to program is easy and inexpensive. There are several courses and the developer community is more robust. Moreover, currently, there are simple language to learn, with a semantics closer to that used in everyday life.
With this ease of access to educational programming, the question about the similarity between learning to write code and learn a new language (English, Spanish, German) arises.
Or rather, what the similarity between natural language and programming? Develop software and writing a book are similar things? After all, both are not writing activities that work with codes, with the ultimate objective of the communication. Because they are used to dealing with semantics, “grammatical rules” and conciseness, programmers could become good writers?
The discussion is interesting, applications Today are developed not only to convey ideas, but also to communicate emotions. Additionally, website development companies today have a wide influence in the field of communication. See, what happens when Google or Facebook undertake a change in their algorithms content or display advertising.
The relationship between natural languages, programming and communication interests me because I’m feeling quite up to the debate on the skin.
In practice, I realize such fields actually have much in common. There are differences, of course. Writers (communicators) work with metaphors, something that programmers do not dominate. However, the similarities are much greater than the differences:
- In its activities, good writers / communicators and programmers can not be redundant. Need to be clear.
- As writers, programmers have different styles.
- Good programmers know how to “play” with the rules, as well as famous writers.
- Writers write for people. Likewise, programmers write code for computers and people (colleagues).
- Both are creative processes that work with a defined structure and are intended to communicate.
It is emblematic that the process of learning programming is very similar to studying a new language. When you learn a new language, attempts to codify their thinking to this new language (English, Spanish, German). Likewise, when you learn programming, tries to apply and encode your way of thinking logically in a software language.
Incidentally, there is a principle in the development of code called DRY (Do not Repeat Yourself), which is very similar to a text editing activity in the communication area. This process is supported by the elegance and the non-repetition of code.
Incidentally, this is one of my favorite parts in the process of writing code. I love debugging code and apply the concept of DRY, perhaps because a large part of my life has done just that, but in the communication field with natural languages.
But where do we go with all this debate about natural, programming languages, and communication? The barriers between all areas of knowledge come crumbling in a tremendous speed. It will be no surprise if in some time to see the project schedule as programmers seek a creative process in colleges of letters and communications.
Moreover, there is an established movement, programmers entering the field of communication and media. The blogs have been the kickoff of the breakdown of barriers. Today the best technology publications are written by current or former developers.
It is very positive that programmers view it as communicators and writers. Generally, programmers who find themselves thus become competent professionals, having the principal brevity, clarity and elegance in their work. After all, who profits from all this posture is the end user who gains access to the best software solutions to address the issues, without delay or frustration.