Еден јазик да владее со сите нив

Скриен под слој на код, јазик опаѓа, копнее да се научи.

Еден јазик да владее со сите нив

До моментот на пишување, барањето „програмирање кој јазик да се научи прв“ враќа 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

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

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

Исто така се нарекува Big O „Комплексноста на алгоритмот“ се однесува на зависноста од времето потребно за извршување на програмата од големината на нејзините влезни податоци (н). Да го држите прстот на пулсот на алгоритмите што се користат е важен чекор.

Знајте ги вашите структури на податоци

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

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

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

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

Вежбајте!

Не можете да готвите пржени јајца без да ги скршите јајцата. Сајтови како ХакерРенкCodeWarsCoderByte, TopCoder и LeetCode понудете илјадници интересни загатки за тестирање на вашето знаење за структурите на податоци и алгоритми. Пробајте ја вашата среќа во решавањето на некој проблем што ви се допаѓа, објавете го вашето решение на Github, а потоа видете како другите му пристапиле. Што нè доведува до последната точка:

Прочитајте го кодот на другите луѓе

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

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

Извор: www.habr.com

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