Bluffers guide to elitist jargon - Martijn Verburg, Richard Warburton, James Gough

1,664 views
1,512 views

Published on

Have you always secretly wondered what the heck 'monads' are? How about 'Tail-call recursion?' or 'monomorphic dispatch'? If this sort of terminology has ever left you with self-doubts or seething with anger because someone is confusing you with elitist terminology, then this is the talk for you! Dr Richard Warburton and the Diabolical Developer + James Gough will take a humorous look at the wide range of incomprehensible terminology in our industry today. They'll cover the concepts behind the jargon with simple examples and some practical tips on how to blend the terminology into your day to day technical conversations without scaring everyone off. At the end of the talk you'll be ready to battle it out on tough mailing lists (Scala!) and have a new appreciation for some of the academic principles behind our craft. Oh and as for monads? Well they're just like burritos, except they're not...

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
1,664
On SlideShare
0
From Embeds
0
Number of Embeds
27
Actions
Shares
0
Downloads
0
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide
  • \n
  • \n
  • It’s the Community night tonight, so come on down\n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • Enter stage for Job Interview.\n\n5 mins\n
  • JG: Leaning towards other and in the most earnest tone possible, "Wow, this guy sounds like he knows a lot about vim. If he has such passionate opinions backed up such complex terminology then he must be a really well informed and good developer."\n\nRW: leaning in "I've met this guy before - he's a bluffer!"\n\nJG: "You know, we've got a position open at work, would you be interested in interviewing?"\n\n- How do you do your source control and build management?\n\n10mins\n\n
  • \n
  • http://en.wikipedia.org/wiki/Buzzword_bingo\n\nAsk audience for some of their favourites\n
  • \n
  • \n
  • 15mins\n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • 25 mins\n
  • \n
  • \n
  • \n
  • \n
  • \n
  • 30mins\n
  • \n
  • \n
  • \n
  • \n
  • \n
  • 35 mins\n
  • \n
  • \n
  • \n
  • \n
  • 40mins\n
  • \n
  • Bluffers guide to elitist jargon - Martijn Verburg, Richard Warburton, James Gough

    1. 1. The Bluffers Guide to Elitist JargonJim Gough@JavaJimLondonMartijn Verburg@kariannaRichard Warburton@RichardWarburto
    2. 2. Contents• Introduction to JUGs• Business Jargon• Java Jargon• Computer Science Jargon 2
    3. 3. What is a user group? 3
    4. 4. What is a user group? Welcome to the London Java Community. 4
    5. 5. What is a user group? It’s my first time at the London Java Developer Community. What’s it all about? 5
    6. 6. The Wanderer 6
    7. 7. The Alcoholic 7
    8. 8. The Unwilling Other Half 8
    9. 9. The Meetup.com Stalkers 9
    10. 10. The Jug Leader/Recruitment Agent 10
    11. 11. The Enthusiastic Job Seeker 11
    12. 12. The Passionate Vim Advocate 12
    13. 13. Bluffer vs Realityhttp://abibritton.wordpress.com/2011/02/22/live-and-mediated-performance-the-matrix/ 13
    14. 14. What is it like working in a large corporation? What’s it like working in a large Corporation? Can be a lot of fun! Politics and red tape Lots of buzz words!! 14
    15. 15. Buzz Word Bingo ? Reach Out SynergyTouch Base LeverageCircle Back Around Cross Pollination Bleeding Edge Flying Blind 15
    16. 16. Why should we care about buzz words?• Increases complexity of the problem domain.• Causes confusion when specifying requirements.• Someone won’t know the acronyms or buzz words.• In house - more training needed for new starts. 16
    17. 17. Financial Terms• Exchange – Market place, people buy things and sell things.• Arbitrage – If it’s cheaper at Best Buy and you sell it on Ebay for more...• Execute (or hit) – Buy or sell it• Hedge – Buy something else to minimize impact of massive price movement 17
    18. 18. Accounting Terms• Acid Test Ratio – Assets that can be converted to cash to cover current liabilities• Bad Debts – All debts are bad?• Intangible Assets – Long term value but no physical identity. – Eg. Patents, trade marks or brands• Bootstrapping – Make your own money to start a firm 18
    19. 19. Enough! Too much business talkThis is a technical conference! 19
    20. 20. Hotspot It can also be easy to get tied up in management. A compiler that runs at runtimeUses info about programs executionFocusses on compiling small parts of the application, the “hotspots” 20
    21. 21. Lambdas Ah yes, what about this Java 8 stuff. What are Lambdas? A function without a name (x, y) -> x + y 21
    22. 22. Lambdas 22
    23. 23. Abstract Syntax Tree Sounds a bit abstract... Is it like an abstract syntax tree?A way of representing a program as atree, used inside a compiler.A Node = a construct in the program.An Edge = Being a child in the ASTmeans that youre "inside" something. 23
    24. 24. Abstract Syntax Treeint x = 2 + y 24
    25. 25. Latch Do you know anything? What is a latch?A concurrency primitive implemented asa class.Holds all threads up until they’ve reacheda certain point 25
    26. 26. Memory Barrier• A type of ordering barrier on memory operations.• CPUs reorder instructions• Can change behaviour of multi-threaded programs• Fences enforce an ordering.• Example: the volatile keyword (since Java 1.5) 26
    27. 27. Computer Science Terminology Industry doesnt have anything on academia in terms of elitist jargon! 27
    28. 28. Linear Regression• When the relationship between multiple variables looks like a straight line. 28
    29. 29. Markov Chain, YES!• A state machine where transitions have probabilities 29
    30. 30. Gaussion Distribution AKA “Normal Distribution” 30
    31. 31. Continuous Uniform Distribution 31
    32. 32. Poisson Distribution 32
    33. 33. Poisson Distribution• Shows the probability of a number of events happening in an interval.• Lambda is the mean and the variance 33
    34. 34. Kronecker Deltaint kroneckerDelta(int x, int y) { if (x == y) { return 1; } else { return 0; }}As a Matrix100010001 34
    35. 35. False Positives• “Are there any Java Developers in the room?”• False Positive • “Yes” for an empty room.• False Negative • “No” for this room. 35
    36. 36. Monomorphic Dispatch• A method call has only one possible implementation• In Java we can call methods on: – Interfaces – Virtual methods on Objects• Not all methods are monomorphic 36
    37. 37. Monomorphic DispatchList<String> strings = new ArrayList<>();strings.add(“a”); // monomorphicif (randomNumber > 0.5) strings = new LinkedList<>();strings.add(“b”); // polymorphic 37
    38. 38. Tail Call Recursionint factorial(int n) { return fact(n, 1);}int fact(int n, int acc) { if (n == 0) return acc; else return fact(n - 1, acc * n);} 38
    39. 39. Not Tail Call Recursionint factorial(n) { if (n == 0) return 1; else return n * factorial(n - 1);} 39
    40. 40. Trampolining 40
    41. 41. NO - I mean indirect jump vectors!• A memory location holding an address.• Execution Jumps to the memory location and then immediately jumps to that address.• Why? • Interrupt Routines • Code performing low-level I/O • Avoids assuming that these programs are located in one place. 41
    42. 42. Or maybe I mean in LISP? Doubly overloaded - this is the high level meaning • An approach to implementing Tail Call Recursion • Problem: if you recurse a lot you eventually run out of stack space and your program crashes • Your paying customers are now sad pandas.• 42
    43. 43. What is Trampolined Style? A trampoline is a function whose purpose is to call other functions in a program. • All functions are called via the trampoline. • Program functions: • dont call other program functions • return the address of the function to the trampoline • return the arguments to the trampoline• 43
    44. 44. Conclusions on Complex Terminology• Complicates our domain.• Confuses our developers.• Software Engineering – Domain driven design – Pitching at the right level• See if you can spot the bluffers this week! 44
    45. 45. Jim Gough@JavaJimLondonMartijn Verburg@kariannaRichard Warburton@RichardWarburto See you at the Bar!

    ×