Један језик да влада њима свима

Скривен испод слоја кода, језик вене, жудећи за учењем.

Један језик да влада њима свима

Од овог писања, упит „програмирање који језик прво научити“ враћа 517 милиона резултата претраге. Сваки од ових сајтова ће хвалити један одређени језик, а 90% њих ће на крају препоручити Питхон или ЈаваСцрипт.

Без даљег одлагања, желео бих да званично изјавим да је свих ових 517 милиона веб локација погрешних и да је језик који треба да научите први фундаментална логика.

Није довољно само знати како се кодира. Тржиште је толико засићено дипломцима института и курсева да је позиција јуниора практично престала да постоји*. Да бисте успели у данашњем свету, морате и кодирати и имати напредно основно логичко размишљање.

*у даљем тексту, имајте на уму да је ово превод, а ситуација на тржишту рада за аутора и у вашој земљи може бити другачија (као и друге нијансе), што, међутим, само по себи не погоршава оригинални чланак - прибл. превод

Мој први час информатике

Мој први увод у информатику био је изборни предмет који сам похађао у 10. разреду. Већ првог дана, ушавши у учионицу, са одушевљењем сам видео испред себе велики број канти сладоледа и разних прелива. Након што су сви седели, учитељ је рекао:

„Данас ћемо дегустирати сладоледе које сте сами припремили. Али уз један услов: морате направити листу конкретних упутстава о томе како да припремите десерт, а ја ћу их пратити.

„Нема проблема“, помислио сам, „ова лекција неће трајати дуго.“ За који минут сам забележио савршени рецепт за сладолед мојих снова:

  1. Зграбите и ставите три куглице сладоледа од малина у чинију
  2. Отворите чоколадни сос и додајте две супене кашике у исту чинију
  3. Додајте шлаг у чинију
  4. Све то посути штапићима шећера и на врх ставити трешњу

Мој учитељ — „компјутер“ у тој слаткој метафори — извео је саркастичнију, дословнију представу него што сам икада раније видео. Почела је ревносно боцкати канту за сладолед куглицом, а да није ни додирнула поклопац.

„Добро, добро, али прво треба да га отвориш!“ – узвикнула сам, трудећи се да што пре добијем посластицу.

„Ниси ово написао у упутствима, а ја нисам могао да ти направим сладолед. СЛЕДЕЋИ!"

Пређимо унапред на покушај број 2

  1. Отворите сладолед од малина тако што ћете уклонити поклопац
  2. Зграбите и ставите три куглице сладоледа од малина у чинију
  3. Отворите чоколадни сос и додајте две супене кашике у исту чинију
  4. Додајте шлаг у чинију
  5. Све то поспите штапићима шећера и на врх ставите трешњу

Па, сада дефинитивно не би требало бити никаквих проблема. За сваки случај сам се побринуо да сви састојци за прављење мог кулинарског ремек-дела буду отворени.

Учитељ је скинуо поклопац, узео и ставио три куглице сладоледа у чинију. „Коначно, мој прелепи сладолед је почео да се остварује!“ Затим је отворила чоколадни сос и додала две супене кашике у чинију. Није "додала чоколадни сос од две кашике" - не мислите тако - она ​​је, наравно, саме кашике ставила у чинију. Нема соса у њима. Опет, нисам се трудио да све тачно запишем. Након што је остало обављено у истом духу, добио сам чинију сладоледа и две супене кашике, једва приметне испод мора шлага. На врху је био пар шећерних штапића.

Чини се да ми је у овом тренутку коначно синуло: компјутер је логика у вакууму. Он није свестан околних околности и не прави никакве претпоставке. Он извршава само јасно формулисана упутства и следи их од речи до речи.

Мој коначни резултат је био резултат дуге, али неопходне серије покушаја и грешака:

  1. Ако то већ нисте урадили, отворите свако од следећих паковања: сладолед од малина, чоколадни сос, шлаг, шећерни штапићи.
  2. Извадите чинију и ставите је испред себе
  3. Узмите куглицу сладоледа и ставите три куглице сладоледа од малина једну по једну у чинију. Вратите куглицу за сладолед на место.
  4. Узмите теглу чоколадног соса, захватите сос и сипајте садржај једне кашике у чинију. Поновите процес хватања и сипања још једном. Вратите кашику и теглу на место.
  5. Паковање шлага преокренути и, држећи га изнад чиније, прелити преко сладоледа 3 секунде, па вратити паковање на своје место.
  6. Узмите теглу штапића шећера, сипајте четрдесетак штапића у чинију и вратите теглу.
  7. Извадите једну трешњу из чиније са вишњама и ставите је на сладолед.
  8. Дајте ученику чинију са готовим сладоледом и кашику.

Последња тачка је била посебно важна, јер је без ње претпоследњи пут учитељица једноставно почела да једе мој сладолед.

Али ово је програмирање. Стрес креирања пажљивог скупа упутстава за рачунар. У суштини, то је оно на шта се сваки програмски језик своди - писање инструкција.

Каријера у програмирању

Програмирање је достигло тачку у којој је тешко расправљати као о јединственој индустрији, као што је тешко користити једну реч „програмер“ као опис посла. Два програмера могу бити подједнако тражена на тржишту, познавајући потпуно различите језике, што значи да је способност развоја важнија од знања одређеног језика. Универзални атрибут који деле сви успешни програмери је фундаментална логика.

Најбољи програмер је онај који је у стању да погледа код из новог угла. А ово је суштински важно, јер је већина софтверских производа колекција недокументованих фрагмената лошег кода. Стално их треба зближавати, попуњавајући празнине по потреби. Људи који нису у стању да повежу различите тачке једном линијом мораће заувек да буду по страни.

Све ово ме доводи до још једне изјаве, овог пута подебљаног: фундаментално знање је увек било и биће најважније за програмера.

Језици долазе и одлазе. Оквири постају застарели, а компаније реагују на потражњу тако што мењају технолошки скуп који користе. Постоји ли једна ствар која се никада неће променити? Да – фундаментално знање, које се зове фундаментално јер је у основи свега!

Како побољшати основно знање

Један језик да влада њима свимаФотографија Цхристопхер Јесцхке на Унспласх

Ако тражите почетну тачку да побољшате своје основно логичко размишљање, покушајте да почнете овде:

Знајте сложеност вашег програма

Такође зван Биг О „сложеност алгоритма“ се односи на зависност времена потребног за извршавање програма од величине његових улазних података (н). Важан корак је држање прста на пулсу алгоритама који се користе.

Упознајте своје структуре података

Структуре података су у срцу сваког модерног програма. Знати коју структуру користити у ком случају је дисциплина за себе. Структуре података су директно повезане са сложеношћу времена извршавања, а избор погрешне структуре може довести до фундаменталних проблема са перформансама. Проналажење елемента у низу је Он), што указује на високу цену коришћења низова као улазних података. Тражење хеш табеле − О (1), што значи да у овом случају време тражења вредности не зависи од броја елемената.

Људи су долазили код мене на интервју и тврдили да је претраживање у низу брже од претраживања у хеш табели. Ово је био најсигурнији знак да не треба да их ангажујете - познајте своје структуре података.

Читајте / гледајте / слушајте

Сајтови попут УдемиПлуралсигхт и ЦодеАцадеми - Одличан избор за учење нових програмских језика. Али за основе, консултујте књиге о општим принципима кодирања, пракси и стиловима. Најпрепоручљивије књиге су „Обрасци дизајна“, „Рефакторинг. Побољшање постојећег кода“, „Савршен код“, „Чист код“ и „Програмер прагматичар“. Коначно, сваки програмер треба да задржи копију „Алгоритми" при руци.

Працтице!

Не можете кувати кајгану а да не разбијете јаја. Сајтови попут ХацкерРанкЦодеВарсЦодерБите, ТопЦодер и ЛеетЦоде понудите хиљаде занимљивих загонетки за тестирање вашег знања о структурама података и алгоритмима. Испробајте срећу у решавању проблема који вам се свиђа, објавите своје решење на Гитхуб-у, а затим погледајте како су му други приступили. Што нас доводи до последње тачке:

Прочитајте код других људи

Највећа грешка коју можете направити када идете развојним путем је да идете сами. Развој софтвера је углавном тимски рад. Заједно стварамо стандарде, заједно правимо грешке и, упркос свим неуспесима, заједно постајемо бољи. Време проведено у читању кода других људи ће се лепо исплатити. Само се уверите да је добар код.

Па, најбољи савет који могу дати је да се никада не стидите што још нешто не знате. Као што је већ речено, наша индустрија је огромна и количина технологије је бескрајна. Потребно је много времена и труда да се изгради општа слика, још више да постанете професионалац у нечему специфичном, и ред величине више да бисте усавршили своје вештине у својој области. Обавестићу вас када ово сам постигнем.

Извор: ввв.хабр.цом

Додај коментар