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

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

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

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

Далі розберемось, яку саме математику потрібно знати програмісту. Також, які області математики потрібно знати для різного роду програмістських задач. Поділюсь своїм досвідом. Ну і, звісно, розберемось із необхідним мінімумом для будь-якого технічного спеціаліста в 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 тижня. В кінцевому результаті ми знайшли слабкі сторони даного коду, покращили і адаптували під наші потреби, пришвидшивши його у сотні разів.

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

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

(більше…)