No further than July, another GoTo school was held. This time we decided to add some variety to the standard set of Arduin, Pitons, and others, and Haskell happened. A small squad of 6 young men (a piece of our general platoon of 60 people) cheerfully marched around - calculation, basics of syntax, passed the dedication in the OP by writing factorial, dedicated lists, learned the phrase "parametrically polymorphic function of higher order" and the inherent understanding of types and type classes under the leadership of the corporal Volkov .
We also had information elements, cryptocurrencies, React Native, nix
, and, of course, git
.
And we started writing a book about Haskell.
In general, it turned out fervently.
(Under the cut of pictures of participants, lambdas, ilosos, announcement of the new direction and grants)
In order to entice children, we called the direction "Application Programming: The Course of the Young Fighter 2" (as a logical continuation of KMB1). In the confidence that the logical continuation of Telegram bots is waiting for them, they didn’t even suspect ...
We started with -cards.
Through interesting type expressions we found out why what converges and what diverges, what is equivalence and parser combinators, only without parser. And we learned how currying works.
One of the concepts of direction was the combination of others in oneself: bioinformatics, application programming and data analysis, and the tasks were relevant: to find a complementary DNA chain by encoding DNA in types, to make an HTTP client for the school bank and to determine the ilososa class by the vector of samples the quality of his work.
data AA = A | C | G | T
At the end of the first week, a progressive teaching concept was waiting for the participants: a sports standings. Having learned your question, you had to run ~ 350m and answer immediately after; think while running.
The door to our audience
Somewhere here we studied git
; I considered it my duty to say about sending patches by mail, but we still used GitHub and GitLab. Made simple websites on Pages.
$ git format-patch <...>
Passed higher order functions and touched the folds (folds). Solved the problem of ilosos: given a square matrix ilosos_id
/ sample_id
(rows - ilosos, columns - measuring the quality of sucking), find the class (first, second, ...) of each ilosos.
[0.2, 0.44, 0.9, 0.3, 0.6]
=> 0.488
=> Ilosos3
First, the vector collapses into the mean (here it is arithmetic), and then it is converted to a specific type: Ilosos3 :: Ilosos
.
We also started using stack
: this task could only be passed as a stack project, and only through git
.
Passed the second test with oral and written parts (in both cases the average score was 0.6
) and a lecture on MapReduce tenich , and the time for info-without-intermission came (spontaneous half-hours happened before; the same intermission lasted three pairs).
We discussed how cryptocurrency from the ground up works - from hashes to (almost) bitcoin, what's wrong with messengers (centralization of communications, fragmentation, non-secure by default ...), and - a little bit - what is the general importance of freedoms and why global surveillance is not always a great idea.
Along the way, it turned out that the dystopias are not in use today: 80% of the audience did not read either “1984”, or “We”, or “Brave New World”.
This happened no longer in the audience, but in an open λ-sector.
Before: interesting posters and book illustrator, Stepan Dmitriev
After: from left to right: roll their eyes, lower their eyes, * body *
The unexpected was discovered: if you hear something, but do not do exercises for it (as with Haskell) or do not write it down, it is easy to forget. Therefore, a concept appeared: write a summary. But not simply, but together (in Etherpad).
I am already writing here, you are a contravariant functor!
It became clear that teamwork is difficult.
After the end of the intermission, we split up: little cryptographic fans went to write RSA (and other MapReduce), and little grab-lovers - to write a book on Haskell.
Because if during the course it was difficult for you to read the theory in English from a variety of sources, then why not write your own, good, valid and not terrible?
Book cover
And they wrote the same! (So far, only a chapter, but still.) - More on that later.
There were also masterclasses: on React Native (@kulikovpavel) and Scala (@tvorogme).
In general, it turned out fervently.
But a little. So, an attentive reader will notice that the word for the letter "m" is not above. And we just talked about cryptocurrency, but we didn’t do ours. And even the distributed chat on libp2p did not have time.
Therefore, I want to repeat, and in a big way.
Therefore, we are introducing a new direction: Black Lambda .
Usually, application programmers live on the average level of abstraction: not knowing what is going on in the virtual machine / compiler of their language (and even more so in hardware) in particular detail, but not plunging into abstraction mechanisms more involved than classes and functions - like macros or templates. Or mathematics.
This is not bad, but somewhat limiting.
Therefore, on Lambda, we will move in two directions: tearing abstractions into one, and introducing abstractions into the other. Down and up, in iron and in mathematics, respectively. Let's write hello world on Python - and pick up its interpreter. Write your python. We digest bytecode and data structures. Keyboard and firmware and merkle-trees. We will make our own cryptocurrency. On Rust'e. Let's write on C to understand why Rust is needed. We study monoids, and understand why a semigroup is like a group, only slightly smaller.
The plans - a couple on the street, a walking seminar, strange posters and LEDs in the hair. And bot.
Come on . It will be pleasant doubly . The next shift is from 16 to 29 August .
And if you poboat - you can get a discount or even a grant for the parish. Here are the hacks .
Have fun.
We invite young programmers from 13 to 18 years old to participate, details about the school here . To participate, you must pass a small diagnostic test, it is also possible to receive grants and discounts by performing one of the tasks with the most outstanding Makarov.
If you already have 18, you might be interested in being a mentor or speaker - write .
Source: https://habr.com/ru/post/333828/
All Articles