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

The Hardest Problems in Computer Science

The Hardest Problems in Computer Science

AlterConf Berlin 2017 (https://alterconf.com/speakers/anjana-vakil)

They say there are two hard problems in computer science: cache invalidation, naming, and off-by-one errors.

In this talk, we'll consider these problems in the context of diversity and inclusion in the CS/tech space, where they seem to get even harder:

- Cache invalidation: The assumptions we make can be extremely damaging, and need to be carefully monitored and easily rejected
- Naming: Names hold great power for individuals and communities, which means we have to take great responsibility for how we use and respond to them
- Off-by-one errors: Individuals from marginalized groups often find themselves the odd-ones-out in their tech team/community, which undermines alleged diversity goals

We'll explore these problems, and possible solutions, via recent studies, surveys, talks, and writings from the tech community. I'll share my perspective, as a female engineer with a humanities background, and you'll have time and space to share yours. Together, we'll get motivated and prepared to tackle these problems, individually and collectively, to make the tech world an easier place for everyone.

654527a5cff1756177ef0b1bb0af7aa3?s=128

Anjana Sofia Vakil

May 13, 2017
Tweet

More Decks by Anjana Sofia Vakil

Other Decks in Programming

Transcript

  1. > the hardest problems in computer science > @AnjanaVakil >

    AlterConf Berlin 2017
  2. there are two hard things in computer science:

  3. there are two hard things in computer science: [1] cache

    invalidation
  4. there are two hard things in computer science: [1] cache

    invalidation [2] naming things
  5. there are two hard things in computer science: [1] cache

    invalidation [2] naming things [0] off-by-one errors
  6. there are two hard things in computer science: [1] cache

    invalidation [2] naming things [0] off-by-one errors - Phil Karlton via Tim Bray via Jeff Atwood https://twitter.com/codinghorror/status/506010907021828096
  7. [1] cache invalidation > the problem

  8. caching data improves performance but stale data must be removed

    from the cache (invalidated)
  9. amazon.com/Thinking-Fast-Slow-Daniel-Kahneman/dp/0374533555 we think with 2 systems: 1: fast, intuitive, emotional

    2: slow, deliberative, logical - D. Kahneman, Thinking Fast and Slow
  10. quick! picture a software engineer

  11. - Ola Gasidlo, engineer at Mozilla https://twitter.com/defunkt/status/426104782894284800

  12. [1] cache invalidation > solutions

  13. “Instead of assuming what someone’s position or career is, ask,

    ask politely, and don’t act surprised at the answer.” - Sailor Mercury, “Coding like a girl” https://medium.com/@sailorhg/coding-like-a-girl-595b90791cce
  14. “No feigning surprise”, from the Recurse Center social rules https://www.recurse.com/manual#sub-sec-social-rules

  15. [1] cache invalidation > your thoughts?

  16. [2] naming > the problem

  17. 70% “of the source code of a software system consists

    of identifiers” - F. Deißenbock & M. Pizka, “Concise and Consistent Naming” via P. Hilton & F. Hermans, “What science says about naming” http://hilton.org.uk/blog/science-on-naming
  18. “the names chosen as identifiers are of paramount importance” -

    F. Deißenbock & M. Pizka, “Concise and Consistent Naming” via P. Hilton & F. Hermans, “What science says about naming” http://hilton.org.uk/blog/science-on-naming
  19. # what do these names assume? def foo(): bar =

    “hello, world!” print(bar)
  20. J. Terrell et al., “Gender differences and bias in open

    source: Pull request acceptance of women versus men”, via The Guardian https://www.theguardian.com/technology/2016/feb/12/women-considered-better-coders-hide-gender-github
  21. [2] naming > solutions

  22. # self-explanatory == inclusive def greet_user(): greeting = “hello, world!”

    print(greeting)
  23. “continuing to publicly present as a woman is important for

    solidarity” - developer/GitHub contributor Heather Booker, “I applied to Outreachy, and I didn’t use my name” heatherbooker.github.io/blog/code/life/2017/03/14/i-applied-to-outreachy-and-didnt-use-my-name.html
  24. [2] naming > your thoughts?

  25. [0] off-by-one errors > the problem

  26. you want a fence 30 meters long with posts spaced

    3 meters apart how many posts do you need? - the “fencepost error” via Wikipedia https://en.wikipedia.org/wiki/Off-by-one_error#Fencepost_error
  27. you want an engineering team with “diverse” members how many

    do you need? - the “token hire error” via me, just now
  28. - Kelly Ellis, engineering lead at Medium https://twitter.com/justkelly_ok/status/854030175410864128

  29. Photo of Gloria Kimbwala via TechCrunch tctechcrunch2011.files.wordpress.com/2016/01/gloria_kimbwala.jpg “My path through

    technology and through computer science — I was always very aware I was the only minority and the only woman in all of my classes.” - Gloria Kimbwala, engineer at Square, via TechCrunch https://techcrunch.com/2016/01/12/meet-squares-gloria-kimbwala-an-engineer- dedicated-to-advancing-diversity-in-tech/
  30. - Khalid, “Barriers to entry in the JavaScript community”, JSConf

    EU 2017 http://2017.jsconf.eu/speakers/khalid-barriers-to-entry-in-javascript-communities.html
  31. [0] off-by-one errors > solutions

  32. - Amy Nguyen, engineer at Pinterest https://twitter.com/amyngyn/status/785532779106754560

  33. “Hire more damn women” - Christina Sass, CEO of Andela,

    via TechCrunch techcrunch.com/2017/03/08/theres-a-simple-solution-to-techs-gender-imbalance-hire-more-damn-women/
  34. [0] off-by-one errors > your thoughts?

  35. > thank you! > @AnjanaVakil > AlterConf Berlin 2017