Ръководство за абсолютни начинаещи.
(Прим. прев.: това са съвети от автора-индонезиец, но изглеждат полезни. Допълвайте в коментарите.)

Месецът е много време. Ако прекарате по 6-7 часа всеки ден в учене, можете да постигнете много.
Цел за месеца:
- Да се запознаете с основните понятия (променна, условие, списък, цикъл, функция)
- Да усвоите на практика над 30 задачи по програмиране
- Да съберете два проекта, за да приложите новите знания на практика
- Да се запознаете поне с два фреймуорка
- Да започнете работа с IDE (интегрирана среда за разработка), Github, хостинг и услуги и т.н.
Така ще станете младши разработчик (джун) на Python.
Сега план за седмиците.
Статья переведена при поддержке компании EDISON Software, которая , както и .
Първа седмица: запознайте се с Python
Разберете как всичко работи в Python. Проверете максимално много неща.
- Ден 1: 4 основни концепции (4 часа): вход, изход, променна, условия
- Ден 2: 4 основни концепции (5 часа): списък, цикъл for, цикъл while, функция, импорт на модули
- Ден 3: Прости задачи по програмиране (5 часа): разменете две променливи, превърнете градуси Целзий в градуси по Фаренхайт, изчислете сумата на всички цифри в число, проверете число за прстота, генерирайте случайно число, премахнете дубликат от списък
- Ден 4: Задачи по програмиране със средна сложност (6 часа): обърнете низ (проверете дали е палиндром), изчислете най-голям общ делител, обединете два сортирани масива, напишете игра за отгатване на числа, изчислете възраст и т.н.
- Ден 5: Структури от данни (6 часа): стек, опашка, речник, кортежи, свързан списък
- Ден 6: ООП — Обектно-ориентирано програмиране (6 часа): обект, клас, метод и конструктор, наследяване на ООП
- Ден 7: Алгоритъм (6 часа): търсене (линейно и бинарно), сортиране (по метод на пузырька, избор), рекурсивна функция (факториал, Фибоначи), времева сложност на алгоритмите (линейни, квадратични, константни)
Не инсталирайте Python:
Разбирам, изглежда противоречиво. Но повярвайте ми. Знам много хора, които загубиха желанието си да учат след като не успяха да инсталират среда за разработка или софтуер. Препоръчвам ви веднага да погледнете android приложението като или на сайта и започнете да изследвате езика. Не си поставяйте задача първо да инсталирате Python, ако не сте особено технически подготвени.
Втора седмица: започнете разработката на софтуер (съберете проекта)
Получете опит в разработката на софтуер. Опитайте се да използвате всичко, което сте научили, за да създадете истински проект.
- Ден 1: Запознайте се със средата за разработка (5 часа): Средата за разработка е интерактивна среда, където ще пишете код за най-големите проекти. Трябва да знаете поне една среда за разработка. Препоръчвам да започнете с или Jupyter Notebook
- Ден 2: Github (6 часа): Изучете , създайте репозитори. Опитайте се да комитнете, пушнете кода, изчислете разликата между две произволни Git дървета. Също така се запознайте с клонирането, сливането и pull request-ите.
- Ден 3: Първи проект: Прост Калькулатор (4 часа): Запознайте се с Tkinter. .
- Ден 4, 5, 6: Личен проект (5 часа всеки ден): Изберете един от проектите и започнете работа по него. Ако нямате идеи за проект, разгледайте този списък:
- Ден 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 часа): и практикувайте използването му на
- Ден 5, 6: Портфолио на сайта (5 часа всеки ден): Научете 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 дни, за да усъвършенствате умението си в тези въпроси. Така след всеки отказ ще ставате все по-добри като разработчик.
Подготовка за работа:
Истината е, че никога няма да бъдете напълно готови за работа. Всичко, от което се нуждаете, е да научите много добре 1-2 неща. И да се запознаете с други въпроси, за да преодолеете бариерата на интервюто. Веднъж щом получите работа, ще научите много на нея.
Наслаждавайте се на процеса:
Ученето е процес. На вашия път несъмнено ще има трудности. Колкото повече има, толкова по-добри ще ставате като разработчик.
Ако успеете да завършите списъка за 28 дни, сте наистина страхотни. Но дори и да изпълните 60-70% от списъка, ще развиете нужните качества и умения. Те ще ви помогнат да станете програмист.
Къде да учите:
Ако все още не знаете откъде да започнете,
- (вълнуващо андроид приложение за изучаване на Python)
- (безплатни ресурси за обучение в уеб версия)
- (гледайте видеа и учете)
Желая ви вълнуващо пътешествие. Бъдещето е във вашите ръце.
Превод: Диана Шеремьова
Източник: habr.com
