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

Месецът е много време. Ако се отделят по 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 часа): Изучете , създайте репозиторий. Опитайте се да направите commit, да push-нете кода, да изчислите разликата между две 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 дни, за да усъвършенствате уменията си в тези въпроси. По този начин, след всеки отказ, ще ставате по-добри като разработчик.
Готовност за работа:
Истината е, че никога няма да сте 100% готови за работа. Всичко, което ви трябва, е да научите много добре 1-2 неща. И да се запознаете с други въпроси, за да преодолеете бариерата на интервютата. След като получите работа, ще научите много на нея.
Наслаждавайте се на процеса:
Обучението е процес. По пътя си ще срещнете предизвикателства. Колкото повече са те — толкова по-добре ще станете като разработчик.
Ако успеете да приключите списъка за 28 дни, сте голям герой. Но дори и да изпълните 60-70% от списъка, ще развиете необходимите качества и умения. Те ще ви помогнат да станете програмист.
Къде да учите:
Ако все още не знаете откъде да започнете,
- (вълнуващо андроид приложение за изучаване на Python)
- (безплатни ресурси за обучение в уеб версия)
- (гледайте видеата и се учете)
Желая ви вълнуващо пътуване. Бъдещето е във ваши ръце.
Превод: Диана Шеремьова
Източник: habr.com
