Progemis-võistlus.
Olen täiega võlutud.
Iga päev algab uue ülesandega. Proge ära, leia vastus. Probleemid on suhteliselt kerged ja lahenduvad umbes ühe-kahe ekraanitäie koodiga. Vaja on loogikat + oma keele tundmist.
Ässad võistlevad kiiruses. Lahendused tulevad mõne minutiga. Ma ei loe ülesannet selle ajaga isegi läbi, ammugi ei lahenda / proge / testi.
Ässade tööd saab jälgida kogukonna Redditis:
https://www.reddit.com/r/adventofcode/
Kes paneb sinna lahendusi (koodi), kes videoid, kes kirjeldab mõttekäike.
Mõni kirjutab eriti obskuurses või ebamugavas keeles.
Vi makrod, COBOL, Minecraft (!!!), Brainfuck, Whitespace - see on teie tähetund!
Kes soovib proovida, siis
siin on hea nimekiri.
Mis selle siis minu jaoks huvitavaks teeb?
1) Ülesannete lahendamine on lahe! Mõistus töötab (vähemalt mulle tundub, et).
2) Iga ülesandega õpib midagi. Leksikoloogiline topoloogiline sortimine ftw!
Counter class!
3) Huvitav on vaadata, kuidas "need teised" on sama probleemi lahendanud. Mõnikord mõtleb kogukond minuga samamoodi - kõik teevad rekursiooni ja mina ka, mina ka! Mõnikord on mul täiesti ainulaadne lahendus ja selle üle on ka hea meel. Day 6 Part 1 - mulle tundub, et mul on seniloetuist kõige kiirem algoritm. Tegelt kindlasti ei ole, aga ikkagi!
4) Kõige popim keel on Python. See on nii mugav, et selle kasutamine on natuke sohi tegemise moodi. Ma oskan sellest täpselt kolme asja - list, set, dict. Aga seni on piisanud.
5) Ässade koodi on huvitav lugeda.
6) On tore näha, kuidas keegi küsib nõu ja on mõtlemisega umbe jooksnud kohas, mis mulle üldse keerukas ei olnud :)
AoC ümber on elav kogukond.
Inimesed visualiseerivad ülesandeid ja lahendusi.
Ehitavad graafikuid.
Otsivad läbi ajaloo
keerukamaid ülesandeid.
Tehke ka!
Edit:
Jõudsin juba rõõmustada, et see pole Project Euler ja saab hakkama ka ilma arvuteooriata, kui nägin esimest viidet Mersenne'i täisarvudele.
Päev 9, marmorkuulid:
Ei saanud hakkama ja spikerdasin.
1. osa tuli lihtsalt, aga 2. jäi kiiruse taha kinni (
runtime oleks olnud tundides, vähemalt.)
Matemaatilist lahendust ei leidnud.
pypy'd installida ei tahtnud (see oleks võib-olla aidanud).
Vihje kasutada kiiremat andmehoidlat viis deque'ni, selle sain küll tööle, aga sama ebaefektiivselt.
Lõpuks lugesin
seda lõime ja võtsin
selle koodi, st tegin puhtalt maha.
Päev 13, kärud ja rajad:
Pidanuks panema kirja, mida ma iga päevaga õpin.
Täna vaevlesin pikalt selle käes, kuidas listist mitut elementi korraga eemaldada (vastus: ehita uus list,
[x for x in previous_list if condition]) ja kuidas korraga itereerida nii listi kui selle järjekorranumbrit (vastus:
i, item = enumerate(list)) ja püüdsin liiga optimeeritud lahendust ehitada. Lisaks harjutasin klasside ja dict'ide kasutamist. Lisaks üks raskesti debugitav loogikaviga - lahendus töötas test-sisendi peal, aga mitte päris-. Lõpuks tuli Alo ja aitas :)