1. Практика

«Плыви или умри». Как я месяц учился в школе программирования 42 Silicon Valley

14 часов в лаборатории, барбекю на заднем дворе и офис Google

© Из личного архива

42 Sil­i­con Val­ley — одна из са­мых из­вест­ных школ про­грам­ми­ро­ва­ния в Крем­ни­е­вой до­лине. Что­бы вы­брать луч­ших сту­ден­тов, ад­ми­ни­стра­ция шко­лы про­во­дит че­ты­рех­не­дель­ный ин­тен­сив­ный курс Piscine, во вре­мя ко­то­ро­го, как на­пи­са­но на сай­те, все долж­ны «ко­дить изо всех сил». Вы­пуск­ник Ба­у­ман­ско­го уни­вер­си­те­та и вла­де­лец ком­па­нии «Мо­сПресс» Алек­сей Ер­шов окон­чил эту про­грам­му ми­нув­шим ле­том. Он рас­ска­зал «Цеху», за­чем по­ехал в эту шко­лу, как про­хо­ди­ло обу­че­ние и по­че­му до фи­наль­но­го эк­за­ме­на до­шли чуть боль­ше по­ло­ви­ны сту­ден­тов.




Я окон­чил Ба­у­ман­ку, но по­шел по нестан­дарт­но­му пути — на ос­но­ве по­лу­чен­ных в вузе зна­ний со­здал про­из­вод­ствен­ный биз­нес. Наша ком­па­ния «Мо­сПресс» про­из­во­дит ме­тал­ли­че­ские де­та­ли для раз­ных от­рас­лей про­мыш­лен­но­сти ме­то­дом ро­та­ци­он­ной вы­тяж­ки. Мы де­ла­ем как ме­тал­ли­че­скую по­су­ду для луч­ших рос­сий­ских ре­сто­ра­нов, так и эле­мен­ты си­стем ка­та­пуль­ти­ро­ва­ния са­мо­ле­тов.

В этом году я про­вел свой лет­ний от­пуск в шко­ле 42 Sil­i­con Val­ley, где взрос­лых обу­ча­ют про­грам­ми­ро­ва­нию. 28 дней по 10-14 ча­сов в сут­ки без вы­ход­ных 300 че­ло­век со все­го мира по­сти­га­ли с нуля азы язы­ка Си в Крем­ни­е­вой до­лине.

Шко­ла со­зда­на в 2013 году во Фран­ции мил­ли­ар­де­ром Кса­вье Нье­лем. Это неком­мер­че­ский про­ект. У шко­лы есть два от­де­ле­ния — в Па­ри­же и Фри­мон­те (Крем­ни­е­вая до­ли­на, США), а так­же мас­са фран­шиз по миру. В Рос­сии, на­при­мер, это «Шко­ла 21» от Сбер­бан­ка. Обу­че­ние аб­со­лют­но бес­плат­ное, во Фри­мон­те так­же предо­став­ля­ют бес­плат­ное об­ще­жи­тие, тебе необ­хо­ди­мо опла­тить толь­ко транс­порт и пи­та­ние.

42 / Facebook

От­бор в шко­лу про­хо­дит необыч­ным об­ра­зом. Сна­ча­ла кан­ди­дат на по­ступ­ле­ние учит­ся на че­ты­рех­не­дель­ном ин­тен­сив­ном курс Piscine, что в пе­ре­во­де с фран­цуз­ско­го зна­чит «бас­сейн». По ре­зуль­та­там обу­че­ния ад­ми­ни­стра­ция шко­лы со­об­ща­ет, кто из участ­ни­ков про­шел. Точ­ные кри­те­рии от­бо­ра дер­жат­ся в сек­ре­те. Ор­га­ни­за­то­ры го­во­рят, что смот­рят на про­гресс сту­ден­тов, тру­до­лю­бие и вклад в со­об­ще­ство — на­при­мер, на­сколь­ко ак­тив­но ты по­мо­га­ешь сво­им од­но­курс­ни­кам во вре­мя про­вер­ки до­маш­них за­да­ний, или как мно­го ты от­ве­ча­ешь на прось­бы в об­щей лен­те Slack.

Что­бы по­пасть про­грам­му нуж­но было толь­ко от­пра­вить за­яв­ку за несколь­ко ме­ся­цев до ее на­ча­ла. Ни­ка­ких те­стов на зна­ние про­грам­ми­ро­ва­ния или ан­глий­ско­го язы­ка сда­вать не при­шлось. Мне го­во­ри­ли, что рань­ше тре­бо­ва­лось ре­шать иг­ро­вые за­да­чи на ал­го­рит­мы, но по­след­нее вре­мя во Фри­мон­те их от­ме­ни­ли. Та­кой под­ход от­ра­жа­ет идею шко­лы: про­грам­ми­ро­ва­нию мо­жет на­учить­ся каж­дый в лю­бом воз­расте, глав­ное — же­ла­ние. Его на­ли­чие как раз и про­ве­ря­ют во вре­мя сверх­ин­тен­сив­ной про­грам­мы, ко­то­рую я про­хо­дил этим ле­том.

Неофи­ци­аль­ный де­ви­зом Piscine — Swim or Die («Плы­ви или умри» на ан­глий­ском — Прим.«Цеха»). Это чет­ко от­ра­жа­ет то, что про­ис­хо­ди­ло на про­грам­ме: до фи­наль­но­го эк­за­ме­на на чет­вер­той неде­ле обу­че­ния до­бра­лись толь­ко 187 че­ло­век из 300. Осталь­ные про­сто по­ки­ну­ли курс в ходе про­грам­мы.

По моим оцен­кам, око­ло 60-70% из тех, кто до­шел до кон­ца ин­тен­си­ва, — пар­ни и де­вуш­ки 20–40 лет, ко­то­рые ра­бо­та­ют в США на низ­ко­опла­чи­ва­е­мой ра­бо­те в ре­сто­ра­нах, на строй­ке или в так­си. Сей­час их сред­не­го­до­вой до­ход — $30-50 000 до вы­че­та на­ло­гов. Для них пе­ре­ква­ли­фи­ци­ро­вать­ся в про­грам­ми­стов — зна­чит вый­ти на го­до­вой до­ход в $100-120 000 и стать сред­ним клас­сом. Были и дру­гие при­ме­ры: немец­кий кон­суль­тант из боль­шой чет­вер­ки, ко­то­рый, как и я, за­ра­нее знал, что при­е­хал в от­пуск на про­грам­му и даль­ше учить­ся точ­но не пой­дет; учи­тель ин­фор­ма­ти­ки из со­сед­не­го с Фри­мон­том го­ро­да, ко­то­ро­му ин­те­рес­но по­гру­зить­ся в но­вую ме­то­ди­ку; ар­тист ба­ле­та из Сан-Фран­цис­ко, ко­то­рый в 35 лет уже вы­шел на пен­сию и осва­и­вал но­вую про­фес­сию; де­душ­ка, при­шед­ший с вну­ком за ком­па­нию.

42 / Facebook

Каж­дый день мы по­лу­ча­ли пор­цию за­да­ний (обыч­но 10 — 25), вы­стро­ен­ных по на­рас­та­ю­щей слож­но­сти. Та­ким об­ра­зом, ка­кой бы вы­со­кий на­чаль­ный уро­вень у тебя ни был, ты обя­за­тель­но встре­тишь­ся с за­да­ни­ем, ко­то­рое точ­но вы­зо­вет за­труд­не­ния. Ты не обя­зан ре­шить все, день счи­та­ет­ся за­чтен­ным, если вы­пол­не­на чет­верть за­да­ний. Каж­дый день мы про­хо­ди­ли но­вую тему, что­бы по­мочь в ней разо­брать­ся в си­сте­ме от­кры­ва­лись обу­ча­ю­щие ви­део на 10-30 ми­нут с тео­ри­ей с при­ме­ра­ми, но это­го ни­ко­гда не было до­ста­точ­но. Одно из пра­вил шко­лы — «Если ты что-то не зна­ешь, спро­си у со­се­да спра­ва, по­том у со­се­да сле­ва, а по­том у Гуг­ла».

С пер­во­го же дня ты стал­ки­ва­ешь­ся не про­сто со слож­ны­ми за­да­ча­ми, а с це­лы­ми об­ла­стя­ми зна­ний, о су­ще­ство­ва­нии ко­то­рых ты даже не знал. Сна­ча­ла ты вхо­дишь в сту­пор, по­том пу­тем неимо­вер­ных уси­лий, со­вер­шая че­ре­ду оши­бок, все-таки справ­ля­ешь­ся с за­да­ни­ем и при­об­ре­та­ешь на­вык, ко­то­рый ста­но­вит­ся при­выч­ным ин­стру­мен­том. На­при­мер, в пер­вый день необ­хо­ди­мо за­пол­нить файл и от­пра­вить его в спе­ци­аль­ный ре­по­зи­то­рий на сер­вер с по­мо­щью ко­ман­ды git че­рез тер­ми­нал. Для про­грам­ми­ста это на уровне ко­ман­ды «ско­пи­ро­вать-вста­вить», для тех, кто стал­ки­ва­ет­ся с этой ко­ман­дой пер­вый раз, она ка­жет­ся ма­ги­ей. В пер­вый день на это за­да­ние у меня ушло око­ло трех ча­сов, зато по­том по­доб­ная опе­ра­ция за­ни­ма­ла несколь­ко се­кунд. Слож­ность за­да­ний рос­ла с гео­мет­ри­че­ской про­грес­си­ей и к кон­цу вто­рой неде­ли пе­ред нами уже сто­я­ла за­да­ча по на­пи­са­нию про­грам­мы, ко­то­рая ав­то­ма­ти­че­ски ре­ша­ет су­до­ку.

42 / Facebook

Что же по­мо­га­ет так быст­ро учить­ся? На мой взгляд, это­му спо­соб­ству­ет несколь­ко осо­бен­но­стей про­грам­мы:

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

Про­вер­ки. Преж­де чем про­грам­ма ав­то­ма­ти­че­ски про­ве­рит ре­зуль­та­ты тво­ей ра­бо­ты за преды­ду­щий день, ты дол­жен про­ве­рить дво­их сво­их од­но­группни­ков и по­лу­чить две про­вер­ки сво­е­го кода. В это вре­мя про­ис­хо­дит мас­са важ­ней­ших со­бы­тий: ты учишь­ся раз­би­рать­ся в чу­жом коде, разъ­яс­нять свой код, ви­дишь, как ту же за­да­чу ре­ша­ли дру­гим пу­тем, мо­жешь по­про­сить разъ­яс­не­ния тех упраж­не­ний, с ко­то­ры­ми не спра­вил­ся.

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

Эк­за­ме­ны. Каж­дую пят­ни­цу про­хо­дит эк­за­мен, во вре­мя ко­то­ро­го у вас нет до­сту­па в ин­тер­нет, спи­сы­ва­ние пре­се­ка­ет­ся нещад­но. За­да­чи де­лят­ся по уров­ням слож­но­сти: ре­шив вер­но за­да­чу, ты по­лу­ча­ешь за нее бал­лы и пе­ре­хо­дишь на сле­ду­ю­щий, бо­лее слож­ный уро­вень. Если ты до­пу­стил ошиб­ку, то тебе пред­ла­га­ет­ся за­да­ча того же уров­ня, но за нее уже да­ет­ся мень­шее ко­ли­че­ство бал­лов. На фи­наль­ный эк­за­мен от­во­дит­ся 8 ча­сов — на нем ты про­ве­ря­ешь, что у тебя оста­лось в го­ло­ве по­сле неде­ли обу­че­ния.

Пер­со­наль­ное рас­пи­са­ние. С тре­тье­го дня обу­че­ния тебе при­хо­дит­ся са­мо­му рас­став­лять при­о­ри­те­ты.

1. В 8:42 утра в си­сте­ме от­кры­ва­ет­ся но­вый день, и ты мо­жешь при­сту­пить к изу­че­нию но­вой темы и ре­ше­нию за­дач по ней, ко­то­рые нуж­но сдать до 23:42 сле­ду­ю­ще­го дня.

2. В 23:42 за­кро­ет­ся вче­раш­ний день, и до это­го вре­ме­ни нуж­но от­пра­вить в ре­по­зи­то­рий код тех за­дач, ко­то­рые ты успел ре­шить, по­это­му ты мо­жешь до­де­лы­вать то, что не успел. За­да­чи со­став­ле­ны так, что ты точ­но не ре­шишь 100%, и тебе нуж­но са­мо­му при­ни­мать ре­ше­ние, ко­гда оста­но­вить­ся.

3. Что­бы по­лу­чить про­вер­ку си­сте­мой по­за­вче­раш­не­го дня, тебе тре­бу­ет­ся про­ве­сти оч­ные про­вер­ки дво­их од­но­группни­ков и по­лу­чить две про­вер­ки сво­е­го кода. На это тоже нуж­но вре­мя.

4. За­да­чи, ко­то­рые бу­дут на эк­за­мене, из­вест­ны за­ра­нее и ты мо­жешь по­свя­тить часть вре­ме­ни им.

У меня не было цели по­сту­пить в шко­лу, но я так увлек­ся обу­че­ни­ем, что в сред­нем в ла­бо­ра­то­рии про­во­дил от 10 до 14 ча­сов в день. И так было у всех: ты либо оку­на­ешь­ся во все это с го­ло­вой и плы­вешь, либо вы­ле­та­ешь. Эта про­грам­ма поз­во­ли­ла мне:

По­нять из чего со­сто­ят IT про­дук­ты

На ос­но­ве зна­ний, по­лу­чен­ных в Ба­у­ман­ском уни­вер­си­те­те, и на­коп­лен­но­го опы­та я по­ни­маю, из ка­ких эле­мен­тов и ти­пов ра­бот со­сто­ит боль­шин­ство фи­зи­че­ских ве­щей, окру­жа­ю­щих нас. На­чи­ная от лист­ка бу­ма­ги и за­кан­чи­вая мно­го­этаж­ным до­мом. С циф­ро­вы­ми про­дук­та­ми был про­бел: сколь­ко и ка­кой ра­бо­ты необ­хо­ди­мо что­бы сде­лать Ян­декс кар­ты, или си­сте­му по рас­по­зна­ва­нию объ­ек­тов, или на­чин­ку ум­но­го хо­ло­диль­ни­ка? По­сле про­грам­мы часть этих во­про­сов про­яс­ни­лась, я чет­ко по­нял, как и куда нуж­но дви­гать­ся даль­ше, что­бы рас­ши­рять кар­тин­ку.

Про­те­сти­ро­вать со­вре­мен­ные ме­то­ды обу­че­ния на себе

Учусь я непре­рыв­но, но с ме­то­ди­кой peer-to-peer столк­нул­ся впер­вые. Я за­ра­нее знал, что в шко­ле нет пре­по­да­ва­те­лей и все долж­ны учить­ся друг у дру­га. Было очень ин­те­рес­но узнать, как это де­лать ре­зуль­та­тив­но и эф­фек­тив­но. У этой си­сте­мы точ­но есть боль­шое бу­ду­щее. К при­ме­ру, уви­дев недав­но пи­лот­ный рос­сий­ский курс для от­де­ла про­даж, по­стро­ен­ный на схо­жих прин­ци­пах, я не за­ду­мы­ва­ясь впи­сал в него свою ко­ман­ду.

Про­жить ме­сяц как один из ге­ро­ев се­ри­а­ла Sil­i­con Val­ley

До это­го я уже был в До­лине в роли ту­ри­ста, на это раз хо­те­лось оку­нуть­ся в жизнь мест­но­го жи­те­ля — и это на 100% уда­лось. Ко­дить сут­ка­ми на­про­лет, по­се­щать пит­чи стар­та­пов, по­бы­вать в офи­сах Гуг­ла и Убе­ра, жа­рить стей­ки на зад­нем дво­ре на бар­бекю-ве­че­рин­ке, по­се­тить джа­зо­вый кон­церт в Стен­фор­де. Во мно­гом бла­го­да­ря «Шко­ле 42» уда­лось по­лу­чить этот ни с чем несрав­ни­мый опыт.