«Керуй мною краще»: Як зробити роботу початківця програміста ефективніше

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

Ми в 1cloud вважаємо, що програмісти дуже схожі на художників. Так само, як і в сфері мистецтва, IT-фахівці часто мислять творчо. І хоча мистецтво не можна заганяти в якісь рамки, правильна постановка завдань, мотивація і контроль допоможуть утримати функціонування компанії на плаву.


/ фото David Goehring CC

1. Постійне навчання
Сучасний ринок ІТ-послуг розвивається з шаленою швидкість, тому компанії повинні бути готові навіть до незапланованих змін курсу (у всіх сенсах цього слова). У зв'язку з цим гарною ідеєю буде наймати широкопрофільних фахівців (зовсім недавно ми обговорювали відмінності між «Programmer», «Software Engineer» і «Computer Scientist»).

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

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

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

Але навчання ніколи не закінчується, програмістам доводиться вчитися все життя, а іноді і навчати інших: колег по роботі, стажистів і практикантів. Ми можемо порадити пояснювати концепти програмування через інші сфери, більш близькі непрофесионалам. Наприклад, краще зрозуміти монаду можна звернувшись до філософії — сама ідея родом із Стародавньої Греції, але багато філософи зверталися до цього концепту набагато пізніше. А філософія Готфріда Лейбніца навіть називалася «Монадология». До речі, про зв'язок програмування з іншими областями знань ми вже докладно писали в цій статті.

2. Логічне структурування роботи
Створення продукту (про те, як ми розробляли свій продукт), безумовно, полягає не тільки в тому, щоб написати код, на кожному кроці доводиться продумувати дуже багато речей, починаючи від ефективності і сопровождаемости коду, вибору мови та інфраструктури, структури бази даних і алгоритмів і закінчуючи вибором необхідної стратегії тестування і розгортання. І ні в якому разі не можна забувати про логічному аспекті. Хороший прийом — сформулювати гіпотезу до початку розробки, перевірити її і дотримуватися плану дій.

Хороший керівник команди повинен вміти ставити правильні питання. Наприклад, Джон Л. Міллер (John L. Miller) з Microsoft считает, що можна розділити ці питання на три групи: Чому..? (Чому треба це робити?) Що, якщо..? (Що, якщо у машини закінчиться пам'ять?) і Як..? (Як програма буде вести себе в майбутньому?) Такий прийом допомагає рухатися в правильному напрямку і бачити картину в цілому. Але ще один важливий етап — актуальність. Якщо якісь умови проекту помінялися, то слід оновити і список таких питань.

Крім того, фахівці радять не забувати про банальні способи розвитку логічного мислення: будь-які головоломки (пункти 5 і 1) допоможуть покращити навички вирішення проблем і навчити нестандартно мислити. Але крім роботи і розвитку здібностей потрібно пам'ятати про повноцінний відпочинок і навіть здоровому харчуванні (про те, як «прокачати» навички програмування… практично без програмування, ми розповідали тут).

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

3. Робота з чужим кодом
Програмісти стикаються з кодом, написаним кимось іншим, кожен день. Тому, як считает Райан Маттес (Ryan Mattes), розробник в digital-агенції Insite Interactive, = справжнім професіоналом є той, хто здатний додати 300 рядків коду до вже написаним 250 тисяч рядків, і нічого в ньому не зламати. Діяльність розробника включає не просто написання коду, а розробку концепту та можливості його застосування, розподіл роботи на кілька етапів і більш легкі завдання, розподіл цих завдань по часу.

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

Не можна забувати і про навчання. Наприклад, на майданчиках кшталт «The Code Player» можна подивитися весь процес написання коду для невеликих графічних елементів. Можна вибрати відповідний вам темп, переглянути складну частину, прочитати опис та коментарі.

4. Коментування
Користь цієї рутинної операції абсолютно очевидна, але іноді співробітникам здається, що вони витрачають на це занадто багато часу, і деякі з них просто нехтують такою роботою. Метт Хеммонд (Matt Hammond), співвласник кількох інтернет-платформ, считает, що коментування, в першу чергу, відображає шанобливе ставлення до своїх колег. А, словам Крістофера Ларкіна (Christopher Larkin) з Oracle, коментування коду займає не більше 1/10 або 1/20 часу, витраченого на проект. Швидкість і якість коментування, звичайно, теж приходять з досвідом.

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

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

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

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

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

Ще трохи корисних матеріалів по темі:

Джерело: Хабрахабр

0 коментарів

Тільки зареєстровані та авторизовані користувачі можуть залишати коментарі.