Пасланне будучаму праграмісту

Такім чынам, вы вырашылі стаць праграмістам.

Магчыма, вам цікава ствараць нешта новае.

Магчыма, вас вабяць вялікія заробкі.

Магчыма, вы проста хочаце змяніць сферу дзейнасці.

Не сутнасць.

Важна - вы вырашылі стаць праграмістам.

Што ж зараз рабіць?

Пасланне будучаму праграмісту

І тут ёсьць некалькі падыходаў.

Першы: пайсці ў ВНУ на IT-спецыяльнасць і атрымаць профільную адукацыю. Самы банальны, адносна надзейны, вельмі доўгі, максімальна фундаментальны спосаб. Працуе, калі вы яшчэ сканчаеце школу, альбо ў вас ёсць сродкі, каб забяспечваць сябе наступныя ад паўтары (у лепшым выпадку, калі вы ўсё схопліваеце на лета і зможаце пачаць працаваць на 2 курсе) да чатырох (калі сумяшчэнне працы з вучобай не ваш канёк ) гадоў.

Што тут важна ведаць?

  • Неабходна правільна абраць ВНУ. Глядзіце навучальныя праграмы, рэйтынгі. Нядрэнны паказчык - алімпіяднікі ад універсітэта. Калі зборныя ўніверсітэта хаця б перыядычна займаюць месцы ў дзесятцы на адносна буйных алімпіядах па праграмаванні, значыць кодынг ва ўніверы не будзе рудыментам (нягледзячы на ​​тое, што асабіста вам алімпіяды могуць быць наогул не цікавыя). Ну і ў цэлым разумны сэнс руліць: ці наўрад у Брацкім філіяле Байкальскага дзяржаўнага ўніверсітэта з вас зробяць магутнага фул-стэка.
    Прыклады добрых ВНУ: МДУ/СПбДУ (відавочна), Баўманка (Масква), ІЦМА (Піцер), НДУ (Новасібірск). Нягледзячы на ​​ўсю іх знакамітасць, у іх цалкам рэальна патрапіць на бюджэт, калі не цэліць на топавыя кафедры.
  • Не ўніверам адзіным. Нягледзячы на ​​тое, што вас будуць комплексна навучаць усялякім штукам, гэтага недастаткова. У сілу бюракратыі праграма навучання амаль заўсёды будзе адставаць ад сучасных трэндаў. У лепшым выпадку - на год-другі. У горшым - гадоў на 5-10. Розніцу прыйдзецца наганяць вам самім. Ну і відавочнае: калі вы будзеце вывучаць матэрыял нароўні з астатнімі студэнтамі, то кожны з іх будзе вашым раўнапраўным канкурэнтам. Калі ж вы факультатыўна выйдзеце наперад - будзеце глядзецца на рынку значна лепш.
  • Шукайце працу як мага раней. Я пачаў працаваць на другім курсе. Да канчатка ўнівера я быў ужо цалкам сабе middle developer, а не сціплы джун без досведу. Думаю, відавочна, што пасля завяршэння вну зарабляць 100к прыемней, чым 30к. Як гэтага дабіцца? Па-першае, гл. пункты А і Б. Па-другое, хадзіць на мітапы, фестывалі, канферэнцыі, кірмашы вакансій. Маніторыць рынак і спрабаваць уладкавацца джунам/стажорам на паўстаўкі ў любую фірму, куды хаця б прыкладна падыходзіш. Не бойцеся платных канферэнцый: там часта даюць вельмі прыемныя скідкі студэнтам.

Калі выконваць усе гэтыя пункты, то да моманту атрымання дыплома можна стаць вельмі нядрэнным спецыялістам з досведам працы і багажом фундаментальных ведаў, на якія самавукі часцяком забіваюць у сілу непрыкладнага характару. Ну а скарыначка можа дапамагчы ў выпадку, калі вы зберацеся за мяжа: там на гэта даволі часта глядзяць.

Калі ж не выконваць… Што ж, скарыначку можна атрымаць і плывучы па цячэнні, спісваючы і рыхтуючыся да іспыту за ноч. Але самі, як думаеце, наколькі канкурэнтаздольныя вы будзеце тады? Зразумела, я не кажу, што трэба ўсё зачыняць на пяцёркі. Проста трэба атрымліваць веды. Выкарыстоўвайце здаровы сэнс. Вывучайце тое, што цікава і карысна, а на адзнакі - пофіг.

Пасланне будучаму праграмісту

Галоўнае - не тое, што ў вас спрабуюць запіхаць. Галоўнае - тое, што цікава і актуальна

-

Далей, другі спосаб: курсы навучання праграмаванні. Інтэрнэт прамы кішыць прапановамі зрабіць з вас джуніёра ўсяго за 3 месяцы заняткаў. Прам вось з партфоліё, і нават працу дапамогуць знайсці. Усяго за 10к у месяц, ага.
Магчыма, для кагосьці гэта і спрацуе, але асабліва ИМХО: гэта поўная херня. Не марнуйце час і грошы. І вось чаму:

Чалавек, далёкі ад IT, не зможа заехаць у спецыфіку прафесіі за 3 месяцы. Вось увогуле ніяк. Занадта шмат інфармацыі трэба засвоіць, занадта шмат усяго зразумець, і больш за тое - набіць руку.

Тады што ж вам прададуць? Вам прададуць "механічны скіл". Без асаблівай увагі ў дэталі вам пакажуць, што трэба пісаць, каб атрымаць канкрэтна вось такі вось вынік. З дэталёвымі інструкцыямі і дапамогай выкладчыка вы такі напішаце нейкае прыкладанне. Адно, максімум два. Вось і партфоліё. А дапамога ў пошуку працы - рассыланне вакансій джуноў ад буйных фірмаў, у якія вы наўрад ці пройдзеце сумоўе.

Чаму ж так? Усё проста: для праграміста вельмі важна думаць абстрактна. Праграміст вырашае праблемы, якія можна вырашыць мільярдам магчымых спосабаў. І асноўная задача - з мільярдаў выбраць адзін, найбольш правільны, і рэалізаваць яго. Стварэнне аднаго-двух праектаў па інструкцыі дасць вам нейкае веданне мовы праграмавання, але не навучыць вырашаць абстрактныя задачы. Праводзячы аналогію: уявіце, што вас паабяцаюць навучыць спартоваму арыентаванню, правядуць па пары простых турыстычных маршрутаў, а затым скажуць, што вы гатовыя пакараць тайгу зімой у адзіночку. Ну а што, вас жа навучылі карыстацца компасам і распальваць агонь без запалак.

Рэзюмуючы: не верце тым, хто абяцае «укаціць» вас за кароткі тэрмін. Калі б гэта было магчыма, усё б ужо даўно сталі праграмістамі.

Пасланне будучаму праграмісту

Злева: чаму вас навучаць. Справа: што ад вас запатрабуюць на працы

-

Трэці шлях - Шлях, які выбіраецца большасцю. Самастойнае навучанне.

Самы цяжкі, але, мабыць, самы высакародны спосаб. На ім спынімся падрабязней.

Вось вы вырашылі стаць праграмістам. З чаго ж пачаць?

У першую чаргу трэба адказаць сабе на пытанне: чаму вы гэтага хочаце? Калі адказ - "ну, гэта, вядома, не асабліва цікава, але плацяць шмат", то на гэтым можна спыніцца. Вам не сюды. Нават калі вашай сілы волі хопіць, каб пералапаціць кучу інфармацыі, напісаць тысячы радкоў кода, зведаць сотні няўдач, і атрымаць-ткі працу, у выніку без кахання да прафесіі гэта прывядзе толькі да эмацыйнага выгарання. Праграмаванне патрабуе велізарнай колькасці інтэлектуальных намаганняў, і калі гэтыя намаганні не падсілкоўваюцца эмацыйнай аддачай у выглядзе задавальнення за вырашаную задачу, то мозг рана ці позна псіханет і пазбавіць вас магчымасці вырашаць наогул штосьці. Не самы прыемны сцэнар.

Калі ж вы ўпэўненыя, што вам гэта цікава, то можна вызначыцца са спецыфікай - чым менавіта вы хочаце займацца. Калі не ведаеце, як паміж сабой могуць адрознівацца праграмісты - гугл вам у дапамогу.

Адразу ж напішу першую параду, каб не забыцца: вучыце англійскую. Англійская патрэбна. Без англійскага нікуды. Ніяк. Без англійскай нельга стаць нармальным праграмістам. That's it.

Далей пажадана скласці roadmap: план, па якім вы будзеце разьвівацца. Вывучыце спецыфіку, паглядзіце вакансіі па вашай спецыяльнасці, даведайцеся павярхоўна, што за тэхналогіі там выкарыстоўваюцца.

Прыклад roadmap для backend праграміста (не для любога, вядома, гэта проста адзін з магчымых варыянтаў):

  1. Асновы html/css.
  2. Python. Асновы.
  3. Сеткавае праграмаванне. Узаемадзеянне python і web.
  4. Фрэймворкі для распрацоўкі. Django, flask. (рэмарка: якраз для разумення, што гэта за «django» і «flask» трэба паглядзець вакансіі і пачытаць, што там патрабуецца)
  5. Паглыбленае вывучэнне python.
  6. Асновы js.

Гэта вельмі, я паўтаруся, вельмі прыкладны план, кожны з пунктаў якога велізарны сам па сабе, а многія тэмы не ўключаны (напрыклад, тэсціраванне кода). Але гэта ўжо хоць нейкая сістэматызацыя ведаў, якая дазволіць вам не заблытацца ў тым, што вы ведаеце, а што не. У працэсе вывучэння стане больш зразумела, чаго не хапае, і гэты roadmap будзе дапоўнены.

Далей: знайдзіце матэрыялы, па якіх вы будзеце вучыцца. Асноўныя магчымыя варыянты:

  • Анлайн-курсы. Не тыя курсы, якія "джун за 3 дні", а якія вучаць адной канкрэтнай рэчы. Часцяком падобныя курсы бясплатныя. Прыклады сайтаў з нармальнымі курсамі: stepik, курсэра.
  • Анлайн-падручнікі. Ёсць бясплатныя, умоўна-бясплатныя, платныя. Дзе плаціць, а дзе - не, разбярэцеся самі. Прыклады: htmlacademy, learn.javascript.ru, django book.
  • Кнігі. Іх шмат, вельмі многа. Калі не можаце абраць, тры рады: імкніцеся браць новыя кнігі, т.к. інфармацыя вельмі хутка састарваецца; у выдавецтва O'Reilly даволі высокі ўзровень якасці і нармальная падача; калі ёсць магчымасць, чытайце на англійскай.
  • Мітапы/канферэнцыі/лекцыі. Не так карысна ў плане інфармацыйнай насычанасці, але вельмі карысна ў плане магчымасці паразмаўляць з калегамі па цэху, задаць актуальныя пытанні, завесці знаёмствы. Магчыма, нават знайсці вакансію.
  • Гугл. Многія недаацэньваюць, але ўменне проста знаходзіць адказы на нейкія пытанні вельмі важнае. Не саромейцеся гугліць незразумелыя рэчы. Гэтым займаюцца нават мацёрыя сеньёры. Уменне хутка знаходзіць аб нечым інфармацыю фактычна раўнацэнна таму, што вы гэта ведаеце.

Окей, з крыніцамі інфармацыі вызначыліся. Як з імі працаваць?

  1. Чытайце/слухайце ўважліва. Не чытайце стомленым. Унікайце ў сэнс, не праскоквайце моманты, якія падаюцца відавочнымі. Часцяком пераход ад відавочнага да незразумелага здараецца даволі хутка. Не саромейцеся вяртацца і перачытваць.
  2. Канспектуйце інфармацыю. Па-першае, у сваіх канспектах вам будзе лягчэй разабрацца, калі інфармацыі стане шмат. Па-другое, дык інфармацыя лепш засвойваецца.
  3. Рабіце ўсе заданні, якія вам прапануе крыніца. Хаця не, не так. Рабіце УСЕ заданні, якія вам прапануе крыніца. Нават тыя, што падаюцца простымі. Асабліва тыя, што падаюцца занадта складанымі. Калі затрымаліся - прасіце дапамогі на stackoverflow, хаця б і праз google translate. Заданні напісаны не проста так, яны патрэбны для карэктнага засвойвання матэрыялу.
  4. Прыдумляйце заданні самі і рабіце іх таксама. Практыкі, у ідэале, мусіць быць больш, чым тэорыі. Чым шчыльней вы замацуеце матэрыял, тым больш верагоднасць, што праз месяц вы яго не забудзецеся.
  5. Апцыянальна: па меры чытання складайце сабе квізы. Запісвайце ў асобную крыніцу падступныя пытанні, а праз тыдзень ці месяц - чытайце і спрабуйце адказаць. Не атрымліваецца: штудзіруйце нанова.

І гэтыя 5 пунктаў паўтараем па кожнай тэхналогіі, якая вывучаецца. Толькі так (з дбайным вывучэннем тэорыі і шчыльным пакрыццём практыкай) у вас сфарміруецца якасны багаж ведаў, з якім можна стаць прафесіяналам.

І здавалася б, усё проста: вучым тэхналогіі адну за адной, спасцігаем дзэн, ідзем працаваць. Так яно так, ды не так.

Большасць людзей, якія вывучаюць праграмаванне, робяць гэта прыкладна па такім сцэнары:

Пасланне будучаму праграмісту

карцінка сумленна стыраная адсюль

І тут трэба спыніцца на кожным з крокаў падрабязней:

старт: у вас нулявыя веды. Кропка адпраўлення. Пакуль што нічога не зразумела, але, напэўна, вельмі цікава. Пачынаецца шлях у гару, але ўлегцы. Зусім хутка вы ўзбярэцеся на

Пік Глупства: «Ура, вы завяршылі першую пару курсаў! Усё атрымліваецца!» На гэтым этапе эйфарыя ад першых поспехаў засланяе вочы. Здаецца, што поспех ужо блізка, нягледзячы на ​​тое, што вы пакуль у пачатку шляху. І імкнучыся да гэтага поспеху можна не заўважыць, як пачнецца імклівае падзенне ў яму. І імя гэтай яме:

Даліна Роспачы: Вось вы прайшлі асноўныя курсы, прачыталі нейкія кнігі і вырашаеце пачаць пісаць нешта сваё. І раптоўна не атрымліваецца. Накшталт бы ўсё вядома, але як гэта скамбінаваць, каб яно працавала - не зразумела. "Я нічога не ведаю", «у мяне не атрымаецца». На гэтым этапе шмат хто здаецца. Насамрэч веды сапраўды ёсць, і яны нікуды не выпарыліся. Проста зніклі дакладныя патрабаванні, падтрымка. Пачалося сапраўднае праграмаванне. Калі даводзіцца манеўраваць у прасторы, дзе ёсць мэта, але няма прамежкавых этапаў, многія ўпадаюць у ступар. Але на справе гэта толькі яшчэ адзін этап навучання - хай у першыя дзесяць разоў усё будзе атрымлівацца так-сяк, вялізнымі намаганнямі, непрыгожа. Галоўнае - штораз даводзіць справу да завяршэння, хаця б як-небудзь. Адзінаццаты раз справа пойдзе прасцей. У пяцідзесяты з'явіцца рашэнне, якое здасца вам прыгожым. У соты ўжо будзе не страшна. І тады наступіць

Схіл Прасвятлення: На гэтым этапе дакладна вымалёўваюцца грані сваіх ведаў і свайго няведання. Няведанне больш не палохае, з'яўляецца разуменне, як яго пераадолець. Манеўраваць у прасторы без рашэнняў стане прасцей. Гэта ўжо фінішная прамая. Ужо ўсведамляючы, чаго вам не хапае як спецыялісту, вы давучыце і замацуеце неабходнае і са спакойнай душой уступіце на

Плато Стабільнасці: Віншую. Гэта фініш. Вы спецыяліст. Вы можаце працаваць, вы не страціцеся, сустрэўшыся з незнаёмай тэхналогіяй. Амаль любую праблему атрымаецца перамагчы, калі прыкласці дастаткова намаганняў. І нягледзячы на ​​тое, што гэта фініш - гэта толькі пачатак яшчэ большага шляху.

Шляхі праграміста.

Удачы вам у гэтым!

Літаратура для факультатыўнага чытання:
Пра станаўленне праграміста і эфект Данінга-Кругера: тык.
Hardcore-спосаб стаць праграмістам за 9 месяцаў (падыходзіць далёка не ўсім): тык.
Спіс праектаў, якія можна рэалізаваць самастойна падчас навучання: тык.
Проста крыху дадатковай матывацыі: тык.

Крыніца: habr.com

Дадаць каментар