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:

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

(більше…)

Як отримати роботу програміста з нуля? Покрокова інструкція

Як отримати роботу програміста з нуля? Покрокова інструкція

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

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

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

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

Далі до Покрокової Інструкції…

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

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

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

Статті

(більше…)

Який формат відео уроків підходить початківцю програмісту?

Працюючи над відео уроками для книги “Веб-розробка з Python та Django для Початківців” я роздумував над тим, яким чином подати матеріал, в якій кількості і на що саме звертати увагу та й загалом форму подачі матеріалу.

Відео Уроки

 

Зрештою я зупинився на варіанті не підготованих до дрібниць відео, без спеціальної обробки та видалення місць, де у мене в процесі програмування виникали проблеми.

Чому? А ось чому:

(більше…)

Як початківцю не відкладати на завтра той код, що можна закодити уже сьогодні!

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

Stop Reading, Start Coding!

Stop Reading, Start Coding!

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

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

(більше…)