This is a quick look at the Elixir Ecosystem Survey 2020. Data was obtained from Hugo Baraúna's GitHub repo.
The Jupyter notebook is published as a Binder: or can be viewed statically using NBViewer.
This repo contains the raw and processed data from the responses of The Elixir Ecosystem Survey 2020.
We have all this data from the Elixir Ecosystem Survey 2020 (thanks https://github.com/bcardarella for that). But, the raw data is not easy to query it, explore and make visualizations.
So, this repo contains a processed version of that data, with a data model that make it easy to query it.
This repo contains two files:
- elixir-ecosystem-survey-2020-processed-data.dump: this file contains a PostgreSQL dump with the processed data. You can load that to a PostgreSQL instance and start exploring it
- elixir-ecosystem-survey-2020-raw-data.csv: this file contains the original CSV export from the survey (you can also find the original file here)
git clone [email protected]:hugobarauna/elixir-ecosystem-2020-reponses-data.git
cd elixir-ecosystem-2020-reponses-data
createdb -T template0 elixir_survey_results
psql elixir_survey_results < elixir-ecosystem-survey-2020-processed-data.dump
Here are two examples of queries you can run:
-- Is there any relationship between how the dev debug and the number of years using elixir?
SELECT
r. "How long have you been using Elixir?",
sum((r. "How do you debug?" -> 'IO.{puts, inspect}')::BIGINT) AS "Debug using IO.{puts, inspect}",
sum((r. "How do you debug?" -> 'IEx.pry')::BIGINT) AS "Debug using IEx.pry",
sum((r. "How do you debug?" -> 'break!')::BIGINT) AS "Debug using break!",
sum((r. "How do you debug?" -> ':debugger')::BIGINT) AS "Debug using :debugger",
count(r. "How do you debug?" -> 'Other') AS "Debug using Other"
FROM
"responses" r
WHERE
r. "How do you debug?" -> 'Other' IS NOT NULL
AND r. "How do you debug?" -> 'Other' <> '0'
GROUP BY
1
ORDER BY
1
-- Is there any relationship between companies using Elixir and the number of years the person uses Elixir?
SELECT
*
FROM
crosstab (
$$
SELECT
r. "How long have you been using Elixir?",
r. "Does your company use Elixir?",
COUNT(r. "Does your company use Elixir?")
FROM
"responses" r
WHERE
r. "How long have you been using Elixir?" <> ''
GROUP BY
1,
2
ORDER BY
1,
2 $$
,
$$
VALUES(FALSE), (TRUE)
$$
) AS ct ("How long have you been using Elixir?" TEXT, "Company DOESN't use Elixir" BIGINT, "Company USES Elixir" BIGINT)