61 lines
2 KiB
Org Mode
61 lines
2 KiB
Org Mode
|
#+TITLE: Professional Lessons and Opinions
|
||
|
#+AUTHOR: Yann Esposito
|
||
|
#+EMAIL: yann.esposito@gmail.com
|
||
|
#+DATE: 2019-07-04
|
||
|
#+KEYWORDS: programming, blog, org-mode
|
||
|
#+DESCRIPTION: Different divagations about my experiences in the professional world of Software Developper
|
||
|
|
||
|
#+begin_comment
|
||
|
How to choose a programming language/paradigm to write with.
|
||
|
|
||
|
- programming is about making the program do what you want it to do.
|
||
|
- not much told, lot harder, and not as natural/intuitive; a program should not
|
||
|
do something you do not want it to do.
|
||
|
|
||
|
|
||
|
- programming paradigms, functional is superior because it better fit all
|
||
|
real-life scenarios.
|
||
|
- in Machine Learning, Kolmogorov complexity. Object Oriented is worse than
|
||
|
Functional programming to represent naturally many real life problems.
|
||
|
|
||
|
What did I learned? Is it a set of specific knowledges or can we discover great
|
||
|
common principles?
|
||
|
|
||
|
- restart from zero, tabula rasa, what is programming?
|
||
|
#+end_comment
|
||
|
|
||
|
I could talk to much about that.
|
||
|
But a few short written down lessons.
|
||
|
|
||
|
If you want to reach productivity and not necessarily enlightenment.
|
||
|
You have to stop learning and use what you know well.
|
||
|
And do not try to use things you don't know.
|
||
|
|
||
|
In particular, most programming languages/ide/workflow/utils/tools have basic
|
||
|
and advanced features.
|
||
|
If want want to produce and deliver in time. Your best bet is to limit yourselve to
|
||
|
a minimal set of features that give you enough power of combination instead of
|
||
|
looking for a super generic strong solution.
|
||
|
|
||
|
Clojure for example has:
|
||
|
|
||
|
- functions
|
||
|
- higher-level functions
|
||
|
- destructuring
|
||
|
- defmethods
|
||
|
- protocols
|
||
|
- macros
|
||
|
- atoms, agents, core.async
|
||
|
- Java FFI
|
||
|
|
||
|
In fact, writing a fully working app you only need, basic data structure (edn) and functions.
|
||
|
|
||
|
That's it.
|
||
|
|
||
|
I was part of a team that created an advanced full featured app using only those.
|
||
|
No magic, just taking care of the state and not writting spaggethi code.
|
||
|
|
||
|
* How I choose
|
||
|
- Functional programming is superior to imperative and object oriented
|
||
|
languages
|