Нужен девелупер
Нужен вообще Яндексу и на мой проект в том числе девелупер на C++.Приходите.
И да, — там требования не на хорошего C++ девелопера, а на хорошего девелопера, который имеет опыт разработки на C++. В требованиях даже буста нет.
MLM????! Mary Kay?!
Нда..
И что, вы даже не ржали всем офисом восемь минут?
Короче, как-то так негласно предполагается, что хороший программист на С++ очень хорошо ориентируется в алгоритмах, архитектуре, подходах к разработке etc. Но озвучивается это просто как «С++ девелупер» — несмотря на то, что выучить сам синтаксис (да хоть стандарты все by the heart) — самая легкая и непринужденная часть.
Проблема С++ в том, что там колесо регулярно изобретают. Потому и нужно знание хуй знает чего и зачем. Мне, когда нужно регексом выкусить кусок строки, обязательно разбираться и писать либу, работающую с DFA/NFA?
Если ты /можешь/ использовать регекспы, значит тебе не нужно нихуя лишнего писать. Проблема в том, что есть масса ситуаций, когда регексп тебе не подходит. Например, для произвольного текствого документа создать таблицу, в которой есть два поля — корень и счетчик слов, которые на нём стоят — при этом, сделать это в условиях критичности производительности.
Ну и какие тут регекспы?
А ведь это простейшее, чем могут заниматься рабы из мира поиска.
Короче, реюзабилити никто и в С++ не отменял, просто на кой черт там писать что-то, что можно написать на пайтоне или эрланге. Там нужно писать что-то сильно специфичное и критичное ко времени выполнения.
Вообще, то, чем занимаются многие «девелУперы» — это не программирование, а кодерство. Например, вопрос о сложности алгоритма не то что ставит в тупик, а просто человек вообще не понимает, о чём его спрашивают. Теоретическая подкованность — это одна сторона хорошего программиста. И тут не важно — цпп, пхп, жаба или ещё какая хуйня. Если чувак не знает теорию, то весь его говнокод должен перепроверять человек, который теорию знает (простые случаи вроде гуёвого программирования не рассматриваем, хотя сильно подозреваю, что и там есть, где напортачить).
Другая сторона — знать, во что твой кусок кода компиляется (т.е. полученный ассемблерный код) и представлять, как же бедный компьютер это исполняет. Хотя бы в общих чертах. Это, например, позволит не делать таких ляпсусов, как аллокация памяти в цикле, исполняющемся миллион раз.
Короче говоря, идея, которую я тут пытаюсь проиллюстрировать, состоит в том, что нужно предельно глубоко и чётко понимать, что же ты делаешь, вне зависимости от языка программирования.
Например, когда я пишу сишный код, я немного думаю (а больше соблюдаю какие-то незамысловатые правила) про то, как мои данные будут попадать в процессор. Чтение из памяти — довольно дорогая штука (и расходует электроэнергию! ха-ха-ха), поэтому лучше все делать таким образом, чтобы это происходило как можно реже.
Внимание, вопрос — как я могу это контролировать в PHP, не зная деталей реализации интерпретатора?
Главное в нашем деле — в руки лопату и прохуярить годика три-четыре до наступление сатори. А что такое rb-t можно узнать потратив пять минут на чтение статьи в википедии.
Ну, можно попытаться подмахнуть так, чтобы интерпретатор сделал именно то, что тебе нужно. Но это уже хак.
Я думаю пхп — это тот случай, когда лучше не знать, как устроен интерпретатор.
Как говорил профессор Выбегалло, компрене ву?
В общем, лекции по программированию нужно в университете слушать, а не здесь.
Спасибо.