Unless you have intentionally decided to block any news around software in your social feeds, it is likely that you have heard about Docker.
I have written a few posts around Docker and how you can get started with it, but those were more from the point of selecting an OS to learn Docker and so on. Nothing about the details. In the meanwhile, there are tons of excellent resources available to learn Docker from scratch and I have been lucky to read those resources and learn from them.
Last week, I conduct a hands-on Go Language workshop as part of Mumbai Technology Meetup. The meetup was an interesting one where 3 language workshops were held during the day: Erlang, Go and Rust. I took the Go workshop.
I have been busy over the last few weeks in preparing a curriculum for Go Language course. This detailed course that I am planning is for 2 or 3-day hands-on course and I decided to use a stripped down version of that course in this workshop.
The total time of the workshop was 2.5 hours and we also decided to give a shot to hands-on as much as possible.
I prepared the following material (all of it is available on Github. Please use it , if you want)
- A Presentation Deck
- A hands-on deck that covers about 8-9 hands-on exercises
The deck covers the following areas in Go Language:
- An overview of Go, its history, its home page, tools, etc.
- Core Go Language Programming Constructs
- Object Oriented Constructs in Go
- Concurrency in Go
- REST API Servers in Go
- Writing Client Apps that invokes REST Services
- Some info on Unit Testing in Go and Go Documentation tools
In each of the sections, you will find notes, basic syntax, examples and a link to Go Playground for the running code. The presentation also has appropriate sections that tell you to refer to the hands-on exercises. Every single hands-on exercise is also accompanied with its solution to Go PlayGround. Here is a sample from the Go Maps section.
Here are a few things to note based on my experience:
- The topics are too many to cover in 2.5 hours. At best you should plan for 3 hours at the minimum and cover up to Concurrency in Go.
- The Go Playground is very essential to the success of the workshop. Since I have given the links to the Go Playground for each of the samples, it should make it easier.
- Hands-on can be attempted for some of the exercises but there is not enough time for all of them, unless you have more volunteers.
- Prior to the workshop, we had provided instructions to the participants to install Go on their machines. We also asked them to setup the Atom Editor. Instructions for setting up the Atom Editor are here.
Do let me know if you have any questions. All the best with your workshop.
Last year, I was part of an online Go course conducted by Satish Talim. One of my colleagues Prashant Thakkar too was part of this course. While we had been dibbling and dabbling a little bit with Go, this course acted as a catalyst to cement our interest in Go, take our knowledge to the next level and in return give back to the community via a similar exercise and moving forward, even formal training.
Atom, an editor from Github, is an excellent editor with a plugin ecosystem for most languages and tools. It comes with built-in syntax highlighting for Go code.
We will going to add additional plugins to make our Go Development easier inside of Atom.
Here are the Tech stories to read this week.
- Engineering IoT Solutions with Go: You don’t often hear about IoT solutions selecting Go as the preferred language. This article goes into the details of multiple other languages that the team considered, their pros and cons and finally how they ended up selecting Go.
- GCP for AWS professionals : If you familiar with AWS and want to see the equivalent services/features and how they map to Google Cloud Platform, this is a good guide that gives you a high level picture.
- Lessons from Google and eBay on building Ecosystems of Microservices: This article provides some good points on architecte, design, lessons learnt and more from running microservices at scale.
- Redis as Time Series Database: A Time Series Database is one of the most important databases and with the growth of IoT, it is the way to build out track and trace applications. See how you could use Redis to fit this model.
- Conceptual Debt v/s Technical Debt: We usually hear more of Technical Debt but Conceptual Debt has bigger consequences. I agree with the author in this theory.
- Year of Concurrency on the Web : Every developer needs to understand concurrency upfront. It has started to become a first class citizen in certain languages / frameworks and for good reason. This article presents an interesting analysis of where we stand vis-a-vis concurrency and web standards.
- APIs as Economic Game Changers: Mark boyd analyzes the recent API Strategy and Practice Conference held in Austin and presents an overview how organizations continue to center the business models around APIs.
- Kubernetes concepts in 10 minutes: Google Developer Expert Omer Dawelbeit explains Kubernetes, a key orchestration service around containers. Highly recommended if you are invested in Container Technology in 2016 and want to get to grips with Container Orchestration solutions, of which, Kubernetes is the current popular platform.
Given the nature of my job, it is important that I identify areas that I would be paying special attention to understand them in more depth. The choices have been made given a combination of both my interest, some general indications that I get from various sources and my gut feel (which also gets a significant weightage).
The fact that we have to make use of our available time to do other things in life too means that I must drop some items off my Tech Radar. This is important so that I can use my time judiciously.
My definition of paying special attention too includes searching on a daily basis for articles on that topics (Twitter is my main source that leads me out to the sites and then on to the hyperlink world) and trying out hands-on, making notes, making presentations, conducting professional training on them and more. My definition of “dropping the item” means that I will give cursory glances to that tech, read up on articles that still catch my interest but I won’t be doing too much hands-on, talks and so on. Ofcourse, everything is subject to a bit of change and we need to be flexible.
This is a book review for “Learn to Program with Minecraft” by Craig Richardson and published by No Starch Press.
When I first heard about the Delhi Government’s plan to try out the #OddEven formula for vehicular traffic, the only thing that I thought of was that they want to try something and see what happens. This has to be the attitude of any governing body now in India, whether at State Level, City Level, Ward Level, etc.