Programming Mentor
3.57K subscribers
166 photos
1 video
13 files
366 links
Ти живеш, поки вчишся
Download Telegram
Але хто взагалі вирішив, що це правильно? Чи не краще було б, якби навчання і оцінювання були двома окремими задачами, які робили б незалежні інституції? І я не якісь риторичні питання задаю, я просто пояснюю модель роботи, за якою давно працюю сам зі своїми колегами, та й так працюють всі незалежні від державно визначеної системи курси, в тому числі онлайн-платформи.

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

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

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

Мало того, на мою думку ШІ має стати просто революційним помічником в освіті, а не противником його. Наприклад, я взяв код студента поглибленої задачі з мого джедайського курсу JavaScript і попросив ChatGPT дати поради щодо його покращення. Він відразу видав чотири рекомендації, три з яких точно є актуальними, а четверта має мало сенсу. Мені навіть не довелося просити його написати покращений код - він зробив це сам, і той став помітно краще. Цікаво, що рішення, яке він видав, не було оптимальним, і він помилився в поясненні time complexity для свого рішення. Але коли я дав йому умову задачі і попросив оптимальне рішення - він видав оптимальний код з першого разу, ще й в додачу пояснив його без помилок. То на моє переконання це просто неймовірний інструмент для навчання, який має суттєво його поліпшити, тому його треба впроваджувати в освіту, а не забороняти!

Тут пригадалося як ще в школі вчителька математики забороняла користуватися калькулятором, вимагала проводити всі обчислення на папері з аргументацією, що “ти ж не будеш весь час з калькулятором ходити”, але доля так склалася, що з калькулятором в телефоні я хочу вже понад два десятиліття, і навряд чи є якісь підстави вважати що якось воно далі по-іншому буде. Аналогічно з ШІ - я вважаю що воно увійде в наше життя дуже швидко і ми в тих же комп’ютерах/телефонах/годинниках чи якихось інших пристроях завжди будемо мати дуже розумного помічника, якому можна доручити чорнову роботу, а самому сфокусуватися на постановці задачі, перевірки результата та уточненнях/правках в процесі, якщо це буде потрібно. Погодьтеся, що це цікаві можливості, до яких треба готуватися, а не забороняти.
Переписку з ChatGPT по задачі додаю окремим зображенням, можете проглянути як це виглядає. Проблема з рішенням студента в тому, що воно має вкладений цикл для обробки даних масиву, відповідно кількість операцій зростає квадратично зростанню кількості даних в масиві. ШІ її ідентифікував і запропонував загалом кращий код, однак ця проблема залишилися, оскільки він замість внутрішнього циклу використав метод indexOf(), який цикл містить всередині, і хоча його складність лінійна, він залишається вкладним в цикл, тому принципово нічого не помінялося. Погано, що ШІ ще й помилився в оцінюванні і вирішив що складність буде О(n), хоча насправді вона буде О(n*n) Лише коли явно попросив оптимальне рішення, надавши умову задачі, тоді вже отримав код, обчислювальна складність якого є лінійною за рахунок того що цикл один, а дані кешуються в словничку, обчислювальна складність доступу до якого є сталою і не залежить від кількості даних.

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

Під враженням останніх досягнень ШІ я вже зараз планую інтегрувати ШІ ChatGPT та GitHub Copilot в джедайський курс JS, думаю що група, яка стартує в січні буде в цьому плані дуже особлива - будемо не лише вчитися писати код, а ще й користуватися допомогою ШІ для того, думаю буде дуже цікаво🙂На всякий випадок - сайт курсу тут: https://sj42.programmingmentor.com
chat-gpt-two-sum-problem.png
167.3 KB
Переписка з ChatGPT стосовно задачі, загалом схоже на спілкування з ментором :)
Прогнозую, що 2023-й буде проривним у використанні штучного інтелекту в роботі та особливо в навчанні. Ті школи/університети, що будуть його забороняти - залишаться аутсайдерами, а той, хто знайде можливості правильно використовувати - стануть лідерами нового світу.

Спеціально під запуск чергової групи джедайського курсу з JavaScript, яка стартує сьогодні, записав відео про використання GitHub Copilot для вивчення програмування.
Тут я бачу чотири основні сценарії:
1 - безпосереднє вирішення завдання у тому числі покроково;
2 - виявлення та усунення багів;
3 - допомога у розумінні коду;
4 - покращення коду.

Справляється воно з цими завданнями просто прекрасно, це як мати власного персонального ментора, що не лише допоможе, а й пояснить та дасть поради як покращити код.

В описі до відео додав також посиланнячка на задачі, які демонстрував - спробуйте погратися.

https://youtu.be/_pFcGO7uNLI
Зараз зі стажуваннями непросто, тим не менше, варіанти є, люди періодично на програми стажування йдуть та на роботу влаштовуються також. Для цього треба гарно прокачатися технічно, мати гарні софтскіли та брати наполегливістю. Ось вийшло стаття по моєму вебінару, сподіваюся, буде корисно https://happymonday.ua/yak-potrapyty-na-stazhuvannya-v-it
На днях до мене звернулися з проханням скласти список з топ-10 мов програмування для вивчення у 2023 році. Але тут цікавий нюанс в тому, що є різні причини для вивчення - якщо хочеш роботу прямо зараз, то треба вчити те, за що платять сьогодні, а якщо хочеш бути в тренді і зробити ставку на майбутнє - вивчати треба щось з модного, що набирає оберти. Тому замість одного списку з десяти мов вийшло два по п’ять 🙂
Читайте статтю на сайті SoftServe: https://career.softserveinc.com/uk-ua/stories/top-10-programming-languages-to-learn-in-2023
Ну і де вивчити “дефолтну мову” думаю ви знаєте, недавно відкрито набір на весняну групу джедайського курсу JavaScript: https://sj42.programmingmentor.com
Що означає “script” в JavaScript?

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

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

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

То власне “script” в JS мав би показати що то скриптова мова, і це слово було присутнє як в оригінальній назві “LiveScript”, так є і у стандарті “EcmaScript”, але говорити що JS сприптова мова можна було лише в 90-х, коли та вся історія починалася.

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

І звичайно що по області застосування JS набагато більш поширений ніж інші мови, що не вважаються скриптовими. То слово “script” тут - лише історична спадщина.
Як перевірити, наскільки справжній ти програміст - це скільки ти можеш написати коду без Copilot.
Щось поламалося сьогодні, сподіваюся тимчасово, бо вже звик :)
Вихід з IT є :)
Вже півгодини як ChatGPT працює з України, сьогодні запиляю відосик як використовувати для вивчання програмування його :)
👏3
Ого, тут підкинули лінку що мою статтю про топ-10 мов вже іспанською переклали. Новий досвід так би мовити :)
https://tekiosmag.com/2023/02/13/cuales-seran-los-lenguajes-de-programacion-top-10-en-2023/
🔥37
Після мого відео з ChatGPT з’явилося багато питань, то вирішив зробити окремий постик.

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

[Продовження далі...]
28👍4
Про помилки. Точно також, які він може помилятися в питаннях політики, він може помилятися у будь-яких питаннях взагалі, і про це потрібно постійно пам’ятати, не сприймати видачу ChatGPT за чисту монету. Своє відео я записав за один дубль і нічого не вирізав/не монтував - мені пощастило що всі відповіді були коректні. Проте так буває далеко не завжди, і чим складнішими є питання, тим більше ймовірність помилки. Пам’ятати про це ми маємо не лише з ChatGPT, а при роботі з будь-якою інформацією. І навіть на StackOverflow дуже багато некоректних відповідей, проте там є механізм рейтингу і саме він допомагає фільтрувати інформацію. Небезпека ChatGPT в тому, що відповіді виглядають дуже правдоподібно і ніяк не маркуються як ті, що можуть бути некоректні. Вам треба ставитися до них критично і все уважно перевіряти на достовірних джерелах, таких як, наприклад, стандарти, офіційна документація, рецензовані підручники, наукові статті від поважних авторів та в поважних виданнях і т.п.

Про використання в навчанні. Будь-який інструмент можна використовувати правильно і неправильно. Неправильне використання ChatGPT в навчанні - це просто давати йому завдання з домашок, які задав викладач, і бездумно копіпастити відповіді. Звичайно що так ви нічого корисного не навчитеся, а швидше - навпаки - деградуєте і втратите можливість працювати самостійно. Тому перш ніж вирішувати завдання напряму можна попросити ChatGPT пояснити теорію, перевірити ваше розуміння, спробувати дати йому своє рішення на оцінку, проаналізувати різні варіанти, пояснити що краще/гірше і тому подібне. А при цьому ще важливо критично аналізувати та перевіряти його відповіді.
50👍7
Тут від ДОУ цікава аналітика під'їхала - на JavaScript плюс його типізованій модифікації TypeScript пишуть третину всіх проєктів (!) і це при тому, що в світі взагалі десь до сотні достатньо популярних мов програмування.
Згадую момент, коли вирішив свічнутися на JS після того як Microsoft закрила Silverlight, я тоді багато розмірковував куди податися, приємно, що не прогадав, думаю далі JS+TS будуть лише завойовувати світ. Пора додати TS до джедайського курсу, це насправді було задумано ще в момент запуску його першої ітерації, просто вирішив життя студентам не ускладнювати, але походу час прийшов :)
https://dou.ua/lenta/articles/language-rating-2023/
🔥231
Про скорочення в IT та зарплату в $16,5 тис.

На зображенні поточні скорочення в IT в порівнянні з скороченнями часів ковід.

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

На днях на ДОУ вийшла стаття-апдейт про девопса, що пішов на $15 тис. та ангулярщика, що заробляв двадцятку на чотирьох проєктах. Звісно, що у останнього здоров’я на все не вистачило, а ось досвід першого рекомендую - готовий гайд як треба вчитися і шукати роботу, в зарплаті підріс на 10%, тому в заголовку така сума.

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

Не шукайте виправдання, а прокачуйтеся і шукайте можливості, вони завжди є.
🔥40👍18
Щойно вийшов GPT-4, вже спілкуємося :)
Ось стрім для розробників, починається за 5 хвилин
https://www.youtube.com/watch?v=outcGtbnMuQ
20👍14🔥2
Від ідеї до прототипу за 10 хвилин

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

Поділюся власним досвідом. Є в мене задача: чотири рази на рік генерувати сертифікати випускникам джедайсього курсу JS. Робота рутинна, робив її вручну, і це не зовсім по-програмістьскі.

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

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

Але не з ChatGPT. Поспілкувався з ним кілька хвилин поки він не згенерував прототип рішення, що зливає дані з json з html-шаблончиком і зберігає в pdf за допомогою puppeteer. Його код завівся з першого разу і видав на виході pdf-файли. Рішення не було ідеальним, але як перше наближення працювало, і на все це пішло до 10 хвилин.

Я просто вражений, наскільки шлях від ідеї до прототипу пройшов легко і швидко. Мені не довелося гуглити і порівнювати якісь лібки і взагалі розглядати різні варіанти рішення. Далі зайнявся шаблончиком - на картинку наклав текст в потрібні місця, розклав елементи з CSS. Підправив код під свої потреби. Звичайно, не все було зовсім гладко з “допилюванням”, наприклад, довелося зашити зображення прямо в шаблон за допомогою base64 і підкладати його як img, а не фон, бо картинку беру з файлу, а не по HTTP, і то все треба розуміти як робити. Це до питання чи ChatGPT заміняє тебе як розробника.

Але загалом на працюче рішення, що видає сертифікат, який має потрібний мені вигляд, пішло трохи більше години часу - співрозмірно з тим щоб робити це вручну. І це вже не фантастика - прямо зараз можна братися за ідеї, до яких просто не доходили руки.
🔥46👍24👏3😁1
Нові доки і революція в реакті

Тут є цікава новина - нарешті зарелізили доки до по реакту, ще й на новому домені react.dev

Новина примітна хоча б тим, що нарешті в доках по замовчуванню приклади коду з хуками, а вони з’явилися в реакті 16.8 у грудні 2019 - недавно як чотири рочки стукнуло :)

Але доки примітні не лише переходом на хуки, а й ще кількома важливими моментами.

Найбільш серйозна зміна в тому, що тепер в розділі з інсталяцією реакту наведено приклад не з Create React App (CRA), а з NextJS, Remix, Gatsby та Expo. CRA взагалі, схоже, випиляли з доків, і можна очікувати що проєкт як такий втратить сенс, його замінять згадані мною фреймворки.

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

Тепер реакт по факту рекомендується використовувати з готовими фреймворками типу NextJS/Remix, відповідно рішення будуть більш типовими, підтримувати їх буде простіше. Мало того, прогнозую що сам реакт в рамках подібних фреймворків може стати взаємозамінним елементом і бути замінений на інші JSX-сумісні бібліотеки типу SolidJS/Qwik, які встигають впроваджувати цікаві інновації швидше за реакт. Наприклад, у них використовувається концепція сигналу, які в реакт ще не завезли.

Також NextJS вдало інкорпорував серверні компоненти, що з’явилися у 18 реакті і думаю що саме цей фреймворк задасть основний тренд в реакт екосистемі на найближчий час.

А найбільш важлива новина для новачків - доки містять не лише структуровані навчальні треки з купою інтерактивних прикладів, які можна в один клік перенсти на codesanbox і там з ними погратися, а й практичні завдання (challenges) з прикладами еталонного рішення.

І якщо ви закрили для себе питання з JS, то ці доки по факту можна використовувати як повноцінний курс, по якому можна вивчати реакт крок за кроком, що не може не радувати.
46🔥21👍7