02838277b2d0d194f1bc6232ace2d04cd19903d3
[Ultimately_Untrue_Thought.git] / content / drafts / survey-data-on-cis-and-trans-women-among-haskell-programmers.md
1 Title: Survey Data on Cis and Trans Women Among Haskell Programmers
2 Date: 2021-01-01
3 Category: other
4 Tags: Haskell, sex differences
5 Status: draft
6
7 Stereotypically, computer programming is both a predominantly male profession and the quintessential profession of non-exclusively-androphilic trans women. Stereotypically, these demographic trends are even more pronounced in "niche", academic, or hobbyist technology communities (_e.g._, Rust), rather than those with more established mainstream use (_e.g._, JavaScript).
8
9 But stereotypes can be _wrong_! The heuristic process by which people's brains form stereotypes from experience are riddled with biases that prevent our mental model of what people are like from matching what people are _actually_ like. Unless you believe [a woman is more likely to be a feminist bank teller than a bank teller (which is _mathematically impossible_)](https://en.wikipedia.org/wiki/Conjunction_fallacy), you're best off seeking _hard numbers_ about what people are like rather than relying on mere stereotypes.
10
11 Fortunately, sometimes hard numbers are available! Taylor Fausak has been administering an annual State of Haskell survey [since 2017](https://taylor.fausak.me/2017/11/15/2017-state-of-haskell-survey-results/), and the [2018](https://taylor.fausak.me/2018/11/18/2018-state-of-haskell-survey-results/), [2019](https://taylor.fausak.me/2019/11/16/haskell-survey-results/), and [2020](TODO: linky) surveys include optional "What is your gender?" and "Do you identify as transgender?" questions, as well as the anonymous response data. 
12
13 I wrote a script to use these answers from the CSV response data for the 2018–2020 surveys to tally the number of cis and trans women among survey respondents. (In Python. Sorry.)
14
15 ```
16 import csv
17
18 survey_results_filenames = [
19     "2018-11-18-2018-state-of-haskell-survey-results.csv",
20     "2019-11-16-state-of-haskell-survey-results.csv",
21     # TODO: 2020
22 ]
23
24 if __name__ == "__main__":
25     for results_filename in survey_results_filenames:
26         year, _ = results_filename.split('-', 1)
27         with open(results_filename) as results_file:
28             reader = csv.DictReader(results_file)
29             total = 0
30             cis_f = 0
31             trans_f = 0
32             for row in reader:
33                 total += 1
34                 if row['What is your gender?'] == "Female":
35                     transwer = row['Do you identify as transgender?']
36                     if transwer == "No":
37                         cis_f += 1
38                     elif transwer == "Yes":
39                         trans_f += 1
40             print(
41                 "{}: total: {}, cis-♀: {}, trans-♀: {}".format(
42                     year, total, cis_f, trans_f
43                 )
44             )
45
46 ```
47
48 It prints this tally:
49
50 ```
51 2018: total: 1361, cis-♀: 26, trans-♀: 19
52 2019: total: 1211, cis-♀: 16, trans-♀: 16
53 ```
54
55 [TODO: 2020 data; I briefly thought about pooling years to get a better sample size, but that's methodologically invalid because probably a lot of the same people took the survey multiple years]