Cіпласпластик
525 subscribers
159 photos
35 videos
2 files
252 links
🇺🇦 Про айті та дотичні теми загалом, ну й трохи про C++.

Мої емоджі:
https://t.me/addemoji/AdaptiveDevIcons
https://t.me/addemoji/VehicleBrands
Download Telegram
Зненацька натрапив на переклад книги «Learn You a #Haskell for Great Good!» (також відомої як LYAH) українською 🇺🇦. Я читав її двічі й досі вважаю найкращою книгою з хаскелю для початківців (чого на жаль не можу сказати про аналог для ерлангу). Той, хто знає мене довше, ніж 10 років, гарантовано чув про неї теж, бо я всіх тоді хаскелем запарив ))

Навіть якщо ви ніц не писатимете на хаскелі по роботі чи для себе, все одно варто з цією мовою розібратися, бо це серйозне джерело інсайтів щодо програмування в цілому.

Офіційний сайт перекладу тут, а оригіналу — тут.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍51👀1
А памʼятаєте цю статтю, що я кидав сюди? Вже три тижні пройшло, а я досі не крінжую з того, що там понаписував, а значить, не така вже й погана вона — почитайте.

Ну так от, я мусив на цю тему ще провести 15-хвилинну доповідь у нас в компанії. Але якось нудно про це розповідати, тож натомість я зайшов зі зворотного боку з темою «Want to get better at C++? Learn other languages», бо це буквально мій досвід.

Наприклад, ООП у С++ я зрозумів, тільки коли на #Java почав писати (а пізніше з #Io чи з чимось таким збагнув, що таке ООП насправді 😁). А темплейти та STL зміг ефективно використовувати після того, як на #Haskell покодив певний час. А actor model — завдяки #Erlang вдуплив (для С++ до речі є ось CAF).

І це тільки про С++ зараз мова, а загалом у мене багато про що є певні знання. Якось девелопер в команді питає: «Як ти», — каже, — «так швидко якесь бачення чи рішення в голові будуєш?» Та ось як! Багато чим цікавишся, і врешті воно стає в пригоді. Як у тому жарті, що навіть інтеграли з уроків математики виявилися корисними, коли гачок з дроту треба було зігнути, щоб ключі з унітаза виловити.

Сьогодні мені треба було ту 15-хвилинну доповідь стиснути в іще менший формат — 5 хвилин. Причому цільова авдиторія вже не тільки програмісти, тож я вирішив ще більше тему узагальнити, бо мій підхід до навчання в принципі не надто залежить від теми: 1) бачиш якусь ідею або прикольну штуку в контексті; 2) шукаєш джерело цієї ідеї або, може, місце, де вона відіграє ключову роль; 3) відокремлюєш її від неактуального контексту, щоб не заважав; а коли вже вона потрапила до твого власного скіл-сету як один з інструментів, то 4) можна починати міксувати з іншими ідеями.

Приклад: якось дізнався, що помаранчевий колір найкраще видно на дорозі й удень, і в сутінках. Виявилося, це тому, що при збільшенні відстані та при зменшенні кількості світла кольори «холоднішають»: жовтий переходить в зелений поступово, зелений в синій тощо. А помаранчевий утворений двома теплими (червоний + жовтий), тож і холоднішає найповільніше. Ну й авжеж існує ціла теорія кольорів (кольорознавство), де не просто «я митець, я так бачу», а доволі чітко й подекуди математично все (фізично, точніше). Це знання ставало в пригоді безліч разів вже і в роботі, і для власних проєктів, хоча я й не дизайнер, як ви памʼятаєте.


Так от якщо цей метод пізнання назад на С++ спрямувати, то раптом стає видно, що ця мова дуже хєрова для вивчення якихось концепцій, але вона доволі крута для їхнього застосування на практиці. Реально multi-paradigm language.

Це у нас «фінальне змагання» в конторі було. Я пофейлився авжеж, зате було кумедно. І нарешті можна зайнятися іншими справами, бо часу жерло — жах.
👍31
Мені тут клауд зі світлинами підказує, що 13 років тому я з двома друганами брав участь у DOU-хакатоні.

Він проходив в офісі Ciklum, куди ми приїхали без жодних ідей, просто потусуватися. Але врешті написали гру 👇

На все відводилася 1 доба, а ми перші пару годин тільки роздуплялися, чи варто взагалі хоч щось починати та, якщо так, що саме. Одним зі спонсорів була GlobalLogic, яка роздавала свої блокноти. Тож під враженням від нещодавно зіграної Eufloria я запропонував зробити якусь схожу гру прямо «у тому блокноті». Накарлякав у ньому щось, пофоткав, трохи обробив у фотошопі та нарізав спрайтів. Чуваки поки почали писати код.

Я на той час віддавав перевагу C++, мій інший дружбан писав на C#, а третій взагалі прийшов з прикладної математики, тож вирішили писати все на Java як чомусь середньому для всіх 😁

За задумом це мала бути RTS, та ми не встигли зробити для того нормальний луп, тож це перетворилося на TBS, де треба було постійно клацати Next turn 😅 Гра проти компа. Гравцю та супернику дається по одній планеті + можливість будувати юніти: харвестери та файтери. Харвестери добувають ресурси з інших планет, а файтери фігачать ворожих юнітів (можна селектити та направляти їх).

Після доби кодінгу, бозна-скільки спожитого редбула та цигарок, прийшов час фінальних презентацій. Досі згадую інколи той момент, бо він показав, що люди дуже емоційно оцінюють речі. Чи була наша гра обʼєктивно цікавою з геймерської чи з програмерської точки зору? Та ні, звісно. Але вона мала креативний вигляд, завдяки чому після голосування ми й взяли третє друге місце.

А перше місце до речі посіли мої знайомі, які написали на #Haskell транслятор коду з #Pascal у JS. У одного з них була триста років тому написана мультиплеєрна TurboPascal-гра на співпрограмах (корутинах) під DOS, яку він схотів перенести у браузер. Врешті гра не запрацювала, бо воно їм там нагенерило 70 МБ коду чи щось таке, й жоден браузер не стягнув, але якісь простіші приклади вони продемонстрували тоді. Короч, люди також радше емоційно, ніж раціонально проголосували, бо вау-ефект був сильніший ))
Please open Telegram to view this post
VIEW IN TELEGRAM
👍10🥰4🔥2🤯1👀1