Сейчас читаю журнал Хакер и наткнулся на комментарий компании Mirantis по поводу программистов, которые предпочитают писать в блокноте.
Если кандидат на полном серьезе рассказывает, что ему «удобнее в блокноте», а IDE — это не для тру-программеров, это плохой симптом. Такой ретроград может стать обузой для развивающейся компании и потянет всю команду за собой назад. Часто люди не понимают, что им платят по часам работы, а использование дополнительных инструментов позволило бы существенно повысить их продуктивность и заодно снизить количество ошибок. В конечном итоге и человеку разгрузка, и компании плюс.
Вот я не понял, каким образом программист, который будет писать код в блокноте, будет обузой и тянуть команду назад? Работая в Klick Health я писал код в notepad++ и у меня даже не стоял Visual Studio, но я писал быстрее и больше любого другого программиста в моей команде. Если не считать автокомплитера, то в VS больше ничего особого и нет, что позволяет писать код быстрее меня в блокноте.
Из моей практики код пишут быстрее те, кто знает, а где они пишут его не имеет значения. Те, кто не знает даже какой метод нужно искать, то даже автозавершение не поможет написать метод, потому что такие программисты тратят время на поиски больше, чем на реальный код.
Отсутствие дополнительных прибамбасов Visual Studio заставили меня именно запоминать методы, названия классов, пространства имен. Мне не на кого надеятся и я вынужден помнить детали.
Я могу писать код как в VS, так и без него. Зато сколько раз я видел случаи, когда говоришь человеку - создай индекс на сервере, а он сидит и хлопает глазами, потому что не помнит синтаксиса. А зачем ему помнить, ведь он всегда может кликнуть мышкой в SQL Server Management Studio и может даже посоревноваться со мной в скорости, кто быстрее - он кликает по окнам или я пишу код. Но стоит человеку столкнуться с проблемой, отсутствием удобных утилит и все - ступор.
На рабочих серверах не ставят Visual Studio, там его просто нет. Недавно я помогал компании, которой нужно было выловить баг, который проявляется только на рабочих серверах. Я говорю - создай файл, давай напишем в нем код и напрямую загрузим с сервера. Через 15 минут диктовки .NET кода я понял, что проще получить удаленный доступ к серверу через TeamViewer и сделать все самому.
Надо ли пользоваться современными фишками - да. Я умею и пользуюсь. Сейчас на работе пользуюсь Visual Studio 2015. Будет ли тянуть вниз всю команду тот, кто любит писать код в текстовом редакторе - из моего опыта как раз наоборот.
Хотя из любого правила есть и исключения. Но если программист и будет тянуть всю команду вниз, то только не из-за того, что он любит или умеет писать код в блокноте.
Понравилось? Кликни Лайк, чтобы я знал, какой контент более интересен читателям. Заметку пока еще никто не лайкал и ты можешь быть первым
А может быть работодатель вообще думает, что раз человек пишет в блокноте, а не в VS, то он лишен средств отладки?
Может быть если человек привык писать в блокноте и отлаживаться print-ами, то компания знает, что этот способ отладки явно дольше трасировки в VS?
А как компилировать из блокнота? Переключаться на консоль, "вверх", "enter"? Это явно дольше, чем F7.
VS когда выполняет код пишет в ms сколько заняла команда и можно даже "случайно" заметить, что "эта функция" не должна выполняться так долго.
А всякие функции промежуточного сохранения файлов?
Я и сам ловлю себя на мысли, что было бы здорово помнить весь синтаксис языка и все функции стандартные, но как сказал один преподаватель в универе "Голова - это не помойка". Зачем мучить себя? Всё равно всё не запомнить.
Каким образом? Так ведь у IDE есть средства отладки для логических ошибок, ошибки компиляции и ошибки синтаксиса видны сразу, IntelliSens позволяет сразу выбрать нужный объект или метод, не зная по памяти точное их написание, проводник объектов быстро позволяет перейти к нужному методу в нужном файле, дизайнеры и прочие полезные опции. Да что это писать ты и сам все понимаешь. А в блокноте, можно ошибиться в названии метода и очень долго искать где ошибка. Сверстать форму в дизайнере в разы быстрее, чем набивать код руками, да еще в блокноте. Вот тебе удобство и скорость разработки! А если надо заменить во всем проекте фрагмент "*.asp" на ".aspx", а в проекте пару десятков файлов, то разве в блокноте по очереди это сделать быстрее, особенно, если заменяемый фрагмент не во всех файлах и ты не знаешь в каких точно. Доказывать обратное даже не надо - это чисто мазохизм! В компании Mirantis правильно думают! Единственное разумное объяснение использование блокнота - это экономия денег на IDE. Но раз до этого доходит, то это компания с низкой капитализацией и от нее ничего хорошего ждать не приходится. Тем кому нравится работать без IDE, пусть работают, если это не приводит в регрессу в работе, но стандартом должна быть именно IDE. Обязательным требованием, при приеме на работу, умение работать без IDE быть не должно.
В некоторых случаях блокнот действительно может оказаться эффективнее. Например, когда надо быстро что-то подправить и ты знаешь где и что и речь идет о небольшом фрагменте, по аналогии с файлами конфигурации. Ведь, при этом, не надо ждать загрузки "тяжёлой" IDE, а блокнот открывается разы быстрее, что особенно заметно на слегка устаревших компьютерах. А вот на совсем старых, в VS 2015 реально что-то сделать совсем трудно. Но это опять вопросы денег. Успешные компании на железе не должны экономить.
подсветка синтаксиса позволяет быстрее находить ошибки, не?
не знаю как в VS, но в Vim косяк сразу видно по подсветке
если вы писали быстрее остальных, то это не значит, что вы не могли писать быстрее, чем писали
Для целей быстро поправить, можно пользоваться emacs, vim, vscode. У emacs и vim есть даже возможность редактировать в консоли. Если проавильно настроить, то можно использовать их как ide. Конечно это не будет полноценным ide, но тот же autocomplete и подсветку ошибок настроить можно. Мне, например, понравилось работать в vscode на линуксе. Раньше немного emacs-ом пользовался для написания скриптов. Я думаю, что когда-то кто-то говорит, что работает в блокноте, то подразумевают какой-нибудь продвинутый блокнот, а не notepad из windows. В таких текстовых редакторах работать реально можно, иногда не хуже чем в ide.
Такую херню могли сказать только те, кто не умеет писать в блокноте. Если вы не умеете правильно писать, то даже проверка орфографии не поможет. Точно так же и с IDE, она поможет только неучам. А реальным программистам, которые умеют писать код, много помощи все эти приблуды не дают.
Чаще всего, (почти) весь интерпрайзный код строится на сшивании франкинштейнов из разнородных кусков готового кода и фреймворков с минимальным слоем бизнес логики на всём этом добре — в таком случае самое важное это автокомплит и проверка кода (с тайпчекингом, выводом типов и прочим статическим анализом), так что для таких проектов это очень даже верно (если ты конечно не киборг хранящий дерево всех классов спринга или clr в голове).
Другое дело, что когда нужно набросать какой нибудь алгоритм, запускать жирнющую идею или студию и терпеть лаги на топовой железке явно не хочется.
В стандартном Блокноте Windows есть баг с "мягким" переносами длинных строк. Может, в Windows 10 его исправили. Тут можно лишь согласиться с предыдующими комментариями, что сам по себе Блокнот для написания кода не годится.
Что касается IDE vs ПродвинутыйБлокнот, то тут сложно сказать, что лучше. Блокнот заставляет помнить синтаксис, имена функций и т.д. В некоторых случаях Блокнот лучше любой IDE когда нужно что-то по-быстрому глянуть (например, grep'нуть файлы на предмет наличия какой-нибудь фразы, а затем открыть файл и исправить - очень просто делается - имя найденного файла нужно лишь в командной строке передать в качестве аргумента Блокноту). И вообще, в скорости Блокнот выигрывает (здесь идет речь о настоящих настольных программах, а не Chromium-based приложениях).
По-моему, кодить в Блокноте означает эффективно использовать горячие клавиши, уметь отлаживать код (я на 99% уверен, что любой мэйнстримовый текстовый редактор Linux может работать в связке с GDB), умеет использовать средства сборки (в том числе запускать тесты вручную из командной строки) и т.д. Такой кандидат выгодно отличается от остальных. В конце концов, пересесть с того же Notepad++ на Visual Studio очень легко. А обратно - вряд ли.
Я использую IDE не столько в качестве редактора (больше всего мне нравитcя не автодополнение, а автоматическое форматирование текста, в том числе SQL запросов "лесенкой"), а как своебразное хранилище. Т.е. у меня в IDE (IntelliJ IDEA, умолчим о вопросе лицензии, но я не особо жадный - сижу на 13-версии, а нового мне не надо, дома вообще Community Edition) загружены исходные коды всех проектов заказчика, к которым есть доступ у нашей команды. Да, пришлось выделить IDE 10ГБ оперативной памяти. И все равно она глючит временами, так что часто я печатаю быстрее, чем работает автодополнение. Но использование IDE оправданно в данном случае. Да, я теряю немного времени на мелких глюках, но экономлю еще больше. Например, если нужно разобраться в каком-нибудь модуле, я быстро нахожу его, даже скачивать ничего не надо (время от времени запускаю скрипт для синхронизации локальной копии всех проектов с сервером). То же относится к поиску: в IntelliJ отличный структурированный поиск, т.е. поиск с учетом контекста. Ну и еще у меня все доступные (может и не все, но 90%) базы данных. Опять-таки, надо что-нибудь глянуть - даже запускать ничего не приходится. Ну и по-мелочи: подсветка для Markdown, горячие клавиши (да, это отдельная тема, я например, назначил на F1 функцию "Copy path" вместо вызова справки - кто вообще вызывает справку, т.е. именно оглавнение справки, с помощью горячей клавиши?).
Но все равно компилирую я из командной строки: в реальных проектах часто так много всего задействовано (версии библиотек, всякие транзитивные зависимости, Docker'ы и т.п.), что никакая IDE не уловит все нюансы. Так что проще в командой строке запустить тесты (а зачастую и перенаправить вывод в файл, чтобы потом смотреть его less'ом или grep'ом), чем возиться с конфигурациями запуска и т.д.
А насчет работы с БД - тут, конечно, IDE помогает. Но для важных задач использую "официальный" клиент. Как-то раз я сделал дамп схемы БД PostgreSQL в IntelliJ - сказала, что поля имееют тип VARCHAR, а на самом деле они были TEXT.
A вообще, Блоктнот - это не хардкор. В мире Unix хардкор - это Vi/Emacs. А в мире Windows (а стало быть, и DOS) - это copy con ...
:)
Если честно бред в журнале хакер написано, вот мне например PHP код удобно писать в Sublime Text, а вот если я работаю с WPF или Windows Form, то тут без в VS не могу обойтись, если честно сказать даже не знаю как создавать такие приложения без VS, а если мне надо консольное приложение написать на C# или С++ использую Notepad++
Я тоже помнил всё на память когда писал на Turbo Pascal, но не вижу чем гордится, возможностей там в сто раз меньше, запомнить было проще и сказать что было приятно и удобно так работать не могу, с нормальной IDE которая подствечивает код, показывает предупреждения, подсказки, опечатки ещё до компиляции сильно упрощает жизнь и увеличивают скорость разработки. Писать код на сервере не безопастно вдруг сломаешь чего и не удобно в тупящем RemoteDesktop или TeamViewer, на крайний случай можно Remote Debugging сделать.
Ого сколько кАмЕнтов набежало))
По идее надо писать в блокноте, так себя держишь в тонусе. Но IDE намного, намного упрощают работу.
Сомнительное утверждение, конечно, что такой человек "будет тянуть компанию вниз". Если работодатель скажет пользоваться теми или иными средствами, не каждый программист станет ему перечить. Вот и всё тут. А если главнюк самодур такой, что не позволяет пользоваться программисту привычной и удобной средой разработки, заставляет тратить кучу времени на привыкание, то не в программисте дело. Отсюда и берутся такие сомнительные утверждения.
Хотите найти еще что-то интересное почитать? Можно попробовать отфильтровать заметки на блоге по категориям.