Адна мова каб кіраваць усімі

Утоены пад пластом кода стамляецца мова, які прагне быць вывучаным.

Адна мова каб кіраваць усімі

На момант напісання гэтага артыкула запыт "праграмаванне якую мову вывучаць першай" выдае 517 мільёнаў пошукавых вынікаў. Кожны з гэтых сайтаў будзе нахвальваць адну пэўную мову, і 90% з іх, у канчатковым выніку, парэкамендуюць Python або JavaScript.

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

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

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

Мой першы ўрок інфарматыкі

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

«Сёння мы будзем дэгуставаць самастойна прыгатаваныя пламбіры. Але з адной умовай: вы павінны скласці спіс канкрэтных інструкцый, як прыгатаваць дэсерт, а я – буду ім прытрымлівацца»

"Без праблем, - падумаў я, - гэты ўрок не будзе доўгім". Недзе праз хвіліну я накідаў выдатны рэцэпт для марожанага маёй мары:

  1. Зачэрпнуць і пакласці тры шарыкі малінавага марожанага ў міску
  2. Адкрыць шакаладны падліўку і дадаць дзве сталовыя лыжкі ў гэтую ж міску
  3. Дадаць узбітыя вяршкі ў міску
  4. Пасыпаць усё гэта цукровымі палачкамі і пакласці вішаньку зверху

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

"Добра-добра, але спачатку трэба яго адкрыць!" - усклікнуў я, спрабуючы атрымаць пачастунак хутчэй.

«Ты не напісаў гэтага ў інструкцыі, а я не змагла прыгатаваць табе марожанае. НАСТУПНЫ!»

Праматаем час да спробы №2

  1. Адкрыць малінавы марозіва, прыбраўшы вечка
  2. Зачэрпнуць і пакласці тры шарыкі малінавага марожанага ў міску
  3. Адкрыць шакаладны падліўку і дадаць дзве сталовыя лыжкі ў гэтую ж міску
  4. Дадаць узбітыя вяршкі ў міску
  5. Пасыпаць усё гэта цукровымі палачкамі і пакласці вішаньку зверху

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

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

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

Мой канчатковы вынік быў вынікам доўгай, але неабходнай чарады спроб і памылак:

  1. Адкрый, калі гэтага яшчэ не зроблена, кожную з наступных упаковак: малінавы марозіва, шакаладная падліўка, узбітыя вяршкі, цукровыя палачкі.
  2. Дастань міску і пастаў перад сабой
  3. Вазьмі лыжку для марожанага і адзін за адным пакладзі тры шарыкі малінавага марожанага ў міску. Пакладзі лыжку для марожанага на месца.
  4. Вазьмі слоік з шакаладнай падліўкай, зачэрпні падліўку і вылі ў міску змесціва сталовай лыжкі. Паўтары дзеянне з зачэрпваннем і выліваннем падліўкі яшчэ адзін раз. Пакладзі лыжку і слоік на месца.
  5. Вазьмі і перавярні ўверх нагамі ўпакоўку ўзбітых вяршкоў і, трымаючы яе над міскай, палівай імі марожанае 3 секунды, пасля чаго вярні ўпакоўку на месца.
  6. Вазьмі слоік цукровых палачак, высып каля сарака палачак у міску і пакладзі банку на месца.
  7. Вазьмі адну вішаньку з міскі з вішанькамі і пакладзі яе зверху на марожанае.
  8. Перадай вучню міску з гатовым пламбірам і лыжку.

Апошні пункт быў асабліва важны, бо без яго, у перадапошні раз настаўніца проста пачала есці маё марожанае.

Але гэта і ёсьць праграмаваньне. Напружанае стварэнне ўважлівага набору інструкцый для кампутара. Па сутнасці, гэта тое да чаго зводзіцца кожная мова праграмавання - да складання інструкцый.

Кар'ера ў праграмаванні

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

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

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

Мовы прыходзяць і сыходзяць. Фрэймворкі састарваюцца, а кампаніі рэагуюць на попыт, змяняючы стэк выкарыстоўваных тэхналогій. Ці ёсць рэч, якая ніколі не зменіцца? Так - фундаментальныя веды, якія таму і называюцца фундаментальнымі, што ляжаць у аснове ўсяго!

Як палепшыць фундаментальныя веды

Адна мова каб кіраваць усіміФота Крыстафера Йешке на Unsplash

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

Ведай складанасць сваёй праграмы

Гэтак жа названую Вялікі О "складанасцю алгарытму" называюць залежнасць часу на выкананне праграмы ад памеру яе ўваходных дадзеных (П). Трымаць руку на пульсе выкарыстоўваных алгарытмаў - важны крок.

Ведай свае структуры дадзеных

Структуры даных ляжаць у аснове любой сучаснай праграмы. Веданне таго, якую структуру выкарыстоўваць у якім разе, з'яўляецца самастойнай дысцыплінай. Структуры даных напрамую звязаны са складанасцю рантайму і выбар няправільнай структуры можа прывесці да фундаментальных праблем з прадукцыйнасцю. Пошук элемента ў масіве роўны Аб (п), Што кажа аб дарагоўлі выкарыстання масіваў у якасці ўваходных дадзеных. Пошук па хэш-табліцы O (1), а значыць, у гэтым выпадку час пошуку значэння не залежыць ад колькасці элементаў.

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

Чытай / глядзі / слухай

Такія сайты, як UdemyPluralsight и CodeAcademy - выдатны выбар для вывучэння новых моў праграмавання. Але для асноў звернецеся да кніг па агульных прынцыпах, практыкам і стылям кадавання. Найбольш рэкамендуемыя кнігі – гэта «Патэрны Праектавання», «Рэфакторынг. Паляпшэнне існуючага кода», «Дасканалы код», «Чысты код» і «Праграміст Прагматык». Нарэшце, кожны распрацоўшчык павінен трымаць копіюАлгарытмаў» пад рукой.

Практыкуйся!

Не атрымаецца прыгатаваць яечню, не разбіўшы яек. Такія сайты, як HackerRankCodeWarsCoderByte, TopCoder и LeetCode прапануюць тысячы цікавых задачак для праверкі ведаў аб структурах дадзеных і алгарытмах. Паспрабуйце шчасця ў рашэнні якая спадабалася праблемы, выкладзеце свой варыянт на Github, а пасля паглядзіце, як да яе падступіліся іншыя. Што падводзіць нас да апошняга пункта:

Чытай чужы код

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

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

Крыніца: habr.com

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