Python за місяць

Посібник для абсолютних чайновічків.
(Прим. пров.: це поради від автора-індусу, але начебто слушні. Доповнюйте у коментах.)

Python за місяць

Місяць – це багато часу. Якщо витрачати навчання по 6-7 годин щодня, можна зробити дофіга.

Ціль на місяць:

  • Ознайомитись з основними поняттями (змінна, умова, список, цикл, функція)
  • Освоїти на практиці понад 30 проблем програмування
  • Зібрати два проекти, щоб застосувати на практиці нові знання
  • Ознайомитися хоча б із двома фреймворками
  • Почати роботу з IDE (середовищем розробки), Github, хостингом, сервісами і т.д.

Так ви станете молодшим розробником (джуном) Python.

Тепер план на тижні.

Python за місяць

Статтю перекладено за підтримки компанії EDISON Software, яка дає слушні поради юніорам, а також проектує програмне забезпечення і пише ТЗ російською та англійською.

Перший тиждень: познайомтеся з Python

Розберіться як усе влаштовано Python. Перевірте якнайбільше речей.

  • День 1: 4 основні концепти (4 години): введення, висновок, змінна, умови
  • День 2: 4 основні концепти (5 годин): список, цикл for, цикл while, функція, імпорт модулів
  • День 3: Прості проблеми програмування (5 годин): поміняти місцями дві змінні, перевести градуси Цельсія за Фаренгейтом, порахувати суму всіх розрядів у числі, перевірити число на простоту, згенерувати випадкове число, видалити дублікат зі списку
  • День 4: Проблеми програмування середньої складності (6 годин): перевернути рядок (перевірити на паліндром), порахувати найбільший спільний дільник, об'єднати два відсортовані масиви, написати гру на вгадування чисел, порахувати вік і т.д.
  • День 5: Структури даних (6 годин): стек, черга, словник, кортежі, зв'язковий список
  • День 6: ООП - Об'єктно-орієнтоване програмування (6 годин): об'єкт, клас, метод та конструктор, ОВП успадкування
  • День 7: Алгоритм (6 годин): пошук (лінійний та бінарний), сортування (методом бульбашки, вибором), рекурсивна функція (факторіал, ряд Фібоначчі), тимчасова складність алгоритмів (лінійних, квадратичних, константних)

Не встановлюйте Python:

Я розумію, звучить суперечливо. Але повірте мені. Я знаю купу людей, у яких відпало будь-яке бажання вивчати щось після того, як вони не змогли встановити середовище розробки або ПЗ. Я раджу відразу залізти в андроїд додаток на зразок Герой програмування або на сайт Відповідь та почати досліджувати мову. Не ставте собі завдання насамперед встановити Python, якщо ви не особливо підковані технічно.

Другий тиждень: почніть розробку програмного забезпечення (зберіть проект)

Отримайте досвід розробки програмного забезпечення. Спробуйте використати все, що ви вивчили, щоб створити цей проект.

  • День 1: Ознайомтеся із середовищем розробки (5 годин): Середовище розробки це інтерактивне середовище, де ви будете писати код для найбільших проектів. Ви повинні добре знати хоча б одне середовище розробки. Я рекомендую почати з VS code install Python extension або Jupyter notebook
  • День 2: Github (6 годин): Вивчіть GithubСтворіть репозиторій. Спробуйте закоммітити, запушити код, розрахувати різницю між двома будь-якими Git деревами. Також розберіться з розгалуженням, злиттям та пул реквестами.
  • День 3: Перший проект: Простий Калькулятор (4 години): Ознайомтеся з Tkinter Створіть простий калькулятор.
  • День 4, 5, 6: Особистий проект (5 годин щодня): Виберіть один із проектів та почніть над ним роботу. Якщо у вас немає ідей для проекту, перегляньте цей список: кілька хороших проектів на Python
  • День 7: Хостинг (5 годин): Розберіться з сервером та хостингом, щоб хостити свій проект. Налаштуйте Heroku та задеплойте складання вашої програми.

Чому проект:

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

Третій тиждень: освоїться як програміст

Ваша мета на 3 тижні отримати загальне уявлення про процес розробки програмного забезпечення. Вам не потрібно буде відточувати ваші навички. Але ви повинні знати деякі основи, оскільки вони вплинуть на вашу повсякденну роботу.

  • День 1: Основи баз даних (6 годин): Базовий SQL-запит (Create Table, Select, Where, Update), Функція SQL (Avg, Max, Count), реляційна база даних (Нормалізація), Внутрішнє з'єднання, Зовнішнє з'єднання і т.д.
  • День 2: Використовуйте бази даних у Python (5 годин): Використовуйте фреймворк бази даних (SQLite або Pandas), приєднайтесь до бази даних, створіть і додайте дані до декількох таблиць, рахуйте дані з таблиць
  • День 3: API (5 годин): Навчіться викликати API, навчіть JSON, мікросервіси, REST API
  • День 4: Numpy (4 години): Ознайомтеся з Numpy та попрактикуйтеся у його використанні на перших 30 вправах
  • День 5, 6: Портфоліо сайту (5 годин щодня): Вивчіть Django, створіть портфоліо сайту на Django, також погляньте на фреймворк Flask
  • День 7: Юніт-тести, логі, налагодження (4 години): Розберіться з юніт-тестами (PyTest), навчитеся працювати з логами та перевіряти їх та використовуйте брейкпоінти

Реальний масштаб часу (Секрет):

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

  • Вчіть Python постійно. Починайте о 8-й ранку і займайтеся цим до 5 вечора. Зробіть перерву на обід і перекушування (загалом годину)
  • О 8-й ранку складіть список речей, які ви вивчатимете сьогодні. Після цього приділіть годину часу, щоб згадати і випробувати на практиці все, що вивчили вчора.
  • З 9 ранку до 12 години дня вчіть і практикуйтеся поменше. Після обіду наберіть обертів. Якщо ви застрягли на проблемі, пошукайте її рішення в мережі.
  • Щодня витрачайте по 4-5 годин на навчання та 2-3 години на практику. (Максимум можете влаштувати собі один вихідний на тиждень)
  • Ваші друзі вирішать, що ви божевільний. Не розчаровуйте їх – відповідайте образу.

Якщо ви працюєте повний робочий день або навчаєтеся в універі, то вам знадобиться більше часу. Будучи студентом, мені знадобилося 8 місяців, щоб зробити все вказане у списку. Нині я працюю старшим розробником (сеньйором). Моїй дружині, яка працює в центральному банку США, знадобилося півроку, щоб закінчити всі завдання зі списку. Не має значення скільки часу знадобиться. Закінчіть список.

Четвертий тиждень: серйозно поставтеся до того, щоб отримати роботу (стажист)

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

  • День 1: Резюме (5 годин): Створіть односторінкове резюме У верхній частині резюме розмістіть коротку інформацію про свої навички. Обов'язково додайте список своїх проектів із посиланнями на Github.
  • День 2: Портфоліо сайту (6 годин): Напишіть кілька блогів Додайте їх до попереднього портфоліо сайту, який ви зробили.
  • День 3: Профіль LinkedIn (4 години): Створіть профіль у LinkedIn. Перенесіть у LinkedIn все, що є у вас в резюме.
  • День 4: Підготовка до співбесіди (7 годин): Загугліть найчастіші питання на співбесідах. Попрактикуйтесь у вирішенні 10 проблем програмування, про які запитують на співбесідах. Робіть це на папері. Запитання зі співбесід можна знайти на сайтах на кшталт Glassdoor, Careercup
  • День 5: Нетворкінг (~ годин): Виберіть з комірки. Почніть ходити на мітапи, ярмарки вакансій. Познайомтеся з рекрутерами та іншими розробниками.
  • День 6: Просто відгукніться на вакансії (~ годин): Загугліть “робота Python”, перегляньте які вакансії є на LinkedIn та місцевих сайтах з пропозиціями роботи. Виберіть 3 вакансії, на які ви відгукнетесь. Налаштуйте своє резюме під кожну із них. Знайдіть 2-3 речі у списках вимог, які ви не знаєте. Витратьте наступні 3-4 дні те що, щоб у них розібратися.
  • День 7: Навчайтеся за рахунок відмов (~ годин): Щоразу, коли ви отримуєте відмову, визначте для себе 2 речі, які ви повинні знати, щоб отримати роботу. Потім витратить 4-5 днів на те, щоб відточити свою майстерність у цих питаннях. Таким чином, після кожної відмови ви ставатимете краще як розробник.

Готовність до роботи:

Щоправда, ви ніколи не будете готові до роботи на 100%. Все, що вам потрібно, це дуже добре вивчити 1-2 речі. І ознайомитись з іншими питаннями, щоб подолати бар'єр співбесід. Як тільки ви отримаєте роботу, ви багато чого навчитеся на ній.

Насолоджуйтесь процесом:

Навчання це процес. На вашому шляху неодмінно будуть труднощі. Чим їх більше, тим ви краще як розробник.

Якщо ви можете закінчити список за 28 днів, ви великий молодець. Але навіть якщо ви виконаєте 60-70% списку, ви розвинете необхідні якості та навички. Вони допоможуть стати програмістом.

Де вчитись:

Якщо ви все ще не знаєте, з чого почати,

Бажаю вам захоплюючої подорожі. Майбутнє у ваших руках.

Переклад: Діана Шерем'єва

Джерело: habr.com

Додати коментар або відгук