Upgrade to Pro — share decks privately, control downloads, hide ads and more …

How learning Python/Dart/Clojure made me a better PHP Developer

How learning Python/Dart/Clojure made me a better PHP Developer



June 05, 2017

More Decks by Sebastian

Other Decks in Technology


  1. How learning Python/Dart/Clojure made me a better PHP Developer ViennaPHP

    May 2017 @Sgoettschkes https://stocksnap.io/photo/LTB7BB80VH
  2. CODE

  3. CODE (Almost)

  4. None
  5. A developer is born

  6. A developer is born 1. Write crappy PHP “webapp” 2.

    Make every mistake possible, including wiping production data without a backup 3. Learn Java 4. Write better PHP
  7. A developer is born <?php // login.php require_once(‘header.php’); // ...

    some php ?> <!-- some HTML --> <?php require_once(footer.php’); ?>
  8. A developer is born

  9. A developer is born

  10. A developer is born

  11. Let’s talk languages

  12. PHP from the outside • Javas little brother • Death

    by boilerplate
  13. JS from the outside • Callback hell • Many solutions

    to one problem • So many small libraries
  14. Python from the outside • Getting things done • BIG

  15. Dart from the outside • Modern (built from scratch) •

    Async by default • Small ecosystem
  16. Clojure from the outside • Done is better than perfect

    • First “useable” functional language for me • Libraries, not frameworks
  17. Learn from each other

  18. Learn from Python Readability: if variable is not null: doSomething()

    else: doSomethingElse()
  19. Learn from Python Readability: with open(file.txt', 'w') as file: file.write(Hello

  20. Make common tasks easy: // Constructor ClassName(this.var1, this.var2); Learn from

  21. Make common tasks easy: // Implicit getters/setters print(obj.var1); //this is

    not a public property Learn from Dart
  22. Learn from Clojure Immutability: var1 = 15; var1++;

  23. Learn from Clojure Composability: (defn function1 [var1 var2] (str var1

    ″ - ″ var2))
  24. Learn from Clojure Composability: (defn function2 [var1] (println (function1 ″DEBUG″

  25. Learn from Clojure Syntax doesn’t matter: (defn function2 [var1] (println

    (function [] {:var1 (function2)})))
  26. Not only languages • Infrastructure (vagrant / docker) • Architecture

    (Microservices) • Methodology (Agile/Scrum/Kanban) • ...
  27. Let’s GO Start a pet project

  28. Let’s GO Contribute to Open Source

  29. Let’s GO Use something new for a small project

  30. Let’s GO Small steps get you closer to your goal

  31. None
  32. https://www.dropbox.com/s/6z5aiwa8l09g2pa/86H.jpg