Ce diaporama a bien été signalé.
Nous utilisons votre profil LinkedIn et vos données d’activité pour vous proposer des publicités personnalisées et pertinentes. Vous pouvez changer vos préférences de publicités à tout moment.

Joy of Coding Conference 2019 slides - Alan Richardson

242 vues

Publié le

Adventures in Testing, Programming, Teaching, Automating and Marketing

When you already know how to code, it's easy to forget how hard some of that learning was... until you have to teach people. And if all you've ever built are applications, you don't know really know the nuances of writing code to automate them. And if you've written the code but never had to market the applications then you've not really experienced the full joy of coding.

In this presentation Alan will revisit many of his past projects to identify lessons learned. Lessons from: writing commercial and open source tools, multi-user adventure games, REST APIs, test automation, automating applications to make them do things they are not supposed to do, and coding for technical marketing.

Some lessons we will learn:

* The 'install' is the hardest part
* Writing frameworks is too much fun and should be banned
* Applications are just "code calling other libraries"
* Writing a Text Adventure s the most fun and educational thing you'll ever code
* The Dangers of knowing how to code

We will also learn the dangers of knowing how to code and discover how our coding skills can give us an edge, in business and online live in general, if we choose to harness our skills to improve our daily experiences.

Publié dans : Technologie
  • Soyez le premier à commenter

Joy of Coding Conference 2019 slides - Alan Richardson

  1. 1. Adventures in Programming, Automating, Teaching and Marketing Alan Richardson — EvilTester.com — @EvilTester — compendiumdev.co.uk — digitalonlinetactics.com @EvilTester 1
  2. 2. You Have Evolved "I Can Code!" We have evolved to a point where we can survive in a world of Software Note: does not need to be programming - any software development role has enhanced survival abilities. @EvilTester 2
  3. 3. Survive "We can survive" — Normal people. — Non-programmers. May not be able to survive. @EvilTester 3
  4. 4. Requisite Variety Cybernetics: — "Variety can destroy variety" - Ross Ashby — "Variety can absorb variety" - Stafford Beer @EvilTester 4
  5. 5. Thrive "We don't want to just Survive, we want to Thrive" if( PROGRAMMER & TESTER & ARCHITECT & DESIGNER & AUTOMATOR & MARKETEER & TEACHER & OPS){ return SOFTWARE_DEVELOPER; } — You May Not Want to Admit It @EvilTester 5
  6. 6. Aspire to be a Software Developer @EvilTester 6
  7. 7. Getting started is the hardest part. @EvilTester 7
  8. 8. @EvilTester 8
  9. 9. Read More code @EvilTester 9
  10. 10. We used to be exposed to a lot more code — Mainstream Magazines — Multiple Languages — Multiple Platforms — Aimed at kids @EvilTester 10
  11. 11. Bug Detection was for Winners @EvilTester 11
  12. 12. @EvilTester 12
  13. 13. Polyglot by Default @EvilTester 13
  14. 14. @EvilTester 14
  15. 15. Osmosis @EvilTester 15
  16. 16. @EvilTester 16
  17. 17. It wasn't all good though @EvilTester 17
  18. 18. @EvilTester 18
  19. 19. Learn from Super Stars @EvilTester 19
  20. 20. @EvilTester 20
  21. 21. Now it is all in our browser @EvilTester 21
  22. 22. @EvilTester 22
  23. 23. So Much Code Available — Read Code on Github — look for codepen (etc.) runnable examples — YouTube live coding videos — etc. People wanted the 'one true book'. Immersion is what it really took. @EvilTester 23
  24. 24. Writing frameworks is too much fun and should be banned @EvilTester 24
  25. 25. "Dear Alan, I have just started learning Selenium WebDriver and Java and I am going to write a framework to make it easy for anyone to use WebDriver and Java..." @EvilTester 25
  26. 26. "...where do I start?" "Thanks, Someone Who Wants To Save The World" @EvilTester 26
  27. 27. There is nothing wrong with wanting to save the world @EvilTester 27
  28. 28. But don't make that the first thing you try to do @EvilTester 28
  29. 29. What they meant was — I'm finding it hard to learn this stuff — I keep making mistakes — Automating is hard — It seems easier to write the support code — I Want a Job For Life @EvilTester 29
  30. 30. What they needed — Create solutions to problems — Learn and gain experience — Refactor to generalised abstractions — Build libraries rather than frameworks — Refactor back to inline code @EvilTester 30
  31. 31. Frameworks are Incredibly hard to build well and require a lot of experience @EvilTester 31
  32. 32. Dangers of knowing how to code @EvilTester 32
  33. 33. Every problem looks like a reason to create a Tech Startup... @EvilTester 33
  34. 34. ... or a framework, or a system, or an application, or code Every Problem! @EvilTester 34
  35. 35. Problems with Twitter Feed not displayed in time order Cannot filter tweets - too much noise What choice did I have? @EvilTester 35
  36. 36. ChatterScan .com @EvilTester 36
  37. 37. Solved Problem with Tools Known at the time — I did review other tools - Twitter clients, but... — I found the easiest reliable Twitter API wrapper I could find — I had an MVP working in hours — I now have a 'thing' @EvilTester 37
  38. 38. "Normal" might not get as far as tools. "Normal" stops at tools. DANGER - Coder Goes Further @EvilTester 38
  39. 39. The Ultimate Secrets of Coding (*)... which I give away while training beginners — (*) (some of the secrets) @EvilTester 39
  40. 40. But each secret is a surface structure Deeper model comes with experience @EvilTester 40
  41. 41. Applications are just "code calling other libraries" The Secret is to find the right libraries @EvilTester 41
  42. 42. But the art is in... — choosing a library for: easy of use? efficiency? authority? — abstracting it away or not? — trusting it, or testing it? @EvilTester 42
  43. 43. Programmers Don't Actually Remember Anything Google -> StackOverflow @EvilTester 43
  44. 44. But the Art is in ... — wrapping the copied code in a test — refactoring it into our domain — taking responsibility for it @EvilTester 44
  45. 45. IDEs write and fix code Press Alt+Enter repeatedly, don't remember syntax. Control+Space and Code completion, don't try and remember library functionality. @EvilTester 45
  46. 46. But the art is in... — the design, not the syntax — writing what we want to see @EvilTester 46
  47. 47. Programmers Don't Actually Run the App to see if it works Unit Tests Continuous Integration @EvilTester 47
  48. 48. But the art is in... — creating a trust building assertion safety net — creating a robust execution mechanism @EvilTester 48
  49. 49. Everything you need to know you can learn from writing Text Adventures @EvilTester 49
  50. 50. Coding Them @EvilTester 50
  51. 51. You Learn — Parsing, Tokenisation — Domain Specific Languages — Writing Interpreters — Data Generation — Data Structures — Data Compression — Engines — Incremental releases, System, MVP @EvilTester 51
  52. 52. No Limit — Web Apps — REST API — Multi-User @EvilTester 52
  53. 53. Coding Not Always Required — finished games — using an engine — data driven — learn design — DSL creation @EvilTester 53
  54. 54. Playing Them — Architecture Mapping — Testing — Exploring — Reverse Engineering @EvilTester 54
  55. 55. Marketing — Solve Problems — Solution Development @EvilTester 55
  56. 56. Solution Development — Code for individual joy and fun — Survival not the end goal — Thrive as a Software Developer — Build Solutions rather than Software — Help other people Thrive @EvilTester 56
  57. 57. Aspire to be a Solution Developer @EvilTester 57
  58. 58. End Alan Richardson EvilTester.com https://twitter.com/eviltester @EvilTester 58
  59. 59. Games shown — https://www.compendiumdev.co.uk/games/ buggygames/ — https://www.compendiumdev.co.uk/page/ restmud @EvilTester 59
  60. 60. References — various screenshots of magazines from archive.org — MUD MUD: Messrs Bartle and Trubshaw's Astonishing Contrivance — https://www.youtube.com/watch? v=YfX8Z8W9JCE @EvilTester 60
  61. 61. About Alan Richardson — EvilTester.com — CompendiumDev.co.uk — Talotics.com — @EvilTester @EvilTester 61

×