Як «прокачати» навички програмування... практично без програмування

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



/ фото hackNY.org CC

Про важливе і банальне: їжа, сон, їх кількість і якість
Будь-хто, хто серйозно підходить до своєї роботи в сфері програмного забезпечення (та й у будь-який інший), повинен піклуватися про своєму організмі. Як сказав Кен Робінсон (Ken Robinson), радник з питань розвитку творчого мислення, люди витрачають занадто багато часу на побутові питання, тому не приділяють увагу здоров'ю. Проектуючи думку Кена на сферу розробки, Лівіо Де Ла Крус (Livio De La Cruz), колишній співробітник Microsoft, а нині фрілансер і програміст Unity3D, каже, що програмісти недооцінюють той вплив, який чинить їх фізичний стан на продуктивність роботи.

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

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

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



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

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

За словами доктора Керолайн Едмондс (Caroline Edmonds), провідного автора дослідження, прийом склянки води перед виконанням інтелектуальної діяльності дозволяє прискорити роботу мозку на 14%. Вчені також наголошують, що питна вода покращує настрій. Коли учасники експерименту були зневоднені, то видалися напруженими і сумними. У зв'язку з цим багато советуют тримати у себе на столі пляшку простої води – на відміну від чаю, кави або соків вона не робить ніяких негативних впливів на здоров'я.

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

Точно так само як бігун втомлюється за час марафону, ваша концентрація буде знижуватися під час безперервної роботи. Один з резидентів платформи Stack Exchange отмечает, що за 8-годинний робочий день варто брати мінімум дві перерви по 15 хвилин і один великий обідній брейк на годину. Короткі паузи протягом робочого дня стимулюють вашу розумову активність: коли ви знаєте, що попереду вас чекає невеликий відпочинок, працювати стає набагато легше.

Хорошим варіантом буде робота з таймерів, які б повідомляли вам про те, що пора зробити перерву. Короткочасний відпочинок зарядить вас енергією і дасть нові сили для вирішення поточних проблем. Користувач соціального сервісу Quora Паллави Гош (Pallavi Ghosh) говорить, що відмінно підбадьоритися під час відпочинку їй допомагає навіть мінімальна фізична активність: встати з-за комп'ютера, прогулятися, «струсити» засидевшееся тіло. Непогано буде приділити увагу зарядку для очей, щоб вони також трохи розслабилися.

Під час перерви корисно концентруватися на речах, не пов'язаних з роботою (це допомагає використовувати перерва з максимальною ефективністю – і повертатися до робочого місця з новими силами). Якщо все ж ваші думки не хочуть йти далеко від тематики програмування, то варто звернути увагу на різні головоломки та ігри для розробників. Кілька варіантів предложили користувачі Reddit.

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

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

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

Про обмеження: не працюйте більше 8 годин на день
Коли ви змушуєте себе працювати лише строго певну кількість часу, то починаєте робити більше. Знаючи, що у вас є час закінчити завдання ввечері, ви прокрастинируете і відкладає справи на потім. Якщо час обмежений – ви використовуєте кожен відведений час по максимуму. Є багато историйколи люди, які працювали понаднормово, починали працювати меншу кількість годин, щоб провести вечір зі своєю сім'єю, але, на їхній подив, їх продуктивність тільки підвищувалася.

Якщо з якихось причин ви все одно выбиваетесь з графіка, то, можливо, вам варто звернути увагу на практики тайм-менеджменту. Хорошу серію рад з управління часом, привел Олівер Эмбертон (Oliver Emberton), програміст і засновник Silktide. Багато цікавих речей на схожу тематику є в його блозі.

Про порядок: записуйте ідеї, робіть нотатки
Маленькі записки не дадуть забути щось важливе і просто допоможуть організувати власні ідеї. Оскільки це заняття дуже особисте, то варто поекспериментувати з різними спеціалізованими інструментами. Користувачі Reddit в якості кращих програм для організації робочого дня призводять Evernote, Onenote і TheBrain.

Хороший програміст повинен знати межі власної пам'яті: найгірше в ідеях те, що ви навіть не помічаєте, як вони зникають з вашої голови. Як писав Джессі Шелл (Jesse Schell), аналітик і виконавчий директор студії Schell Games книзі The Art of Game Design.

Про залученість: задумайтеся про те, що ви робите
Один з простих способів витратити час даремно – це «з місця в кар'єр» приступити до реалізації завдання. Перше рішення, яке приходить в голову, часто виявляється не найкращим. Більш того, в процесі роздумів ви можете прийти до висновку, що проблема, вирішити яку ви так рвалися, зовсім і не проблема, і витрачати на неї час необов'язково. Про цю здібності нашого мозку діяти швидко і нераціонально пише психолог Даніел Канеман (Daniel Kahneman) у своїй книзі Thinking, Fast and Slow.

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

Якщо ви вирішили скористатися можливостями невідомого фреймворку, варто заздалегідь прикинути, наскільки складно буде його вивчити. Задайте собі питання, чи варто результат витраченого часу? Також запитайте себе, чи легко підтримувати цей код? На цю тему хороший матеріал написав програміст і блогер Єгор Бугаєнко. Можете подивитися його статті Nine Steps to Start a Software Project.

Про короткі маршрути: знайте, коли можна зрізати шлях
Багато хто погодиться, що рішення, яке найбільш ефективно використовує ресурси, іноді не варто того, щоб витрачати на нього дорогоцінний час – буває достатньо просто «склепати» додаток, що робить потрібну роботу.

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

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

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

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

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

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

Рефакторинг дає корисний побічний ефект. Читаючи і реорганізуючи код, ви починаєте краще розуміти його. Коли ви пам'ятаєте, що де лежить і що робить, шукати помилки стає набагато простіше. Елліот Ченс (Elliot Chance), інженер в Kounta, додає, що буде добре, якщо ви привчите себе відразу писати простий код. Чим більше рядків ви напишете, тим «більше» буде програма. Непогано буде витратити трохи часу, але знайти більш просте і елегантне рішення.

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

Також читайте блоги, бажано частіше. Резидент Quora і інженер Алекс Каміл (Alex Kamil) наводить вичерпний список цікавих блогів, можливо, вам варто вивчити [ще один список є на GitHub]. З найбільш відомих ресурсів варто виділити Coding Horror і Joel on Software. З російськомовних – Хабр, звичайно.

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

0 коментарів

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