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

Я помню свои первые дни написания программного обеспечения. Тогда Google меня сильно раздражал. Я что-то искал, и это дало мне нерелевантные результаты. Это было потому, что я не искал правильные вещи. У меня не хватило терминологии, чтобы объяснить, что именно мне нужно. Неудивительно, что Google давал мне ненужные вещи. Теперь я могу поискать в Google «асинхронные обещания Python». Как видите, это совсем не похоже на обычный английский. Если бы я сказал это человеку, он, вероятно, обиделся бы. Что, без «пожалуйста»? :) Google точно знает, что я имею в виду, и дает мне соответствующие результаты. Это потому, что я говорю на языке программирования, а не только на синтаксисе. Я говорю на языке экосистемы, фреймворков и предметной области. Вот за что и платят техническим специалистам, а не за ввод кода.

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

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

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

а) Новички привыкли к идее колледжа, что ответ должен быть «где-то в книге» (то есть в исчерпывающей документации), и если они будут учиться достаточно долго, они получат пятерку +. Не тот случай. Если вы будете учиться достаточно долго, вас уволят только за то, что вы ничего не добились.

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

Все остальные должны копипастить. Много.

Спасибо за чтение. Если вам понравился этот, вы должны подписаться на меня для следующего или проверить мою последнюю историю: