What I learned this 2018

You never stop learning. Embrace learning new things.

2018 recap

Machine learning

Learning about Machine Learning had been a not-accomplished stepping stone in my career. Joining some Kaggle competitions and read other’s people code makes improves your abilities.

Wonderful Sci-kit and pandas libraries make use of ML algorithms easy and neat.

Ruby

Having not used Ruby (albeit many years ago in my MRes. programme I programmed some basic scripts), it was funny to learn its peculiarities and of course, its dark corners.

Ruby on Rails

Having worked many years with Django, the switch to Ruby on Rails was easy but not painless. Ruby on Rails is a more mature framework but Django is a more complete one. Discovering how RoR solves some common problems offers me a different way of thinking and a refreshing of that kind of knowledge.

Ruby code quality tools

Rubocop, Reek, Flay, etc. and the master of all, Overcommit are great tools. I have not found similar tools in Python (only Pylint seems to do some of the work these Ruby tools do).

TDD

Almost nobody does TDD in a pure form. Me neither. But the closest I have reached to include TDD in my workflow has been working with Ruby on Rails this year.

PostgresSQL

I know SQL but having a real RDBMS to work with is the best. MySQL limitations where more than a pain in the neck.

PostgresSQL offers many interesting features other RDBMS lack off:

  • JSONB fields (with GIN indices).
  • Transactional DDL.
  • WITH keyword.
  • Internal optimizations (e.g. subqueries are optimized to joins when it is possible).

CI/CD

Implement for real continous integration and countinous deployment in a Ruby on Rails project has been a pleasure.

Having enough test coverage to be relaxed on the deployments ease my mind and eliminate stress.

GitLab has been showed as a great platform for defining CI/CD pipelines, cheap and you can install in your own server too.

Mathematics

Need to refresh my knowledge about Maths for being ready to understand concepts like Gradient Descent and eigenvectors.

Took the first two courses of the Mathematics for Machine learning specialization in Coursera.

Deep Learning

In October of this year, I decided to take the step and enrol in a PhD programme. I have been learning Deep Learning (using Jupyter notebooks and Keras) since then by following these sources:

Thus, using a remote server with GPUs has been a new experience for me.

“Next year resolutions”

These are some next year resolutions that I’ll try to acomplish:

  • Learn more about DevOps:
    • AWS
    • Heroku
  • Continue learning about Deep Learning.
  • Learn about probability foundations for Machine Learning.
  • Maybe learn some Spark (and hence Scala).
  • Improve my English a bit.

Conclusion

Never stop learning. For your career. For yourself.