class: center, middle # 10 years' reads .b[[@abelar_s](https://twitter.com/abelar_s) - [@ParisRB](https://twitter.com/parisrb) - [@RailsGirlsParis](https://twitter.com/railsgirlsparis)] [maitre-du-monde.fr](maitre-du-monde.fr) .contrib[[Contribute to this talk on GitHub!](https://github.com/abelards/abelards.github.com/edit/master/talks/10years_reads.html)] ??? --- class: left # 10 years * my phone was a Nokia 3310 .br.info[smartphones: Sharp Zaurus, data: GPRS/EDGE] * RTFM was `man`, MLs, forums, blogs, IRC .br.info[no StackOverflow, no Slack] * crises, wars, demagogy, collusion .br.info[actually tons of progress since (science, medicine)] ??? I hated phone calls, I still do, but hey, they have games & internet now! 10 years ago was a very different place. The values are the same but the context slightly changed. This is a talk of hope, not a rant. --- class: center bestof # Practice & Theory .b[These darker slides are takeaways] Cheat codes are usually visible. .br.info[But it takes privilege to benefit from them.] Lessons are everywhere for the listener. .br.info[Fear AND comfort are the mind killers.] No problem goes away .br.info[until it teaches you its lesson.] --- class: left # Fresh outta EPITA * "learn to learn" * code skills, bare metal * the world was simpler then --- class: left # Fresh outta EPITA * "learn to learn" -> "be teachable" - mostly BS to avoid expertise & judgement - learn to NOT trust yourself * "low-tech" helps "full stack" - a good understanding of the basics - "how would I code X" is a good question * the world IS complex - I just knew less - history repeats itself --- class: center bestof # ★ 5 reads for 10 years * [Tom Hirschfield's 10 rules of thumb .br.info[Tips when you're stuck] ](http://blog.creativethink.com/2006/11/tom_hirshfields.html) * [Smart Questions .br.info[Please make a good alternative] ](http://www.catb.org/%7Eesr/faqs/smart-questions.html) * [Strategy Letter V, on Complements .br.info[Joel Spolsky] ](http://www.joelonsoftware.com/articles/StrategyLetterV.html) * ["You and your research" .br.info[Richard Hamming] ](http://www.cs.virginia.edu/~robins/YouAndYourResearch.html) * [Achieving your childhood dreams .br.info[Randy Pausch's Last Lecture] ](http://www.cmu.edu/randyslecture/) --- class: left # Quick reads - Array, Hash, String, Enumerable - SQL, ActiveRecord::Base - KISS, YAGNI - Fallacies of distributed programming - 10 principles of good design - The Agile Manifesto - The Zen of Python --- class: left # Good reads - DDD - ETL, KM - SOLID, CQRS, ES - MCD, BPM(N), CRC - The Mythical Man-Month - The Pragmatic Programmer --- class: left # Dangerous reads - DRY - Metaprogramming - UML (which one-s?) - Design Patterns (GoF) - Matrices / MindMap of skills --- class: center # Still not a dinosaur * 1867: keyboard * 1961: email * 1970: UNIX * 1974: TCP/IP * 1991: HTTP * 2000: REST --- class: center bestof # Game tricks * boost the XP boosters first * try the side quests --- class: left # 1st Rails internship * read a bug, read a stacktrace * fixed it before lunch * read code, lots of code * did stuff, learned tricks * made and read much more code ??? --- class: center bestof # Other jobs Value & Happiness Taste & Aesthetics Community & Sharing ??? --- class: left # 1st Rails internship * asset management company: - how Stock Exchange works - OpenSource licences - personal data: filing paper for french CNIL * bad posture: - neck strain & physiotherapist * parties, nights, transportation, sleep ??? --- class: center bestof # Other jobs Money & Laws Security & Privacy Health & Care ??? http://www.psychologuedutravail.com/psychologie-du-travail/ --- class: left # More on laws * Laws: they're a... Code .br.info[bloat, legacy, side effects, contradicting specs] * "Nemo censetur ignorare legem" .br.info[inquire, model, monitor, keep up-to-date] * Live in a falsely deterministic world .br.info[risk: likeliness? best/worst cases? cost of protection/breach] * Trials & chain of responsibility .br.info["Nemo auditur propriam turpitudinem allegans"] ??? https://www.cnil.fr/fr/declarer-un-fichier (normalement on devrait tous savoir le faire) https://www.donneespersonnelles.fr/declaration-cnil-et-autorisation-cnil (surtout le titre rigolo) https://www.ossir.org/jssi/jssi2015/JSSI_2015_4A_La_Loi_de_Programmation_Militaire_pour_un_petit_OIV.pdf --- class: center bestof # Security IS health & care For you: infosec + process + metrics For others: info leak + impersonation For some: privacy breach can mean DEATH --- class: left # 1st Rails internship ## Some words I still struggle with * DOABLE: needs, possibility, consensus * TODO: cost-effectiveness, timing, priority * DONE: spec'd, made, tested, shipped, doc'd * !OVER: people use it, OPEX, baka-yoke * GROWTH: contonuous improvement, or death * DEATH: decommission is hard work --- class: left # 1st Rails internship * Office Layout - Power structure - Conway's Law * Diversity @ Champs-Élysées - Actual meritocracy is non-menacing - Broadness of info for accurate big-picture - Market equilibrium --- class: center bestof # Other jobs Words have meaning Disambiguisation Trust but verify Self-interest != self-centered ??? --- class: left # Get feedback * Boss & team (shame) * Mentor (external) * Self (delusional?) * Automatic (& fast) --- class: center bestof # Craftsmanship Sharpen your tools Analyse your own work Boy-scout rule --- class: left # Choosing libraries * "Right tool for the job" - what I know and think is best - what I want to play with /!\ * "Right fit for the project" - fitting your problem - maintained, active - business fits - technical debt --- class: center bestof # Code is (for) Business - keep the big picture - long/short term tradeoffs - know where your money comes from/goes to ??? --- class: left # Tech watch & news * media diet & SNR - why: T-shaped (breadth + depth) - when: twitter, podcasts, blogs, books * weak/strong signal, echo chambers? - hotness: read a bit later (HN daily) - follow people that are different --- class: left # FOMO * thought leaders - if it's outstanding, it will reach you - fame is not given, it is made * my trick: skip every other generation - you're hot half the time - you don't look so bad half the time - .info[(phone, home, JS... now 1/3, or is it 1/10, 1/20?)] --- class: left # More reading `1.01**365 == 37.78` `0.99**365 == 0.025` * thecodelesscode.com * HPMOR.com * become a speaker! It's not ego: - sharing is caring - teaching is learning --- class: center bestof # ★ Beware of what you like Strong opinions weakly held When you WANT to believe...
is when you SHOULD NOT believe .info[I didn't learn all that not to change my mind
-- Foucault] --- class: center, middle, happy # Questions? .b[[@abelar_s](https://twitter.com/abelar_s) - [@ParisRB](https://twitter.com/parisrb) - [@RailsGirlsParis](https://twitter.com/railsgirlsparis)] [maitre-du-monde.fr](maitre-du-monde.fr) .contrib[[Contribute to this talk on GitHub!](https://github.com/abelards/abelards.github.com/edit/master/talks/10years_reads.html)] --- class: center, middle, happy # Thanks! .b[[@abelar_s](https://twitter.com/abelar_s) - [@ParisRB](https://twitter.com/parisrb) - [@RailsGirlsParis](https://twitter.com/railsgirlsparis)] [maitre-du-monde.fr](maitre-du-monde.fr) .contrib[[Contribute to this talk on GitHub!](https://github.com/abelards/abelards.github.com/edit/master/talks/10years_reads.html)] --- class: left # The Zen of Python - Beautiful is better than ugly - Explicit is better than implicit - Simple is better than complex - Complex is better than complicated - Readability counts --- class: left # Smart Questions * forget the word Hacker, forget ESR * forget superiority complex, forget exclusionary words * please someone do a better writeup 1. try yourself (RTFM) 2. choose the correct place 3. pick a clear, concise topic 4. explain your steps and give error messages 5. respect people (polite, clear writing, no rush) --- class: left # Tom Hirshfield's Rules .info[ 1. If you hit every time, the target's too near -- or too big. 2. Never learn details before deciding on a first approach. 3. Never state a problem to yourself in the same terms as it was brought to you. 4. The second assault on the same problem should come from a totally different direction. 5. If you don't understand a problem, then explain it to an audience and listen to yourself. 6. Don't mind approaches that transform one problem into another, that's a new chance. 7. If it's surprising, it's useful. 8. Studying the inverse problem always helps. 9. Spend a proportion of your time analyzing your work methods. 10. If you don't ask "Why this?" often enough, someone else will ask, "Why you?" ] --- class: left # FR Legalese .info[ https://www.donneespersonnelles.fr/ CNIL et données personnelles : [devoirs](https://www.cnil.fr/fr/comprendre-vos-obligations) & [sanctions](https://www.cnil.fr/fr/les-sanctions-penales) [GDPR](https://en.wikipedia.org/wiki/General_Data_Protection_Regulation) : 4% du CA O_o; Obligation de conseil
http://www.blogdegerardpicovschi.com/html/articles/290029.html .br.info[ [le professionnel] doit anticiper tous les problèmes qui pourraient survenir, même ceux qui ne sont pas de son ressort ou directement dus à son intervention.] ] ??? Il y a quelques situations clé assez "exemplaires" pour savoir si vous êtes dans le cadre au niveau de la vie privée ou sécurité. Pour la vie privée : imaginez un conjoint volage et un divorce difficile. Si vos caméras, votre site web... peuvent prouver à l'autre conjoint que le premier faute, KO. Pour la sécurité : imaginez une rupture difficile et un-e ex psychopathe violent. Si votre site peut leaker des infos persos (mail, tel, adresse, localisation), la personne est morte.