2017: Year in Review
And just like that, 2017 is almost gone. Last year, around this time, I wrote a post through which I reflected what I did or did not accomplish in 2016. It is now time to do the same for 2017. A lot happened in 2017 and I would like to take a step back and reflect to make sure I am still pursuing my goals.
I started learning AWS
There are a lot of options out there these days when it comes to cloud computing such as Azure, AWS, Google Cloud etc. I decided to pick AWS and learn the basics. There is no doubt that cloud is the way to go. 5-10 years from now, most companies will not have an infrastructure department. It will be provided by third party companies as a service. As far as I am concerned, I am interested in spinning up some EC2 instances on AWS, using S3/Glacier to store files and storing data in an AWS database such as RedShift.
I started learning machine learning
There is no doubt that you have heard of machine learning (ML) and wondered what it is really about. I had done so myself for several months before deciding to learn what it is about and how I can learn ML. I was especially encouraged to pick up ML due to all the technological advancements in 2017 due to machine learning.
So what did I do? I took an introductory (but quite broad) ML course on Udemy which I would highly recommend. Once I had a good understanding of the basics, I started reading articles and picked up a book called Hands-On Machine Learning with Scikit-Learn and TensorFlow (Amazon). At the same time, I started writing about what I was learning because that’s the best way to make sure I learn. This is why you have been seeing so many ML related posts on my blog. You can find them all here. Additionally, I started reading another book called An Introduction to Statistical Learning (Amazon) to get more theoretical background.
I started learning Apache Spark
As I was learning how to implement ML models in python using scikit-learn, I realized that while scikit-learn is an amazing library, I really need to learn how to implement ML models using big data. This is why I picked up Apache Spark which allows you to load data in memory from HDFS (distributed file system) and run ML models using SparkML. I wrote a post recently about how to start a Spark session on an EC2 instance which got quite popular.
I continued to learn Python
Last year, I wrote about how I started to code in python and this year, I can proudly say that I have gotten much better and can call myself an intermediate programmer in python. Of course, learning a language, is a long process so I will continue to learn python.
One of my projects this year was writing a library in python to get data from IEX. It got a lot of attention and many people found it useful, especially since Yahoo! recently stopped users from getting their data.
I got back into q/kdb+
q was the first language I worked with professionally. I have not really programmed in q since 2015 but this year, I picked it up again. Surprisingly, it was not too difficult to do so. Kx, company which owns kdb+, has gone through a lot of management changes recently. A majority of Kx is owned by an Irish public company, First Derivatives, which is very keen on expanding kdb+ to other markets (i.e. energy, pharmaceuticals etc) as well as making q/kdb+ more friendly to other languages.
I wrote my python IEX library in q to make it easier to get data from IEX. q developers found this API even more useful than python developers because while python has plenty of libraries and APIs already built, q only has a few.
I continued to read books
Last year I really got into reading books, especially because of my long commute and I continued to read books in 2017 as well. This year I finished reading:
- The WSJ Complete Money and Investing Guidebook – great beginner’s book which every college grad going into his/her first job should read.
- Efficiently Inefficient – superb book which discussed most of the popular strategies used at a hedge fund. My favorite part about the book was the interviews with hedge fund managers at the end of every chapter.
I have a nasty habit. Sometimes, I try to learn too many things at once so I hop around from one book to another. This year, I found it difficult to focus so there are quite a few books which I picked up but never finished. Here are the books I am still reading:
- A Man for All Markets
- Quantitative Finance for Dummies
- Zero to One: Notes on Startups, or How to Build the Future
- An Introduction to Statistical Learning
- Hands-On Machine Learning with Scikit-Learn and TensorFlow
I will review these books as soon as I finish them!
I attended a bunch of Meetups
A good way to get involved with a technology is to attend some meetups and fortunately, there are tons of meetups in NYC. I attended many meetups about AWS, q/kdb+ and python. Amazon has many AWS events in SoHo whereas Kx has been having a q/kdb+ meetup once every month or so.
A good thing about these meetups is that you get a lot of free promotional items such as a coffee mug by AWS and a t-shirt by Kx!
I continued to learn from experienced professionals
There is no better teacher than experience. I am fortunate enough to be surrounded by some of the best minds in the industry as well as have some brilliant mentors. In 2017, I continued to meet people from different teams or different domains and chat about their experience. What are they currently working on? What are they looking to do in future? What is working for them and what is not?
I highly recommend taking a look at all the individuals that you are surrounded by in your personal and professional life and talking to them. Every person has accumulated vast amount of knowledge through their experiences and it could be invaluable to you.
Plans for 2018
I know this post is supposed to be about reflecting on 2017 but I would also like to briefly discuss my plans for 2018.
Here is my checklist of what I would like to accomplish next year:
- Have a good understanding of all basic machine learning models
- Be able to implement machine learning models via scikit-learn and SparkML
- Complete 5-10 Kaggle contests
- Learn advanced SQL features
- Work on some cool personal projects
With this, I would like to wrap up this post. I would also like to encourage you to reflect on how your 2017 was and what you are excited about accomplishing in 2018. I with you all a happy new year and I will see you next year!