Скривен испод слоја кода, језик вене, жудећи за учењем.
Од овог писања, упит „програмирање који језик прво научити“ враћа 517 милиона резултата претраге. Сваки од ових сајтова ће хвалити један одређени језик, а 90% њих ће на крају препоручити Питхон или ЈаваСцрипт.
Без даљег одлагања, желео бих да званично изјавим да је свих ових 517 милиона веб локација погрешних и да је језик који треба да научите први фундаментална логика.
Није довољно само знати како се кодира. Тржиште је толико засићено дипломцима института и курсева да је позиција јуниора практично престала да постоји*. Да бисте успели у данашњем свету, морате и кодирати и имати напредно основно логичко размишљање.
*у даљем тексту, имајте на уму да је ово превод, а ситуација на тржишту рада за аутора и у вашој земљи може бити другачија (као и друге нијансе), што, међутим, само по себи не погоршава оригинални чланак - прибл. превод
Мој први час информатике
Мој први увод у информатику био је изборни предмет који сам похађао у 10. разреду. Већ првог дана, ушавши у учионицу, са одушевљењем сам видео испред себе велики број канти сладоледа и разних прелива. Након што су сви седели, учитељ је рекао:
„Данас ћемо дегустирати сладоледе које сте сами припремили. Али уз један услов: морате направити листу конкретних упутстава о томе како да припремите десерт, а ја ћу их пратити.
„Нема проблема“, помислио сам, „ова лекција неће трајати дуго.“ За који минут сам забележио савршени рецепт за сладолед мојих снова:
- Зграбите и ставите три куглице сладоледа од малина у чинију
- Отворите чоколадни сос и додајте две супене кашике у исту чинију
- Додајте шлаг у чинију
- Све то посути штапићима шећера и на врх ставити трешњу
Мој учитељ — „компјутер“ у тој слаткој метафори — извео је саркастичнију, дословнију представу него што сам икада раније видео. Почела је ревносно боцкати канту за сладолед куглицом, а да није ни додирнула поклопац.
„Добро, добро, али прво треба да га отвориш!“ – узвикнула сам, трудећи се да што пре добијем посластицу.
„Ниси ово написао у упутствима, а ја нисам могао да ти направим сладолед. СЛЕДЕЋИ!"
Пређимо унапред на покушај број 2
- Отворите сладолед од малина тако што ћете уклонити поклопац
- Зграбите и ставите три куглице сладоледа од малина у чинију
- Отворите чоколадни сос и додајте две супене кашике у исту чинију
- Додајте шлаг у чинију
- Све то поспите штапићима шећера и на врх ставите трешњу
Па, сада дефинитивно не би требало бити никаквих проблема. За сваки случај сам се побринуо да сви састојци за прављење мог кулинарског ремек-дела буду отворени.
Учитељ је скинуо поклопац, узео и ставио три куглице сладоледа у чинију. „Коначно, мој прелепи сладолед је почео да се остварује!“ Затим је отворила чоколадни сос и додала две супене кашике у чинију. Није "додала чоколадни сос од две кашике" - не мислите тако - она је, наравно, саме кашике ставила у чинију. Нема соса у њима. Опет, нисам се трудио да све тачно запишем. Након што је остало обављено у истом духу, добио сам чинију сладоледа и две супене кашике, једва приметне испод мора шлага. На врху је био пар шећерних штапића.
Чини се да ми је у овом тренутку коначно синуло: компјутер је логика у вакууму. Он није свестан околних околности и не прави никакве претпоставке. Он извршава само јасно формулисана упутства и следи их од речи до речи.
Мој коначни резултат је био резултат дуге, али неопходне серије покушаја и грешака:
- Ако то већ нисте урадили, отворите свако од следећих паковања: сладолед од малина, чоколадни сос, шлаг, шећерни штапићи.
- Извадите чинију и ставите је испред себе
- Узмите куглицу сладоледа и ставите три куглице сладоледа од малина једну по једну у чинију. Вратите куглицу за сладолед на место.
- Узмите теглу чоколадног соса, захватите сос и сипајте садржај једне кашике у чинију. Поновите процес хватања и сипања још једном. Вратите кашику и теглу на место.
- Паковање шлага преокренути и, држећи га изнад чиније, прелити преко сладоледа 3 секунде, па вратити паковање на своје место.
- Узмите теглу штапића шећера, сипајте четрдесетак штапића у чинију и вратите теглу.
- Извадите једну трешњу из чиније са вишњама и ставите је на сладолед.
- Дајте ученику чинију са готовим сладоледом и кашику.
Последња тачка је била посебно важна, јер је без ње претпоследњи пут учитељица једноставно почела да једе мој сладолед.
Али ово је програмирање. Стрес креирања пажљивог скупа упутстава за рачунар. У суштини, то је оно на шта се сваки програмски језик своди - писање инструкција.
Каријера у програмирању
Програмирање је достигло тачку у којој је тешко расправљати као о јединственој индустрији, као што је тешко користити једну реч „програмер“ као опис посла. Два програмера могу бити подједнако тражена на тржишту, познавајући потпуно различите језике, што значи да је способност развоја важнија од знања одређеног језика. Универзални атрибут који деле сви успешни програмери је фундаментална логика.
Најбољи програмер је онај који је у стању да погледа код из новог угла. А ово је суштински важно, јер је већина софтверских производа колекција недокументованих фрагмената лошег кода. Стално их треба зближавати, попуњавајући празнине по потреби. Људи који нису у стању да повежу различите тачке једном линијом мораће заувек да буду по страни.
Све ово ме доводи до још једне изјаве, овог пута подебљаног: фундаментално знање је увек било и биће најважније за програмера.
Језици долазе и одлазе. Оквири постају застарели, а компаније реагују на потражњу тако што мењају технолошки скуп који користе. Постоји ли једна ствар која се никада неће променити? Да – фундаментално знање, које се зове фундаментално јер је у основи свега!
Како побољшати основно знање
Фотографија Цхристопхер
Ако тражите почетну тачку да побољшате своје основно логичко размишљање, покушајте да почнете овде:
Знајте сложеност вашег програма
Такође зван Биг О „сложеност алгоритма“ се односи на зависност времена потребног за извршавање програма од величине његових улазних података (н). Важан корак је држање прста на пулсу алгоритама који се користе.
Упознајте своје структуре података
Структуре података су у срцу сваког модерног програма. Знати коју структуру користити у ком случају је дисциплина за себе. Структуре података су директно повезане са сложеношћу времена извршавања, а избор погрешне структуре може довести до фундаменталних проблема са перформансама. Проналажење елемента у низу је Он), што указује на високу цену коришћења низова као улазних података. Тражење хеш табеле − О (1), што значи да у овом случају време тражења вредности не зависи од броја елемената.
Људи су долазили код мене на интервју и тврдили да је претраживање у низу брже од претраживања у хеш табели. Ово је био најсигурнији знак да не треба да их ангажујете - познајте своје структуре података.
Читајте / гледајте / слушајте
Сајтови попут
Працтице!
Не можете кувати кајгану а да не разбијете јаја. Сајтови попут
Прочитајте код других људи
Највећа грешка коју можете направити када идете развојним путем је да идете сами. Развој софтвера је углавном тимски рад. Заједно стварамо стандарде, заједно правимо грешке и, упркос свим неуспесима, заједно постајемо бољи. Време проведено у читању кода других људи ће се лепо исплатити. Само се уверите да је добар код.
Па, најбољи савет који могу дати је да се никада не стидите што још нешто не знате. Као што је већ речено, наша индустрија је огромна и количина технологије је бескрајна. Потребно је много времена и труда да се изгради општа слика, још више да постанете професионалац у нечему специфичном, и ред величине више да бисте усавршили своје вештине у својој области. Обавестићу вас када ово сам постигнем.
Извор: ввв.хабр.цом