Ден за защита на децата от лош код

Ден за защита на децата от лош код

Постът е посветен на Деня на детето. Всякакви съвпадения – не съвпадения.

На 10 години получих първия си компютър и диск с Visual Studio 6. Оттогава си измислям задачи – да автоматизирам неща, да създам някакъв уебсервис за трима души или да напиша игра, която после ще бъде изтрита от плей магазина от старост. Разбира се, загубих изходния код и написах код, който е срамно да показвам на хората. И на 10 години със сигурност нямаше да откажа архив от бъдещето с всички грешки – за да не ги допускам никога.

Преди няколко седмици попитах колеги от Яндекс.Денег какво биха посъветвали дете, което иска да стане IT специалист, и после си спомних нещо за себе си. Така се появи този текст. Предлагам да поговорим по темата.

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

Сергей, младши програмист

Детство

Какво е най-забавното занимание в детството на програмиста, когато интернет все още не съществува?

Имах две основни занимания – да разглобя всичките игри от диск „800 игри на руски език“ с всички програми от диска „Всичко, което един хакер трябва да има“, а след това да пренапиша всички игри, на които съм отделил повече от 10 часа, от нулата на Basic. Няма никаква разлика какво ще се получи – дори и да е нещо смешно.

Ден за защита на децата от лош код

Вземаш, пробваш, преместваш блоковете, експериментираш и достигаш всякакви неща. Събаряш Windows, след 10 часа слагаш Windows обратно. Опитваш да възстановиш драйверите. Разбираш как е устроен DOS. Откриваш как трябва да стоят jumper-ите, за да тръгне твърдият диск в компютъра на приятел (там 200 мегабайта нови игри!). Къртиш софтуер, къртиш хардвер, разглобяваш и сглобяваш компютър. Пишеш футболен симулатор 13 години, в крайна сметка.

Когато няма нищо, ставаш щастлив и от това.

Не трябва да се подценява важността на самооценката. Според мен новаците в IT подценяват колко строго ще трябва да контролират продукта си (и в анализа също) и колко много време отнема това в сравнение с чисто творческата част. И колкото по-интересно е това, което правиш, толкова по-трудна и дълга ще бъде проверката.

Това, разбира се, е някакъв абстрактен съвет, но ако бях знаела това от самото начало.

И не препоръчвам да се съсредоточавате в една посока в IT. Тук също обхватът е важен.

Анна, старши системен аналитик

Средно училище

В някакъв момент на форума на околийския град П обсъждаха програмиране — и там се появи тема с заглавие „В голяма компания се търсят програмисти PHP“. Текстът на обявата беше следният:

В голяма компания се търсят програмисти PHP:

За да разберете дали да дойдете на интервю, изпълнете простата задача: напишете програма на php, която намира такива цели положителни числа x, y и z, така че x^5+y^5=z^5. (^ - степен).

Можете да отговаряте тук.

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

Наистина е странно. А и компютърът трябва да е мощен, за да намери това...
Защото от x,y,z <=1000 такива числа няма - това е първо (направих тест в vb, по-вече за сега не е дадено), второ компютърът забива напълно.

Не е ли странно, ИМХО.

Да, измама, капан за новаци, да, падонковски, и какво от това. Очевидно е, че съм прекарал известно време с прост скрипт, но напълно забравих за съществуването на теоремата на Ферма — за какво авторът на темата, достопочтени The_Kid, уточни в самия край.

Резултатът е тъжен - в П. практически няма хора, които да знаят математика, но всеки втори се счита за програмист. За три часа, на всички форуми, на които публикувах съобщение, имаше общо около двеста прегледа... и само два правилни отговора. А теоремата на Ферма - това е училищна програма, и условията й са толкова прости, че трябва да се набиват на очи. Между другото, паралелно при анкета в аське 6 от 6 познати новосибирски студенти отговориха „Това е теоремата на Ферма“.
И кого след това да наемем на работа?

Тогава това предизвика у мен буря от възмущение в духа на: „Ако не написах за теоремата на Ферма, това не означава, че не я знам“, — класическа извинение. Тъжно ли ми е сега? Не, и това е урок за цял живот. Както тогава, когато играта ми беше изтъкната в индонезийския Windows Phone Store, а след две седмици беше премахната, защото не обнових някакви там условия на EULA.

И съвсем не е ясно: ако в една голяма компания няма кого да наемат — какъв ли ще бъде човек? С какво да се занимава? Къде да расте?

Не мислете, че след като придобиете образование, ще станете програмист/таксист/математик или нещо друго.

Дойде време, когато в дипломата много по-важни са основните предмети (математика, физика, информатика, философия) в сравнение с приложните (програмиране, проектиране в конкретни области и т.н.). Висшето образование започна да се разделя на слоеве - основно (инженерно) и приложно. Трябва да се учим не на конкретни умения, а на мислене, научен подход, разбиране как се решават проблеми и меки умения.

Това е по отношение на университета. Приложимите умения могат да се усвоят през целия живот.

Олег, водещ системен анализатор

Университет

Пишеш код на „плюсове“, пишеш код на Java. Пипаш асемблер, отдръпваш ръка, попадаш в Qt и си мислиш защо така ти се случва. На четвърти курс на всички им е все едно на какво пишат важните лабораторни работи - преподавателите гледат на кода от различна перспектива.

Разбира се, не навсякъде - има университети, където е силно и добро, но там приемат момчета, които в училище решавали задачи от ACM, в допълнителни занятия извличали всичко от теорията на графите и запомняли колко памет изискват всички съществуващи алгоритми.

Аз не решавах, не ходех на допълнителни занятия, а просто се обучавах в моя математически клас, като междувременно правех интересни неща. Спойлер - на интервюта те няма да бъдат на никого нужни.

Първо е по-добре да се определи какво харесваш от ИТ. Ако харесваш всички направления, ще е трудно. Да учиш един език - няма да доведе до нищо, ще се получи само объркване в бъдеще.

Ян, специалист по фин. мониторинг

Истинска история - за симулатор на Windows, направен с приятел в 10-ти клас, в университета можеш да получиш автоматично няколко изпита и оценки. Можеш дори после да разказваш на всички колко е било страхотно. Проблемът е, че това не беше страхотно - това беше заплетена архитектура, ужасен код и пълно отсъствие на каквито и да било стандарти.

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

Ден за защита на децата от лош код

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

Ерик, инженер по тестване

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

  1. Отдели време, намери книга и инсталирай онзи дистрибутив на Ubuntu, който ти изпратиха безплатно от Canonical. Там явно има някакъв прост проблем, Ubuntu работи навсякъде. А Linux ще ти бъде много полезен.
  2. Не се страхувай от конзолата. Volkov Commander, разбира се, влиза на една флопи, но опитай да разбереш защо са ти всички тези команди, сприятели се с командния ред. А флопи дотогава ще изчезнат. Дискове ще изчезнат. Флашките също ще изчезнат. Не се притеснявай за това.
  3. Прочети за алгоритми, разберете в сортиране, дървета и купчинки. Чети книги.
  4. За да разбереш основите, платени курсове не са необходими. Скоро ще има YouTube – ще се изненадаш.
  5. Не се фокусирай само върху Basic. В света има стотици технологии, които заслужават вниманието ти, и милион неща, които са по-интересни от повторното рисуване на userforms в Excel. Вземи поне Python — после ще разбереш.
  6. Научи се да ползваш Git, направи резервно копие на всички изходни кодове. Напиши поне едно клиент-сървърно приложение, за да разбираш как работят. Разбери мрежи, суичове и рутери.
  7. И ако в момента четеш това, значи всичко не е напразно.

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

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

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