Wow! It has been almost five years since I wrote my latest blog post. The past few years were quite busy (with work and taking care of the new addition to our family), I wasn’t able to find time to add any posts. And whenever I did, I used it to rest rather than blog. My work also requires me to research, read, review and understand some medical concepts and standards so I can correctly apply and implement them in the system I have been working on.
It’s not that I’m not growing or learning anything. In fact, I have learned so much different stuff in the field that I might be able to switch to a medical career (just kidding). There are new web development related technologies and tools that I just want to try out. Who knows? I might be able to use it in our system and improve the dev process and/or performance.
So I made a list of the things I want to learn and use.
Docker
Already learned and currently using this for my local development. I had fun studying it and setting up my own docker environment for work. I have a long-term task of developing the process of updating some parts of our system. Using containers to sandbox and test the upgrade process is really nice. I can work on it and leave it running while I have different sets of containers I used for other tasks.
Amazon Web Services (AWS)
I don’t have any plans on setting up any apps on AWS any time soon. I just want to know what kind of services they now provide and the possible ways I can use it in the future. The last time I used AWS was way back 2007 when my former boss asked me to checkout the Amazon S3 service and assess the potential uses of that service (which was relatively new back then). There are two free courses in Udemy from LinuxAcademy that tackles AWS basics and already finished the first course.
Javascript ES6 (ES2015)
Having been able to work with different javascript libraries like Prototype, MooTools, YUI and eventually jQuery) since 2006, creating and/or customizing plugins and having in-depth understanding on some of its concepts/behaviors such as prototypal inheritance, closures, hoisting and context (this) switching , I was pretty confident with my javascript skills. But I have been away from javascript for a few years, occasionally working on simple jQuery snippets. With the rise of server-side javascript (NodeJs) and modern javascript libraries/framework like React, Angular and Vue, javascript gets additionaly features and improvements. Now I feel that my javascript skills are dull and rusted. I need to work on that.
Typescript, Angular and the Ionic Framework
Except for working with responsive web designs using jQuery Mobile, I don’t have experience developing for mobile devices. Ionic Framework would enable me to build mobile apps without requiring me to learn platform-specific language for Android and IOS development. The drawback for me is that Ionic uses Angular whose primary language is Typescript. I guess it is okay to learn Typescript too since it might be handy if Deno matures, becomes a popular alternative to Nodejs. Deno (created by the person who also created NodeJS), is like a TypeScript version of NodeJS. There are parts of our system the function like a SPA (single page application), so Angular would be a good choice to use in case we decide to redo/update those parts (though I like Vuejs more than Angular).
Golang
I wanted to learn a new language and was originally considering Python. Then I came across the Go programming language and got intrigued by it features (fast-compilation, statically typed, built-in support for concurrency). There are times I’ve been working on problems that need to process large chunks of data, which I believe can be handled faster and more efficiently split into parts that are handled concurrently. Our system would probably be faster if we have microservices that handle processing of large data.
MongoDB
So that I know at least one NoSQL database as an alternative to MySQL.
NodeJS
Optional. I knew the server-side javascript will be a hit so I tried to study it as early as 2010.
My goodness. Eight years have past and I’m still newbie level with it. Most development tools and process nowadays involve something created with NodeJs and available through NPM.
That’s a full development stack!!! Imagine a mobile app built with Ionic that communicates to a server made using Golang pushing/pulling to and from MongoDB, inside Docker container(s) deployed using AWS.