2017

Back in 2014 Summer, I made my best decision ever of learning programming and found my first programming job, writing Ruby on Rails an Ionic hybrid mobile apps. This year, I had learnt so much things in new area and decided to start this blog to record what I learnt.

Functional Programming

I started learning functional programming in Javascript. While some people think functional programming is anti-pattern in javascript because of mutable data-structure, lack of purity in function, I think it is excellent choice of starting functional programming journey.

First, it has enough features for FP, including first class functions, lambda(anonymous function), closure(lexical closure). Lacking of purity is actually an advantage for beginner learning FP, it’s just too daunting for most people to learn Monad before having ability to log or manipulate DOM.

Second, its very easy to slowly apply FP concept in their daily work, especially with library like Redux, Rambda.

Apart from Javascript, I also wrote a small Elm Widget in production and had the oppournity to write Clojure and Clojurescript in production.

Things I like about Clojure/Clojurescript

(defmacro unless [test then else]
  `(if (not ~test) ~then) ~else)
 
(unless false (println "negative") (println "positive")
=> "negative"

;; this can be achived by simple high order function
(def unless [test then]
  (if (not test)
    (then)
    (else))
) 

(unless false #(println "negative") #(println "positive"))
=> "negative"


(defmacro deftag [name]
  (list 'defn name ['& 'inner]
    (list 'str "<" (str name) ">"
      '(apply str inner)
      "</" (str name) ">")))

(deftag html)
(deftag body)
(deftag h1)
(deftag p)

(html
  (body
    (h1 "Yo")))

Things I like about Elm

Other thing

Reading Haskell Programming (not yet finish) Learning Elixir, understanding OTP

Deep Learning

Coming from a statistics background, I finally spent some time learning Deep Learning and it has been fascinating how powerful it is even though the basic idea of DL is very simple which is just a universal approximation.

BlockChain

I still can’t believe myself of ignoring bitcoin, ethererum or other blockchain-related tech untill this year April. This technology is accelerating so fast and difficult to keep pace with.

Focus in 2018