GithubHelp home page GithubHelp logo

togakangaroo / tech-terms Goto Github PK

View Code? Open in Web Editor NEW
43.0 5.0 16.0 411 KB

A repository of technical terms and definitions. As flashcards.

Home Page: http://georgemauer.net/2018/09/23/announcing-tech-terms-for-memorization.html

Python 33.05% Jupyter Notebook 66.95%
studying terminology anki python3 creative-commons

tech-terms's Introduction

Creative Commons License
Technical Terms Flashcard Deck is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License.

Tech Terms

Background

Throughout most of my life I've been very negative on the role of memorization in education, considering it a bad way to learn a topic and frankly, beneath me. Still, when I found about Anki in late 2017 I - after browsing some of the shared decks - decided to try it to do something I've always wanted to do: memorize all the Chinese provinces and their capitals.

Shocked at how effective this was, I continued with geography; memorizing all the countries, capitals, flags, water bodies, and states of several more countries. I also shifted to history, memorizing important dates and events. As I did this, I was surprised to realize an additional benefit - by having geography and the broad outline of history at my beck and call, powering through dense history books became far easier. I no longer had to struggle to establish context or cross reference maps, everything just made sense. I began reconsidering the role of memorization in the learning process.

I am a software developer and a manager. As part of my job, I act as support to sales and recruiters who frequently refer to me to orient them with one piece of tech or another. More importantly, I do a great deal of mentoring, spending a lot of time helping novices with organizations like Operation Code and Operation Spark (no relation to each other). I have seen over and over again people get completely overwhelmed and disoriented with the amount of information, areas of competency, and just flat out terminology out there. It is my contention that the same memorization techniques can help get people grounded in the field.

So this is a project to create a list of terms that might be helpful for familiarizing someone with the industry and in general how developers speak. Each term is accompanied by a short, flash-card-able definition. The goal is not to be comprehensive or even very precise, just to give users enough of a head start to make the rest of their journey easier.

Plan

  • Put together big, unsorted list of terms to define (aim for a few hundred terms)
  • Denormalize and flatten list
  • Define terms
  • Create transformer to transform into Anki.
  • Publish shared deck
  • Create and administer a poll to figure out the most important terms
  • Create several sets of flashcards of increasing granularity
  • $$$ Profit (Won't work, this is licensed as Creative Commons)

Contribute

Terms are written in org mode in the terms.org file. To add or edit terms, open the file in the Github or any text editor (one with org-mode support is encouraged but not necessary for this), make edits, and give me a pull request. Remember, the goal is not to be comprehensive, so much as memorizeable. Therefore, please limit term and defintion lengths to the somewhat arbitrarily (and because it worked for me) current width of the table:

  • 52 character maximum for terms
  • 220 character maximum for definitions

Python Script To Build Anki apkg file

While there is no problem with just using the table directly to study, I very much prefer using the free Anki program. An Anki deck is therefore provided and can be built from the terms.org file.

You can generate an apkg file from terms.org by running parse_terms.py from the generator/ directory. For this you will need a version of Python 3 and Pipenv. Nothing will be installed globally.

> cd generator
generator> pipenv install
generator> pipenv run python ./parse_terms.py

This will generate a tech_terms.apkg file in that directory. This file can now be opened with Anki.

Jupyter Notebook

There is the generator/playground.ipynb for playing around with the script. To run it you must first set up the pipenv environment as a Jupyter kernel target.

To run it

> cd generator
generator> pipenv install --dev
generator> pipenv run python -m ipykernel install --user --name=tech-terms-generator

You may then run jupyter notebook as normal and select this kernel

Future Work

Look at Glossary Tech, can we integrate that somehow? What is their license? How do we control quality?

tech-terms's People

Contributors

ngscheurich avatar togakangaroo avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.