Нейронки, пошук інформації, книги та відео — огляд основних методів навчання в IT

Усі статті, обговорення, новини для початківців — в одному місці. Підписуйтеся на телеграм-канал!

У червні 2024 року я випустився з Київського політехнічного інституту імені Ігоря Сікорського, здобувши ступінь бакалавра за спеціальністю «Інформаційні системи та технології». Але мій професійний шлях почався ще два з половиною роки тому з .Net-інтернатури. Так-так, виявляється, щоб отримати роботу в ІТ-сфері, диплом — не головне 😊

Отож буквально перед повномасштабним вторгненням у мене почався четвертий семестр навчання у виші. Роздумуючи над можливостями здобути комерційний досвід, я довідався від знайомих про набір на .Net-інтернатуру в компанії Valtech. Відтак я створив своє перше CV у якомусь безплатному онлайн-редакторі, пройшов тест на перевірку аналітичного мислення та знання англійської, склав технічний тест, пройшов інтерв’ю з Talent Acquisition консультантом та People Partner — і, дивовижно, пройшов у компанію. Далі мене чекало три місяці інтернатури, вивчення основ технології Sitecore Experience Platform та мій перший комерційний досвід на реальному — до того ж дуже великому — проєкті. За весь період мого навчання та роботи (і, будемо відверті, усієї подальшої кар’єри в ІТ) найважливішим фактором було вміння швидко й ефективно вивчати велику кількість різної інформації, щоб у майбутньому якісно відтворювати її на практиці. Звісно, круто занурюватись із головою одразу в практику та навмання писати код у надії, що він запрацює, але теорія — це теж дуже важливо.

Перш ніж перейти до розгляду методів навчання та їхньої результативності з власної точки зору, хочу нагадати про нульовий крок, з яким я, як і, напевно, більшість спеціалістів сфери ІТ стикалися неодноразово на початку роботи з будь-чим — це налаштування локального середовища.

Initial setup of local environment

A person with a mustache and beard making a faceDescription automatically generated

Перший практичний урок інформатики в школі, перша лабораторна робота в університеті, онбординг на новий проєкт — все це починається зі встановлення й налаштування необхідного програмного забезпечення. Буду відвертим, особисто для мене це чи не найнеулюбленіша частина всього процесу.

Проте на власному досвіді я переконався у важливості цього кроку та болючих наслідках ігнорування правильності його виконання. Мова не лише про завантаження середовища розробки, підготовку необхідних інструментів, ознайомлення з їхньою базовою функціональністю, перечитування документації чи отримання доступів до всіх зовнішніх ресурсів, потрібних у рамках проєкту або дисципліни. Звісно, все це важливо, але локальне середовище — це передусім про створення простору для експериментів, допущення помилок та комфорту мислення.

Уявіть, що ви хочете облаштувати вдома робочий кабінет. Для цього ви йдете в меблевий магазин і вибираєте стіл, за яким вам буде зручно працювати. Потім вирішуєте, в якому кутку кімнати його розташувати. Речі на столі розкладаєте так, щоб простір праворуч або ліворуч від вас залишався вільним — залежно від того, якою рукою пишете. Не забуваємо придбати смітник, куди можна викидати зіпсовані чернетки. Варто подбати і про освітлення: поєднати природне сонячне світло з вікна та штучне від лампи, щоб очі не перевтомлювались. Зручне крісло — фактор, від якого залежатиме частота використання вашої медичної страховки в кабінеті ортопеда. Додаємо елементи інтер’єру під індивідуальні вподобання — і вуаля, робочий простір готовий.

Суть цієї аналогії полягає в тому, щоб дати своєму мозку більше простору для мислення й кисню для ефективної роботи. Керуючись цією ідеєю, я зміг підвищити якість методів вивчення нової для мене інформації, які розглянемо згодом. А поки що рекомендую підготувати своє локальне середовище згідно з такою документацією.

Технічні вимоги:

  • наявність пристрою з функціями введення та виведення інформації;
  • доступ до мережі «Інтернет»;
  • джерело електроживлення (найскладніший пункт у реаліях сьогодення).

Загальні вимоги:

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

Інструкція:

  1. Під’єднайте пристрій обробки інформації до джерела електроживлення.
  2. Підключіть цей же пристрій до мережі «Інтернет».
  3. Оберіть напрям, у якому бажаєте розширити спектр знань.
  4. Насолоджуйтеся процесом.

Так ми плануємо чи робимо?

30 Memes About Unproductive Meetings | Fireflies

Це запитання відображає проблему вибору між тим, що має бути першим: вивчення великої кількості теорії чи занурення в практику без сформованої потужної бази знань.

Усі мої університетські викладачі, чиї дисципліни хоч якось стосувалися ІТ, в один голос говорили: «Перед тим як переходити до практичної частини, ознайомтеся з теорією, оберіть найкращий набір засобів вирішення поставленої проблеми, знайдіть найефективніший спосіб розв’язання — і тільки тоді починайте писати код / алгоритм / тощо».

Загалом це теза, яку я б охарактеризував як золоте правило вирішення реальних завдань, де спочатку спеціаліст максимально опановує наявну теорію, складає план дій і лише потім береться до реалізації. Суть цього методу — мінімізувати втрату ресурсів, головним з яких є час.

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

Перший ефект у цьому випадку аналогічний — повне нерозуміння того, що робити з наявною проблемою. Тому мій мозок почав намагатись знайти стартову точку для пошуку рішення. Будь-який розв’язок можна декомпозувати на дві базові частини — компоненти та їхня взаємодія. З цього і починався пошук інформації. З кожним подальшим кроком збільшувався номер рівня декомпозиції поставленої проблеми, що спонукало до глибшого дослідження теорії. І в моєму випадку, як не дивно, це працювало. Хоча різні статистичні відомості стверджують, що середній час досягнення успіху завдяки цьому підходу є значно більшим, ніж у методі «теорія → практика», я виділю його основною перевагою стабільні порції дофаміну, які ти отримуєш після успішного виконання маленьких завдань. Для моєї вмотивованості на самому початку шляху це відіграло важливу роль.

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

Ігри, в які грають OSINT-ри, або Як правильно гуглити інформацію

We all here do osint right? - 9GAG

Чи знаєте ви, хто такі Molfar? Це найбільша OSINT-агенція в Україні, яка, зокрема, займається розвінчуванням фейкових новин та воєнною розвідкою на основі відкритих джерел даних. Це своєрідне втілення Шерлока Голмса, що розгадує таємниці, за ширмою яких ховаються люди з поганими намірами.

Як Шерлок Голмс допоможе нам у навчанні? Повернімося до нульового етапу — встановлення локального середовища. Якщо ви правильно виконали перший та другий кроки інструкції, тоді мої вітання — у вашому смартфоні, ПК чи ноутбукові зараз є доступ до всієї бази знань людства планети Земля. Для того щоб дослідити всі наявні матеріали, одній людині знадобиться приблизно 6 мільйонів років. Об’єктивно — це завдання неможливо виконати. Тому розумні люди вирішили створити штуку, яка спростить нам з вами життя, а саме пошукову систему. Тепер кожного з нас від бази знань світу відділяє лише логотип компанії Google і тоненька панель введення запиту.

Отож розглянемо лайфгаки, як покращити якість шуканих результатів та чого уникати під час введення запитів.

І перший з них — припинити вводити запити в Google у вигляді повноцінних речень та запитань. Якби я спілкувався з друзями, розлогість моїх речень, емоційне забарвлення запитань відіграли б важливу роль у нашому взаєморозумінні. Але не у випадку з пошуковою системою. Google шукає інформацію за ключовими словами та вхідними параметрами, які ми йому передаємо. Наприклад, у реченні «Розкажи, будь ласка, про основні принципи ООП» суть запиту зводиться до частини «принципи ООП». Лаконічність та змістовність — це перший аспект пошуку інформації, на який я звертаю увагу. Чіткість формулювання запитів теж не менш важлива. Знайти інструкцію побудови ракети для чайників — надто розлоге прохання, набагато легше його власноруч розбити на підтеми та знайти деталі, наприклад, щодо типів палива, які використовують під час запуску різного виду ракет.

Другий лайфгак — гуглити англійською. Ця мова відкриває двері комунікації та взаєморозуміння по всьому світу. Тож не дивно, що у відсотковому співвідношенні переважають англомовні матеріали. Відповідно, і запити на пошук я звик формувати англійською. Якщо ваш рівень ще не дозволяє вільно перекладати слова рівня, наближеного до native speaker, рекомендую використовувати онлайн-ресурс DeepL.

Окрім того, в університеті я пройшов курс із дисципліни під назвою «Криміналістика в інформаційних системах», який базувався на курсі від уже згаданої агенції Molfar. Кількість інструментів, які можна використовувати для пошуку інформації, здавалася нескінченною. Проте я виділив для себе декілька операторів пошуковика Google, що продемонстрували свою результативність: filetype, intitle, inurl, site, AROUND(X), after, before, лапки («") та мінус (-). Я впевнений, що деталі, як використовувати кожен з них, разом із відповідними прикладами ви з легкістю знайдете на просторах інтернету і це стане вам у пригоді.

Ще один маленький лайфгак для студентів та учнів — пошук вузькоспеціалізованих матеріалів через відкриті онлайн-бібліотеки топових університетів. Але не забувайте про академічну доброчесність, коли будете використовувати знайдені результати у своїх роботах.

Stack Overflow — exception or norm

Always choose StackOverflow - Memes for Developers - devs.lol

Stack Overflow є поширеною платформою серед розробників із великою кількістю як відкритих, так і закритих питань. Якщо ви спробуєте загуглити якийсь exception або базове технічне запитання, з високою ймовірністю в топі знайдених результатів від Google буде заповітний Stack Overflow.

Загалом цей ресурс нечасто використовують у навчанні як такому. Це радше збірка чітких проблем та рішень із зазначенням відповідної специфіки. Проте основною його перевагою я б виділив те, що всі відповіді написані реальними розробниками. Не всі рішення є правильними або найкращими. Саме це і цікаво, оскільки під час подібних досліджень я дізнавався особливості роботи тих чи інших засобів з урахуванням налаштувань мого робочого середовища та потреб розв’язуваного завдання. Навіть можна виділити окремий псевдостиль написання коду, що полягає в копіюванні різних рішень із цього ресурсу, доки ваш код не почне працювати. Метод тику непоганий, але не найкращий. Якщо хочете більше зрозуміти, що відбувається у вас на екрані, я б радив розбирати рішення на Stack Overflow із заглибленням в офіційну документацію.

Утім, зауважу, що дослідження рішень на Stack Overflow не є повноцінним методом навчання. Це більше допоміжний засіб розширення знань про тонкощі напряму, в якому працює розробник.

Skynet теж розробляли з добрими намірами

Best Funny skynet Memes - 9GAG

Як ви могли здогадатись, ітиметься про плід праці компанії OpenAI — ChatGPT, який багатьом замінив звичайного пошуковика Google, а особливу популярність здобув серед студентів та школярів. За своєю будовою чатбот є нейромережею, яка успішно працює з корпусною лінгвістикою, обробляє текстові (і не тільки) запити користувачів. Проте чи є відповіді новоствореного штучного інтелекту настільки ефективними, щоб замінити з часом розробників і прибрати потребу у вивченні складних матеріалів?

Першим на думку спадає мем на цю тему: мовляв, щоб замінити програмістів штучним інтелектом, клієнтам спершу потрібно навчитись чітко ставити вимоги. Отже, ми в безпеці. В основі мему — гірка правда, і це хрест, який нестимуть усі розробники впродовж своєї кар’єри.

Насправді ChatGPT обмежений у базі знань, на основі якої він був навчений. До того ж більшість завдань сфери інформатики потребують комплексного підходу з відтворенням коректних логічних ланцюжків та урахуванням перспектив подальшого розвитку системи. На основі своєї практики використання чату можу сказати, що вирішення комплексних завдань йому поки що не під силу. Наприклад, на завдання, в основі яких використовується .NET, можна отримати або просто неробочий код, або він повертатиме хибні значення. З малопоширеними технологіями ситуація не краща. Якщо ви захочете вирішити завдання щодо Sitecore із ChatGPT, будьте готові побачити використання бібліотек та команд, яких не існує.

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

Можна зробити висновок, що, здавалось би, ChatGPT — це інструмент уникнення навчання, а не його заохочення. Мушу не погодитися, оскільки у моєму використанні це автоматизатор тривіальних завдань плюс пошукова система з додатковою функцією аналізу живої мови. Та, незважаючи на це, навички постановки запитів у Google у поєднанні з цією технологією лише підсилюють рівень навичок із пошуку інформації.

Читай книжки, будеш розумний

Top Ten Tuesday: Things That USUALLY Make Me Want to Read a Book |  Bookshelf Fantasies

Книжки — єдиний спосіб отримання інформації (або по-модному — self-education) в період навчання моїх батьків. На сьогодні я спостерігаю тенденцію, зокрема серед молоді, повернення до читання книг, а також популяризації цього в соціальних мережах — таких людей називають буктокерами. І хоч це більше стосується художньої літератури, а не освітньої, проте є багато книг стосовно вивчення технологій та аспектів роботи в різних напрямах сфери ІТ.

Ще на першому курсі інституту в нас вважалося неймовірно круто знайти електронні версії «Чистого коду», Ріхтера або книги про етичний хакінг. Вони були як в оригіналі, так і в перекладі. Електронні книги з інформаційних технологій мали дві основні переваги — це розширене пояснення тем та безплатний доступ.

Так-так, ми, бідні студенти, не могли собі дозволити придбати оригінали цих книг, тож шукали їх у відкритих ресурсах, завантажували й поширювали серед своїх. У порівнянні з дорогими курсами, зміст яких практично неможливо знайти у відкритому й безплатному доступі, книги стали базовою частиною нашого навчання. Велика частина моїх одногрупників та студентів паралельних потоків особливо цінували книги за ширше пояснення із заглибленням у деталі. Проте для мене книги не стали результативним методом навчання.

Є різні способи сприйняття інформації. І особисто для мене читання книг — це малоефективний метод навчання. Для мене важлива візуалізація процесів та усвідомлення логічного протікання даних, зміни станів системи, взаємодії окремих її компонент. Книжка — це фактично зібрання великого обсягу текстової інформації з технічною термінологією. Без графіків, діаграм, скетчів, картинок гумористичного характеру я не міг сприймати інформацію результативно, щоб застосувати її на практиці, оскільки банально не міг скласти повного уявлення того, як і що працює.

Тому читання книжок я б радше зарахував до категорії індивідуальних способів навчання, які не можуть бути оцінені об’єктивно.

Internal pointer variable

Internal Pointer Variable - YouTube

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

Отож розпочну із загальної концепції подання інформації для її опанування у вигляді графічних матеріалів. Уявімо, якби я записав відео з поясненням принципів ООП, просто стоячи перед камерою та розказуючи лекцію. Гадаю, більшість би вимкнула цей ролик ще на перших хвилинах. А все тому, що така теорія незрозуміла без реальних прикладів використання. Хтось називає подібні теоретичні відомості інтуїтивними, але трішки помиляється в значенні цього терміна. Інтуїтивність розуміння виходить із практичного застосування цих принципів на реальних прикладах за різних умов. Коли в десятому класі ми починали вивчати похідні, вчителька математики сказала: «Згідно з новою освітньою програмою, вивчення диференціалів тепер у нас відбуватиметься на інтуїтивному рівні». Якщо ви гадаєте, що хоч один з нас інтуїтивно розумів, як знаходити похідні складених функцій, то ви глибоко помиляєтесь. Розуміння цього матеріалу приходить лише з наочними прикладами.

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

Комбо — три з трьох

Зі свого досвіду можу сказати, що ідеальний метод навчання — комбінований. Це нагадує приготування страви. Інгредієнти самі по собі можуть бути доволі смачними та вишуканими. Але якщо правильно їх поєднати, можна досягнути нової, набагато кращої палітри смаків.

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

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

Community as a part of your local setup

Наостанок хочу розповісти про ще один компонент локального середовища — вашу спільноту. Коли чотири роки тому я вибирав виш, багато людей мені повторювали раз за разом, що КПІ імені Сікорського — це саме про ком’юніті.

Суть цього слова вікіпедія не передасть — її можна усвідомити лише з часом. І, зізнаюся, саме спільнота та повноцінне перебування в ній стали двигуном на шляху мого навчання та розвитку. Це про поєднання людей із різноманітними характерами, звичками, знаннями, вподобаннями, це солянка з молоді з усієї країни.

Знайшовши свою спільноту, я знайшов близьких по духу людей, з якими починалися перші пет-проєкти, пошуки роботи, матеріалів та вивчення нових технологій. Коли ти є частиною групи однодумців, у тебе починає розростатися мережа комунікацій з іншими спеціалістами, їхніми друзями, знайомими й колегами. І з часом це приводить тебе до успішних випадків.

Оточити себе правильними людьми — це налаштуватися на досягнення результатів незалежно від перепон на шляху.

👍ПодобаєтьсяСподобалось14
До обраногоВ обраному3
LinkedIn
Дозволені теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter
Дозволені теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter

Книги краще б паперовi(так,я old schooler)).Зiр треба берегти,бо й так щоденне навантаження велике.

Чудова стаття! Читається на одному диханні — легко, з гумором і дуже по суті. Особливо круто, що все спирається на власний досвід. Для новачків — саме те.

Вітаю з вдалим початком ;) Навіть не уявляю як зараз молодь починає своє «айті» і чи можливо це порівняти з тим що було далеееекі 20ть років назад коли я закінчував Вінницький політех... Доречі Сайткор досить перспективний напрямок, тому з цим Вас теж вітаю!

Дуже дякую, буду рухатись далі :)

Класно про спільноту і що люди — найцінніші ❤️

Дуже дякую❤️

Підписатись на коментарі