Чи потрібно програмісту знати математику, яку та на скільки добре?

Чи потрібно програмісту знати математику, яку та на скільки добре?

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

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

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

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

То ж, почнемо із розбору термінів…

5 звичок хорошого програміста або як постійно апгрейдити свою кар’єру?

5 звичок хорошого програміста або як постійно апгрейдити свою кар’єру?

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

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

(більше…)

Чи не запізно (зарано) мені навчатись програмуванню? Або ідеальний вік програміста

Чи не запізно (зарано) мені навчатись програмуванню? Або ідеальний вік програміста

Останнім часом доволі часто отримую запитання типу: “Чи не зарано мені шукати роботу програміста? Я вже непогано розбираюсь у програмуванні, створив кілька власних проектів. Але мені ще немає 18 років…”. Ще поширенішим є запитання про те чи не занадто пізно мені братись за програмування? Ось дослівний текст листа, що я отримав буквально вчора:

Єдине, що мене по-справжньому непокоїть – це мій вік – 36р. У вимогах багатьох ІТ компаній я знаходив вікове обмеження – до 30-35 р. Я, відверто кажучи не зовсім розумію таке обмеження, по-моєму людина після 30 і до 45 – якраз в повному розгарі сил. А виглядає, що для багатьох ІТ фірм 35 років – це майже пенсійний вік. Хотів би знати вашу думку з цього приводу. Наскільки саме через вік в мене зменшуються шанси знайти роботу? Чи справді вікове обмеження є принциповим у політиці підбору персоналу ІТ компаній? ЧИ взяли б ви людину мого віку на джуніка?)))

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

  • чи не зарано шукати роботи до 18 років, а також до завершення університету;
  • чи не запізно шукати роботу в IT, якщо вам вже давно за 30;
  • і взагалі спробуємо розкрити запитання – який ідеальний вік програміста?

(більше…)

5 онлайн ресурсів, щоб тримати мозок програміста у формі або як покращити свою креативність?

5 онлайн ресурсів, щоб тримати мозок програміста у формі або як покращити свою креативність?

Ще давніше серед таких великих IT фірм як Microsoft, IBM, Google були популярні тести-пазли для тих, хто проходив інтерв’ю. Вважалось, що якщо людина класно вміє розв’язувати різноманітні задачки на кмітливість, логіку, ерудицію, тоді вона стане хорошим технічних працівником.

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

Головоломки на даний момент уже не є на стільки популярні під час інтерв’ю програмістів, як вони були колись.

Проте, подібного роду завдання і надалі є дуже корисними. Ось лише кілька причин, чому варто частину свого часу присвячувати програмерським головоломкам:

Чому варто розв’язувати програмерські головоломки…

Чому програмісту потрібно вміти читати чужий код та як цього навчитись?

Чому програмісту потрібно вміти читати чужий код та як цього навчитись?

Коли я починав кар’єру програміста, доживав свого віку браузер Internet Explorer 4-ї версії. У ньому була підтримка так званої поведінки ‘hover’ (наведення мишкою на елемент на сторінці) лише для посилань (лінків). Усі решта елементів не підтримували даного стилю. Щоб обійти дане обмеження старенького браузера розробники придумали Javascript бібліотеку, яка штучно навішувала подібну поведінку на усі елементи на сторінці. В одному з проектів ми використовували дану бібліотеку, але, оскільки, елементів із даною поведінкою на сторінці було дуже багато – бібліотека буквально заморожувала сторінку на 5-10 секунд при першому завантаженні.

Моє завдання полягало у пришвидшенні та оптимізації даної бібліотеки. Код був низькорівневий (ніяких Prototype чи jQuery на той час не існувало) і доволі непростий. Щоб розібратись, що роблять цих 200 рядочків коду, я витратив більше, ніж 2 тижня. В кінцевому результаті ми знайшли слабкі сторони даного коду, покращили і адаптували під наші потреби, пришвидшивши його у сотні разів.

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

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

(більше…)

Яку IT спеціалізацію вибрати у ВУЗі? Або комп’ютерна інженерія vs програмна інженерія vs комп’ютерні науки vs …

Яку IT спеціалізацію вибрати у ВУЗі? Або комп’ютерна інженерія vs програмна інженерія vs комп’ютерні науки vs …

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

Не стала винятнком і дана стаття. Минулого тижня у черговий раз отримав запитання щодо вибору IT спеціальності у ВУЗі:

Доброго дня! Допоможіть, будь ласка, із вибором напряму у ВНЗ. У чому
різниця між комп’ютерною інженерією, програмною інженерією, системним
аналізом та комп’ютерними науками? Буду щиро вдячна за відповідь.

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

Тепер маю для вас дві відповіді. Перша – коротка, якщо немає часу читати далі. Друга – з детальним описом кожного із напрямків і моїм особистим підсумком та підказками. Вони допоможуть вам, якщо на вас чекає  вступ у ВУЗ “на програміста”.

То ж почнемо із короткої відповіді…

Яка різниця між початківцем та професійним програмістом, або як стати профі?

Яка різниця між початківцем та професійним програмістом, або як стати профі?

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

(більше…)

Дайджест новин мови Python #2

Дайджест новин мови Python #2

Підготував для вас вибірку новин, статей та проектів за останні два тижні у світі мови програмування Python:

Новини та Події

(більше…)

Програміст, кодер чи інженер або чому програмістів називають стількома різними термінами?

Програміст, кодер чи інженер або чому програмістів називають стількома різними термінами?

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

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

(більше…)

6 важливих правил, щоб бути класним командним гравцем в IT

6 важливих правил, щоб бути класним командним гравцем в IT

Мабуть ви не один раз бачили словосполучення “Командний гравець” серед списку вимог на посаду програміста чи іншої суміжної галузі в IT. І якщо даний термін вам не завадить отримати роботу, адже визначити чи ви командний гравець на співбесіді доволі важко, від нього точно залежить те, як легко вам працюватиметься з іншими людьми в команді та швидкість вашого просування далі по кар’єрній драбині програміста.

Якщо ви не працюєте над власним проектом, тоді, швидше за все, ви працюєте в команді з іншими людьми. Якщо ви працюєте на когось, тоді у 99% випадків ви працюєте як частина команди. Зважаючи на те, що програміст, більшу частину своєї кар’єри, працює в команді, думаю, варто поцікавитись що ж означає бути гарним колегою по роботі.

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

(більше…)