1. Вступ
Чому ця книга?
Вітаю вас!
Якщо ви читаєте даний текст, то це, швидше за все, означає одне з двох:
- ви вирішили опанувати веб-розробку і обрали першою мовою для себе - мову програмування Python;
- або ви уже розбираєтесь у веб-розробці, але хочете освоїти ази створення веб-аплікацій саме з допомогою веб-фреймворка Django.
А розпочнемо ми з того, що спробуємо розібратись для чого я написав дану книгу і чим вона відрізняється від інших книг. А також погодимо чого вам варто очікувати від даного посібника.
Завдання книги
В далекому 2005 році, розпочавши навчальний рік на останньому курсі механіко-математичного факультету Львівського Національного Університету імені Івана Франка, я вирішив серйозно спробувати себе в програмуванні.
На той час в мене не було жодного досвіду комерційного програмування і єдине що мене відділяло від повного нуля - це один семестр програмування на мові Паскаль. Його викладали на той час, якщо я не помиляюсь, на третьому курсі мех-мату.
Мені порекомендували спробувати освоїти Python, як один із найбільш пріоритетних напрямків і я ніразу не пожалкував про даний вибір!
Проте навчання не було простим…
Я починав підручник за підручником і жодного не міг завершити. На більш складніших місцях приходилось перечитувати по сотні разів і пробувати переписувати код тижнями. Кожен наступний підручник я брав для того, щоб розібратись в незрозумілих місцях попереднього підручника.
Ви здивуєтесь, але у мене з’явився вдома комп’ютер лише на третьому курсі універу і у 2005 році у мене вдома інтернетом і не пахло :-)
В університеті з повільним інтернетом я годинами завантажував “великі” російськомовні книги у PDF форматі. Далі, щоб перенести додому одну книгу, на кількох дискетах розподіляв один файл на кілька архівів.
Відповідно, не було можливості швидко “загуглити”.
Те, що можна було досягнути за 2-3 місяці приходилось опановувати 3-6 місяців і більше.
Тепер, з висоти пройденого мною шляху, я розумію, що проблема більшості підручників, та й будь яких навчальних матеріалів для початківців, є неможливість автора повернути себе ментально в стан коли, він сам був початківцем.
Чи приходилось вам коли-небудь навчати когось з ваших рідних чи друзів плаванню, катанню на велосипеді, а чи можливо навіть водінню авто?
Чи бувало вам важко зрозуміти, як можна не вміти цієї справи? :-)
Нам, людям, доволі не просто вдається зрозуміти людину, яка поки не вміє того, що ми уже давно освоїли і довели до автоматизму…
До чого я це все?
А до того, що проблема більшості книг у тому, що їх автори уже не розуміють потреб початківців і вже не взмозі повернутись у ті часи, коли вони самі розпочинали кар’єру програміста.
Такий підхід завершується написанням книги без пояснень, на думку автора, очевидних місць. Хоча для початківця вони доволі часто дуже навіть не очевидні.
Але не все так погано…
Людина може тренувати і пригадувати свій стан початківця через регулярну роботу з тими, хто лише починає програмувати.
Саме тому, я вирішив розпочати працю над даною книгою лише після років роботи із початківцями і після двох років ведення блогу.
Працюючи із початківцями я зрозумів, що формат та підхід більшості існуючих книг є далеким від ідеального саме для людей, які ще не мають практики програмування. Навіть якщо книга базована на практичному проекті, то зазвичай формат подачі є швидше інформаційним та підходить людині, яка вже має хорошу практику програмування.
Таким чином, в даній книзі, я спробував максимально “розжовувати” навіть ніби-то очевидні речі і не пропускати великих кусків коду без пояснення причинно-наслідкових зв’язків.
Звісно, вам все одно прийдеться підчитувати і “гуглити” за певними додатковими знаннями в інтернеті в процесі роботи над книгою, але я виклався на максимум, щоб таких моментів було мінімум :-)
Це і було основною причиною, чому я вирішив взятись за таку непросту справу як написання книги.
Я хотів, щоб на ринку з’явилась перша книга з веб-програмування дійсно для початківців у програмуванні!
Чи справився я із даним завданням? - Судити вам.
Але з власного досвіду знаю, що початківцям недостатньо просто дати інформацію. Натомість, важливими чинниками успішності навчального матеріалу є:
- його практичне застосування;
- побудова усього матеріалу на прикладах;
- наявність домашніх завдань та заохочення до власних дій. А також покращення прикладів власними ідеями (тобто основний акцент на ініціативу студента та бажання вчитись розв’язувати проблеми використовуючи інформацію навчального матеріалу);
- наглядний матеріал, що безпосередньо показує процес вирішення проблем у живому непідготовленому режимі професійним програмістом (це як парне програмування);
- робота в команді собі подібних, де можна отримати як допомогу так і допомагати іншим;
- підтримка та мотивація; адже значно простіше долати перешкоди знаючи, що інші, такі як ти, також мають схожі проблеми на своєму шляху.
Виходячи із вищенаведених критеріїв успішного навчального матеріалу, саме для початківців я сформував не просто практичний посібник з Django, а цілий пакет додаткових матеріалів та сервісів для підтримки та мотивації.
Таким чином можна виділити два основні завдання даної книги:
- для тих, хто ще немає достатньої практики програмування, - показати як можна почати програмувати реальний проект. І не лише повторювати код із книги, а і ускладнювати його власними ідеями та самостійно їх реалізовувати. І таким чином набувати практики розв’язування реальних проблем під час створення веб-аплікації.
- для тих, хто вже є веб-розробником, - надати лише необхідний мінімум інформації для освоєння азів веб-розробки з Python та фреймворком Django.
Підсумовуючи усе вищезгадане: перша і найважливіша порада вам, якщо ви початківець і ще не маєте достатньо практики програмування:
Якщо ви не маєте достатньо часу, бажання, чи планів на те, щоб активно працювати із вашим редактором коду протягом даної книги, ускладнювати проект власними ідеями, вчитись самостійно розв’язувати проблеми, що виникатимуть у вас при цьому, тоді прошу вас зупинитись відразу і даремно не гаяти власного часу. Ця книга винятково для тих, хто вже починаючи з 4-ї глави книги відкриє свій улюблений редактор і почне регулярно виділяти час для кодування, читання чужого коду та розв’язування проблем!
Якщо ж до цього моменту ви не знаєте, що таке веб-програмування, або ще зовсім нічого не чули про мову програмування Python, тоді раджу ознайомитись із наступними матеріалами:
- Мій безкоштовний курс: “Програміст Початківець”
- Мова Python Ідеальна для Початківців
- Веб-Розробка
- 6 Кроків до Роботи Джуніор Програмістом
Я впевнений, що дані матеріали дадуть вам відповіді на більшість ваших запитань. Якщо все ж маєте будь-які сумніви, тоді продовжуйте освоєння даної книги лише після ознайомлення з цими матеріалами.
…
Ну як? Переконались, що дана книга - це саме те, що вам потрібно?…
Тоді можемо рухатись далі. Ця і наступні дві глави даної книги дадуть вам ще більше розуміння про те, чим ми з вами займатимемось та куди нас це все приведе.
Перед тим як почати…
Перш за все хочу звернути вашу увагу на те, що дана книга йде із цілим набором додаткових матеріалів:
- книга у форматі PDF
- книга у кількох мобільних форматах
- закрита онлайн група підтримки
- шпаргалки по усіх згаданих технологіях у книзі
- відео інтерв’ю із професійними програмістами
Початківцю не так важливо просто отримати інформацію, як отримати підтрику, мотивацію та покрокову демонстрацію процесу побудови веб-сайту з нуля.
Щоб ефективно працювати із матеріалом даної книги, необхідний мінімум знань складає базове знання мови програмування Python включно з основами об’єктно-орієнтованого програмування (ООП). Якщо ви вважаєте, що даних знань вам бракує, тоді варто відкласти дану книгу і спершу підтягнути мову Python. А тоді уже повернутись і продовжити освоєння матеріалу даного підручника.
Ось кілька корисних джерел, де ви зможете швидко та якісно отримати базу мови програмування Python:
- “Python 2: Курс Молодого Бійця” у мене на блозі;
- англомовні Python курси на Coursera, Udemy та Udacity;
- російськомовний відео курс “Ввід в Python” на Youtube;
Завдання книги - надати вам інформацію та приклади коду із поясненням азів веб-програмування з Django.
Кожна глава закінчується домашнім завданням. Завдання починаються від найпростіших і закінчуються великими ідеями з покращення коду та функціоналу побудованого у даній главі. Таким чином матимете ідеї для подальшої практики.
Зазвичай, особливо на перших порах, у вас виникатиме маса проблем та запитань в процесі виконання домашніх завдань. І чим більше ви відходитимете від книжкових прикладів, тим більше виникатиме труднощів.
Саме для того, щоб не здаватись і доводити домашні завдання до кінця, до книги додається закрита група.
Там можна обговорити те чи інше домашнє завдання, поставити конкретне технічне запитання та отримати на нього відповідь.
У групі є як професійні програмісти, які добре розбираються у всіх аспектах веб-програмування, так і такі ж початківці, як ви. Така закрита тусовка значно збільшить ваші шанси для набуття практики програмування.
Також із книгою йде набір шпаргалок із Python, HTML, CSS та Git. Усі вони допоможуть вам сфокусуватись на програмуванні і не гаяти часу в пошуках тієї чи іншої функції в мові Python, тегу в HTML чи команди в репозиторії коду Git. З часом ви запам’ятаєте найбільш популярні з них, але на початках дані підказки допоможуть вам добряче зекономити час.
І як додатковий бонус до повного пакету книги додається кілька відео інтерв’ю із програмістами: як професіоналами, так і з джуніками (тими, що вже працюють).
Рекомендую переглянути їх із самого початку, а також звертатись до них щоразу, коли рівень мотивації знижуватиметься, а рівень розчарування підвищуватиметься :-)
В даних інтерв’ю ви знайдете історії людей, які вже вміють те, чого ви хочете досягти. Ви отримаєте їхні поради щодо навчання програмуванню, пошуку роботи, ну і звичайно мотивацію та розуміння того, що не так вже й все складно.
Отже, підведемо підсумок щодо роботи із даною книгою:
- спочатку переглядаємо відео інтерв’ю із програмістами, мотивуємось, складаємо власний план досягнення цілей;
- далі налаштовуємось на довготривалу та плідну роботу, без халяви;
- далі читаємо главу книги і пробуємо приклади із прочитаної глави;
- якщо щось не виходить, як описано, - звертаємось за допомогою у закриту групу підтримки. Перед тим, як постити своє запитання у групу, перевірте чи вже хтось раніше його там задавав. Для цього використовуйте поле пошуку у групі. На більшість запитань початківця зазвичай існують відповіді від попередників, адже у всіх спільні проблеми;
- далі практика: працюєте над домашніми завданнями;
- під час роботи над домашніми завданнями виникатиме маса проблем і запитань, для вирішення яких знову звертаєтесь у закриту групу; рекомендую проводити не менше, ніж 30-60 хвилин над кожною проблемою перед тим, як звертатись у групу по допомогу; лише самостійне “ковиряння” проблемної ситуації качає ваш “м’яз розв’язування проблем”;
- в процесі кодування користуєтесь шпаргалками.
Цю книгу я постійно вдосконалював і переписував під час роботи зі студентами, яких я менторив в напрямку веб-програмування на Django. Студенти давали мені живий фідбек в якості запитань та скарг стосовно тих речей, які вдавалися найважче. Таким чином я змінював пояснювальні тексти, а також додавав речі, які на перший погляд були для мене очевидними, але насправді викликали масу запитань. Саме завдяки студентам, я вважаю, мені вдалось дохідливо організувати книгу та додаткові матеріали, що врешті полегшать вам процес навчання.
На завершення даної секції ще хочу повідомити вам, що дана книга не буде разовою роботою із моєї сторони, а натомість постійно вдосконалюватиметься новим та кращим матеріалом, відповідно до фідбеку читачів та нових версій Python та Django. Я планую постійно і на регулярній основі підтримувати матеріал даної книги в хорошій формі та в майбутньому релізити нові версії. Усі інші мої продукти будуть створюватись на базі даної книги таким чином, щоб надати допомогу початківцю на усіх його етапах від навчання азів програмування і аж до пошуку першої роботи.
Форматування у книзі
Як ви уже мабуть зауважили, книгу я старався писати простою живою мовою без зайвого офіціозу. Приблизно такою мовою, якою я зазвичай пишу статті на своєму блозі. Адже вважаю, що таким чином можна краще надати практичний матеріал, передати власний досвід, організувати та змотивувати читача до дій, ніж пишучи сухою офіційною мовою книг. Час до часу можуть проскакувати сленгові слова, суржик, русизми, англіцизми і т.д. Я не намагався їх зменшити в книзі, натомість хочу, щоб книга звучала автентично та передавала настрій автора і давала вам відчуття реального персонального ментора з усіма його нюансами :-).
Окрім звичайного тексту, в даній книзі також використовується форматування блоків коду. Зазвичай, це спеціально підсвічений блок коду. Кожна мова матиме свою підсвітку. Ось приклад Python та HTML коду:
1 class BaseExamFormView(object):
2 def post(self, request, *args, **kwargs):
3 # handle cancel button
4 if request.POST.get('cancel_button'):
5 return HttpResponseRedirect(reverse('exams_list') +
6 '?status=Зміни скасовано.')
7 else:
8 return super(BaseExamFormView, self).post(
9 request, *args, **kwargs)
1 <html>
2 <head><title>Заголовок Сторінки</title>
3 <body>
4 <h1>Приклад Сторінки</h1>
5 <p>Підсвітка Рулить!</p>
6 </body>
7 </html>
Здебільшого книга містить лише практичний матеріал і лише той, що стосується проекту, який розроблятимемо на сторінках даного посібника.
Які технології розглянемо у даній книзі?
На сторінках даної книги ми створимо наближений до реального веб-проект, в процесі якого працюватимемо із наступними технологіями:
- мова програмування Python;
- веб-фреймворк Django;
- бази даних PostgreSQL;
- мова розмітки HTML;
- каскадні таблиці стилів CSS;
- мова програмування Javascript;
- Javascript бібліотека jQuery;
- HTML/CSS фреймворк Twitter Bootstrap;
- репозиторій коду Git.
У наступних главах ми детальніше поговоримо про кожну із вищенаведених технологій.
Тут лише зауважу, що основний акцент даної книги є на серверній розробці веб-сайту. Ми розроблятимемо також і клієнтську сторону веб-аплікації, але для цього використовуватимемо бібліотеку Twitter Bootstrap, що полегшить наше завдання та дозволить менше занурюватись у верстку і більше фокусуватись на Django фреймворку.
Без дисципліни нікуди…
Як ви вже зрозуміли, дана книга - це не просто інформація з веб-програмування, а спроба надати справжню підтримку та підвищити шанси студента на успіх.
Початківець на шляху до успіху зустрічається з двома величезними проблемами, з якими варто навчитись працювати:
- організація та самодисципліна;
- мотивація та віра у власні сили.
Саме тому, окрім матеріалів по програмуванню, в дану книгу я також додав поради та рекомендації із самоорганізації. Вони допоможуть вам освоїти матеріал книги, отримати практику програмування, а не просто прочитати і забути.
Відповідно для початку давайте розберемо кілька важливих моментів щодо організації свого часу, щоб збільшити наші шанси на успіх.
Сила “Вже і Зараз”
Якщо ви ще цього не зрозуміли, то знайте: те, що ми робимо прямо тут і зараз безпосередньо впливає на наше майбутнє. Кожна наша думка, рішення і дія формують наше майбутнє, допомагають або заважають нам досягати цілей та формувати вдалі плани.
Саме тому так важливо перестати відкладати на завтра ті речі, які можна спробувати уже сьогодні, через годину, або ще краще прямо зараз!
Виходячи із даного принципу, рекомендую вам, особливо якщо ви ще початківець у програмуванні, виконувати приклади та домашні завдання з даної книги “не відходячи від каси”. Не відкладайте на завтра, адже завтра будуть нові ще цікавіші завдання.
Якщо хочете знати, чому ми усі відкладаємо найважливіші справи у нашому житті на завтра, а також те, як з цим бути, тоді почитайте мою статтю на дану тему. Вона дасть вам гарне розуміння ситуації, а з ним прийде і бажання щось змінити: “Як початківцю не відкладати на завтра той код, що можна закодити уже сьогодні!”.
Правильний розпорядок дня
Наш мозок працює згідно 4-ох годинних фаз.
Перші 4 години вашого дня він зазвичай є найактивнішим, має величезний потенціал та енергію до вирішення найважчих проблем дня. Потім настає 4 години обіднього часу, коли йому варто відпочити. І далі, після обіду, знову 4 години, коли він вже не такий свіжий, як на початку дня, але ще у гарному стані для продовження менш інтенсивної розумової праці. Як от, наприклад, навчання.
Звісно, у кожного з нас є свій розпорядок. Хтось любить вставати рано-вранці, а хтось довше повалятись в ліжку. Комусь програмується значно краще вночі, а комусь після обіду. Це все справа звички.
В будь-якому випадку рекомендую вам, по-перше, виділити фіксований проміжок часу у вашому дні, коли ви будете займатись практикою програмування. В ідеалі хоча б 2 години, ну або хоча б 1 годину. Але тоді мати таких проміжків хоча б два на один день.
По-друге, також виділити час на навчання. Це може бути прочитання книги, проходження курсу, перегляд відео туторіалів і т.д.
По-третє, переконатись, що проміжок практики програмування завжди йде перед періодом навчання. Адже навчання не потребує такої кількості енергії та свіжості вашої думки, як програмування. Саме тому, першою у вашому денному графіку має бути практика програмування, а вже потім - навчання програмуванню та теорія.
І взагалі, значно краще щодня приділяти невелику кількість часу програмуванню, ніж один раз на тиждень по кілька годин за один присіст. Наша підсвідомість працює так, що їй краще запам’ятовувати і обробляти інформацію регулярно невеликими порціями, таким чином перебуваючи постійно в атмосфері предмету, який ви освоюєте.
У даній статті я описав, як виглядає мій робочий день, і пояснив чому найважчі справи я роблю із самого початку. Рекомендую взяти собі на озброєння кілька ідей: “Робочий день програміста або як не проживати все життя за компом?”.
Сила звички
Буде взагалі ідеально, якщо вищенаведені рекомендації із розпорядку вашого дня ви зможете ввести у своє життя на регулярній основі. На рівень звички.
Мотивація, бажання, мрії, зобов’язання - все це з часом проходить і перестає працювати. Але якщо до моменту, коли це все пройде, ви зможете виробити у себе звичку кожного дня хоча б годину програмувати, то це буде запорука успіху для вас як початківця у програмуванні.
Ще донедавна я і не уявляв, що звичка може бути таким потужним інструментом і ключем до всього! Хочете побудувати успішний бізнес? Випрацьовуйте правильні звички. Хочете поїхати у кругосвітню подорож? Випрацьовуйте правильні звички. Хочете навчитись професійно програмувати? Випрацьовуйте правильні звички.
Саме завдяки звичці я два роки без пауз щотижня публікував статтю на своєму блозі. Саме завдяки звичці я написав дану книгу.
Тому я впевнений, що, якщо ви виробите у собі правильні звички, вони гарантують вам успіх у вивченні програмування та освоєння фреймворку Django.
Як виробляти звички? Ось невеличкий огляд того, як я це робив: “Сила Звички або Як Досягати Результату”.
Тайм менеджмент
На завершення організаційної секції хочу згадати, що існує маса технік та підходів з управління своїм часом. Яка з них підійде саме вам? Не знаю. Потрібно спробувати багато різних речей на власній шкурі і зрозуміти, що найкраще працює саме для вас.
Коли я багато програмував протягом дня, то успішно використовував Техніку Помодоро. Можливо вона допоможе і вам.
Із власних спостережень я зрозумів, що розподіл свого часу на менші частини допомагає мені краще його використовувати.
До прикладу, якщо кожні 30 хвилин роблю перерву на 5-ти хвилинний відпочинок, тоді встигаю більше, ніж коли працюю, не встаючи 2 години. За 30 хвилин я просто не встигаю відволікатись на непотрібні речі.
А загалом, треба навчитись домовлятись із собою. Кожен раз, коли займаєтесь не надто важливою справою, запитайте себе: “А чи це приведе мене через тиждень (місяць, рік, 10 років) до моєї цілі?”. Мені допомагає.
Експериментуйте і шукайте свої підходи для самоорганізації та самодисципліни, адже без них далеко не заїдеш.
3 фішки, щоб успішно дійти до кінця!
У мене вже неодноразово були ситуації, коли студент на персональному менторстві опускав руки, розчаровувався і був готовий здатись буквально у перший тиждень співпраці.
І якщо самоорганізація, дисципліна і правильні щоденні звички є запорукою доведення справи до кінця, мотивація є важливим компонентом, щоб стартувати будь яку нову справу і почати навпрацьовувати ці звички!
Я, як ніхто інший, тепер знаю, що мотивація, віра в себе, порада з боку - є одними з найпотужніших інструментів у допомозі початківцю освоїти програмування.
Що ж стоїть на шляху початківця, що може швидко обламати його крила у перші тижні практики?
Несвідомий код
Мабуть найбільшою проблемою людини, яка починає розбирати багато технологій, мов і напрямків одразу (а так воно у вебі часто буває), є розчарування через те, що багато речей на практиці якщо і вдаються, то вдаються несвідомо. Без повного розуміння усієї картини.
Дядько Google, “copy-paste” (скопіював-вставив), “метод наукового тику”, випадкові спроби та експерименти - ось це все з чого я сам починав програмувати. І це незважаючи на те, що я перед тим прочитав з 5-7 книг по усіх потрібних мовах та технологіях.
Якщо ви лише починаєте набиратись практики програмування, тоді, впевнений, у вас буде подібна ситуація. Адже ніхто не починає ходити в дитинстві допоки 1000 разів не впаде.
Тому не бійтесь несвідомого коду. Просто сідайте і пишіть. Чим більше напишете, тим швидше перейдете на рівень свідомого коду.
Ось рівні коду початківця:
- написати будь-який код;
- зробити цей код таким, щоб запускався (тобто без синтаксичних помилок);
- оновити код так, щоб він працював;
- оновити код так, щоб він працював правильно;
- заглянути ще раз в середину коду і тепер зробити, щоб він ще й виглядав гарно згідно з кращими практиками мови;
- дописати тести та документацію (якщо звичайно має зміст у даній ситуації);
- вернутись до свого коду за деякий час і виявити у собі бажання переписати код ще кращим чином. Якщо бажання з’явилось, значить за цей час людина “прогреснула”.
Тому, аби перейти на рівень 7, треба якомога швидше почати рівень 1. Крапка.
І без розчарувань та ідеалів щодо результатів від прочитання теоретичних книг…
Переломний момент
З часом рівень “несвідомого коду” знижується. І чим далі ви рухаєтесь, тим більшою стає швидкість вашого прогресу.
Варта лише не здатись на початку при перших проблемах. А далі кожен наступний виклик буде долатись вами простіше і простіше.
Кажуть, що для того, щоб стати експертом у будь-якій справі, потрібно провести як мінімум десять тисяч годин свідомої практики.
Так от, я думаю, що для програміста-початківця, щоб дійти до переломного моменту після якого можна самостійно (хоч інколи і повільно) вирішувати більшість проблем у веб-розробці з Django, потрібно в середньому 6-8 тижнів регулярної щоденної практики. При мінімумі у 2-3 години програмування на день.
Це рівень, коли вам вже не потрібен наставник для вирішення кожної проблеми, а більшість запитань ви з’ясовуєте та відпрацьовуєте самостійно.
Після 6-8 тижнів ви не станете професіоналом, але протягом них початківець зазвичай переходить із першого рівня написання коду до написання коду, що працює правильно. І, що дуже важливо, - самостійно, без допомоги ззовні.
Тому перші кілька тижнів є особливо важкими. На них варто відповідно налаштуватись, змотивуватись і зрозуміти, що дуже багато речей будуть незрозумілими. Але тим не менше, доведеться просто сідати, писати, ковиряти та читати чужий код.
Просто скажіть собі: “це нормально, так має бути, це не я невдаха, це усі так починають!”.
І зрозумійте, що більшість професійних програмістів саме так і починали ;-)
Вища мета
Кожного разу, коли:
- я хочу відкласти важливу некомфортну справу на пізніше,
- маю великі несподівані проблеми на своєму шляху,
- не впевнений у правильному виборі,
- просто лінуюсь,
я стараюсь зупинитись і згадати про свою вищу мету, про план та цілі, які я розробив раніше.
Зазвичай, кожна поточна проблема вирішується легше, якщо ви згадуєте те, що вас чекає коли успішно подолаєте даний етап.
Вища мета поповнює вашу енергію та додає мотивації у кожній складній ситуації. Головне не забувати про неї і регулярно піднімати голову над буденними проблемами.
Але, щоб цей метод досягнення цілей працював, переконайтесь, що ваша мета та цілі є дійсно такими, від яких у вас захоплює дух. Такими, які по-справжньому мотивують вас та з легкістю піднімають вас кожного ранку з ліжка!
Ви мабуть зауважили, що на моєму блозі близько половини усіх статей мають мотиваційний та підбадьорюючий характер. Я дуже стараюсь допомогти людині глянути на велику гору проблем, як на маленький посильний горбик. Адже в протилежному випадку, більшість людей навіть не почне сходження на неї. Ось лише декілька із цих статей. Читайте, мотивуйтесь і повертайтесь до них у важкі хвилини:
- Мої Спостереження про викладання та навчання програмуванню,
- Чотири Кроки до Гугла без Університетського Ступеня,
- 5 способів, щоб стати найкращим у своїй справі,
- Мої поради усім новим програмістам або як мотивуватись?.
Домашнє завдання
Ви можете здивуватись, чому вступна глава займає так багато сторінок і чому він стільки “лиє води”? Коли ми вже нарешті перейдемо до діла і почнемо програмувати?
На це я вам скажу, що дана глава насправді є однією із найважливіших у цій книзі. Питання підтримки, самоорганізації та мотивації є найважливішими для початківців у програмуванні. Саме тому я ще не один раз буду заряджати сторінки даної книги “тайм менеджмент” фішками, “мотивашками” та іншими речима, які не мають прямого відношення до програмування.
Але, якщо ви супер-організований, оптимістичний та вмотивований супермен, тоді надалі можете сміливо пропускати такі ліричні відступи.
Усім іншим щиро раджу:
- переглянути свій робочий день;
- переглянути своє питання: “Для чого мені усе це?”;
- поставити далекоглядні високі цілі, які вас будуть по-справжньому мотивувати;
- виділити собі години для роботи із книгою та години для написання коду;
- в нашій закритій групі підтримки написати про себе і познайомитись із тусовкою.
Якщо все зробите правильно, тоді вважайте, що 70% успіху у вас в кишені!
В наступній главі ми з вами оглянемо ази веб-розробки. Розберемо, що таке створення веб-сайту, які технології і мови задіяні у процесі його створення і гарно підготуємось до нашого веб-проекту.