exercism / go

Exercism exercises in Go.
https://exercism.org/tracks/go
MIT License
978 stars 653 forks source link

Choose core exercises structure #794

Closed robphoenix closed 7 years ago

robphoenix commented 7 years ago

From #717:

If you haven't already, now would be a good time to do the following:

- [x] add a rough estimate of difficulty to each exercise (scale: 1-10) - [x] add topics to each exercise

If possible, leave 3 or 4 simple exercises as (core: false, unlocked_by: null), as this will provide new participants with some exercises that they can tackle even if they have not finished the first core exercise.

robphoenix commented 7 years ago

If you've not already seen this, it should be useful https://github.com/exercism/discussions/issues/175#issuecomment-318243990

tleen commented 7 years ago

I'm going to be mulling these over in my head for awhile as we have a ton of exercises. For starters what does everyone think our most simple exercises are?

These are our difficulty 1 exercises:

tleen commented 7 years ago

I'm gonna say our easiest exercises are:

Then very similar:

A little harder but also similar:

This is my rough read on the first few exercises.

robphoenix commented 7 years ago

tbh I'm finding this quite hard to conceptualise in my head how to sort the exercises, and have been kind of avoiding it. I'm going to need to sit down with a pen and paper and map it out I think.

tleen commented 7 years ago

Me too. It is really hard even doing baby steps like above. When confronted with a problem I don't know how to fix my first instinct is always to build something just to help get my head around the problem. The visualizer is awesome, and great for seeing the track come together, but at the same time I am much more of a command-line show-me-in-text guy. I spent some time over the weekend making a quick and dirty exercism-config-to-csv command line tool that would let me look at configs/sort them like a spreadsheet.

Some more quick tooling and adding a descriptive field (#798) may make this much easier.

Trying to map it out all at once is too prohibitive. We should start with some baby steps: identifying core and perhaps sequencing the difficulty 1&2's then move on from there.

Ultimately we will get through this, take a look at our early work and think, "nope it can be done better" and fix it. We will make some errors, but that is part of the process and we can always fix later!

tleen commented 7 years ago

Some more data that may be helpful, this is the difficulty -> exercise listing:

D # Exercises
1 8 hello-world, leap, gigasecond, hamming, raindrops, accumulate, etl, scrabble-score
2 9 pangram, bob, difference-of-squares, grains, luhn, rna-transcription, roman-numerals, strain, nucleotide-count
3 25 clock, acronym, triangle, series, parallel-letter-frequency, isogram, crypto-square, largest-series-product, sieve, protein-translation, anagram, word-count, robot-name, atbash-cipher, phone-number, prime-factors, nth-prime, beer-song, wordy, meetup, tree-building, kindergarten-garden, simple-cipher, tournament, all-your-base
4 13 twelve-days, house, pascals-triangle, bank-account, food-chain, perfect-numbers, allergies, diamond, custom-set, pig-latin, matrix, word-search, ledger
5 18 error-handling, secret-handshake, queen-attack, sum-of-multiples, pythagorean-triplet, circular-buffer, transpose, diffie-hellman, grade-school, saddle-points, binary-search, binary-search-tree, paasio, minesweeper, poker, variable-length-quantity, change, bowling
6 2 palindrome-products, robot-simulator
7 4 bracket-push, say, ocr-numbers, pov
8 1 forth
9 2 react, connect

(I've been building some stuff to help us get more information from the track configuration(s): dump track configuration, get all track configurations as a single file and run reports against that file.)

tleen commented 7 years ago

FWIW, here are the core exercises in other tracks:

Track Exercises
bash hello-world, leap, pangram, error-handling
c hello-world, isogram, gigasecond, hamming, grains, beer-song, difference-of-squares, binary-search, roman-numerals, allergies, atbash-cipher, phone-number, clock, sieve, robot-simulator, pascals-triangle, binary, palindrome-products, scrabble-score
csharp hello-world, leap, bob, sum-of-multiples, two-fer, raindrops, nucleotide-count, accumulate, grade-school, kindergarten-garden, clock, binary-search, allergies, saddle-points, markdown, book-store
ecmascript hello-world, leap, rna-transcription, simple-cipher, pangram, bob, gigasecond, space-age, binary, prime-factors, matrix, linked-list, pascals-triangle, secret-handshake, grade-school, robot-name, wordy, list-ops
fsharp hello-world, leap, bob, sum-of-multiples, space-age, raindrops, accumulate, grade-school, clock, beer-song, kindergarten-garden, queen-attack, robot-simulator, allergies, ocr-numbers, tree-building, binary-search-tree, pig-latin
java hello-world, two-fer, hamming, gigasecond, scrabble-score, difference-of-squares, secret-handshake, matrix, triangle, rotational-cipher, saddle-points, flatten-array, word-count, robot-name, linked-list, binary-search, bank-account
javascript hello-world, leap, rna-transcription, simple-cipher, pangram, bob, gigasecond, space-age, binary, prime-factors, matrix, linked-list, pascals-triangle, secret-handshake, grade-school, robot-name, wordy, list-ops
lua hello-world, hamming, house, difference-of-squares, binary-search, matrix, isogram, bank-account, nth-prime, diamond, run-length-encoding, robot-name, leap, custom-set, pig-latin, list-ops, binary, allergies
r hello-world, leap, hamming, raindrops, bob, anagram, sum-of-multiples, word-count, phone-number, rotational-cipher, largest-series-product