Все программисты попадают в #ТАЙ
Карьера

Все программисты попадают в #ТАЙ

Анонимный разработчик написал статью для «Нетологии» о том, кто такие программисты, как ими становятся, и почему все программисты попадают в свой собственный Таиланд. При условии, если они пишут читабельный код, конечно же.

Если вы думаете, что быть программистом просто, то вы ошибаетесь. Если думаете, что трудно, то тоже ошибаетесь. Так кто такой программист, как писать крутой код и что отличает хороший тон от плохого в Таиланде или без него разбираемся с анонимусом.

Программистами рождаются

Кто бы что не говорил, а определить потенциального хорошего программиста можно еще до того как человек начнет изучать какие-либо языки программирования. Как мне кажется, программист — это человек с нестандартным и очень гибким образом мышления, а выучить какой-нибудь язык программирования не сложно.

Собирая команду в той или иной компании, я часто опирался именно на то, как мыслит человек, нежели на то, какой набор знаний с собой этот человек несет. Ведь даже медведи в цирке умеют ездить на велосипедах, а научить человека программировать, наверное даже легче. Как попытаться определить образ мышления? Я приведу пример нескольких задачек, которые когда-то задавали мне на собеседованиях, а после задавал уже я.

Если вы хотите проверить себя или расширить палитру вопросов задаваемых на собеседовании, думаю, они вам пригодятся. Ведь каждая из этих задач — способ определить отдельные немаловажные критерии при отборе специалиста, такие как «декомпозиция», «поиск алгоритмических ошибок и петель», «умение оперировать простыми элементами», «абстрактность мышления» и т.д.

  1. У вас есть 2 переменные А и В. Представим что А = 7, а В = 11. Поменяйте значения этих переменных местами, используя только классическую математику. Нельзя использовать 3-ю переменную, а также нельзя применять функции из известных вам языков программирования. Попробуйте применить только классическую математику. И да, решение не должно быть частным и должно работать с любыми числами.

     

  2. Представьте, что вы стоите на какой-то точке земного шара. У вас в руках компас. Я говорю вам: «Идите на Северо-Восток». Какая конечная точка будет у вашего путешествия, которое в действительности может продолжаться бесконечно долго, но все же закончится в конкретной точке.

     

  3. Из трубы вылезают два трубочиста. Как бы парадоксально не звучало, но у одного чистое лицо, а у другого — грязное. Кто из них пойдет умываться? Тут важно знать, что одного решения у этой задачи нет — решений несколько. И каждое из них можно и нужно обосновать.

     

  4. Классическая задача «Волк, коза, капуста». Чрезвычайно простая задача, но я очень люблю её. Звучит примерно так. Вы лодочник, вам надо перевезти на другой берег вышеуказанные объекты. Но есть некоторые условия. Вы не можете брать в лодку больше одного объекта, и вам нельзя оставлять вместе волка и козу, так как он ее съест, и козу с капустой по той же самой причине. Вперёд!

     

  5. Вы ученый. Перед вами чашка Петри, в которой находится очень опасный вид бактерии. Вам известно, что численность это бактерии увеличивается каждую минуту в 2 раза. Мы точно знаем что в 12:00 чашка будет полностью заполнена этим чрезвычайно активным видом бактерии, и нам нужно торопиться. Ответьте на вопрос: в какое время чашка будет наполовину полной (или наполовину пустой, кому как нравится)?

     

  6. Задачка на округление. Предположим, вы разрабатываете систему для компании, которая работает с розничной торговлей. Их девиз: «никаких копеек». Но наша задача округлять не просто до копеек или до десятков рублей, а округлять до 50 рублей. То есть, 130 рублей округляются в 150 рублей, а 115 рублей — в 100 рублей. Как сделать округление по такому принципу?

* Ответы я напишу в самом конце статьи. А вы пока подумайте.

Куда пойти, куда податься

Выбор языка программирования полностью за вами. Но раз речь у нас идет о веб-разработке, мы рассмотрим выбор между фронтендом и бэкендом.

Если вы еще не знаете что это такое, то говоря простыми словами фронтенд — это то, что вы видите на веб-ресурсе, пользовательский интерфейс и рычаги взаимодействия с технической частью ресурса. А бэкенд — это то, что вам как пользователю, никогда не увидеть.

Фронтенд скрывает всю силу логики любого веб-ресурса, на котором вы находитесь. Если проводить аналогию с автомобилем, то фронтенд — это салон автомобиля, а бэкенд — это то, что скрывается под капотом. Безусловно есть ресурсы, где большая часть логики лежит как раз на плечах фронтенд-разработчика. Однако в превалирующем большинстве веб-ресурсов за логику отвечает именно бэкенд.

Если вы стоите перед выбором, какую сторону силы вам занять, то я бы рекомендовал вам попробовать себя на обоих фронтах разработки.

«Потрогаете» и уже решите, что вам ближе к сердцу, быть может, вы вообще станете универсалом, который сможет писать качественный код на обеих сторонах. Кстати, поделюсь с вами своим наблюдением. Часто те, кто пишет бэкенд-часть, может писать и фронтенд. Но это правило редко работает в обратную сторону.

Я не хочу обидеть многочисленную армию фронтенд-разработчиков — это всего лишь личное наблюдение. И важно понимать, что бэкенд-разработка далеко не всегда связана именно с веб-ресурсами, очень часто мы прячемся под капотом мобильных приложений и различных узкоспециализированных сервисов.

Советы из практики

Если вы все-таки решили стать разработчиком, я хотел бы поделиться с вами некоторыми наблюдениями, ошибками и парой историй из своего опыта.

Синдром «Наташи Ростовой»

В моем кругу появилось такое определение, когда в интернетах появилась шутка про будни программиста:

«Представь, что ты писатель и поддерживаешь проект «Война и мир». У тебя ТЗ — написать главу, как Наташа Ростова гуляла под дождём по парку. Ты пишешь «шёл дождь», сохраняешь, и вылетает сообщение об ошибке: «Наташа Ростова умерла, продолжение невозможно». Почему умерла? Начинаешь разбираться. Выясняется, что у Пьера Безухова скользкие туфли, он упал, его пистолет ударился о землю и выстрелил в столб, а пуля от столба срикошетила в Наташу. Что делать? Зарядить пистолет холостыми? Поменять туфли? Решили убрать столб. Получаем сообщение «Поручик Ржевский умер». Выясняется, что он в следующей главе облокачивается о столб, которого уже нет…»

В чем соль данной истории, я думаю вы поняли. Важно сделать