Нелёгкая карьера программиста или чего хотят работодатели

    Disclaimer: это не PR. На данный момент с трудоустройством у меня нет проблем.

    Нелёгкая карьера программиста или чего хотят работодатели.


    Этой статьёй я хочу показать, какой странной и причудливой может быть карьера программиста (или человека, занимающегося программированием, ибо к касте «программистов», наверное, я причислить себя всё же не могу). Кто я такой, я точно не знаю, совсем как редкая порода чебурашек, которые знают все технологии от ASM до Python, и в то же время не знают ничего серьёзно, алгоритмические скиллы которых вязки, как медузы в Чёрном море, а знание computer science близко к нулю при бешеном по продолжительности опыте работы.



    Мне почти 40, и я из поколения программистов-кустарей и программистов-самоучек, получивших высшее техническое образование в советском ВУЗе в начале-середине 90-х, когда обучение было иным и даже такое понятие как computer science в наших ВУЗах еще отсутствовало. Оно было только за рубежом, и о таком термине и о соответствующей дисциплине я ничего не знал вплоть до 2007 года, когда начал активно ходить на собеседования и позиционировать себя на рынке труда.
    Может быть, этот рассказ будет полезен молодым специалистам, нащупывающим себя в IT-отрасли, дабы избежать каких-то ошибок и построить свою карьеру по-иному.

    IT в моей жизни.


    Вот основные вехи моей «славной» IT-биографии. Самое интересное в ней, пожалуй, было в период 1990-1995 и 2000-2010 гг.
    • 1973-1985. Периодически находил в журналах и книгах картинки и фотографии компьютеров и внимательно их рассматривал.
    • 1981. Увидел микрокалькулятор и был поражён его «фичами». Хотел сделать такой же самостоятельно, но, естественно, ничего из этой затеи не вышло.
    • 1985. Мечтал о программируемом микрокалькуляторе БЗ-34. Выписывал журнал «Наука и Жизнь», где публиковались программы для него (раздел «Человек с микрокалькулятором», позже сменившийся на «Человек и компьютер»). Позже, в 1990(?) году, мне купили калькулятор МК-52, с ППЗУ и расширенным набором команд. Я вводил в него программы. Ни о каких других компьютерах я не имел понятия. Знал только, что есть ЕС ЭВМ, но что это такое – толком не ведал. Кажется, была такая у нас в школе, и я ее видел в 4-м классе.
    • 1987. В журнале «Моделист-конструктор» появилась схема персонального компьютера «Специалист». Начал готовить плату для него, но не было микросхем. Увидел у приятеля «Микрошу», загружаемую с кассетного магнитофона. Это улучшенный вариант «Специалиста». Очень понравилось. Игры, «Тетрис», «Змея», Бейсик. Взял напрокат «Микрошу» сам. Ввел в него все программы, которые были. Пытался написать сам что-то на «Бейсике». Ездил к знакомым, у них был компьютер «Спектрум», загружался с магнитофона. Я играл в игры.
    • 1988-1989. Средняя школа. 9-й класс. Информатика. «Агаты». Писал программы на «Бейсике» по школьному курсу (геометрия — лежат ли точки на одной прямой, все школы — «Шашки», «Дурак» (карточная игра). Физматшкола при «МИЭМ». КУВТ «Ямаха». 1 год — «Бейсик». 2 год — «Паскаль» и инструментальные среды (DOS, Norton Commander). Писали лабораторные работы и курсовые («MSX Basic» — программа для определения по 4-м точкам, является ли фигура, образованная ими, выпуклым четырехугольником, программа «Крестики-нолики», Turbo-Pascal — программы работы с файлами).
    • 1988. Дворец пионеров, кружок по пакетной радиосвязи. Впервые увидел IBM PC AT.
    • 1990. Поступил в Московский Государственный институт Электроники и Математики.
    • 1990-1992 MSX Yamaha. Basic. Pascal. Лабораторные работы.
    • 1991. Наконец с большим трудом купил «Микрошу». Пытался ввести туда программу для игры в шахматы (из журнала «Моделист-конструктор»). Очень долго разбирался с ней, несколько дней рисовал блок-схему и разбирал алгоритм работы. После ввода программа не заработала. Вероятно, где-то ошибся в наборе. Комп завис и его пришлось перезагружать Reset-ом. Все результаты многочасовой «набивки» пропали. Надо было записать введенное на магнитофон, но я не догадался. Впредь был умнее. Записывал с помощью командочки Save.
    • 1992. Видел 286-ю и Windows 1.0 или 2.0 в зале для лабораторных работ в институте. Очень понравилось.
    • 1993. «Персоналки» с 3-го курса. IBM PC XT. IBM PC AT. Среда Turbo C 2.0. Лекции и курсовая работа. Программа «Композитор» под DOS. «Сочиняет» фугу на нужное число голосов, в нужной тональности и в нужном ладу. Писал несколько месяцев на работе у отца на IBM PC AT. Большие ЭВМ. Unix. Простейшие программы на С (нахождение символа в строке, замена и т.д.)
      Конечно же, изучали Prolog, Turbo Basic, программировали на Pascal и с 3-его курса на C. Еще ранее, в 1988-1989 г, программировали на MSX Basic, и это было действительно замечательно! Был также интенсивный курс ассемблера и архитектуры микропроцессоров (тогда еще 80286). Были какие-то дисциплины по параллельным вычислениям и суперкомпьютерам, которые мне никогда потом не понадобились на практике.
    • 1994. IBM PC AT. Turbo Basic. Turbo Pascal. Turbo C. Лабораторные работы (программа «Решение уравнения Коши»). Курс «Компьютерная графика». Лабораборные. Программа для вывода слоной трехмерной фигуры. Программирование адаптеров EGA/VGA. Курс «Банки данных». Dbase 3, 4. Clipper. Лабораторные работы. Писал базы данных в институте и у отца на Clipper. Видел Windows 3.1 и MS Access 2.0 у друга на работе, был шокирован и очень понравилось (ничего там не понял и удивлялся, как он в этом шарит). Друг программировал базы данных на Access для туристической фирмы.
    • 1995. Unix. ООП. Borland С++. Prolog. Turbo Prolog и ARITY-Prolog. Искусственный интеллект. Лабораторные работы. Переделка программы «Композитор» на C++, добавление классов, операторов.
      По окончании ВУЗ-а все мои сокурсники разошлись: кто уехал за границу, а кто устроился программистом писать на «С++ под базы данных». Кто-то наиболее «продвинутый» даже стал писать софт под видеокарты на ассемблере (тогда это было еще какое-то убожество наподобие S3 Trio и Trident с 256 кбайтами RAM на борту). Только я пошел на преддипломную практику и диплом в некую госорганизацию, где получил свой первоначальный опыт работы, изучил Unix и MS Access, ознакомился с принципами работы компьютерных сетей. Это была середина 90-х.
    • 1995 — 1997. Решил стать программистом или, на худой конец, сисадмином. Работа в проектном НИИ кем-то вроде сисадмина-программиста. Операционная система VAX/VMS. DECNet. Толстый EtherNet. «Большие компьютеры», VAXCluster-ы, терминалы VT-220, VT-330, DECServer-ы, DECPrintServer. Выполнял резервное копирование, установку нового ПО, администрирование (права пользователей, права на диски, файлы). Sun SparcStation, 32 Мб оперативки (это какое-то нереальное, сумасшедшее количество), винчестер 2 Гб, Silicon Graphics, Alpha DecServer (DecWindows). Впервые как следует поработал с Windows, изучил его (на 386DX, затем Pentium). OS Solaris, Irix, DecWindows.
    • 1996. Защитил диплом по теме «Проектирование межплатформной компьютерной сети». Семиуровневая модель OSI. Сопряжение разных типов сетей по общим протоколам (TCP/IP). Выбор «железа» (маршрутизаторов, концентраторов, репитеров), оценка их стоимости, расчет всевозможных характеристик (длины сегмента, расстояния между репитерами и т.д.).
    • 1996-1997. На работе прослушал курсы «SQL for end users», «The XGL graphic library», «Motif programming», «OpenGL programming», «Xlib programming», «XView programming».
      Все курсы, какие были, и для графиков (там много CAD-овцев, под которых покупались Silicon Graphics) и для пользователей баз данных (там был Oracle).
      Администрировал Novell Netware 3.11 и 4.0 (в другом здании). Большая сеть на ~100 персоналок, 2 сервера Novell Netware, тонкий Ethernet.
      Подключился к разработке «Каталожной базы данных оборудования промышленного применения», которую впоследствии разрабатывал самостоятельно (когда уже все стоящие специалисты свалили с той работы :). Так началось мое собственное знакомство с Access.
      Выход Windows 95, знакомство с ней.
    • 1996. Подключение фирмы к интернету (dialup в компании Элвис-Телеком).
    • 1996 (?) Покупка компьютера домой (486DX2-66). Усовершенствовал программу «Композитор» возможностью распечатки на принтере нот. Пробовал программировать под Windows 3.1 (Borland C++ 3.0, Win 3.1 SDK). Сложно и запутанно, но смог написать простейшую программу, выводящую окно (с основными понятиями программирования в мультизадачных средах я был знаком — очередь событий, ресурсы, окна, контролы, обработчики событий — частично по институту, частично по курсам по Motif и OpenGL, но в Windows все это по-другому). Пробовал переделать программу «Композитор» под Windows с использованием multimedia-библиотек. Очень сложно, не смог.
    • 1996. Появился модем, ФИДО, интернет. Начал искать новую работу. Пытался устроиться на работу в компанию, где был UNIX, Informix, NT и т.д. У меня спросили, что такое «template», «group by» и какие UNIX-shell-ы я знаю. Я ничего из этого списка не знал, и меня не взяли.
    • 1997, январь-февраль. Пытался написать складскую программу на Access 2.0, изучать Excel. Помню, как раз вышел Office 97, и я пытался с ним освоиться.
    • февраль 1997 – декабрь 2000. На мою вторую по счету работу меня взял совершенно незнакомый мне человек и без всякого собеседования просто по объявлению в mo.job (наверное, он все же как-то неявно проверил мою адекватность, но этот тест был успешно мной пройден). Зарплата была неправдоподобно высокая для молодого специалиста на начало 1997 года. На вопрос, зачем он меня взял и почему без собеседования, он сказал: «Мне просто был нужен Access-ист. Вы ведь Access-ист?». Я сказал: «Да, конечно, я — Access-ист». Больше никогда таких глупых вопросов я не задавал. Программировал на Access 2.0. Сразу дали сложные задачи. Было сначала тяжело, потом освоился. Освоил Access 2.0 и Excel 5.0 досконально. Затем Access'97 и Excel'97. ERWin. Вышла «1С-торговля». Очень не понравилась. Чуть-чуть посмотрел Access'2000 и Powerbuilder 6.0. Powerbuilder очень понравился, перевел на него часть библиотек. Перевел программу с MSA 2.0 на MSA 97. Занимался также anykey, администрированием Windows NT Server, внедрением почтовой системы на MS Exchange 5.5, внедрением Office'97, WINS, DHCP, MS Proxy 2.0, RRas и (главное достижение в этой фирме, как я считаю) переводом системы на MS SQL 7.0/MSA'97 с репликацией данных в удаленный офис. Собственноручно проинсталлировал 3 новых сервера Windows NT (SQL, Exchange, WINS, IIS, MS Proxy, RRas), внедрил Faxmaker для Exchange Server. Писал скрипты под MS Exchange Server на VBScript. Замечательно поработав в этой компании несколько лет и написав много софта, я стал задумываться о новой работе.
    • Времена менялись. Шел 2000-й год. Дабы избежать застоя в верхнем отделе головного мозга и засилья 1С, я пошёл в один стартап, где мы прозанимались интереснейшими вещами вплоть до 2010-го года. Туда меня взяли тоже совершенно без всякого собеседования после выполнения несложного тестового задания. За 10 лет было написано много десятков мегабайт исходников на всевозможных языках программирования (С++, Python, Assembler), сделана куча замечательных проектов. Я великолепно изучил Linux, C++, Python.
    • На дворе 2007-й год. Впервые я стал беспокоиться, потому что работа перестала меня удовлетворять. Мне стало казаться, что моя работа – это подготовка к чему-то «настоящему», это всего лишь репетиция, отработка навыков перед чем-то важным. Но время шло, а «настоящей работы» так и не начиналось. Настоящей, на которой я смогу реализоваться полностью. Стало казаться, что её просто не существует. Я думал, что моя зарплата и интересность работы будет расти сама прямо пропорционально времени, но этого не происходило. Зарплатный капкан начал меня напрягать. Выйдя на свободный рынок в 2007 году я, пожалуй, впервые ощутил свою косность, неконкурентоспособность и безнадежную отсталость от технологий. Завязнув в стартапе, я порядком закостенел. Я начал заниматься поисками новой работы. Моя out-of-the-markedness беспокоила меня всё больше и больше. Посетил множество фирм, в числе которых были и очень крупные игроки софтверного бизнеса (Rambler, Yandex, Kaspersky и др). Но везде результат один – полный и несомненный отказ. В это время я впервые задался вопросом: «Почему?», на который до сих пор не получил внятного ответа. Я наконец-то узнал, что существует computer science, которую все спрашивают и про которую я впервые слышал. Неужели это потому, что я не знаю computer science? Но я же написал огромное количество высококачественного рабочего софта, знаю множество технологий и промышленную разработку! Я начал кидаться туда-сюда, хвататься за новые бесчисленные технологии, срочно изучать эту самую computer science, ничего не успевал изучать и был расстроен тем, что у меня ничего не получается. В конце концов, так и не найдя новой работы, я смирился со своей грустной участью. Я всё время был «не в струе»: когда все использовали stl и boost, я их практически не использовал, потому что не нужно было по работе; когда питонисты поголовно перешли на django году в 2008-м, я его упорно игнорировал, поскольку пользовался лучшим с моей точки зрения фреймворком, файлы редактировал упорно в FAR-е, хотя кругом было полным-полно замечательных удобных редакторов, и моя производительность не страдала от этого. В конце концов, я начал использовать все эти технологии, но только для того, чтобы быть адекватным рынку.
    • Но вот – о чудо! – меня пригласили в один стартап опять же совершенно без всякого собеседования. И опять, прилежная работа в течение нескольких лет, проектирование, планирование и эджайл, горы исходников, тестирование и багфиксы, надежды на лучшее, ощущение, что это репетиция чего-то важного и нового, разочарования и безуспешные поиски новой работы, которые проходили ровно так же, как в 2007-м году, но в условиях более жесткой конкуренции, которую я ощущал буквально за своими плечами.
    • И вот времена опять поменялись. На дворе уже 2013-й год. Я все ещё молодой, но возраст уже начинает брать своё. Мне казалось, что за это время у меня накопился гигантский опыт, что я могу заниматься чем угодно, что я нахожусь в конкурентном поле и у меня достаточно высокий уровень компетенции, что я могу работать, что я – «программист». «Теперь-то», думал я, «уж точно настало время для самой ценной и важной моей работы, для работы всей моей жизни».


    На самом деле не всё так просто. Я не знаю, какую именно работу я ищу. Не имею понятия, какая работа будет ценной и важной для меня. Надо попробовать всё. Высока конкуренция. Много молодёжи. Вчерашние выпускники отлично знают computer science и знают все эти загадочные слова, магические пассы и умеют внятно говорить. Поменялись правила игры, хотя Unix, C++, ООП остался. Появились длинные, содержательные, многоэтапные собеседования, grueling interviews. Ужесточаются требования к соискателям. Теперь уже никто не берет «студента без опыта» даже за смешную зарплату. «Странно» — думал я. «В начале 90-х же была демографическая яма, в которую должны были угодить мои потенциальные конкуренты». Но это не так. Выявляются мои пробелы и изъяны в знаниях, последствия многолетней «кустарной практики» и отсутствие системы в знаниях. Оказалось, что я не знаю детально, как работает ни один алгоритм сортировки (все 20 лет сортировал обычным «sort»-ом во всевозможных вариантах и на всевозможных языках программирования, который, по моему мнению, сортирует очень хорошо, но как именно – это меня никогда не волновало, ведь он сортирует наилучшим образом!), не знаю принципов ООП (использовал его еще со времен ВУЗ-а, но, видимо, неправильно, раз я не знаю верных принципов), формата пакетов TCP/IP (а зачем его мне знать? знал, когда писал диплом в ВУЗе, а потом забыл!), алгоритмов на графах и многого другого… Но я же как-то работал эти 20 лет и писал отличный рабочий софт, который используется до сих пор и будет ещё долго использоваться! Как это может быть? Сам удивляюсь.
    И второй виток выхода в «свободный рынок» прошел всё в такой же «теплой и дружественной обстановке», как и первый.
    «Касперский» снова предложил мне с ним «забрэйнбенчиться», как в старые добрые времена («Thank you, chap, but I don't play that games anymore, have already brainbenched all over»), «Яндекс» прореджектил все мои аппликейшны на все вакансии, на этот раз молча, даже без приглашения на интервью (в 2007-м году проинтервьюировал и «забраковал»), и похоже, включил меня в пожизненный бан, ибо я уже порядочно надоел их HR, поскольку откликаюсь почти на все их вакансии; mail.ru поступил аналогично, а Parallels, Mirantis и другие «акулы» софтверного рынка меня «забраковали» уже на собеседовании. Неприятно чувствовать себя «забракованным», но приятнее понимать, что мы обоюдно не подошли друг другу и не подходим вот уже много лет  Мы слишком разные. Я например, люблю поэзию, литературу, музыку и английский язык. А вот любит ли это Яндекс? Не уверен.
    Со стороны работодателей: их можно понять. Их задача – за минимально возможное время выяснить знания кандидата по максимально широкому набору тем. Я сам набирал программистов и по себе знаю, как это нетривиально. На готовые вопросы подразумеваются готовые шаблонные ответы. Как у Жванецкого: «…вот список ваших вопросов, вот список моих ответов». Излюбленные приёмы, используемые на собеседовании, которые я собрал за многолетние походы по интервью и которые повергают меня в недоумение, вводят в ступор (ответы на некоторые из них я не знаю и посейчас), и, как мне кажется, некоторые из них имеют мало отношения к программированию и их просто задают, потому что это «проверенный способ» и «все их спрашивают». Мои ответы, не устраивающие работодателей, в скобках:
    1. Представьте, что Вы читаете лекцию перед студентами. Как бы Вы объяснили студентам термин «X»? (X == «тупик», «контекстно-свободная грамматика», «конечный автомат», «оптимистические и пессимистические блокировки», «парадигмы программирования», «шина данных»). (Из этого списка внятно могу объяснить только «тупик», он же deadlock, потому что часто имею с ним дело. С остальными терминами дела не имею, и, соответственно, объяснить их не могу).
    2. Опишите максимально подробно, что происходит при вводе адреса в адресную строку браузера (вариант: при клике на ссылку). (Какая именно степень детализации имеется в виду? Мой рассказ может растянуться на целый день, а время у нас ограничено. Сначала, если мы находимся под Windows, посылается Windows-сообщение WM_CHAR при вводе текста в контрол… нет, точнее, сначала WM_NCHITTEST,… но если начать с самого начала, тогда keystroke поступает в клавиатурный буфер...).
    3. Опишите, какой обмен TCP/IP-пакетами производится при установлении HTTP-соединения. (К сожалению, многократно смотрел TCP/IP трафик с помощью ethereal, но не помню формат пакетов даже приблизительно).
    4. Опишите, какой обмен TCP/IP-пакетами производится при установлении HTTPS-соединения. (К сожалению, TCP/IP-трафик при HTTPS-соединении не смотрел). Верно ли, что HTTPS работает поверх HTTP или верно обратное? (Не знаю, но думаю, что HTTPS поверх HTTP. Или HTTPS поверх TCP? Кто ж его знает..).
    5. Опишите, как производится доставка пакетов транспортным протоколом TCP. Откуда мы знаем, на какой именно физический компьютер доставлять пакет? За счет чего обеспечивается гарантированная доставка? (Адрес доставки определяется MAC-адресом физического компьютера, доставка пакетов производится через gateway, прописанный в настройках системы, если это внешний хост. Внешний или не внешний – это вычисляется из ip-адреса и маски).
    6. Какова алгоритмическая сложность наилучшего и наихудшего возможного алгоритма сортировки массива из N элементов? (Наихудшая сложность – O(N^2), потому что нужно сравнить каждый с каждым, наилучшая – O(N * ln(N)). Почему такая наилучшая? Не помню. Читал в книжке. В какой — не помню).
    7. Рисуются прямоугольнички со стрелочками, говорится, что прямоугольники – это модули, а стрелочки – это зависимости между ними и задаётся вопрос: «Как загрузить все эти модули? И вообще, как это называется?» (Берем и загружаем рекурсивно сначала зависимости модуля, затем сам модуль. Как это называется – не знаю и не имею ни малейшего понятия. Это называется «прямоугольнички со стрелочками»).
    8. Опишите отличия демона от обычного процесса (такой вопрос мне задавали в 2007 году, и я до сих пор не знаю исчерпывающего ответа на него – тема поистине неисчерпаема, и я в ней досконально не разбираюсь, хотя написал за свою рабочую практику огромное количество демонов, при этом до конца не понимая, общая ли у них память или нет, общий ли стэк или нет и общие ли файл-дескрипторы или нет. Кажется, нет, не общие. Или общие. Забыл уже, в общем. Давно это было, в 2004-м году.).
    9. Назовите пять принципов объектно-ориентированного программирования. (Не знаю, к сожалению, хотя использую ООП с 1993 года).
    10. Как с помощью двух стеков сделать очередь? (Не знаю, но можно посмотреть в интернете).
    11. Какие способы синхронизации процессов Вы знаете (вариант: какие примитивы синхронизации Вы знаете) (mutex-ы, семафоры, эвенты)?
    12. Какие шаблоны проектирования Вы знаете (вариант: какие шаблоны программирования Вы знаете) (синглтон, фабрика объектов)?
    13. Как сделать оптимизацию SQL-запроса (вариант: какие приёмы оптимизации SQL-запросов Вы знаете) (посмотреть план запроса, убрать подзапросы по возможности, проставить недостающие индексы)?


    Работодатели совершенно правильно делают, безусловно. Я понимаю, почему они так делают. Они выбирают и отсеивают кандидатов, задавая им простейшие вопросы для начала. Затем переходят к более сложным, затем ещё и ещё. Проблема в том, что наши с ними подходы никогда не совпадают. При том, что я уверен, что в большинстве компаний, куда я ходил на собеседование, я смог бы работать без особых проблем, но работодателям виднее, и это правильно.
    PS. На самом деле с работой у меня нет проблем. Это только повод, чтобы описать свою причудливую карьеру. Наконец нашелся работодатель, который «проехал на красный свет», проигнорировав все эти многочисленные warning-и о том, что я не знаю, не задал ни одного вопроса на тему computer science и просто предложил работу.

    UPD. Всё же с работой есть проблемы, потому что единственный работодатель, который хотел было, отказался-таки меня брать в конечном итоге. Нет ли у кого-нибудь работы?..
    Share post

    Similar posts

    Comments 607

      +6
      Очень похожая и история, и ситуация :) Правда «Микрошу» родители купили в 89-м, а МК-61 года за три до того.
        +1
        Состоятельные у Вас были родители, ибо «Микроша» тогда стоила 500 руб, как высококачественный катушечник.
        Помню, году в 1995, когда контора на Дмитровском Шоссе, которая выдавала «Микроши» напрокат, собиралась закрываться из-за отсутствия спроса на них, я туда поехал и скупил пяток «Микрош» — отыгрался за своё испорченное детство!
          0
          Ну, цветной телевизор тогда дороже стоил 3УСЦТ какой-нибудь, емнип, а не такая уж редкость была.
            –4
            Какая гадость эти 3УСЦТ! Элементная база — отстой… Хорошо, что те времена уже прошли… хотя до сих пор не признаю ЖК телевизоры — пользуюсь телевизорами на ЭЛТ.
              +1
              >> пользуюсь телевизорами на ЭЛТ
              В случае со старыми игровыми консолями это единственный выход :)
        +3
        Уверен что в конце концов вы выбрали какое-то «дорогое» направление и смогли в нем достаточно хорошо «продвинуться». Ваш профессиональный и жизненный опыт позволяет решать весьма сложные задачи по этому направлению т.к. зачастую требуются синтезированные решения на основе знаний и опыта полученных ранее из предыдущих направлений вашей деятельности. Вы умеете самостоятельно достаточно быстро обучаться по любой требуемой теме. Ваш возраст — гарантия стабильности, человек в районе сорока весьма стабилен т.к. к этому возрасту успевает приобрести необходимый бытовой минимум и лишиться многих недостатков присущих молодым. Возможно вы делаете все не так быстро как молодежь, но ваш результат гораздо «более» предсказуем. Ваш нынешний работодатель научился это понимать и ценить. Поздравляю — вы стали «труднозаменимым» и хорошо оплачиваемым сотрудником!
          +12
          Я не выбрал «дорогое» направление. Я за чистую и незамутнённую идеологию. «Дорогие» направления для меня — это 1С и SAP. Но они противоречат моим убеждениям. Посмотрите, сколько 1С-ники получают и сколько Python-овцы и сколько «плюсовики» за совершенно различные по сути скилы (ох, ща на меня набросятся все скопом и закидают чем-то...).
            0
            Ну тогда хотя бы намекните — чем таким «недорогим» вы сейчас занимаетесь?
              +3
              Последние 3 года программирую в основном на Python — вот на нём, так сказать, и «фигачу». Могу и на C++, но его последние 3 года почти не использовал и начал забывать.
                +1
                Ну вот уже понятнее — питонистов сейчас на рынке примерно вчетверо меньше чем пхпешников к примеру, т.е. это уже чуть более «дорогой» язык для работодателей. Python — ЯП общего назначения, что именно вы на нем «фигачете», какой тип задач чаще всего решаете, какие фреймворки используете?
                  +7
                  PHP не признаю из-за идеологии, хотя он так коммерчески успешен.
                  Ну что именно? Сайты пишем, естественно. Сейчас вынужденно перешел на django. Тип задач пока один: как «вправить мозги» этому django и заставить его делать то, что мне нужно, а не то, что он хочет.
                    0
                    Просто интересно — что за идеология?
                      0
                      Когда-то там не было ООП и threading-а, а негатив остался.
                        –6
                        PHP должен умереть :)
                          +1
                          PHP создан чтобы умирАТЬ.
                            0
                            И если его использовать по назначению, то умерЕТЬ он должен :)
                        +34
                        до сих пор не признаю ЖК

                        PHP не признаю из-за идеологии, хотя он так коммерчески успешен.


                        Слишком много «не признаю». Это показатель агрессивности, что ли. Упёртости? Вы можете не использовать инструмент, он вам может не нравиться, вы можете с ним принципиально не работать, а вот признание эти инструменты уже получили во всём мире.
                        Для работодателя это может быть показателем того, что когда по корпоративным стандартам нужно будет использовать какой либо инструмент, вы можете вдруг отказаться, ибо «не признаю».

                        Тем более про PHP вы сами написали, что уже всё изменилось. А для простого народа именно этот язык стал возможностью программировать в принципе из-за своей простоты. И он создавался не ради кода, а ради решения простых проблем на простых домашних страничках, с чем он великолепно справляется. Зачем ему тогда были потоки и объекты?
                        Подумайте, вы бы «признали» PHP, если бы рассматривали его в том контексте, в котором я его описал?
                          +7
                          поддерживаю. Это один из моих тестов человека при приеме на работу :)
                            +5
                            А я считаю совершенно правильным, когда человек занимается тем, что ему нравится, и старается не устраиваться на работу, которая ему не нравится.
                            И насчет PHP я с ним полностью согласен. PHP — большая помойка, благодаря этому он, кстати, и стал успешен.
                              0
                              обоснуете?)
                                +4
                                Что конкретно нуждается в обосновании?
                                  –4
                                  ваша странная позиция по поводу одно из самый мейнстримовых языков современности, например. Каждый раз вижу ваши комментарии и лезу минусовать, жаль что лишь однажды это можно сделать :)
                                    +9
                                    Да, мой основной язык за последние 10+ лет большая помойка :) Нет целостности, нет даже формального описания синтаксиса (если не считать за него исходники транслятора). Десятилетие может прикручиваться элементарная для других языков фича, и то работать будет в строго определенном контексте.
                                      +1
                                      В исходники его транслятора, как и (большинства) библиотек лучше не заглядывать во имя сохранения душевного спокойствия :)
                                        +1
                                        Иногда без этого никак :(
                                        0
                                        А Вам почему бы не сделать форк и всё не исправить? Сделать свой PHP, который лучше?
                                        Почему как обычно, куча ругающих, а желающих всё исправить так мало? Потому и продолжаем есть кактус?
                                          +4
                                          А зачем плодить диалекты? Кроме того, если из текущей реализации PHP выбросить все те костыли и странности, которые в нем есть — получим язык, несовместимый с, собственно, тем, что сейчас подается, как PHP.
                                            +3
                                            Зачем делать fork? Надо просто сделать бесплатную замену PHP->Python, и проблема решена. Сэкономим десятки человеко-лет.
                                          +8
                                          надуюсь меня не полезете минусовать ;) если отвечу на вопрос «чем php плох?» ссылкой: habrahabr.ru/post/142140/
                                        0
                                        А я, как говорится, просто оставлю это здесь: habrahabr.ru/post/142140/

                                        (Ой, выше, видимо, уже дали эту ссылку. Прошу прощения. Просто статья великолепна и отлично запомнилась многим)
                            +2
                            имхо сарказм(){ половина зарплаты 1С-ников — это возмещение морально-психологического ущерба программисту (с САПками, кажется, тоже самое, только компенсация выше)} (сам мурыжил Комплексную 1С год как админ, потом как программист).
                              0
                              В случае саперов там ещё вопрос в том, что на нашем рынке грамотный сапёр — зверь редкий, причем зачастую вложившийся в свое обучение. И высокая зарплата — суть компенсация оплаты редкости и отбивка затрат на образование.
                                0
                                Долго вкуривал, о каких «сапёрах» идет речь))

                                Ну если так уж и посудить, действительно грамотный 1С-ник — это тоже вещь нечастая. Чтобы и с пониманием своих действий, с толком, с расстановкой, с «обычными» программистскими навыками (мат., алгоритмы, БД этц), со знанием БУ и НУ (не только, где эти галки ставить, но и с пониманием законодательства), чтоб мог разобраться с этими желтыми книжками, в которых черт ногу сломит. Ну и плюс — это тоже всегда курсы, сертификаты на каждую конфу, курсы, обучения, повышения квалификаций, а тут и новая платформа… И снова курсы…

                                Ну и все в свободное время пишут собственную конфигурацию :-D
                          +8
                          Я впитал за свою многолетнюю практику принцип того, что всего знать невозможно. Зато можно научиться быстро искать и обрабатывать/использовать информацию. Технологии меняются как слайды, и за ними никогда не угнаться. А работа всегда найдётся!
                            +4
                            Общий смысл понятен (возраст аналогичный).
                            Мне не кажется правильным плясать от «мне нужно найти работу» (такую идею я вижу в вашем тексте). Если заниматься тем, что нравится и/или интересно, вопросы с работой обычно решаются сами в том или ином виде. Чего вы хотите от жизни? Зачем вам карьера?
                              0
                              Ну смотрите, уважаемый frog. Мне, например, прям сейчас хочется делать один стартап, но он не принесёт денег (ну разве что небольшую прибавку к пенсии), и никому, кроме меня он не нужен. Кушать, тем не менее, хочется. Что делать? Правильно, искать работодателя, который занимается успешным стартапом, и у которого я мог бы работать, используя аналогичные технологии. Работаю на него и делаю своё в свободное от работы время. «Карьера» нужна, чтобы заработать немного денег на пропитание. Вот и всё.
                                +7
                                Сначала зарабатываете (хоть на несчастной 1С :) за ограниченный промежуток времени (месяцы) сумму, которая позволит кушать следующие несколько месяцев. После этого уменьшаете объем работ за деньги и начинаете параллельно заниматься стартапом (либо осваивать новую технологию, которая затем позволит вам меньше работать и при этом получать больше денег. Или другим способом повышаете свою ценность).
                                На следующем цикле тоже самое, но с еще большем перекосом в сторону стартапа/самообразования. И т.д.
                                  0
                                  Хм… хорошая идея, но 1С у меня на грани тошноты… не могу забыть, как она съела весь софт на access в одной конторе, где я работал. Эта мерзостная глюкалка, под которую еще можно до сих пор «программировать». Помню, какой у нее был язык программирования в 1997 году. Гадость. А SAP и остальные странные вещи, которые потенциально принесут деньги — я даже туда лезть не хочу, этот весь банковский софт…
                                    +4
                                    Про 1С это просто пример. К стоматологу ходите, когда зуб заболит? Ну вот считайте, что это тоже самое. Появится резерв на несколько месяцев, сможете разорвать круг по которому ходите. Но всё-таки я не случайно выше спросил, чего вы хотите от жизни. Обычно всё упирается в это. Кто-то хочет красивую жизнь, кому-то пофиг на комфорт и интереснее себя менять — вариантов много, соответственно рецепты разные.
                                      +2
                                      Не друг, у меня та же история жизни, почти 95% совпадение. Только я пошел в банковский бизнес. Так вот это трясина!!! Нечего в ней делать.
                                        +2
                                        Абсолютно поддерживаю. Постоянные оверхэды и срывы сроков…
                                        +3
                                        SAP не банковский софт, если уж на то пошло
                                          +2
                                          SAP != 1C. 1C это малый и средний бизнес, SAP это средний (если может себе позволить) бизнес, и большой (корпорации) бизнес. Конечно 1С можно натянуть на большой бизнес, но все это будет с большим скрипом и костылями…
                                            0
                                            Плюс еще нужно учитывать, что SAP придется натягивать на отечественные финансово-банковские и законодательные реалии и пилит не меньше 1С. А в условиях того бизнеса, на который SAP рассчитан это в принципе непросто.
                                            В общем, каждому гвоздю своя кувалда.
                                          +2
                                          1C как платформа сильно эволюционировала с тех пор в лучшую сторону.
                                            0
                                            Сильно согласен. 8.х (особенно 8.2 и, надеюсь 8.3) гораздо приятнее 7.7 — и в плане языка, и плане среды и платформы.
                                        +5
                                        То что вы описали — НЕ СТАРТАП!
                                          0
                                          А что это?
                                        +1
                                        А «мне нужно интересную работу» нормально? :) Но вообще мне кажется, что рассчитывать на то, что вопросы с работой решатся сами несколько наивно.
                                          +1
                                          > А «мне нужно интересную работу» нормально? :)
                                          Лучше, но не ощущается масштабность желаний :-)

                                          > Но вообще мне кажется, что рассчитывать на то, что вопросы с работой решатся сами несколько наивно.
                                          Не знаю — до сих пор всегда решались сами. Что будет дальше, посмотрим.
                                        –15
                                        з этого списка внятно могу объяснить только «тупик», он же deadlock, потому что часто имею с ним дело


                                        простите — но программист должен знать что такое машина тьюринга. пока же вы слишком хорошо описываетесь поговоркой
                                        «Специалист подобен флюсу — его выпуклость однобока»
                                          +2
                                          Я знаю, что такое «машина Тьюринга» — проходил в ВУЗе. Честн говоря, и что такое «конечный автомат» — знаю. Загнул немного.
                                            +17
                                            Кому должен-то? Будет необходимость — всегда можно досконально разобраться.
                                              –3
                                              к сожалению за это не платят. есть два человека — и один говорит «я это знаю», а второй «всегда можно разобраться» то как вы думаете — кого возьмут?
                                                +27
                                                Вы так говорите, будто ответ очевиден и однозначен. ИМХО, человек, который может с чем угодно быстро разобраться, гораздо ценнее человека, который в ВУЗе выучил определение машины Тьюринга, но не может и шагу ступить за рамки того, что ему преподавали.
                                                  +28
                                                  Честно скажу: ни разу не программировал под машину Тьюринга после ВУЗа, и лично с Тьюрингом не знаком и у него не работал.
                                                    –14
                                                    Возможно, это и к лучшему, что вы с ним не знакомы, учитывая известные о Тьюринге факты из личной биографии.
                                                      –15
                                                      Минусующим неплохо было бы ознакомиться с биографией Тьюринга сначала.
                                                        +4
                                                        Кстати, Тьюринг был неплохим марафонцем.
                                                          +5
                                                          Вы так говорите, как будто его личные предпочтения влияли на его профессиональную деятельность. Человек может быть талантливым в одном, а может быть талантливым и в двух. :-)
                                                            +17
                                                            Вы не поверите, но тут многие знают его биографию
                                                              +9
                                                              Может быть, минусуют как раз потому, что знают его биографию?
                                                              • UFO just landed and posted this here
                                                                  +6
                                                                  Тут вам не гос.дума, тут люди приличные сидят, на оскорблении других очков не заработаешь :)
                                                                    0
                                                                    Возможно, минусующие (меня, если что, среди них не было — прошу не обижаться) как раз знают те факты из биографии Тьюринга, на которые вы намекаете и просто огорчены вашей нетолерантностью.
                                                              +1
                                                              Вопрос некорректный. Хороший руководитель принимает решение не по таким простым критериям.
                                                                0
                                                                По-моему, всё-таки важнее не знание машины Тьюринга, а умение очень быстро решать не совсем тривиальные задачи. Тут может помочь знание алгоритмов. Я тренировался на contest.yandex.ru/, пока не затошнило… слишком сложно.
                                                                  +2
                                                                  Решать не совсем тривиальные задачи — это, безусловно, очень хорошо. Но вот странно в этом отношении читать про вопрос номер 10. Я ни разу не программист, но и то почти с ходу придумал какой-то вариант — похоже, даже рабочий. Возможно, именно это и хотел работодатель? Но тогда странно считать нормальным ответ «можно посмотреть в интернете»
                                                                +3
                                                                >есть два человека — и один говорит «я это знаю», а второй «всегда можно разобраться» то как вы думаете — кого возьмут?

                                                                Вот есть два человека, один говорит «Да, я знаю А, Б и В», а второй говорит «Не знаю ничего из этого, но могу разобраться». Но когда понадобится Г, Д, Е, а потом еще немного от У, Ф и Х, то первый скажет «О-о-о, не-ет, я это не знаю», а второй скажет «Да не вопрос, могу разобраться» — и таки разберется, ибо этот скилл у него прокачан годами.
                                                                  +2
                                                                  А это не факт, что у первого скилл «разобраться» тоже не прокачен. Просто так жизнь сложилась, что на момент собеседования он А, Б и В знал и даже помнил :)
                                                                    +1
                                                                    Ну разумеется, не значит. Поэтому нельзя однозначно сказать ни «берем первого, т.к. знает», ни «берем второго, т.к. он быстрее разберется».
                                                                    0
                                                                    Бывают такие программисты, с плохой памятью. Наступают на одни и те же грабли, приходят с вопросом, по которому месяц назад был ликбез. Возможно, они читали про А, Б, В, но в памяти не осталось ничего. Другой же программист, всё что прочитал, помнит. Может пересказать и применить.
                                                                  +9
                                                                  Ой ли… вы можете «всегда разобраться при необходимости», только если у вас есть фундаментальные знания, понимание что где и как применяется, но вы слегка плаваете или забыли.
                                                                  А если о какой-то области вы даже не слышали, то как говорят в наших краях «you don't know what you don't know». Посыл такой, что если вы не знаете какую-то область и где она примененяется, то встретив задачу, легко решаемую с помощью методов из этой области, вы будете выдумывать что-то свое и скорее всего гораздо менее эффективное, а иногда совершенно некорректное решение.
                                                                  +12
                                                                  Когда вам в последний раз в практической работе помогло знание что такое машина Тьюринга?
                                                                    0
                                                                    Совсем недавно понимание что такое конечный автомат помогло сделать дизайн фреймворка для автоматического тестирования распределенного приложения.
                                                                      +7
                                                                      Конечные автоматы имеют большое практическое значение, в отличие от МТ, практическое значение которой в основном сводится к возможности доказательства очередной теоремы из CS.
                                                                    +4
                                                                    А зачем? Вот, например, я в университете проходил МТ чуть ли не в первом семестре, потом, за прошедшие с того момента 19 лет, она мне не понадобилась. Зачем мне про неё помнить? С другими дисциплинами аналогично — я потихоньку забываю то, что не использую — в памяти остаются лишь какие-то общие моменты, без деталей.
                                                                    +11
                                                                    Очень знакомо. Но на самом деле типичная ситуация для «пограничников».
                                                                    Т.е. людей, которые можно сказать стояли у истоков компьютеров, в таком виде, в каком мы знаем их сейчас.
                                                                    Которые начинали лет 20-25 назад. Прошли с DOS до Windows 8, и с ASM до JS.
                                                                    И помнят времена, когда интернета еще не было)
                                                                    Много опыта в самых разных вещах, но пройти собеседование при этом тяжело.

                                                                    Как мне кажется, хорошим вариантом будет копать «долгоиграющие» технологии, вроде java.
                                                                    С таким багажом опыта, знания будут набираться очень быстро. И востребованность рынком будет.
                                                                      +3
                                                                      Я не только помню времена, когда в России интернета ещё не было, я помню времена, когда в ФИДО нереально было попасть, и я не мог этого сделать несколько лет!!! Туда можно было попасть только через очень хороших знакомых и по большому блату! И я несколько лет сидел в «левых» сетках под названием Draftnet, еще какой-то net…
                                                                        +1
                                                                        Большой блат приобретался очень легко — через пиво сисопу )
                                                                          0
                                                                          Надо было напрограммировать им что-нибудь, вы же программист.
                                                                          Я в фиде вообще через друга с телефоном сидел после переезда издалека.
                                                                          Вернее, только читал :(
                                                                          +11
                                                                          Соглашусь с первым абзацом. Я лично не прошёл бы ни одно типовое собеседование, про которые на хабре постоянно пишут. Но почему-то меня это не волновало и сейчас не волнует.
                                                                          +2
                                                                          У меня похожий послужной список. Правда я поняла, что computer science — важная штука, нашла программы нескольких буржуйских вузов и по ним добирала и продолжаю добирать недостающие знания. Алгоритмы, особенно сложные, мне ещё предстоит осваивать. :)
                                                                            +11
                                                                            Я думаю, что в статье вырисовывается проблема отсутствия фокуса и структуры — как в знаниях, так и в профессии — классическая ситуация самоучки.
                                                                            Выход достаточно прост: выбрать конкретную область приложения усилий — все знать невозможно, да и не нужно. Почитать требования в вакансиях, ибо от питонистов на веб требуют одно, для сишников на железо требуют совсем другое, а для сапы — третье. И прочитать базисные книги по теме. Обычно после этого оказывается — «о, вот как называется то, что я использую много лет».
                                                                            Для исчерпывающих ответов на те 13 вопросов, что приведены выше, нужно прочитать всего три книги (по протоколам инторнета, основным понятиям ООП-подхода, взаимодействие процессов) и пару статей (оптимизация запросов, алгоритмы сортировки).

                                                                            А computer science нигде, по сути, не учат. Из того, что могут дать даже в самом хорошем учебном заведении на практике 90% не будет использовано, ибо в этой области все очень быстро меняется, и каким именно направлением кто займется — в вузе не знают. Поэтому один из основных скиллов программиста — быстрое самостоятельное обучение тому, что нужно.
                                                                              +1
                                                                              Для исчерпывающих ответов на те 13 вопросов, что приведены выше, нужно прочитать всего три книги (по протоколам инторнета, основным понятиям ООП-подхода, взаимодействие процессов) и пару статей (оптимизация запросов, алгоритмы сортировки).

                                                                              Для исчерпывающих ответов просто прочитать мало. Нужно или выучить это перед собеседованием, как перед экзаменом, или постоянно это использовать, вариться в темах.
                                                                                +1
                                                                                Ну, не исчерпывающих, а тех, что обычно достаточны для работодателей, ибо собеседование таки не экзамен. Да, что-то выучить наверное придется, но немного, потому что остальное где-то использовали и просто запомнить название этого всего.
                                                                                  +1
                                                                                  Вот, например
                                                                                  Опишите, какой обмен TCP/IP-пакетами производится при установлении HTTP-соединения.

                                                                                  Задавали подобные вопросы. Когда-то читал, и даже ethernet-кадры(или пакеты? или фрэймы? — не помню :( ) анализировал из интереса, чтобы разобраться. Помню, что даже при простейших запрос-ответ по IP-адресу в пределах одной «шины» (то есть без DNS, без внешнего роутинга и т. п.) пакетов больше чем два, как это можно было бы предположить без хотя бы поверхностных знаний об OSI в приложении к Ethernet/IP/TCP/HTTP. Помню, что как минимум есть пакеты, подтверждающие доставку. Но вот однозначно описать, тем более с правильными названиями типа ack (или ask? — не помню), точно не смогу. Я не гожусь на должность веб-разработчика, оперирующего данными на уровне HTTP?
                                                                                    +1
                                                                                    ACK — acknowledge.

                                                                                    Ну для веб-разработчика этого точно не надо. А вот если нужно сетевой обмен на tcp писать, то желательно иметь представление о 3 way handshake и прочих «кишках» tcp. Хотя бы, что бы потом не выглядеть глупо в глазах сетевых админов с вопросом «почему у вас сеть так медленно работает?».
                                                                                      0
                                                                                      А зачем спрашивали, если из описания вакансии явно следовало, что даже HTTP запросы «ручками» разбирать не придётся?
                                                                                        +4
                                                                                        По опыту прохождения собеседований могу предположить — что-бы показать, что сам знает это :)
                                                                                      +1
                                                                                      От веб-разработчиков, обычно, не требую знаний таких тонкостей в протоколах, достаточно общих слов, типа «запрос отсылается на сервер (apache/fpm/tornado/ngnix), там происходит обработка параметров, после чего отдается php/python интерпретатору» — этих знания для его работы вполне достаточно.
                                                                                      А вот для разработчика сетевых низкоуровневых сервисов, скорее всего, потребуют примерную раскладку — он обязан это знать, это его специализация. так же, как и отличие демонов, и основы взаимодействия процессов. с другой стороны, от него не потребуют знаний интерпретаторов php/python и методов оптимизации запросов к БД.
                                                                                        +1
                                                                                        Очень часто требуют чуть ли не уровни сигналов в кабелях описывать.
                                                                                          +1
                                                                                          от веб-разработчиков уровни сигналов? ни разу не встречал.
                                                                                            +1
                                                                                            Утрировал, конечно. Но на уровне Etehrnet-пакетов (всякие ARP и т. п.) спрашивают, причем вакансия явно не предполагает хотя бы ручной разбор HTTP-запросов. Иногда ощущение складывается, что цель собеседований показать, что ты плохой разработчик, а потому на заявленную зарплату можешь не рассчитывать.
                                                                                              +2
                                                                                              а, ну тут 2 варианта: либо сбивают цену, либо просто тестирование на общую квалификацию. в любом случае, отвечать тут не обязательно.
                                                                                              кстати, очень хорошо помогает контрвопрос «А вы с какой целью интересуетесь?»
                                                                                                0
                                                                                                А вдруг ему интересно, как эта магия работает?!
                                                                                +6
                                                                                Наихудшая сложность сортировки это как минимум O(n!) — генерируем все перестановки, проверяем каждую на отсортированность.
                                                                                  +12
                                                                                  Если так рассуждать, можно за O(n ^ n) прозаниматься херней и вообще максимальная сложность неограничена.
                                                                                    +3
                                                                                    Совершенно верно. Максимальная сложность алгоритма сортировки не ограничена. Это с точки зрения той самой Computer Science.
                                                                                    0
                                                                                    По-моему, вы забыли учесть сложность проверки последовательности на отсортированность. Так что либо O(n*n!), либо O(n^2*n!) (если не пользоваться транзитивностью сравнения).
                                                                                      +3
                                                                                      Bogosort — рандомно раскидываем элементы в массиве и проверяем, не отсортировались ли они случайно.
                                                                                      +8
                                                                                      Почему не может быть сортировки быстрее O(N * ln(N)), кстати, действительно полезно почитать и понять. А потом почитать про radix sort, который сортирует быстрее. Не для прохождения интервью, а потому что такой подход может пригодиться на практике.
                                                                                        +4
                                                                                        Если мне не изменяет память, то быстрее O(N * ln(N)) не бывает сортировок, основанных на сравнениях элементов между собой, а не сортировок вообще.
                                                                                          +4
                                                                                          Аналогично, за O(N * ln(N)) бывают сортировки, основанные на транзитивности сравнения, одинаковом размере элементов и прямом доступе к памяти. А не сортировки вообще.
                                                                                          0
                                                                                          А если массив уже отсортирован, какая будет временная сложность?
                                                                                            0
                                                                                            Если известно, что массив отсортирован — то 0. Если это нужно проверить, то зависит от алгоритма. Какой-нибудь пузырёк или простые вставки сработают за O(n). Большинство других алгоритмов не обратит внимания на отсортированность, и пойдёт по своему обычному пути. А наивный quicksort (берущий в качестве разделяющего элемента первый, а не средний) затратит n^2, если не свалится раньше по нехватке стека :)
                                                                                              0
                                                                                              Я про интервью. Если я правильно понял, сложность сортировки теоретически варьируется от O ( 0 ) до О (+∞)?
                                                                                                0
                                                                                                Лучше сказать от О(1) (надо ведь проверить условие, что он отсортирован), но, в общем, да. Зависит от конкретной постановки задачи и от алгоритма.
                                                                                                  0
                                                                                                  Что-то не соображу… реально сложность проверки отсортированности O(1), а не O(N)?
                                                                                                    0
                                                                                                    Как правило, конечно, O(N). Но, как я написал, «зависит от конкретной постановки задачи». Например, возможно, что конкретно этой функции сортировки передают не только длину массива, но и длину уже отсортированного начального куска (а почему бы и нет? Если в конкретном алгоритме она известна, то для сортировки очень даже может пригодиться). Тогда в лучшем случае (когда эта длина равна длине всего массива), сортировка проверит, что делать нечего, и вернётся. За O(1).
                                                                                                      0
                                                                                                      Это наверно в конце массива флажок ставить, если он отсортирован. И потом проверять только флажок.
                                                                                                      Наверно это то, что хотели сказать комментом выше)
                                                                                                0
                                                                                                Вопрос про какой алгоритм, radix sort? Так ему всё равно, сложность та же — O(N*k).
                                                                                                  0
                                                                                                  Массив из нулей и единиц (детерменировано, больше ничего нет) вы как будете сортировать?
                                                                                                    0
                                                                                                    Я тут полузабанен за срач в каком-то топике. Поэтому, я вам сразу скажу, что массив байтов сортируется за О(н). Массив нулей и единиц это самое простое просто, посчитать единицы.
                                                                                                      0
                                                                                                      Зачем его сортировать, если всю информацию можно поместить в два счётчика — количество нулей и количество единиц? Сделать это можно за время O(N).
                                                                                                        0
                                                                                                        Ну я сообщением выше, вроде, то же самое написал.
                                                                                                +8
                                                                                                вы правильно выставили тег «hr» — пока вы работаете не на себя, вы все еще человеческий ресурс. Как и любой ресурс вы изнашиваетесь и морально устареваете. Именно с такой позиции вас оценивают люди с деньгами.
                                                                                                Перестраивайтесь. Не закапывайтесь как страус в интересный код. Не надо подтягивать свои слабые стороны, компенсируйте их членами команды. Лучше используйте свои сильные. Делайте сервисы которые генерируют прибыль. Извините за прямоту но возраст штука упрямая, дальше будет хуже.
                                                                                                  +12
                                                                                                  Проблема тут в идиотизме собеседующих.

                                                                                                  Опытных программистов, которые не хотят быть руководителями — очень трудно найти и они на вес золота.
                                                                                                  Computer science и знание продвинутых алгоритмов крайне редко нужно, и для меня никогда не было определяющим.

                                                                                                  У меня бы вы собеседование прошли. ;-)
                                                                                                    +5
                                                                                                    Я не то, чтобы не хочу быть руководителем — для меня это неважный фактор. Ну есть кем руководить — хорошо. Нету — и фиг бы с ним.
                                                                                                      +10
                                                                                                      Опытных программистов, которые не хотят быть руководителями — очень трудно найти и они на вес золота.


                                                                                                      Примерно как антиквариат. Когда он есть — все говорят, что «на вес золота», но если вдруг захочется продать — то покупателя не найти (а если найдёшь — предложит в 10 раз дешевле). Когда нет, но хочется купить — не найдёшь продавца, а когда найдётся — цена будет такая, что лучше бы и не искал. Как, вероятно, и с любым другим рынком с мизерными спросом и предложением.
                                                                                                      +5
                                                                                                      Без обид…

                                                                                                      Это называется кризис среднего возраста. Вы прошли большой жизненный путь, оглянулись назад, подвели итоги сделанной работы и задумались, что делать дальше (в этой статье всё отражено).

                                                                                                      Основная проблема кризиса среднего возраста в том, что человек сталкивается с тем, что он не добился того, чего ожидал в 20-летнем возрасте. Эти умозаключения могут происходить на уровне подсознания, вызывая у человека волнение и депрессию в реальной жизни. Из кризиса всего два выхода — либо признать, что жизнь проё*на и дальше плыть по течению, либо кардинально всё поменять и начать с начала на основе полученного опыта.
                                                                                                        +4
                                                                                                        А я не уловил депрессию в данном посте.
                                                                                                        На мой взгляд автор счастливый человек.
                                                                                                          +1
                                                                                                          В принципе, да, но опасаюсь:
                                                                                                          1. Остаться без дохода в связи с отсутствием позиционирования на рынке;
                                                                                                          2. Остаться с нулевой (дефолтной) пенсией на старости лет.
                                                                                                            +3
                                                                                                            2. Отбросьте этот пункт, как думаете, заставит он вас активнее двигаться вперед и реализовывать свои идеи (надеюсь, которые потенциально окупятся и будут приносить доход)?
                                                                                                              +5
                                                                                                              1. Решаемо
                                                                                                              2. Так и будет, поглядите на поколение которое будет отдавать денег в пенсионный фонд. Их мало и они все тупее (значит дешевая низкоквафицированная рабочая сила). Пенсионному — просто неоткуда взять столько денег. Надежда только на себя.
                                                                                                                +3
                                                                                                                Кхм, я попросил бы с такими резкими высказываниями насчёт «все тупее». Это Вы как так оценили целое поколение?
                                                                                                                  +2
                                                                                                                  Да, я так назвал целое поколение. Если не согласны, прогуляйтесь до ближайшего знакомого преподавателя и спросите прав ли я или нет. Именно они лучше всего это ощутили. Умницы есть в любом поколении но в поколении которое сейчас выпускается из универов или выпустилось не так давно — их на порядки меньше. Не потому что они какие то лентяи или недоумки — просто когда нужно было заниматься их воспитанием их родители пытались удержаться на плаву. К слову это первый год, за последние лет 5-7 когда предыдущий поток студентов был слабее этих новеньких. Радует.
                                                                                                                    +2
                                                                                                                    Уровень меняется из года в год так, что оценить средние способности совсем непросто. В этом году группа первокурсников слабая. В прошлом была заметно сильнее. В позапрошлом — средняя. И так далее. Пожалуй, можно сказать, что сильные стали сильнее, чем были раньше.
                                                                                                                      0
                                                                                                                      да почему не просто то)) оценки никто не отменял. У многих преподавателей со стажем в голове есть метрики, которые более менее уже устоялись, по которым они оценивают уровень знаний. Сейчас даже отличные преподаватели часто идут на сделку с самим собой, ибо поставить двойки всей группе — будут проблемы, а по факту то…
                                                                                                                        +1
                                                                                                                        оценки никто не отменял

                                                                                                                        Уж что-что, но это явно не показатель…
                                                                                                                          +2
                                                                                                                          вы не путайте формальные циферки которые рисуются на бумажечках и оценку знаний преподавателем. Между тем что преподаватель держит в уме и тем что потом нарисует — большая дорожка на которую влияет очень много формальных и политических и эээ… материальных факторов.))
                                                                                                                            0
                                                                                                                            Тогда прощу прощения, думал речь о
                                                                                                                            циферках которые рисуются

                                                                                                                          0
                                                                                                                          Ну… уровень 5-6 сильных студентов группы слегка повышается. Уровень остальных — остаётся прежним: как тратили по часу на реализацию очереди на двух стеках, так и продолжают.
                                                                                                                          Можно ещё ориентироваться по сложности задач какой-нибудь олимпиады, например, ACM. По-моему, лет за 10 почти не меняется. И распределение результатов остаётся прежним.
                                                                                                                            0
                                                                                                                            Не с того начали. Начните с конкурса при поступлении) Раньше был отбор, сейчас — формальность. Не с чего особо выбирать)
                                                                                                                              0
                                                                                                                              Кстати об этом: я дико извиняюсь, но мне для ответа на вопрос «как сделать очередь из двух стеков» понадобилось что-то около двадцати секунд (я не смотрел в интернетах и никогда раньше не сталкивался с такой задачей). Это же просто, разве нет?
                                                                                                                                0
                                                                                                                                И какая получается средняя сложность (в операциях push/pop) прохода одного элемента через эту очередь, если считать, что элементов обработано N, среднее число элементов в очереди K<N/2, а в начале и в конце очередь пуста?
                                                                                                                                  0
                                                                                                                                  Зависит от последовательности операций же. От ≈1 в лучшем случае до ≈К в худшем.
                                                                                                                                    0
                                                                                                                                    Хотя с ≈1 я погорячился. Но точные оценки — вопрос не на 20 секунд.
                                                                                                                                      0
                                                                                                                                      Если среднее число операций может быть K, значит, с реализацией что-то не то. Студентам я в этом случае предлагаю подумать ещё (а не хотят — соглашаться на 4). Но, конечно, экзамен это не собеседование…
                                                                                                                                        0
                                                                                                                                        >Если среднее число операций может быть K, значит, с реализацией что-то не то.
                                                                                                                                        Т.е. при К=1 вы можете предложить решение с числом операций меньше 1? =)
                                                                                                                                          0
                                                                                                                                          Если серьёзно — действительно, до правильной реализации я не додумался. Любопытно.
                                                                                                                                        0
                                                                                                                                        хмм… а разве не 2 (push+pop) на элемент если они приходят+уходят по одному-два, и до 4(2push+2pop) на элемент, во всех остальных?
                                                                                                                                        (т.е. 4K операций)
                                                                                                                                          +1
                                                                                                                                          Нет, это 4*N. Т.е. в среднем на 1 элемент — 4 операции. От K не зависит. Конечно, можно немного пооптимизировать в окрестности пустой очереди (класть элемент сразу во второй стек, если стеки пусты, отдавать последний элемент сразу...)
                                                                                                                    +11
                                                                                                                    Простите, но:
                                                                                                                    файлы редактировал упорно в FAR-е, и моя производительность не страдала от этого
                                                                                                                    Вчерашние выпускники отлично знают computer science и знают все эти загадочные слова, магические пассы и умеют внятно говорить.
                                                                                                                    Какая именно степень детализации имеется в виду? Мой рассказ может растянуться на целый день, а время у нас ограничено.
                                                                                                                    Кажется, нет, не общие. Или общие. Забыл уже, в общем.
                                                                                                                    mike1

                                                                                                                    Потому и не кусают.
                                                                                                                      +3
                                                                                                                      Здравствуйте, уважаемый Дмитрий! Не ожидал, что мой скромный пост всколыхнёт такой трафик, что даже затронет такого гуру. :)
                                                                                                                      На самом деле, я для C++ использую MS Visual Studio, для Python — PyCharm. Но реально, по привычке иногда возвращаюсь к FAR-y- уж очень там удобно всё…
                                                                                                                      Что касается fork-ов — ну, конечно, я уж не до такой степени ignorant — знаю, что у них общее, что нет. Это так, для примера написано…
                                                                                                                        +13
                                                                                                                        Так что же вы голову морочите? :) «Иногда возвращаться» и «использовать вместо IDE» — разные вещи. Вообще, у меня после этого вашего комментария сложилось впечатление, что вы занимаетесь самобичеванием.
                                                                                                                          0
                                                                                                                          Не, я не использую его вместо IDE, скорее вместе с IDE.
                                                                                                                          Самобичеванием — к сожалению, да, занимаюсь. Может быть, я представляю себя здесь хуже, чем я есть на самом деле, но это же полезно! Почему нет?
                                                                                                                            +2
                                                                                                                            Потому что не выгодно для устройства на работу. Зачем кому-то более плохой или депрессивно настроенный сотрудник, тем более в отношении себя? Если есть те, кто свеж и уверен в себе, имея при этом значительно меньший опыт? В Штатах, насколько я читал, важно, чтобы сотрудник умел себя хвалить и преподнести, иначе кому это делать и как узнать, чем он хорош? Ну да, HR вместе со спецом могут потратить время на то, чтобы разобраться, а могут и не потратить.
                                                                                                                              0
                                                                                                                              В Штатах, насколько я читал, важно, чтобы сотрудник умел себя хвалить и преподнести, иначе кому это делать и как узнать, чем он хорош?

                                                                                                                              На протяжении большой части жизни нам вдалбливали в голову, что хвастаться плохо. Что хорошего специалиста работа сама найдет. И т. д., и т. п.
                                                                                                                                0
                                                                                                                                Да, так и есть.
                                                                                                                                  0
                                                                                                                                  А избавиться от этого очень сложно, если вообще возможно.
                                                                                                                                    0
                                                                                                                                    Возможно. Проверено на себе. Постепенно. Просто хвалите себя и других за всё, что можно. Делайте комплименты. В том числе себе. Вы делаете хорошо? Значит можно гордится своей работой и просто сказать — я доволен тем, что сделал и готов рассказать об этом.
                                                                                                                                      0
                                                                                                                                      А если не доволен? Вечно времени не хватает, чтобы «отполировать».
                                                                                                                                        0
                                                                                                                                        Вечный баланс — идеален или достаточно хорош? Если код достаточно хорошо выполняет свои задачи, значит доволен. Или вы тот человек, который не может ездить ни на чём, кроме бугатти/ламборгини/… потому что остальные машины не отполированы?
                                                                                                                                          0
                                                                                                                                          Машины я не делаю :) А за код стыдно.
                                                                                                                                0
                                                                                                                                В результате в Штатах все меньше специалистов и все больше гуру самопиара. Естественный отбор.
                                                                                                                                  0
                                                                                                                                  В здоровом теле здоровый дух, а навыки нужно не только иметь, но и уметь их показать, помоему вполне нормальная ситуация. В Штатах все в порядке с индустрией командной разработки, в отличии от той же России, в которой при наличии талантливых одиночек програмных продуктов не производят (если сравнить со Штатами).
                                                                                                                                    0
                                                                                                                                    Тамошняя индустрия успешна, потому что из России и Индии аутсорсит :)
                                                                                                                            +7
                                                                                                                            Да, кстати, может, и единичку в нике как-то объясните рационально? При кажущейся неважности такие вещи ведь свидетельствуют об аккуратности и дотошности — наиважнейших качествах кандидата.
                                                                                                                              +6
                                                                                                                              Я понимаю, что интерьвюеру за короткое время надо максимально понять человека. Но зачастую перегибают с такими психологическими нюансами (ну признайтесь, вы же не профессиональный психолог). В результате, на основе ответа «mike был занят», вы можете сделать не верные заключения типа «не амбициозен», «без фантазии». Это будет несколько надуманно, если человек просто не отнесся серьезно в момент регистрации к выбору ника и уж никак не мог подумать, что это может как-то повлиять на решение о его принятии или не принятии на работу.
                                                                                                                                0
                                                                                                                                mike был занят, к habrahabr-у присоединился поздно, но очень хотелось быть «майком». Не хочу быть непонятно кем и брать алиасы. Я не скрываюсь ни от кого. Индекс 1 вполне меня устраивал, никаких отрицательных эмоций не вызвал. «Не амбициозен», «без фантазии» — абсолютно верно! Но не думаю, что такой ник влияет на решение о принятии на работу.
                                                                                                                                Сентенцию об аккуратности и дотошности не очень понял, уважаемый Дмитрий. How does one depend on the other?
                                                                                                                                  +3
                                                                                                                                  типа как петр1 или екатерина2 (на престол взошли поздно, все ники заняты). мне показалось, в ответе dk есть доля иронии ;)
                                                                                                                                    –3
                                                                                                                                    Кто-то моет руки перед едой, а кто-то при посещении столовой, когда берет поднос, плюхает хлеб прямо на него, не подстелив даже салфетки. Или добавляет единичку к логину, когда видит, что такой уже занят. Элементарная гигиена, никакой иронии. Гигиена для программиста — это все, это образ мышления, она во всем прослеживается. Тот, кто не моет руки, пишет с ошибками и т.д., скорее всего налепит в коде костылей (особенно если прослеживается еще симптом «нет времени») и наговнокодит так, что последователям проще потом будет все с нуля переписать (хотя этот же человек в другой области, не связанной с кодингом, может очень неплохо креативить или помогать брейнштормить). Я в данном случае не имею никого конкретного в виду, просто излагаю свои убеждения.
                                                                                                                                      +3
                                                                                                                                      Спасибо за разъяснение, Дмитрий, понял Ваш образ мысли.:) Даже не пришло такое в голову, если честно, когда регистрировался здесь :)
                                                                                                                                        0
                                                                                                                                        вот жеж. любопытно, какие умозаключения можно сделать об образе мышления программистов, которые пользуются логинами, которые, вообще говоря, они даже не сами придумали? ;)
                                                                                                                                          0
                                                                                                                                          Не любят изобретать велосипеды? :)
                                                                                                                                          0
                                                                                                                                          Немного не понял мысли. Прошу прощения, а на чем основаны эти Ваши убеждения?

                                                                                                                                          Я например не вижу никакой корреляции между гигиеной, частотой опечаток и ошибок в текстах, и качеством кода программиста. И вообще не понимаю, при чем ко всему этому ник с единицей. Может быть поясните?
                                                                                                                                            +1
                                                                                                                                            Основаны на опыте и личных наблюдениях. Если у кого-то есть обратные наблюдения — пожалуйста, расскажите эти истории в красках.
                                                                                                                                              0
                                                                                                                                              А каков размер выборки в Ваших личных наблюдениях? Сколько примерно человек Вы подвергли анализу по этим критериям? Я к тому, что если выборка не велика, то это могло привести к поспешным выводам.

                                                                                                                                              У меня таких наблюдений нет, не проводил. Но если бы была явная взаимосвязь, то наверняка заметил бы. Да и не только я… Уверен, что если это было бы правдой, то программистов на собеседованиях просили бы писать диктант. ))
                                                                                                                                                0
                                                                                                                                                Попробую рассуждать логически. С одной стороны действительно, существует поговорка: «неграмотно пишешь — неграмотно думаешь». Это может быть и верно, но только если ставится задача излагать мысли на бумаге. Тут такое дело, можно выбирать специализацию: то ли литературные тексты писать, то ли код, то ли еще что. Можно равномерно развивать несколько скилов одновременно, но если больше вкладывать только в один из них, то и достичь можно большего.

                                                                                                                                                Для профи нормально быть мастером только своего дела, и отставать в других областях, в том числе и во владении таким сложным языком как русский. Например, Александр Сергеевич Пушкин писал на русском языке с ошибками… Исследователи объясняют это так, мол, гений, спешил, старался зафиксировать ускользающий образ. Вот и с программистами тоже может быть где-то так. ))
                                                                                                                                                  +1
                                                                                                                                                  Чтобы тебя назвали гением и прощали огрехи, это надобно сперва заслужить. Быть может и не Пушкиным, но хотя бы Маяковским с его вездесущим интонационным «тире», которое грамматикой не предусматривается.

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

                                                                                                                                                  Но вот когда человек пишет безграмотно постоянно, причем ошибки делает глупые и детские, а исправляться не видит надобности, это означает как минимум (по моему субъективному мнению) две вещи:

                                                                                                                                                  1. Он не следит за своим интеллектуальным имиджем (как-то принято считать, что грамота — удел интеллектуалов)
                                                                                                                                                  2. Он привык не проверять то, что он делает. То есть делать «тяп-ляп». (Написал — перечитай, прежде чем читать будут другие)

                                                                                                                                                  Разумеется, из всех жизненных правил случаются исключения. Но обычно всё именно так.
                                                                                                                                                    +1
                                                                                                                                                    Если бы существовала малейшая связь между грамотностью и кодом, это бы давно заметили, и в состав собеседования во всех конторах входил бы диктант по русскому или другому местному языку.

                                                                                                                                                    Ответы по пунктам.

                                                                                                                                                    1. Специалисту не нужно следить за своим «интеллектуальным имиджем», чтобы оставаться профи. Это личное дело какой имидж иметь, и не факт что это хоть как-то связанно с выполнением рабочих обязанностей.

                                                                                                                                                    2. Он не привык уделять внимание неважным вещам, таким как проверка нюансов правописания никому ненужных текстов. Если при этом он полностью отдается своей основной работе, то есть все свои личные ресурсы бросает туда, то это как раз-таки нормально для профи.
                                                                                                                                                      0
                                                                                                                                                      Непосредственной связи между грамотностью и кодом, разумеется, нет. Но разве вам кажется абсурдной мысль о том, что человек, аккуратно пишущий код, будет стремиться к аккуратности во всём? Мне она кажется вполне естественной.

                                                                                                                                                      «Следить за интеллектуальным имиджем» — действительно не вполне корректная формулировка. Вернее было бы сказать «иметь интеллектуальный имидж». Смысл разницы сводится к отличию между «казаться» и «быть». Как сказал профессор Преображенский, «я — московский студент, а не Шариков». И я еще не видел профи, который был бы неспособен внятно излагать свои мысли. Обычно этот навык так или иначе приходит с опытом. А грамотное письмо — просто часть этого навыка. Согласитесь, если некоторый момент в вашем поведении может сыграть вам на руку или наоборот — зарекомендовать вас негативно, вы же постараетесь этот момент обратить в свою пользу, так ведь? Вы сами, к примеру, пишете грамотно. Так зачем же лицемерить?

                                                                                                                                                      А вот по третьему пункту, я совсем не соглашусь. «Неважных вещей» в нашем деле не бывает. В этом я убедился многократно. Порой знания, которых мне удалось «нахвататься» и в дизайне интерфейсов, и в юзабилити, и еще черт знает в чём вплоть до типографики (уважаю и порой использую LaTeX) очень упрощали мне работу. На днях, к примеру, коллега получил дизайн-документ для UI, в котором были прописаны расстояния между baseline-ами строк, а он думал, что это — расстояния между нижними границами текстовых блоков. Причем нигде не было специально указано, что это — baseline-ы. Так бы он неверно и сверстал, если бы я ему не объяснил… И легко могу представить себе, что придется набивать текстовые сообщения в программе самому, без помощи аналитиков. И какой же «бледный вид» при этом я буду иметь, если напишу в неположенном месте «ться» или, скажем, бизударную гласную зевну? ;)

                                                                                                                                                      В любом случае, человек, сознательно отказывающийся от аккуратности при письме, просто не любит родной язык, что, мне кажется, не умно. И это от профессии никак не зависит. И, кстати, «никому ненужные тексты» лучше вообще не писать, раз они не нужны. А если они всё же нужны, то надо и писать их грамотно.
                                                                                                                                                        +1
                                                                                                                                                        Но разве вам кажется абсурдной мысль о том, что человек, аккуратно пишущий код, будет стремиться к аккуратности во всём? Мне она кажется вполне естественной.

                                                                                                                                                        Нет, мне эта мысль не кажется абсурдной. Такое иногда бывает. Но эта мысль и не кажется естественной. Более того, тот, кто стремится в аккуратности во всём, неизбежно растрачивает много сил и времени на ненужные для его основной работы дела.

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

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

                                                                                                                                                        «Неважных вещей» в нашем деле не бывает. В этом я убедился многократно.

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

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

                                                                                                                                                        Сознательно не отказывается. Это несознательно. Когда человек спешит донести другому свою как ему кажется важную мысль где-нибудь в чате, он в это время может меньше всего думать о родном языке или «интеллектуальном имидже», и это нормально. Да и вообще опечатки — нормальны. У очень грамотного и внимательного человека они тоже неизбежно будут, хотя и существенно меньше.
                                                                                                                                              0
                                                                                                                                              Или добавляет единичку к логину, когда видит, что такой уже занят.

                                                                                                                                              А если пятерку добавляет? :)
                                                                                                                                                0
                                                                                                                                                Значит, предыдущие четыре заняты. Всё просто.
                                                                                                                                                  0

                                                                                                                                                  Нет, сразу 5.

                                                                                                                                        0
                                                                                                                                        Ой, а что же мне тогда делать с моими четырьмя единичками. Вот уж никогда не думала, что такое может быть важно. :)
                                                                                                                                          +1
                                                                                                                                          Всё теперь. Не видать вам Гугла, Яндекса и Каспера…
                                                                                                                                          +2
                                                                                                                                          Да, кстати, может, и единичку в нике как-то объясните рационально?

                                                                                                                                          С точки зрения психологии цифры в нике говорят об утилитарности мышления. Для программиста это нормально.
                                                                                                                                            +1
                                                                                                                                            Да какая утилитарность? От таких единичек и возникают в коде при рефакторинге переменные вида «count1» и т.д. Единичка в нике (при занятом безъединичном) ИМХО свидетельствует о том, что человек рано сдается и идет по самому простому пути, а не пытается найти что-то универсальное, т.е. = говнокод
                                                                                                                                              +1
                                                                                                                                              x1-x2 vs x_begin-x_end
                                                                                                                                                +2
                                                                                                                                                Не обязательно. Может быть данному человеку нравятся цифры, возможно, нравится именно цифра 1. Мало ли какие ассоциации возникли, когда он ник выбирал… например, царь Петр Первый, и т.д. Такие вещи хорошо прослеживаются при анализе тысяч ников и сопоставлении с психологическими портретами их обладателей. Психология с этим работает.
                                                                                                                                                  +1
                                                                                                                                                  Диагнозы по никам и аватаркам — весьма странное занятие.
                                                                                                                                                    0
                                                                                                                                                    Если нужно ставить диагнозы, то еще и не по такому ставят… Мой знакомый психолог, кстати, кандидат наук, специализировался на рисунках, которые люди от нечего делать бессвязно рисуют когда им скучно, ну там на лекциях, собраниях и т.д.

                                                                                                                                                    Впрочем, в данном случае это не диагнозы, а что-то типа классификации.
                                                                                                                                                  +1
                                                                                                                                                  Не кожу я с единичками! Не кожу! Ну как вам это доказать? Я могу вам на мыло прислать образцы. У меня английский — advanced, и я знаю, как верно называть переменные и классы. Я их называю правильнее, чем многие индусы…
                                                                                                                                        • UFO just landed and posted this here
                                                                                                                                            +3
                                                                                                                                            Всё так, и дальше будет хуже. Знаю по себе, так как начинал еще с перфокарт. Подозреваю, что наниматели смотрят на 40-50-60 летнего соискателя и думают: «уж я-то в его возрасте буду ого-го каким специалистом/ученым/предпринимателем, а это какой-то неудачник». Выход один — глубоко копать какую-либо тему и сделать в ней себе имя. Например, создать продукт, которым все будут пользоваться и который будет на слуху. Жаль, что я поздно спохватился.
                                                                                                                                              +4
                                                                                                                                              Это опасно — можно угрохать полжизни и так и не «поймать волну».
                                                                                                                                                0
                                                                                                                                                Пол жизни уже угрохано. Надо что то делать.
                                                                                                                                                п.с. 36 зим.
                                                                                                                                                  0
                                                                                                                                                  Я не хочу свою вторую половину так же бездарно «угрохать».
                                                                                                                                                    0
                                                                                                                                                    Я сделал несколько собственных интернет-проектов. Что-то приносит денег, что то нет, но тенденция положительная в смысле того что я скорее буду дальше делать проекты себе чем другим.
                                                                                                                                                    Как сказали выше:
                                                                                                                                                    Жаль, что я поздно спохватился
                                                                                                                                                +1
                                                                                                                                                целиком и полностью поддерживаю. Осознание того что вещи которые вчера давались за пол дня, с возрастом могут занимать неделю — мало кто осознает. И что он неконкурентоспособен будет даже если удвоит свою производительность и скил. Все хотят заниматься своим любимым делом а не менять парадигму способа получения дохода. На реальность им начхать.
                                                                                                                                                  +1
                                                                                                                                                  Осознание того что вещи которые вчера давались за пол дня, с возрастом могут занимать неделю — мало кто осознает.

                                                                                                                                                  Это какие например?
                                                                                                                                                    +1
                                                                                                                                                    Дай ка я перепишу этот модуль…
                                                                                                                                                      0
                                                                                                                                                      Это из-за прогрессирующего перфекционизма
                                                                                                                                                      0
                                                                                                                                                      Это образно. Ну если уж сильно чтото интересно то например деятельность связанная с изучением чего то нового… Да, как пример «перепишу модуль» или дали исходнинки — сказали разобраться и дописать. Люди после 30-40 начинаю приобретать косность мышления. Это биология.
                                                                                                                                                        +3
                                                                                                                                                        Это не биология. Это лень.
                                                                                                                                                          0
                                                                                                                                                          Я тоже так думал пока тридцатник не стукнул.
                                                                                                                                                            +3
                                                                                                                                                            Мне почти сорок. И я всё больше убеждаюсь, что мозг — это мышца. Её нужно тренировать. Иначе — да, коснеет.
                                                                                                                                                              0
                                                                                                                                                              У всего в этом мире есть свой ресурс.
                                                                                                                                                                +1
                                                                                                                                                                Мозг — гибкая структура. Он вытесняет неиспользуемые связи.
                                                                                                                                                                  0
                                                                                                                                                                  вернемся к этому разговору лет через 5-10)) Когда биология расставит все по своим местам))
                                                                                                                                                                    +4
                                                                                                                                                                    Давайте вернёмся сейчас, чтобы не ждать. Мне будет 40 в следующем месяце. Пока что не замечаю на себе никаких упомянутых признаков. По отдельным знакомым замечаю даже в 30. Причём, это очень бросается в глаза — биология тут непричём, человек натурально сам решает что ему сколько-то стукнуло и ставит на себе крест в том или ином виде. Чисто психологический аспект. Есть знакомый, которому за 50 — он бодрее и активнее многих 30-летних, по крайней мере со стороны.
                                                                                                                                                                    (да, естественно речь сейчас не идёт о реальных тяжелых заболеваниях — они могут возникнуть в любом возрасте)
                                                                                                                                                                      0
                                                                                                                                                                      Вы счас мне что показать то хотите?)) Что чем дальше тем моложе? Или ваши органы не подвергается износу? )) Я не врач, но меня терзают смутные сомнения))
                                                                                                                                                                        +2
                                                                                                                                                                        Я хочу сказать что психологическое состояние как правило оказывает несопоставимо большее влияние, чем износ органов. Поэтому серьезно беспокоиться стоит о нём, а вовсе не о возрасте.
                                                                                                                                                                          0
                                                                                                                                                                          Любопытно. Ссылки на результаты медицинских исследований в студию пожалуйста.
                                                                                                                                                                            +2
                                                                                                                                                                            Зачем? (тем более, что не представляю как подобные исследования могли бы быть проведены — объективные формальные критерии для психологического состояния людей будет весьма трудно сформулировать).
                                                                                                                                                                            Я вижу вокруг себя прямые и обратные примеры в достаточном количестве, чтобы иметь уверенность в том, что сказал. А остальные пусть сами решают как им жить.
                                                                                                                                                                              –3
                                                                                                                                                                              Ну у нас тут технический ресурс. Научные доказательства -приветствуются. А человек существо интересное — часто выдает желаемое за действительное. Потому и спрашиваю)
                                                                                                                                                                                +4
                                                                                                                                                                                К сожалению, о психологическом состоянии в технических терминах говорить не получится — в первую очередь потому, что одни и те же слова и фразы разные люди пропускают через свой собственный опыт и своё текущее состояние. Придавая им подчас противоположные значения. Если бы это было не так, все бы становились счастливыми после пары визитов к психотерапевту :)
                                                                                                                                                                          0
                                                                                                                                                                          Подвергаются. Но обычно до 50 лет, если человек ведёт здоровый образ жизни, все органы, включая мозг, у него в порядке.
                                                                                                                                                                            0
                                                                                                                                                                            Ну это обсуждение идеального коня в идеальном сферическом вакууме.))
                                                                                                                                                                  0
                                                                                                                                                                  Как и с мышцами, тут нужен комплексный подход. Скажем, правильное питание.
                                                                                                                                                                  К стати, в молодости и мышцы тоже растут быстрее.
                                                                                                                                                              +1
                                                                                                                                                              Ну не знаю. После 30 замечаю за собой в таких ситуациях наоборот повышение эффективности. Перестаю рыть вглубь и вширь больше чем необходимо для поставленной задачи. Сказано «переписать модуль (незнакомой системы)» — разбираюсь в его входах и выходах, интерфейсах, контрактах и т. п., не обращая внимания на всю систему. Иногда сильно заставлять себя приходится так работать, не поддаваясь искушению «тут не модуль переписывать надо, а всю систему», но когда получается, то эффективность заметно повышается.
                                                                                                                                                            0
                                                                                                                                                            Я бы не сказала, что с возрастом стало сложнее воспринимать новый материал. Если человек занимается прокачкой скиллов постоянно, то и мозг у него натренирован.
                                                                                                                                                              0
                                                                                                                                                              Это путь вникуда. Рано или поздно вы начнете тупить. Вы будете это понимать но ничего сделать не сможете
                                                                                                                                                                0
                                                                                                                                                                Тогда уже можно выходить на пенсию и выращивать цветочки на приусадебном участке. :)
                                                                                                                                                                  0
                                                                                                                                                                  Не понимаю откуда оптимизм и радужные надежды по поводу пенсии)) Вы реально думаете что вас ждет пенсия на которую сможете прожить?:)
                                                                                                                                                                    0
                                                                                                                                                                    Ну живёт же как-то остальной народ. Хорошо, будем не цветочки выращивать, а картошку и прочие овощи. :)