InterLink Tech Talk April 2017

Наш квітневий TechTalk підняв декілька важливих тем та цікавих історій.

Почали ми з важкої артилерії та математики, а саме: Machine Learning Algorithms. На сьогоднішній день все більше і більше бізнесів починають активно використовувати інструменти машинного навчання. А вже завтра це стане must-have для того, щоб залишитись на ринку та втримати свої позиції. Дехто вважає, що знання алгоритмів машинного навчання не є обов’язковим. Та ми не з тих, кого задовольняє використання інструментів за принципом чорного ящика. Ми прагнемо розуміти, як працюють системи та рішення, що є в наявності. Інакше про яке ефективне використання може йти мова. Тож цим суботнім ранком Олександр Котов трохи нагадав нам курс математики та розкрив принципи роботи фундаментального алгоритму машинного навчання – лінійної регресії.

 

Складну тему змінила цікава та повчальна історія. Максим Шеховець та Олександр Кривенко пригадали, як вони літали в Індію на порятунок величезного проекту з 10-ти річною історією. Неймовірно гострою в Індії виявилась не тільки їжа, але й ситуація на проекті. Величезна купа legacy code, відсутність документації та вимог до того, як все ж таки має працювати система, жодної автоматизації процесів зборки та деплою, та повна нероботоздатність проекту внаслідок недоведеної до пуття міграції на нові технології. Ось такий от спектр складностей та викликів очікував на наших професіоналів. Та попри всі перепони, приклавши колосальні зусилля, наша команда врятувала ситуацію. Цей приклад ще раз нагадує та підкреслює важливість командного духу, взаємодопомоги та орієнтації на результат. 

Хто був уважним та запам’ятав цікаві деталі з презентації – отримав від спікерів справжню рупію :).

 

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

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

А на останок, була водночас легка та важка тема – це, по суті, наша з вами робота. Software Development – це один із напрямків інженерії, що нагадує про так зване інженерне мислення. Ще 30-40 років тому в IT сфері були стереотипні інженери, які мали спеціалізовану освіту. Цей стереотип давно вже неактуальний, мати вузькоспеціалізовану освіту – це також давно вже не є важливою ознакою. Спрощення процесу Software Development також зменшує поріг: більш високорівневі мови програмування, потужні фреймворки, бібліотеки, які беруть на себе усю складність, і тому подібне. Все це не тільки робить більш доступною саму IT сферу, а в першу чергу полегшує перші кроки та створення прототипів. Але для початківця така легкість може бути дуже оманливою, бо вся ця стереотипна інженерія нікуди не ділась, просто вона захована у ці самі бібліотеки, фреймворки та мови програмування. Рано чи пізно доведеться мати справу з цією складністю. Авжеж, не мається на увазі, що ми повинні бути тими винахідниками або oldschool інженерами. Проте, розуміти “що і навіщо” – це дуже важливо для нас, тобто розуміти концепти, інакше ми маємо справу з black boxes, що ніяк не допомогає нашій роботі. Одна з порад, з чого можна було б почати – це задаватися питаннями. Наприклад, “what if the message is not sent?”, “what if it’s not deployed successfully” і так далі. Почніть з питань, а відповіді та підказки знайдуться.

 

До зустрічі на наступному InterLink Tech Talk ;-).

Post A Reply