Index: content/en/posts/web-stacks.org
===================================================================
--- content/en/posts/web-stacks.org	(revision de4a3db2ce50c2d0151bdac36fd6e835a9e8a8b2)
+++ content/en/posts/web-stacks.org	(revision 2476ebaf83cc65b0575710e8769447ba74d61db0)
@@ -5,39 +5,39 @@
 * Technologies of web development
 #+BEGIN_abstract
-In this article I'm going to categorize languages, frameworks, libraries
-and software by a criteria of usage such technologies at hired work. The
-article might be biased and irrational, be aware.
+In this article I shall categorize languages, frameworks, libraries and
+software by a criteria of usage such technologies at hired work. Be
+aware that opinions expressed in the article might be biased and
+irrational.
 #+END_abstract
 
 I work in the IT field as a web developer for many years, but cannot
 proudly claim myself as a professional. I don't know many things, I
-don't like to work in general, I don't like corporate IT culture and I
-don't like web development in particular, but I have an experience in
-that field, and it is much easier to dive into web development to earn
-money for a living than other IT fields or other professions at my
-location. I hope this text will be useful for someone who is outside of
-the field of web development to get a grasp of technologies to learn.
+don't like corporate IT culture and I don't particularly like web
+development. Still I have an experience in the field, and it is much
+easier to dive into web development to earn money for a living than to
+devote my time to other professions at my location. I hope this text
+will be useful for someone who is outside of the field of web
+development to get a grasp which technologies to learn.
 
 * What is tech stack
 #+BEGIN_abstract
-The tech stack is the mix of technologies (software, frameworks,
-libraries) that the project uses to implement a planned set of features.
+A tech stack is a the mix of technologies (software, frameworks,
+libraries) that the projects use to implement a planned set of features.
 #+END_abstract
 
 Knowing everything from your tech stack is not the only key to
 success. It can sound obvious, but social skills can play a more
-important role than your programming skills. Programming is a very
-social activity, everything you are going to use is built by other
-people, sometimes something breaks and you need to contact people that
-provide you the software you use, it is also important to communicate
-with your company's team and not bring yourself into conflict
-situations. And don't be that guy (or me), who hates something technical
-so much, that people get annoyed by you, it won't help you in any
-way. It can be seen as a suppression of your ego, but the truth is that
-hired work is more about collectivism than individualism.
-
-Next, I present the list of technologies you should know to work as a
-web developer. The list is not mandatary and you are not required to
-learn it on an expert level to get your job offer.
+important role than your programming skills. Programming is a social
+activity as most of what, everything you are going to use is built by
+other people. Sometimes things break and you need to contact them. It is
+also important to communicate well with your company's team to avoid
+conflicts. And don't be that guy (me!), who hates something and gets
+verbal about it in such a way. This doesn't help you in any way. It can
+be seen as a suppression of your ego, but the truth is that hired work
+is more about collectivism than individualism.
+
+Next, I present the list of technologies you should be comfortable with
+to work as a web developer. The list is not mandatory and you are not
+required to learn it on an expert level to get your job offer.
 
 * Technologies to learn
@@ -45,5 +45,5 @@
 familiarize yourself with them anyway. What I've discovered, is that
 most knowledge of some tech is transferable to other techs. For example,
-learning one web-framework helps you to learn other ones.
+learning one web-framework helps you to learn others.
 
 ** Text Editor
@@ -52,5 +52,5 @@
 
 *Most popular choices*
-- [[https://gnu.org/software/emacs/][Emacs]] / [[https://www.vim.org/][Vim]] (I recommend them for a long run)
+- [[https://gnu.org/software/emacs/][Emacs]] / [[https://www.vim.org/][Vim]] (I recommend them in the long run)
 - Jetbrains IDE (proprietary)
 - VSCode (proprietary)  
@@ -62,5 +62,5 @@
 
 Proprietary means that source code is not available and probably it
-costs money to use and you as a user don't have control over it. You can
+costs money, so you, as a user, don't have control over it. You can
 learn more why it is important on the [[https://gnu.org/philosophy/][GNU website]]. Such an important
 tool as a text editor should be free as in freedom for everyone.
@@ -88,5 +88,5 @@
 Each tech stack provides ORM. ORM allows you to operate your database
 "objects" as your programming language code without writing or
-minimazing writing raw SQL. It is quite rare, when you need to work with
+minimizing writing raw SQL. It is quite rare when you need to work with
 pure SQL or the project doesn't use ORM at all. ORMs might be something
 from the list:
@@ -141,6 +141,6 @@
 ** Unix-like OS
 You will probably work on Linux, variants of BSD systems, or macs. You
-need to familiarize with the system you use, different tasks require
-different degree of that skill, but knowledge of what you are using
+need to familiarize with the system you use as different tasks require
+different degrees of that skill, but knowledge of what you are using
 every day will be handy.
 
@@ -148,10 +148,10 @@
 your machine and learning it along the way. I recommend to starting with
 [[https://debian.org/][Debian GNU/Linux distribution]]. You can read [[https://www.debian.org/doc/manuals/debian-faq/][FAQs]], manuals about
-[[https://www.debian.org/releases/stable/amd64/index.en.html][installation]] and [[https://www.debian.org/doc/manuals/debian-reference/][how to use the system]]. Docs are very useful, they are
-will be present in your filesystem you can read them by jumping into
-/usr/share/docs folder or running ~info~ and ~man~ commands. I recommend
-reading it and exploring the Debian website. Also for learning Linux
-Arch Linux wiki is a good source of knowledge (Slackware and Gentoo
-wikis are good as well).
+[[https://www.debian.org/releases/stable/amd64/index.en.html][installation]] and [[https://www.debian.org/doc/manuals/debian-reference/][how to use the system]]. Docs are very useful and they
+are will be present in your filesystem so you can read them by jumping
+into /usr/share/docs folder or running ~info~ and ~man~ commands. I
+recommend reading it and exploring the Debian website. Also for learning
+Linux, Arch Linux wiki is a good source of knowledge (Slackware and
+Gentoo wikis are good as well).
 
 [[[https://en.wikipedia.org/wiki/Unix][Wikipedia: Unix]]] | [[[https://en.wikipedia.org/wiki/Linux][Wikipedia: Linux]]] | [[[https://en.wikipedia.org/wiki/Linux_distribution][Wikipedia: Linux distribution]]]
@@ -163,7 +163,7 @@
 tool is to let your team quickly get the same environment as you. The
 point of docker as a deployment tool is to deploy the same environment
-that you developing in, it is important to have a reproducible
-production environment because catching bugs in 3 different environments
-(dev, staging, prod) suck a lot.
+that you develop in. It is important to have a reproducible production
+environment because catching bugs in 3 different environments (dev,
+staging, prod) sucks.
 
 [[[https://en.wikipedia.org/wiki/Docker_(software)][Wikipedia: Docker]]]
@@ -172,5 +172,5 @@
 You need to be able to deploy your application to the production
 server. Good practice is to use a CI/CD pipeline. The CI/CD pipeline
-runs checks of your project in docker container and only if tests are
+runs checks of your project in a docker container and when the tests are
 successful, the code deploys to production.
 
@@ -192,5 +192,5 @@
 computer science than OOP.
 
-Not everyone will degree with my definition, but patterns are needed to
+Not everyone will agree with my definition, but patterns are needed to
 express by your programming language object system, which is impossible
 to express otherwise, because of some language limitations. It is very
@@ -216,13 +216,13 @@
 that you would make a mistake and will not understand what is going on,
 or where is an error. In that case, you will need a debugger. The
-debugger is usually can be part of your text editor environment and it
-is usually included in your programming environment alongside your
-interpreter / compiler. Some languages don't include a debugger, so you
-need to download it separately.
+debugger is usually part of your text editor environment and it is
+included in your programming environment alongside your interpreter /
+compiler. Some languages don't include a debugger, so you need to
+download it separately.
 
 The debugger allows you to step through your code and see the values of
 stack and heap, basically you get access to everything evaluated by your
 interpreter/compiler. It is very common practice to use such a thing
-when errors happen and I think, that it is a great way to learn how your
+when errors happen and I think that it is a great way to learn how your
 language of choice works internally.
 
@@ -261,5 +261,5 @@
 providing ready to use graphical elements such as buttons, menus, lists,
 grids, tables and so on. Often you don't need to know CSS so well, it is
-okay to know just CSS framework.
+okay to know just a CSS framework.
 
 CSS Frameworks:
@@ -273,7 +273,7 @@
 **** SASS/LESS
 CSS3 added some computing abilities introducing variables, calc and
-other features. Before that and because lack of some other features for
-better css code reuse people have made CSS preprocessors. The point it
-to write css-like code that compiles to real css, so you write less
+other features. Before that and because it lacked some other features
+for better css code reuse people have made CSS preprocessors. The point
+it to write css-like code that compiles to real css, so you write less
 things twice. SASS is being used in many css libraries such as Twitter
 bootstrap.
@@ -433,5 +433,5 @@
 * Most popular programming languages
 Your choices are quite limited here. More jobs available, more chances
-to get that job. there will be different results in different areas. I
+to get that job. There will be different results in different areas. I
 think that in most areas you will have a choice between Java, Python,
 and maybe PHP or Ruby. If you want to end up insane, there is also
@@ -567,5 +567,5 @@
 there to the official documentation of the thing you want to learn.
 
-When it comes to programming in general I recommend learning it doing
+When it comes to programming in general I recommend learning it by doing
 test projects or just playing with the code. You can also use services
 like [[https://exercism.org/][Exercism]] or [[https://codewars.com/][Codewars]] to practice pure programming solving
@@ -595,6 +595,6 @@
 or other nonpopular in the industry mostly academic languages) is that
 mainstream programming on your job can feel very restrictive and less
-expressive. Also, you will probably learn, that many mainstream
-languages have lots of quirks or bad design decisions.
+expressive. Also, you will probably learn that many mainstream languages
+have lots of quirks or bad design decisions.
 
 * Conclusion
@@ -609,2 +609,6 @@
 way to get a job if you are just starting even tho it has a lot of
 downsides too, but that's a topic for another article.
+
+* Errata
+- *<2022-10-14 Fri>* Typos are fixed, sentences have been
+  rephrased. Thanks to Andre Gomes for proof-reading and editing.
