Питання до методології курсу

Важливо: це необовʼязкова для прочитання стаття. Вона створена для тих, хто сумнівається, відчуває тривожність та має питання до нас, як архітекторів та методистів курсу.

З часом ми додаватимемо нові питання сюди.

Чому студенти завантажують код в архівах, а не користуються Git?

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

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

Чому адміністрація не допомагає із питаннями для понеділкових зустрічей?

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

Але, все ж, де отримати норм відповіді?? — з часом ви “знатимете” відповіді на більшість з тих питань. Частину ви зможете протестити в редакторі коду, а багато теоретичних відповідей знаходиться в документації мови Java. Деякі відповіді легко отримати, якщо спитати гугл англійською мовою (ми хочемо щоб ви вчились цьому вже зараз). На деякі питання немає однозначної відповіді взагалі ;) тож ви будете переосмислювати “правильну” відповідь декілька разів наступними роками.

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

Я не всі свої програми до кінця розумію, хоча пишу їх самостійно, чи це нормально? Успішно йду по рівнях, але “плаваю” в теорії.

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

Якщо ви не отримуєте двійки то все ОК, продовжуйте бігти 🙂 Якщо ви застрягли на 4 тижні, то це НЕ ок, треба вчитись прискорюватись (це як вчитись програмуванню, тільки вчитись прискорюватись)

Чому треба ставити двійки за малі неуважності типу написання Assingment замість Assig_n_ment в назві класу?

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

Є й інші причини, чому в нас тут так все суворо. Більше про це в статті “ШОК! Жорсткі моменти ревʼю

Чому деякі завдання написані не чітко?

В 95% випадків це зроблено спеціально, в 98% завдання написано достатньо чітко, і варто його перечитати (кілька разів, а краще почати робити) і покрутити в голові різні варіанти трактувань, щоб зрозуміти це. Сотні студентів вже пройшли через наші задачі, тож більшість помилок були виправлені, більшість текстів були доповнені. Окрім тих, які ми вирішили спеціально лишити ;)

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

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

Чому вибрали мову Java? Стенфорд вже переходив на інші мови та робив інші експерименти зі своїм курсом.

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

Частина відповіді щодо саме мови Java є в статті в нашому блозі .

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

Чому треба писати коментарі англійською? Чому не українською?

У будь-якій галузі є стандарти. Для професійного програмування стандартами є володіння англійською мовою та вміння писати коменти (і не тільки) англійською мовою. Краще звикати до цього вже зараз, і круто якщо це буде проходити в “пасивному” режимі. Ви трошечки звикнете, хто більше, хто менше, в залежності від того, скільки уваги приділятимете написанню своїх коментарів та читанню чужих коментарів.

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

Чому не можна списувати та користуватись ChatGPT?

Більше про це можна прочитати в статті “Кодекс честі” в матеріалах на порталі. Обовʼязково зробіть це, щоб потім не було боляче.

Перш ніж звинувачувати нас у негнучкості, зазначимо: на профільних курсах (що йдуть після курсу computer science) можна буде списувати та підглядати, копіювати код з інтернету, юзати ChatGPT. Є навіть термін “stackoverflow-oriented development” та інші жарти про те, що можна програмувати, копіюючи код із сайтів типу stackoverflow, шукаючи там відповіді на свої питання. Але так НЕ можна робити на ЦЬОМУ курсі.

Це тому, що на профільному етапі ми орієнтовані на вирішенні задач, а на етапі computer science (поточному курсі) ми орієнтовані на те, щоб навчитись думати, програмувати, архітектурити, декомпозувати, самостійно.

Саме тому ми кажемо, що цей курс побудує вам надважливий та якісний “фундамент”. Так, коли ви на роботі зустрінете проблему, рішення якої немає в інтернеті чи АІ, то ви згадаєте нас добрим словом 🙂

Чому від нас приховують наступні завдання?

По-перше, гейміфікація та психологія та дофамін із відкриттям нового рівня)

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

По-третє, в матеріалах на порталі є план курсу.

Далі, якщо у вас раптом є час на додаткове навчання, краще його витратити не на наступні задачі, а на вивчення додаткових, профільних тем, що у будь-якому разі вам знадобляться: git, основи html/css, мережева модель OSI, основи мови javascript (спробувати й серверне програмування, і клієнтське), основи sql, основи linux (давно пора втікати від windows ;) ), англійська мова (важливіша за програмування)).

Чому не можна на профільний курс одразу, без computer science?

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

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

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

Якщо ви хочете займатись лише html/css, то дійсно, програмування вам не потрібне. Проте, фронтенд — це також і javascript (а краще якщо typescript). А це вже програмування. Без алгоритмічного фундаменту ви не зможете ефективно програмувати щось недитяче, в будь-якому середовищі.

Де вчителі?

Ми віримо, що головний вчитель для вас — ви самі.

Ш++ створює для вас середовище для навчання, а також пропонує асистентів (інших студентів, випускників, менторів, координаторів), з якими ви зможете легше навчатись.

На етапі computer science ви найчастіше стикатиметесь із відео та матеріалами, створеними нашими методистами, а також з іншими студентами (ви, мабуть, вже читали про ідею формату Р2Р). В чатах ви також зустрічатимете волонтерів та координаторів, які все ж намагатимуться допомагати вам у крайніх випадках, адже ми очікуємо в першу чергу активність від самих студентів, взаємодопомогу та підтримку одне одного.

Що таке рев'ю? Як його проводити? Що від мене взагалі хочуть?

Ревʼю — це коли ми даємо вказівку двом людям (”той, хто перевіряє” та “той, кого перевіряють”) зустрітись та спілкуватись про конкретний код, що написаний тим, кого перевіряють. Головна мета — обмінятись знаннями, знайти мінуси та плюси в коді. Також, наша система вимагає від перевіряючого (”ревʼюера”) оцінювати код та ставити оцінки згідно мануалу. Обидва учасники ревʼю також повинні оцінити одне одного як співбесідників-партнерів на курсі (це “невидима” оцінка).

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

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

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

Відео дозволяє “посидіти за одним столом” з іншою людиною.

На жаль, в нашій культурі відеозв'язок багатьох напрягає і дає відчуття незахищеності. Ми пропонуємо вам звільнитись від комплексів (ага, легко сказати) і просто робити відеозв'язок не дивлячись ні на що (хм, окрім поганого інтернету). Це буде гарною цеглинкою в розвиток ваших софт-скілів, що позитивно вплине в тому числі на спілкування із рекрутерами у майбутньому 💰….

До речі, відео як відео, але ми можемо суворо ставитись до погано справного мікрофона. Ви маєте знайти нормальну гарнітуру. Вони НЕ дорогі. Вбудований в ноутбук (із кулерами) мікрофон скоріш за все НЕ ок.

...

Дякуємо нашому волонтеру Михайлу Різніченко 💚 за внесок в розробку цього документу.

Last updated