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.

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

    View Slide

  2. there are two hard things in
    computer science:

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  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

    View Slide

  7. [1] cache invalidation
    > the problem

    View Slide

  8. caching data improves performance
    but stale data must be removed
    from the cache (invalidated)

    View Slide

  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

    View Slide

  10. quick!
    picture a software engineer

    View Slide

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

    View Slide

  12. [1] cache invalidation
    > solutions

    View Slide

  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

    View Slide

  14. “No feigning surprise”, from the Recurse Center social rules
    https://www.recurse.com/manual#sub-sec-social-rules

    View Slide

  15. [1] cache invalidation
    > your thoughts?

    View Slide

  16. [2] naming
    > the problem

    View Slide

  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

    View Slide

  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

    View Slide

  19. # what do these names assume?
    def foo():
    bar = “hello, world!”
    print(bar)

    View Slide

  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

    View Slide

  21. [2] naming
    > solutions

    View Slide

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

    View Slide

  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

    View Slide

  24. [2] naming
    > your thoughts?

    View Slide

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

    View Slide

  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

    View Slide

  27. you want an engineering team
    with “diverse” members
    how many do you need?
    - the “token hire error” via me, just now

    View Slide

  28. - Kelly Ellis, engineering lead at Medium
    https://twitter.com/justkelly_ok/status/854030175410864128

    View Slide

  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/

    View Slide

  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

    View Slide

  31. [0] off-by-one errors
    > solutions

    View Slide

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

    View Slide

  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/

    View Slide

  34. [0] off-by-one errors
    > your thoughts?

    View Slide

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

    View Slide