My Thoughts About Go After 2,5 Months

I’ve been writing Go for 2,5 months. I started to write Go with my new job. After leaving my part-time job, I’ve started to work in a company, SabancıDx, as a software engineer. In this company, I have been involved a newly started project which is being written in Go.

How I learned?

I firstly completed Go Tour. In my opinion, Go Tour is the best starting point for learning Go. It starts with basics like initializing variables, loops, conditions, functions and goes until concurrency. I did not complete the concurrency part because the concurrency part wasn’t necessary to start writing Go code. Then, I have started to write some code for the project. Firstly, I tried to write a TCP-server by using the net package. After that, I started to take tasks and complete them. While writing code and trying to do something that I learned, I kept reading blog posts, documentation, code, Go packages, and source code. I tried to understand what are the best practices, what other developers do, how they define variables, functions, and lots of other things related to Go.

Writing package

I always had a plan to write a client package to support open source and improve my coding skills. I started to write the GOP3 package towards the end of August. It is a POP3 client package for Go. It stands for Go + POP3. I used the RFC-1939 document as a reference while developing the client package. RFC-1939 specifies the network protocol of the POP3. Writing a package helped me to understand basic concepts of Go like struct type, receivers, pointers. I advise everyone to write a package to learn Go and apply the knowledge that I learned. You will make mistakes and see your weaknesses about the Go, then you will fix them.

Pros and Cons

The main topic of this article is my thoughts about the Go. Before listing them, in general, I can say that I really loved to Go. Here are the pros and cons:

Pros

Cons

Graph

Conclusion

Everything has been gone great with Go until now. If you are bored with other languages and you are looking for other technologies, I advise you to Go. Go increased my productivity and happiness while writing code. I think Go usage by companies will increase, and it will exist in the industry as one of the mainstream languages for the following years. I hope I will share more experience and good open-source projects with you in the future. If you have any questions, feedback, or project ideas, you can share them with me via mail gokhan@ozeloglu.io or Twitter: @gokhan_ozeloglu.