diff --git a/src/drafts/professional-lessons-and-opinions.draft.org b/src/drafts/professional-lessons-and-opinions.draft.org new file mode 100644 index 0000000..db2976a --- /dev/null +++ b/src/drafts/professional-lessons-and-opinions.draft.org @@ -0,0 +1,60 @@ +#+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