- Programming Languages I Have Been Meaning To Try But Haven't Got Around To Yet
- History
- I got to the workshop late!
- Resources
Welcome to PLIBMTTBHGATY! This repo is a collection of resources for participants taking part in a PLIBMTTBHGATY event. If you're reading this, you're probably at our workshop at !!Con 2022.
@deniseyu: I just say "plibem...magotty" and pretend the letters in the middle don't exist 😂
@spike01: plib-muh-tuh-tub-huh-gaty - but the real pronunciation is the friends we made along the way
Star Simpson (https://twitter.com/starsandrobots) organized the first PLIBMTTBHGATY about 10 years ago, and events have been run all over the world!
From the Thoughtbot blog, the event is:
a lightly-structured party where people get together and work on a project in a new programming language, either with or just near each other.
This all started with the realization that plenty of people have a side-project in mind to work on, that it's more fun to work together, and that many of us are just waiting for a good excuse to get started.
@deniseyu and @spike01 organised their first PLIBMTTBHGATY in London in 2018, and are running their first online one at !!Con 2020.
While PLIBMTTBHGATY is nominally about learning a new programming language, we have seen participants have a great time trying out anything new that they haven't got around to yet. This could be a framework (Rails, Flask, Phoenix, React, Unity), a library (Pandas, D3, Tensorflow), or even hardware hacking. It's your day - work on whatever brings you happiness and growth.
No problem! Start by checking out our slides. Then, choose from:
- Sending us a DM on Discord
- Post in #plibmttbhgaty with what you want to work on
- Join one of the *-party channels, introduce yourself and join in!
All of these require free registration!
- replit - collaborative, real-time editor. Most mainstream languages available.
- Exercism - learning tracks that take you through a series of increasingly difficult exercises to learn a language
- Codewars - bite-sized programming challenges in a lot of languages, with the ability to check out other people's solutions at the end.
- swkBerlin kata bootstraps
- templates with a test framework
- Strong style
pairing
- the main takeaway from this article is:
For an idea to go from your head into the computer it MUST go through someone else's hands
- Prepare
- Work closely together
- Learn and facilitate learning
- Establish a rhythm
- Communicate effectively
- Embrace challenges
-
- this is a long, comprehensive article, but might help answer any questions you have
-
Tuple's guide to pair programming
- a fantastic guide by a company who specialise in remote pairing software
- A group of people, as few as 3 and as many as 8, come together in the same space—virtual or physical.
- The ensemble agrees on a task and discusses what it means to have finished that task. They begin with the end in mind.
- Someone takes the role of driver and someone else takes the role of typist. Everyone else feels free to fulfil the ensemble’s remaining needs. The roles rotate through the group during the session.
- Sometimes we rotate roles based on a timer and sometimes we rotate roles based on completing various moves. The ensemble agrees on how they’ll work for this session.
- The typist takes control of the keyboard. They act as a kind of intelligent input device, capable of interpreting somewhat vague instructions and turning them into code.
- The driver directs the typist through various microsteps to make progress on the ensemble’s agreed-upon task.
- The rest of the ensemble supports the driver, writing things down, doing research, answering questions, and offering advice when the driver asks for help.
- Although the ensemble can rotate roles as they wish, I find good results when the typist ends their turn by taking over as the driver.
- It helps to have at least one person present who can confidently and quickly answer questions about the feature that the ensemble is trying to deliver, in order to avoid them becoming stuck and needing to switch tasks.
- We encourage members of the ensemble to take care of themselves, which means that they leave when they need to and return when they’re ready. The ensemble is usually able to continue even in the temporary absence of one of its members
-
Most languages will have a crash course linked from their project/Github page
- the people creating and maintaining languages want to help you learn!
-
In our experience, the best projects to work on are:
- something small - you can complete it, as a pair/group, during the workshop.
- something fun and whimsical - a command line program to record the Pokemon you've caught, a band-name generator, a Markov chain based on a famous Twitter account's tweets or your favourite public-domain novel!
-
Some languages have guides that take a test-based approach, whether with a full CLI-based workflow, or implementing them yourself:
- Rust: rustlings
- Ruby: Ruby koans
- Clojure: Clojure koans
- Go: Learn Go With Tests
- Java: Java koans
- Python: Obey the testing goat!
-
The "Learn you an for a great(er) good!" series:
- Haskell: Learn You A Haskell For Great Good!
- Erlang: Learn You Some Erlang For Great Good!
-
Advent of Code problems from previous years. As a bonus, previous year's events often have solutions posted on Reddit, if you get stuck or want to see idiomatic solutions
-
Small games or katas: