@oantolin
> semi-informal pseudocode
There is #TLAplus nowadays, a very intriguing option as a first "design language". @galdor
Another approach might be to first learn how to write and execute a test plan (maybe the Ruby Cucumber way, or with a #PropertyBasedTesting tool).