Programming Mentor
3.49K subscribers
165 photos
1 video
13 files
357 links
Ти живеш, поки вчишся
Download Telegram
​​Сьогодні о 18:00 запрошую на вебінарчик, де визначимося з найкращою мовою програмування. Проводити буду я, реєстрації не треба, під'єднуйтеся прямо по лінку в зум (лінк на кнопочці).
💻Вже кілька років JavaScript є незмінним лідером серед мов програмування на гітхабі, і я особисто тривалий час рекомендую його як першу мову для вивчення.
💻Сучасний JavaScript - це красива і елегантна мова, яка відрізняється особливою гнучкістю. В цьому є переваги й недоліки. Переваги в тому, що з неї дуже просто почати, особливо якщо ти не програмував до цього ніколи взагалі. Але є і інша сторона - завдяки гнучкості код можна писати по-різному, не розуміючи до кінця деталей реалізації дуже просто вистрілити собі в ногу.
💻 Майже рік як я проводжу свій авторський курс ScriptJedi42, де у невеликих групах в онлайн-форматі за 42 дні ми вивчаємо весь сучасний JavaScrtipt як мову програмування, і не просто теоретично, а формуємо навик, пишучи багато коду, кожен рядок з якого я особисто переглядаю і даю свої коментарі. Також всі завдання перевіряються автоматично на коректність, а теорія доступна у формі коротких відео, які можна проходити у довільному темпі.
💻За цей час курс встигло завершити досить багато людей, і успішно використати здобуті знання та навички на практиці.
💻Курс проходить раз на кілька місяців, чергова група стартує вже найближчого понеділка, 20-го липня, залишаються лічені дні.
💻Для своїх підписників я даю купон на знижку 1 тис. грн від поточної ціни на сайті для варіанту курсу "ДЖЕДАЙ", яка теж зі знижкою. Купон буде діяти обмежений час, не відкладайте.
💻Код купону, використовувати під час оплати через сайт: JSFORCE
💻І хай прибуде з вами Сила!
Сайт курсу: https://sj42.programmingmentor.com/
Привіт-привіт! Чи чули ви про експертів з Lean Web? Сьогодні на Smashing Magazine вийшов черговий подкаст за участі саме такого експерта - Кріса Фердінанді, де він розказує про недоліки сучасної веб-розробки, куди вона рухається і як це пофіксити.
Цікаво, що я особисто ще у 2018 році почав серію виступів на тему "Make Web Great Again", де саме про це і говорив. То слід дописати собі Lean Web Expert теж.
Сьогодні, менш ніж за пару годин, а якщо точніше, то о 19:30 за Києвом буду проводити вебінарчик для початківців про стан веб розробки у 2020, приходьте, буде цікаво :)
Прямий лінк на трансляцію: https://youtu.be/w0oVOMfNYMU
Лінк на подкаст, який я згадував: https://www.smashingmagazine.com/2020/07/smashing-podcast-episode-21/
Стосовно подій в Білорусі та IT. Оскаженілий бацька не зрозумів, що не можна в 2020 році публічно ламати кінцівки і розбивати голови своїм громадянам. І головна причина не в тому, що людство стало якось гуманніше, а тому, що завдяки досягненням IT тепер кожен може все це зафільмувати та поширити назагал. Бо одна справа - це вбивати та знущатися десь по-тихому, а інша - коли бачить весь світ.
Невідомо, чим ця ситуація завершиться, але якщо диктатору якось вдастся втримати владу, то це грозить катастрофою для цілого народу. Гарантовані санкції, ізоляція і тому подібне. Є шанс збудувати Північну Корею прямо в Європі.

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

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

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

Тому декілька важливих рекомендацій - можливо комусь будуть здаватися дуже банальними, але не завадило б перевірити, чи дотримуєтеся їх:
- слід постійно вивчати та вдосконалювати іноземні мови, зокрема англійську, але можна не лише її одну, бо вивчити чергову мову програмування чи якийсь фреймворк можна за лічені тижні, а людську мову - навряд;
- треба слідкувати за тим, щоб технічні навички, які можна зазначити в резюме відповідали потребам ринку, бо в IT все застаріває дуже швидко, і легко застрягти на якомусь проекті з неактуальними технологіями на кілька років та опинитися в ситуації, де практично немає вакансій під конкретний skill-set, навіть якщо він прокачаний до експертного рівня;
- прокачуйте софт скіли, бо іноземцю складніше працевлаштуватися та інтегруватися в інше культурне середовище, а тому треба бути на голову вище за інших в цьому питанні;
- треба періодично проходити сертифікації та оновлювати резюме і профіль в лінкедіні, створювати мережу контактів, навіть якщо зараз вони ніби й не потрібні, але коли прийде "година X", то робити це вже може бути пізно.

Ну і оскільки я сам мав досвід релокації в критичній ситуації, то можу порадити приймати рішення швидко і не чекати поки ситуація вирішиться остаточно, бо сценарій виїхати, а потім повернутися, кращий за той, коли виїхати стає нереально взагалі.
Залишилося менше години до представлення першого досягнення чергового проекта Ілона Маска - ікони сучасного хай-тек бізнесу.
Самокеровані електромобілі, ракети, що повертаються на земплю, супутники для швидкого інтернету, підземний тунель для транспорту та гіперлуп - кожен з його проектів сам по собі тягне на фантастику. Але мене особисто не залишає у спокої один конкретний проект, про який говорять не так часто - це Neuralink.
По ідеї сьогодні мають представити пристрій для повернення людині органів відчуття.
Але то лише перший крок. Надалі має бути цікавіше, і слід очікувати якісь можливості не просто для відновлення втрачених можливостей організму, а для розширення існуючих. Наприклад, розширення пам'яті, пряме підключення в інтернет і тому подібне. Якщо навчитися передавати інформацію з зовнішніх датчиків, то робота з усім іншим - то вже чисто техніка.
І тут філософське питання - що буде далі, як воно буде поширюватися серед людей? Я особисто не в захваті від імплантів в мозок, але ситуація виглядає таким чином, що процес цей не спинити - якщо це даватиме якісь переваги у навчанні, в роботі, в кар'єрі, в оплаті праці і т.п. - то люди почнуть їх ставити, і це буде лише питання часу, коли такі "модифіковані" люди опиняться в більшості, а "звичайні" - в меншості.
Надалі ще можна розвити тему в такому руслі, що ті імпланти будуть давати різні можливості в залежності від того, скільки він буде коштувати.
Це лінк на стрім, ця ніч обіцяє не бути нудною: https://youtu.be/DVvmgjBL74w
Для тих, хто не встиг подивитися презентацію Neuralink - показали дійсно вражаючі речі:
- практично готовий для використання компактний пристрій, що інвазивно імплантується через отвір у черепі прямо у людський мозок;
- пристрій має розміри 23 на 8 мм та буде майже невидимий після інсталяції;
- має 1024 канали, що десь в 10 разів більше за розробки конкурентів, передає інформацію та заряджається бездротово;
- інсталюється за допомогою спеціально створеного для цього робота менш ніж за годину;
- робота пристрою була продемонстрована на свині, яке вже носить той імплант два місяці;
- наступний крок - тестування на людях, яке почнеться дуже скоро.
І так, Маск підтвердив, що то лише перші кроки, вони полягають у відновленні втрачених можливостей, але далі дійсно буде робота над розширенням здібностей людини: зовнішня пам'ять, додаткові сенсори, і т.д. і т.п. Повністю переглянути презентацію можна в записі по лінку в моєму попередньому повідомленні.
Бувайте, останнє покоління немодифікованих людей.
256-й день року - це День Програміста. Вітаю всіх причетних зі святом!
Саме час визначитися з питанням - коли людина може вважати себе програмістом? Тоді, коли закінчила курс чи виш і отримала сертифікат чи диплом? Чи коли може "напрограмувати" хоч щось по якомусь туторіалу? Чи лише тоді коли вона заробляє програмуванням гроші? А як же ті, хто роблять це безкоштовно? Пропоную свою відповідь
https://youtu.be/YeDU3P5WCd8
Про обмін досвідом. Кінець 1990-х. Працював я в невеликій команді, системи контролю версій не було. По понеділках ми зливали проект до купи. Виглядало це таким чином, що підсажувалися по черзі до одного досвідченого розробника і разом з ним додавали зміни в його копію проекту, використовуючи diff. Фактично на те йшов один день, протягом нього фічі не створювали. В кінці дня отримували проект зі змердженими змінами, на основі якого додавали фічі чи правили баги до наступного понеділка. У порівнянні з сучасним гітом то виглядало непродуктивно, але насправді той понеділок був супер корисним, бо це виглядало навіть не просто як code review, а більше як парне програмування, протягом якого ми обмінювалися досвідом. Коли ввели систему контролю версій, то понеділки ті звільнилися, але загалом команда в чомусь втратила. То шукайте будь-які можливості обмінюватися досвідом :)
Існує багато історій про вхід в IT, але не так часто зустрічаються про вихід.

Днями на DOU вийшла стаття дівчини, яка відчувала себе нещасливою в IT (до речі, займалася фронтендом) та вийшла з галузі з полегшенням.

Цікаво і корисно її прочитати тим хто вже в IT, і тим, хто туди лише прямує.

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

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

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

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

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

Лінк на статтю - під дописом.
Побачив недавно статтю "як виявити проблемного замовника"? Пропонують виявляти манеру спілкування, відмову комунікувати через email, виявляти маніпуляції і тому подібне. Відтверто говорячи - повна маячня, навіть лінк не хочу на те давати. Просто поділюся власним досвідом.
Часто дивні в комунікації люди є нормальними замовниками, і навпаки.
Є просте правило - правий той, у кого гроші. Тому якщо ви вже маєте якесь ім'я, то працюйте на умовах авансу чи попередньої оплати, хай не за весь проект, а якісь частини.
Завжди простіше у проблемних ситуаціях повернути гроші замовнику, ніж потім ганятися за ним і їх вибивати.
Щоб дати вам цю пораду, я здобув сивину на голові, коли мені ще не було 25. Так що цінуйте 🙂
Наочне пояснення, чому в JS слід використовувати для перевірки на рівність "===", а не "=="
Модна зараз тема - публічні технічні інтерв’ю. Дуже раджу для того, щоб зрозуміти свій рівень готовності і набути впевненості в собі. Дивився сьогодні стрім такого інтерв’ю на сіньйор JavaScript-розробника, проводить крупна компанія серед своїх співробітників. Дають просту задачку - масив нуликів/одиничок, завдання в тому, щоб знайти найдовшу послідовність нулів. Таку задачка вирішується в один прохід по масиву, на написання коду людині з досвідом в кілька років знадобилося б до п’яти хвилин.

Але я дивлюся на те, що робить інтерв’юваний і не вірю очам своїм - він спочатку сплітає масив по одиничкам (що ок, хоча можна без цього й обійтися), а після того сортує послідовності (що зовсім не ок). Питання пошуку мінімального/максимального значення чи послідовності в масиві не має включати сортування, бо сортування є дорогим з точки зору кількості операцій, алгоритми сортування мають експоненціальну складність за Big O notation. І це має знати не сіньйор, а джуніор.

Знаходжу інтерв’юваного в лінкедіні - реальна людина, на сіньйорній позиції в тій компанії. Сподіваюся, після такого інтерв’ю його не демоутнуть. :)

Іншу частину інтерв’ю коментувати не буду, хоча в мене до неї теж були питання.

Вивчайте алгоритми, хоча б зовсім трішки. Розберіться з тою Big O notation, щоб не робити таких дитячих помилок. Справжній джедай таку помилку точно би не зробив :)

Лінк на запис інтерв’ю внизу під цим повідомленням. Дуже корисно подивитися для підняття самооцінки :)
Надибав тут цікавий документик - оптимізації JavaScriptp-двигуна V8 по швидкодії з конкретними рекомендаціями стосовно використання тих чи інших підходів. Шкода що з 2018 року не апдейтився, але цікавого там дуже багато. Наприклад, вражає приріст швидкості по деяких оптимізаціях, типу 400x+. Важливий висновок з того всього - треба писати код максимально виразно, думаючи в першу чергу про його подальшу підтримку, а швидкодія часто дається безкоштовно.
https://github.com/thlorenz/v8-perf/blob/master/language-features.md
Зробити цегляну кладку (masonry layout) в на чистому CSS завжди було проблемно. Але тепер така можливість з'являється нативно у CSS Grid. Рейчел Ендрю розказує як це зробити в FireFox Nightly https://www.smashingmagazine.com/native-css-masonry-layout-css-grid/
На днях анонсували дієву вакцину проти ковіду, акції Zoom відразу впали, а оффлайнових компаній підросли. Багато хто сподівається, що з часом все стане як раніше. Але то навряд. Бо зміни, по яким онлайн підтискає офлайн є незворотніми. Сьогодні хочу поговорити про те як змінюються конференції.

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

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

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

Є ще одна, не дуже очевидна, але, на мій погляд, найбільш серйозна проблема. Зіткнувся з нею вперше у 2007-му. Запросила мене тоді Microsoft на конференцію для розробників в Барселоні як журналіста. Конференція тривала днів п’ять, від самого ранку до пізнього вечора, і вельми цікава сама по собі. Але то моя була перша поїздка до Барселони, я хотів ще й місто побачити, проте на це часу не було зовсім - квитки на літак мені взяли відповідно до розкладу конференції, жодного вільного дня. То я сумлінно проводив весь час на конференції, і лише одного разу після обіду дозволив собі вийти в місто. Звісно для Барселони того аж ніяк не достатньо. І хоча самим заходом я залишився повністю задоволений, то туристичною складовою - ні. І яким же було моє здивування, коли після повернення редактор журналу сказав, що я даремно сидів на конференції, оскільки весь бенефіт від поїздки в тому і полягає, щоб погуляти містом та поспілкуватися в кулуарах з цікавими людьми. Власне, щоб написати репортаж, навіть їхати не потрібно, бо всі виступи доступні в записі, та і якісніше це робити по записам, ніж по своїх власних нотатках. Можете собі уявити мої відчуття, коли я писав той репортаж, переглядаючи записи виступів, і розуміючи, що я даремно на них сидів? Текст мого репортажу доступний тут, же не віриться, що цілих 13 років пройшло. :)

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

Ну а тепер про онлайн-конференції. Навіяно участю в IT Arena 2020, що проходила зовсім недавно. На відміну від просто стріму з коментарями, як буває десь на ютубі, тут використали сервіс attendify, і мені цей досвід дуже сподобався. Ті проблеми, про які я писав на початку, відсутні в принципі - жоден зі стрімів не був переповнений, а піти непоміченим - простіше простого. :) Переглядати в записі теж без проблем, треба мати квиток відповідного рівня. Ну а особливо зручним виявився інтерфейс цієї штуки, такий собі міні-фейсбук, що дозволяє організувати тусовку і нетворкінг в онлайн-форматі. І це лише предвісник нової епохи, далі ще цікавіше.
Пригадуєте ті голографічні наради, які проводили джедаї у Зоряних Війнах? Здавалося, фантастика, але це набагато ближче, ніж здається. Я вже розповідав про свій досвід використання VR-шолома Oculus Quest, і зовсім недавно вийшла його нова версія більш цікава за ціною. Враховуючи, що вартість участі в західних конференціях зазвичай кілька тисяч доларів, то три сотні за шолом - то взагалі ні про що. І мова йде не лише про айтішні конференції - періодично з’являються новини про те, що якісь конференції проходять в онлайні, а їх учасники отримують шоломи, або знижку на участь, якщо шолом вже є.

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

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

PS. Незабаром починається остання в цьому році група курсу ScriptJedi42, це практичний курс, на якому учасники здобувають навики написання коду на сучасному JavaScript. Нещодавно курсу виповнився рік, його встигло пройти вже досить багато людей, по рекомендаціям від яких приходять наступні. Надалі групи будуть проводитися не так часто, тому тим, хто бажає повчитися на курсі, відкладати не раджу.
Просто суперський навчальний проект http://realworld.io/
Це клон сайту Medium.com реалізований як довільна комбінація бекендів та фронтендів, зроблених на різних фреймворках.
Все доступне в опенсорсі, можна відкривати редактор stackblitz прямо в бразуері. Три десятки варіацій для фронтенду, понад чотири десятки для бекенду. Ще є варіант NativeScript/Angular для мобільного, а також фуллстек реалізації, які не передбачають відокремлення фронтенду від бекенду (типу Meteor).