1. Практика

Программирование на Python: нет смысла идти на платные курсы пока не разберетесь в бесплатных

Какая математическая база нужна для Python, чем он хорош для новичков и какие задачи можно решить с помощью этого языка программирования

© Shutterstock

Python ча­сто со­ве­ту­ют изу­чать тем, кто ни­ко­гда рань­ше не про­грам­ми­ро­вал. Одно из его пре­иму­ществ — уни­вер­саль­ность, за счёт ко­то­рой он ис­поль­зу­ет­ся про­фес­си­о­на­ла­ми в раз­ных об­ла­стях: от жур­на­ли­сти­ки до про­дакт-ме­недж­мен­та. Его мож­но при­ме­нять для ре­ше­ния ру­тин­ных за­дач: на­при­мер, что­бы ви­зу­а­ли­зи­ро­вать боль­шой объ­ём дан­ных или со­став­лять спис­ки дел и по­ку­пок. Ав­тор и ме­не­джер про­грам­мы «Ана­лиз дан­ных» в Ян­декс.Прак­ти­ку­ме Анна Чу­ви­ли­на рас­ска­за­ла как оп­ти­ми­зи­ро­вать свой быт и ра­бо­ту при по­мо­щи про­грам­ми­ро­ва­ния, ка­кие биб­лио­те­ки (шаб­ло­ны ре­ше­ний) мо­гут ис­поль­зо­вать но­вич­ки и как вы­брать курс по изу­че­нию Python. Ма­те­ри­ал под­го­тов­лен Ака­де­ми­ей Ян­дек­са




По­че­му Python со­ве­ту­ют но­вич­кам

Одно из глав­ных пре­иму­ществ Python — низ­кий по­рог вхо­да. Код на нём ла­ко­нич­ный и обыч­но схо­ду по­ня­тен даже тем, кто изу­чал дру­гой язык. А по­дроб­ная до­ку­мен­та­ция по­мо­жет разо­брать­ся в про­грам­ми­ро­ва­нии с нуля.

Ре­сур­сы для изу­че­ния Python:

Во­круг Python сфор­ми­ро­ва­лись со­об­ще­ства эн­ту­зи­а­стов, ко­то­рые пи­шут на этом язы­ке. На­при­мер, в Москве есть груп­па Moscow Python: они про­во­дят кон­фе­рен­ции и нефор­маль­ные встре­чи и со­труд­ни­ча­ют с круп­ны­ми ИТ-ком­па­ни­я­ми.

Для Python су­ще­ству­ет объ­ём­ная си­сте­ма биб­лио­тек — го­то­вых ре­ше­ний для тех или иных за­дач. Есть как ал­го­рит­мы для ба­зо­вых ма­те­ма­ти­че­ских опе­ра­ций, так и для слож­ных за­дач: на­при­мер, рас­по­зна­ва­ния кар­ти­нок и зву­ков.

У язы­ка мно­го по­нят­ных при­ло­же­ний: его мож­но ис­поль­зо­вать для ана­ли­за дан­ных и ма­шин­но­го обу­че­ния, бэ­кен­да, веб-раз­ра­бот­ки, си­стем­но­го ад­ми­ни­стри­ро­ва­ния и игр. Ко­неч­но, при этом ну­жен раз­ный на­бор на­вы­ков по­ми­мо про­грам­ми­ро­ва­ния, но с Python мож­но на­чать осва­и­вать по­чти лю­бую пред­мет­ную об­ласть.

Важ­но по­ни­мать, что для ана­ли­за дан­ных язык про­грам­ми­ро­ва­ния — это ин­стру­мент. Ана­лиз дан­ных мож­но про­во­дить и в Ex­cel, и на бу­маж­ке, а про­грам­ми­ро­ва­ние — толь­ко один из ва­ри­ан­тов того, как мож­но ре­шать та­кие за­да­чи.

Одно из рас­про­стра­нён­ных при­ло­же­ний Python — ра­бо­та с дан­ны­ми для про­дакт-ме­недж­мен­та. Ана­лиз дан­ных поз­во­ля­ет ме­не­дже­рам по­лу­чать ин­сай­ты о по­ве­де­нии поль­зо­ва­те­лей и при­ни­мать обос­но­ван­ные ре­ше­ния. В круп­ных ком­па­ни­ях долж­но­сти ана­ли­ти­ков и про­дакт-ме­не­дже­ров обыч­но раз­де­ле­ны, но в неболь­ших про­ек­тах про­дак­там нуж­но ра­бо­тать с дан­ны­ми са­мо­сто­я­тель­но.

Как по­нять, что вам ну­жен имен­но Python

На­зы­вать его «убий­цей Ex­cel» — некор­рект­но. Мно­гие ко­ман­ды и ком­па­нии в Рос­сии ве­дут весь учёт в обыч­ных таб­ли­цах, и им это­го до­ста­точ­но. А Python ну­жен в тот мо­мент, ко­гда речь идет про дей­стви­тель­но боль­шие объ­е­мы дан­ных. На­при­мер, у Ян­декс.Му­зы­ки мно­же­ство пла­тя­щих поль­зо­ва­те­лей, и их дей­ствия еже­днев­но ге­не­ри­ру­ют ка­кие-то со­бы­тия (лай­ки и про­слу­ши­ва­ния) — и те­ра­бай­ты дан­ных. Хра­нить их в таб­лич­ке Ex­cel — из раз­ря­да фан­та­сти­ки.

В Python про­ще де­лать ин­тер­ак­тив­ную и слож­ную ви­зу­а­ли­за­цию или про­во­дить вы­чис­ле­ния — для это­го су­ще­ству­ют биб­лио­те­ки вро­де Seaborn, mat­plot и Plotly. В Ex­cel есть встро­ен­ный ап­па­рат для ре­ше­ния ма­те­ма­ти­че­ских за­дач (на­при­мер, ра­бо­ты с дан­ны­ми), но для него нуж­но за­по­ми­нать мно­го на­зва­ний опе­ра­ций — и ра­бо­та­ет он до­воль­но непо­во­рот­ли­во. Кро­ме того, в Python мож­но быст­рее и с раз­ных сто­рон по­смот­реть на дан­ные. Ре­грес­сию мож­но по­стро­ить и в Ex­cel, но за­чем, ко­гда в Python есть для это­го го­то­вые биб­лио­те­ки?

Jefferson Santos / Unsplash

Для ста­ти­сти­че­ских рас­че­тов мож­но ис­поль­зо­вать R — люди с ма­те­ма­ти­че­ским об­ра­зо­ва­ни­ем обыч­но осва­и­ва­ют его быст­рее, чем Python. Од­на­ко боль­шин­ству бу­дет про­ще на­чать с Python.

Для раз­ных за­дач ана­ли­за дан­ных су­ще­ству­ют ко­ро­боч­ные ре­ше­ния. На­при­мер, Am­pli­tude (для про­дук­то­вой ана­ли­ти­ки), Mix­panel (для ана­ли­за по­ве­де­ния поль­зо­ва­те­лей) Ян­декс.Мет­ри­ка и Google An­a­lyt­ics. При этом их ис­поль­зо­ва­ние ча­сто плат­ное.

Где при­ме­нять Python, если вы не раз­ра­бот­чик

По­ми­мо ана­ли­за дан­ных у язы­ка есть и бо­лее про­стые при­ло­же­ния. Так, в учеб­ни­ках по Python ча­сто встре­ча­ет­ся за­да­ча с рас­сыл­ка­ми. В ней нуж­но соз­дать рас­сыл­ку, на­при­мер, для лю­дей, ко­то­рые не сда­ли день­ги на ре­монт — най­дя их дан­ные в Ex­cel-таб­ли­це. С по­мо­щью та­ко­го скрип­та мож­но разо­слать пись­ма по шаб­ло­ну — и име­на бу­дут под­став­ле­ны ав­то­ма­ти­че­ски.

Python — про ав­то­ма­ти­за­цию ру­тин­ных за­дач. На­при­мер, мож­но за­пу­стить скрипт, ко­то­рый под­став­ля­ет па­ро­ли — и он ав­то­ма­ти­че­ски от­кро­ет за­па­ро­лен­ные стра­ни­цы или пап­ки. Есть ал­го­рит­мы для того, что­бы ав­то­ма­ти­че­ски со­зда­вать спис­ки по­ку­пок или пе­ре­име­но­вы­вать фо­то­гра­фии опре­де­лён­ным об­ра­зом.

Люди, ко­то­рые уме­ют пи­сать код, при­ду­мы­ва­ют та­кие вещи «на ав­то­ма­те». На­при­мер, мар­ке­то­ло­ги мо­гут за­пу­стить скрипт для по­стро­е­ния во­ро­нок про­даж. А те­сти­ров­щи­ки — на­пи­сать ал­го­ритм, ко­то­рый бу­дет под­став­лять дан­ные в фор­мы и те­сти­ро­вать при­ло­же­ния.

Если го­во­рить про ана­лиз дан­ных, то мно­гие на­чи­на­ют осва­и­вать его из лю­бо­пыт­ства — что­бы най­ти ин­сай­ты в сфе­ре, ко­то­рую пока не ис­сле­до­ва­ли. На­при­мер, мож­но опре­де­лить со­ци­аль­ные про­бле­мы сво­е­го ре­ги­о­на, ана­ли­зи­руя опуб­ли­ко­ван­ную ста­ти­сти­ку. А если вы хо­ти­те че­рез ка­кое-то вре­мя по­пасть на ста­жи­ров­ку или на ра­бо­ту, где ну­жен ана­лиз дан­ных, то та­кой кейс по­мо­жет вам по­ка­зать свои на­вы­ки. На­чать мож­но с про­стых, стан­дарт­ных про­ек­тов, ко­то­рые обыч­но пред­ла­га­ют тем, кто изу­ча­ет Python.

Что нуж­но, что­бы вы­учить Python

Из ма­те­ма­ти­че­ско­го ап­па­ра­та кро­ме ба­зо­вой ариф­ме­ти­ки для про­грам­ми­ро­ва­ния ни­че­го не нуж­но. Что­бы при­ду­мать, ка­кой ал­го­ритм ис­поль­зо­вать для ре­ше­ния той или иной за­да­чи, важ­но струк­тур­ное мыш­ле­ние — но это не ма­те­ма­ти­че­ская ком­пе­тен­ция. Па­ра­докс в том, что и раз­ви­вать его нуж­но с по­мо­щью ре­гу­ляр­ной ра­бо­ты с за­да­ча­ми — важ­но быть го­то­вым про­си­деть над, ка­за­лось бы, три­ви­аль­ным за­да­ни­ем несколь­ко ча­сов и не от­ча­ять­ся.

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


Ма­те­ри­а­лы по ма­те­ма­ти­ке:

Тем, кто хо­чет за­ни­мать­ся ана­ли­зом дан­ных (как про­фес­си­о­наль­но, так и для себя), важ­но раз­вить кри­ти­че­ское мыш­ле­ние. На­при­мер, нуж­но са­мо­му вы­де­лять кри­те­рии для срав­не­ния объ­ек­тов: тут нет ка­ко­го-то стан­дарт­но­го ре­ше­ния. Ещё важ­но схо­ду ви­деть за­ко­но­мер­но­сти и ано­ма­лии в дан­ных.

Изу­чать про­грам­ми­ро­ва­ние и ана­лиз дан­ных мож­но и са­мо­му — я не ре­ко­мен­дую об­ра­щать­ся к плат­ным кур­сам до тех пор, пока вы не по­смот­ре­ли бес­плат­ный кон­тент.

Во-пер­вых, он слу­жит для профори­ен­та­ции: что­бы луч­ше по­нять, ка­кие при­ло­же­ния есть у про­грам­ми­ро­ва­ния или ана­ли­за дан­ных для раз­ных про­фес­сий. Во-вто­рых, даёт по­нять, сколь­ко сил и вре­ме­ни нуж­но бу­дет при­кла­ды­вать для изу­че­ния.

Пре­иму­ще­ства обу­че­ния на кур­сах в том, что на них мож­но по­лу­чить чёт­ко сфор­му­ли­ро­ван­ные прак­ти­че­ские за­да­чи. Так­же пре­по­да­ва­те­ли мо­гут рас­ска­зать о том, как об­щать­ся с за­каз­чи­ком и уточ­нять у него необ­хо­ди­мую ин­фор­ма­цию.

Fatos Bytyqi / Unsplash

Как вы­брать об­ра­зо­ва­тель­ную про­грам­му

Вы­би­рая об­ра­зо­ва­тель­ную про­грам­му, важ­но об­ра­тить вни­ма­ние на пре­по­да­ва­те­лей, ко­то­рые его ве­дут или со­зда­ва­ли для него кон­тент, — мож­но по­смот­реть их про­фи­ли на Face­book и узнать про про­фес­си­о­наль­ный опыт.

Что ка­са­ет­ся цены, то по мо­е­му опы­ту, ка­че­ство кур­са не все­гда с ней кор­ре­ли­ру­ет — по­это­му ори­ен­ти­ро­вать­ся нуж­но на то, сколь­ко вам ком­форт­но по­тра­тить на обу­че­ние.

Так­же сто­ит чёт­ко сфор­му­ли­ро­вать то, что хо­чет­ся по­лу­чить в ре­зуль­та­те, — и сде­лать это клю­че­вым кри­те­ри­ем для вы­бо­ра. Бы­ва­ют слу­чаи, ко­гда сту­ден­ты при­хо­дят на курс по ана­ли­зу дан­ных для ме­не­дже­ров и ожи­да­ют за­ня­тия по про­грам­ми­ро­ва­нию — а их учат об­щать­ся с ана­ли­ти­ка­ми и рас­ска­зы­ва­ют об­щие вещи про то, как внед­рять ана­лиз дан­ных. За­ча­стую про­бле­ма не в пло­хой ор­га­ни­за­ции или пре­по­да­ва­те­лях, а в том, что че­ло­век сам не про­ве­рил, со­от­вет­ству­ет ли про­грам­ма его за­да­чам. Пра­ви­ло с по­ста­нов­кой це­лей ра­бо­та­ет не толь­ко на вы­бор про­грам­мы, но и на обу­че­ние в це­лом — не сто­ит осва­и­вать язык про­грам­ми­ро­ва­ния, что­бы по­ста­вить га­лоч­ку.