Език за управление на всичко

Скрит под пласт от код седи език, жаден да бъде научен.

Език за управление на всичко

Към момента на писането на тази статия заявката "кой език за програмиране да изучаваме първи" дава 517 милиона резултата. Всеки от тези сайтове ще хвали един определен език, и 90% от тях в крайна сметка ще препоръчат Python или JavaScript.

Без дълги прелюдии, искам официално да декларирам, че всичките тези 517 милиона сайта грешат и да заявя, че езикът, който трябва да изучаваме първи — основна логика.

Просто да знаеш как да кодиш не е достатъчно. Пазарът е толкова наситен с дипломанти от университети и курсове, че позицията на джуниор практически е престанала да съществува. За да постигнете успех в днешния свят, трябва да кодите и да имате напреднало основно логическо мислене.

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

Моят първи урок по информатика

Моето първо запознанство с информатиката беше с факултатив, който взех в 10 клас. В първия ден, влизайки в аудиторията, бях впечатлен, като видях пред себе си голямо количество кофички сice-cream и разнообразни топинги. След като всички се настаниха, учителката обяви:

„Днес ще дегустиране самоизработени сладоледи. Но с едно условие: трябва да съставите списък с конкретни инструкции как да приготвите десерта, а аз ще ги следвам“

„Без проблем, — помислих си, — този урок няма да бъде дълъг“. Някъде след минута съставих страхотна рецепта за сладолед на мечтите ми:

  1. Да взема и поставя три топки малинов сладолед в купа
  2. Да отворя шоколадовия сос и да добавя две супени лъжици в същата купа
  3. Да добавя разбитите сметана в купата
  4. Да поръсете всичко с захарни пръчки и да сложа черешка отгоре

Моята учителка — „компютърът“ в тази симпатична метафора — изиграваше по-саркастично-буквално представление, отколкото съм виждал някога. Тя започна усърдно да закачва кофичката сice-cream с лъжичка за топки, дори не докосвайки капака.

„Добре-добре, но първо трябва да я отворим!“ — извиках, опитвайки се да получа лакомството по-бързо.

«Не написах това в инструкциите и не успях да ти приготвя сладолед. СЛЕДВАЩО!»

Да изчакаме до опит №2

  1. Отвори малиновия сладолед, сваливайки капачката
  2. Да взема и поставя три топки малинов сладолед в купа
  3. Да отворя шоколадовия сос и да добавя две супени лъжици в същата купа
  4. Да добавя разбитите сметана в купата
  5. Поръси всичко с захарни пръчици и сложи череша отгоре

Сега определено не би трябвало да има проблеми. Дори за всеки случай се уверих, че всички съставки за моето кулинарно произведение са отворени.

Учителката свали капачката, нагреба и сложи три топки сладолед в купата. „Накрая любимият ми пломбир започна да се въплъщава в реалност!“ След това тя отвори шоколадовия сос и добави две супени лъжици в купата. Не че „добави шоколадов сос с две супени лъжици“ - не си мислете - тя, разбира се, сложи в купата самите лъжици. Без сос в тях. Отново не се погрижих да опиша всичко точно. След като останалото беше извършено по същия начин, в крайна сметка получих купа с сладолед и две супени лъжици, едва различими под морето от разбита сметана. Отгоре имаше две захарни пръчици.

В този момент сякаш наистина осъзнах: компютърът е логика в вакуум. Той не знае за околностите и не прави предположения. Той изпълнява само точно формулирани инструкции и следва тях буквално.

Моят финален резултат беше следствие от дълга, но необходима поредица от опити и грешки:

  1. Отвори, ако все още не е направено, всяка от следните опаковки: малинов сладолед, шоколадов сос, разбита сметана, захарни пръчици.
  2. Извади купа и я постави пред себе си
  3. Вземи лъжичка за сладолед и една след друга сложи три топки малинов сладолед в купата. Върни лъжичката на мястото ѝ.
  4. Вземи буркана със шоколадовия сос, нагреби сос и излей съдържанието на супената лъжица в купата. Повтори действието с нагребване и изливане на соса още веднъж. Върни лъжицата и буркана на мястото им.
  5. Вземи и обърни наобратно опаковката с разбита сметана и, държайки я над купата, поливай сладоледа в продължение на 3 секунди, след което върни опаковката на мястото ѝ.
  6. Вземи буркана със захарни пръчици, изсипи около четиридесет пръчици в купата и върни буркана на мястото му.
  7. Вземи една череша от купата с череши и я сложи отгоре на сладоледа.
  8. Предай на ученика купата с готовия пломбир и лъжицата.

Последната точка беше особено важна, тъй като без нея, предишния път учителката просто започна да яде сладоледа ми.

Но именно това е програмирането. Напрегнатото създаване на внимателен набор от инструкции за компютъра. По същество, това е до което води всеки език за програмиране — до съставянето на инструкции.

Кариера в програмирането

Програмирането достигна точка, в която е трудно да се обсъжда като единна индустрия, както е трудно да се използва единствената дума „програмист“ като описание на длъжност. Двама разработчици могат да бъдат еднакво търсени от пазара, познавайки напълно различни езици, а следователно, умението да се разработва е по-важно от познанието на конкретен език. Универсалният атрибут, присъщ на всички успешни разработчици — основна логика.

Най-добрият програмист е този, който може да погледне на кода от нов ъгъл. И това е принципно важно, защото повечето софтуерни продукти са набор от недокументирани парчета лош код. Те постоянно трябва да се сглобяват, запълвайки пропуските, когато е необходимо. Хората, които не могат да свържат отделните точки с една линия, ще трябва завинаги да бъдат на втори план.

Всичко това ме довежда до още една декларация, този път с болд: фундаменталните знания винаги са били и ще бъдат от първостепенно значение за програмиста.

Езиците идват и си отиват. Фреймуърците остаряват, а компаниите реагират на търсенето, променяйки стека на използваните технологии. Има ли нещо, което никога не се променя? Да — фундаменталните знания, които затова се наричат фундаментални, защото лежат в основата на всичко!

Как да подобрите фундаменталните знания

Език за управление на всичкоСнимка на Кристофър Йешке на Unsplash

Ако търсите отправна точка за подобряване на основното логическо мислене, опитайте да започнете оттук:

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

Също така наречена Big O „сложността на алгоритъма“ означава зависимостта на времето за изпълнение на програмата от размера на входните й данни (n). Поддържането на ръка на пулса на използваните алгоритми е важна стъпка.

Знайте своите структури от данни

Структурите данни са в основата на всяка съвременна програма. Знанието коя структура да използвате в конкретния случай е самостоятелна дисциплина. Структурите данни са пряко свързани със сложността на изпълнението, а изборът на грешна структура може да доведе до основни проблеми с производителността. Търсенето на елемент в масив е равно на O(n), което показва, че използването на масиви като входни данни е скъпо. Търсенето в хеш-таблица е O(1), а значи в този случай времето за търсене на стойност не зависи от броя на елементите.

На интервюта при мен идваха хора, които твърдяха, че търсенето в масив е по-бързо от търсенето в хеш-таблица. Това беше очевиден знак, че не трябва да ги наемам — знайте своите структури данни.

Четете / гледайте / слушайте

Такива сайтове като Udemy, Pluralsight и CodeAcademy са отличен избор за изучаване на нови програмни езици. Но за основите се обърнете към книги за общи принципи, практики и стилове на кодиране. Най-препоръчваните книги са „Шаблони за проектиране“, „Рефакторинг. Подобряване на съществуващия код“, „Перфектният код“, „Чист код“ и „Прагматичният програмист“. Накрая, всеки разработчик трябва да има под ръка копие на „Алгоритми“.

Практикувайте!

Не можете да приготвите яица без да счупите яйца. Такива сайтове като HackerRank, CodeWars, CoderByte, TopCoder и LeetCode предлагат хиляди интересни задачи за проверка на знанията за структури данни и алгоритми. Опитайте късмета си с решаването на привлекателен проблем, публикувайте решенията си в Github и след това вижте как други са се справили с него. Това ни води до последната точка:

Четете чужд код

Най-голямата грешка, която можете да направите по пътя на разработването е да тръгнете сами. Разработката на софтуер е в значителна степен работа в екип. Заедно създаваме стандарти, заедно правим грешки и, въпреки неуспехите, заедно ставаме по-добри. Времето, прекарано в четене на чужд код, ще се изплати стократно. Просто се уверете, че това е добър код.

Но най-добрият съвет, който мога да дам - никога не се срамувайте, че не знаете нещо. Както вече споменах, нашата индустрия е огромна, а технологиите - неизчерпаеми. Нужно е много време и усилия, за да изградите цялостна представа, още повече, за да станете професионалист в конкретна област, и много повече, за да усъвършенствате майсторството си в нея. Ще ви уведомя, когато сам постигна това.

Източник: habr.com

Купете надежден хостинг за сайтове със защита от DDoS, VPS и VDS сървъри 🔥 Купете надежден хостинг за сайтове със защита от DDoS, VPS и VDS сървъри | ProHoster