React & Go ( Pt. 1)

I’m planning to teach these two technologies in next year may be in February or March. So, here I’m writing the propose content for the class with promise of constant update if new version or some update release in these technologies. Also, the content might have some (or many) errors. Please use with this caution! Happy reading.

Viewpoint may be largely unrelated to its usefulness. Many if not most of the software we use is probably obsolete according to the latest design criteria. Most users could probably care less if the internals of the operating system they use is obsolete. They are rightly more interested in its performance and capabilities at the user level. Ken Thompson, The Tanenbaum-Torvalds Debate

Although, some developers think that full stack developers don't exist. But, the hard reality is, if you are working with small company then you should or I dare to say you must know one front-end framework/library such as Angular, React, or Vue and one back-end language (and/or framework/library) such as PHP, Ruby, or Python. Let's choose one from both sides - React from front-end and Go from back-end - these are the two technologies, we are going to learn as part of our course curriculum.

This is a long course. In this course, we are going to learn minimum dozen of libraries, and frameworks with React and Go in main focus. Not just these, but also going to build an application using these technologies couple of times (yes, same application, we will write couple of times!). You need to be patience. You need to be open-minded and you need to be hard-worker in order to complete this course. This course is divided into chapters and it is suggest to complete only one chapter per day.

This course assume that you know JavaScript, little bit SQL and one server-side programming language. It doesn't matter which language you know but it matter that you know the programming language and the concepts such as variables, conditions, iterations, functions, and so on. You should know the fundamental of web application. If you think that you are not up-to date with the current requirements - please send me an email with your question(s), I'll help you.

Finally, I'm not going to convince you that you should or must learn React & Go. I assume that you make your mind and you are ready to learn React & Go. Still you can search on Internet for React & Go - Why I should learn React or Why Go is a language of future in server programming? in order to make yourself motivate to learn these technologies

Now, I'm going to share with you the list of software we want in this course. You need to install these software in order to follow this course along with me.

Software Requirements

You need following software for this course:

  1. Node

  2. NPM (or Yarn)

  3. Go Compiler & Toolchain

  4. Text editor

  5. Postman

  6. SQLite (or SQLite GUI Client)

  7. Finally, not a software but active Internet connection. So that whenever needed, we can download library or framework.

I'm not going to tell you how to install these software on all possible operating systems. Because, that make content lengthy and boring. Instead, I'm going to show you how to install these software on Fedora GNU/Linux operating system. For others operating systems, the installation steps are same or somewhat similar.

Node: The installation of Node is simple. What you have to do is, just need to visit the official website and then need to go on the download page. From here, you can download the binary of your operating system and you are good to go. For me, the following command do the installation.

$ sudo dnf install nodejs

This will install both Node and NPM on my system. We can confirm the installation via following commands.

$ node --version
v12.13.1

And

$ npm --version
6.12.1

NPM (or Yarn): As I mentioned, we already installed the NPM. But, if you are planning to go with Yarn, an alternative to NPM then its official website provides the installation steps for all possible operating systems. For example, this link provides the installation steps for Fedora. By following the steps, mentioned in link, I installed the Yarn with following version.

$ yarn --version
1.21.1

Go Compiler & Toolchain: The installation of Go compiler is again easy. Just visit the download page of official website, download the binary for your operating system and you are good to go. For me, the following simple command works.

$ sudo dnf install golang

This will not just install Go complier but also install some tools with it such as gofmt, go build, and so on. I can confirm the installation via following command.

$ go version
go version go1.13.4 linux/amd64

Text editors: I'm leaving this installation solely on you. I assume that you have one/two favorite text-editor(s). For this course, I'm going to use two text-editors - nano and Visual Studio Code. nano editor for simple programming and Visual Studio Code when I need intelligence and auto-correction.

Postman: We need Postman software to test the website URLs which are not directly accessible via web browser. You can install the software from its official website by visiting download page.

SQLite: To save the data, we are going to use SQLite database software. You can install the SQLite software from its official website or you might go with SQLite GUI client such as DB Browser for SQLite. I have installed both SQLite and mentioned GUI client from its official download page.

Finally, with good Internet speed, you are good to go.

This installation might take from 30 minutes to 3 hours. I don't know! So, take your time and finish the installation. Because, that's what I want from your side for the day one. On next day, we are going to start our learning journey with React. Although, you can read the next chapter right this moment, but I'm asking you to don't do that. Give yourself some time and some space. May be, it is better to spend your time with family or love once instead of with next chapter, which is suppose to read on the next day. In case of installation problem, you can always send an email to me for the help. I'll help you in all possible ways. Good day!


Soumyajit Pathak picture

What kind of application do you have in mind that you will developing in this series?

Also, you mentioned plan to teach. Do you teach a bootcamp or host workshops? Just curious, here.

KC picture

Instagram clone.

Previously, I taught MEAN as 7 days session. Now, I'm planning to do a Bootcamp, if possible.

Soumyajit Pathak picture

That's amazing. Keep at it.

Rajarshi Bandopadhyay picture

Are you going to post summaries of the planned lessons here? Because in that case, I would just love to stay posted.