I am a tech enthusiast and a software developer, mainly focus on system development, with some kinds of web development.
I am also interested in the fundamental theoretical aspects in programming languages like:
- Computation models (lambda calculus, term rewriting)
- Polymorphism (ad-hoc, parametric, subtyping)
- Type systems (soundness, Hindley–Milner systems)
- Formal logic (Curry–Howard correspondence)
Last but not least, I am not such a fan of OOP, many people tend to misunderstand or overuse the OO since it often gets things more complicated. Something like 'Dependency Injection' is just another 25-dollar term for a 5-cent concept. Fortunately, many programming paradigms have been invented in these years.
Having a trouble to understand something like quick sort? Try functional language like Haskell.
The implementation is so obvious just the description of the algorithm.
qsort :: Ord a => [a] -> [a]
qsort [] = []
qsort (x:xs) = [x' | x'<- xs, x' <= x ] ++ [x] ++
[x' | x'<- xs, x' > x ]
Ask me about anything when you run into a problem with functional programming.