Я только начинаю использовать Github, чтобы продемонстрировать свой код потенциальным работодателям. Основное использование моего Github — это просто показать работодателям мои способности кодирования.
Что правильно делать, когда я копирую и вставляю фрагмент кода с такого сайта, как stackoverflow? Должен ли я добавить какой-то комментарий?
Вот пример
Я ищу быстрый способ вычислить потолок целочисленного деления, скопировать и вставить ответ в свой код и загрузить его на Github. Должно ли это выглядеть примерно так?
q = (x + y - 1) / y;//taken from https://stackoverflow.com/questions/2745074/fast-ceiling-of-an-integer-division-in-c-c
Или мне нужна функция, которая сравнивает поплавки с двойными
/*function found at https://stackoverflow.com/questions/17333/most-effective-way-for-float-and-double-comparison*/
bool AreSame(double a, double b)
{
return fabs(a - b) < EPSILON;
}
На работе я знаю, что другие люди копируют из Stack Overflow, чтобы решить проблему, и я не считаю это аморальным. Но я чувствую себя несправедливым, если скопирую его, выложу на свой Github и использую для получения работы.
Соображения:
Приведенные выше примеры довольно малы, но я видел более крупные сегменты кода, предлагаемые на других сайтах . Я имею в виду, что я не собираюсь копировать полную программу и делать ее похожей на мою собственную, но где проходит грань между «вдохновленным чужим кодом» и копированием? Я не рассматриваю изменение переменных, чтобы действительно сделать его лучше.
Поэтому я задаю 2 вопроса
С моей точки зрения, копирование кода — это совершенно правильное действие, пока оно решает проблему, т. е. если вы меняете проблему, чтобы код подходил, это не очень хороший подход. Найти решение, которое работает за 5 минут, эффективнее, чем написать решение, которое работает за 5 часов. Пока вы понимаете, как работает код (как вы упоминаете).
Ссылаясь на источник, откуда вы это скопировали, это правильно. Если вы использовали источник, но изменили код, вам все равно следует указать, что вы использовали его как источник вдохновения.
Теперь о формате цитаты. На самом деле, это не имеет значения, если вы единообразны во всем своем коде. Работодатель захочет увидеть, что вы дотошны, этичны, последовательны и можете следовать стандарту кодирования. (Убедитесь, что скопированный вами код также соответствует вашему собственному стандарту кодирования: отступы, регистр, позиции фигурных скобок, пробелы и т. д.)
Некоторое время назад я ответил на мета-вопрос, задав аналогичный вопрос.
Stack Overflow представляет знания. Как книга. Если вы получаете знания из книги, то использование этих знаний не нуждается в цитировании. Вы же не цитируете свой учебник по английскому языку для начальной школы ни одним словом, которое вы печатаете, верно?
Теперь, если вы цитируете дословно, вам нужны цитаты. Но только на том, что действительно имеет творческую ценность. Если я цитирую Шекспира, то лучше делать это правильно. Но кто-то сказал "доброе утро" первым. И я точно не буду упоминать его имя каждое утро по 10-20 раз.
Ваши примеры - это вещи, которые на самом деле просто общеизвестны. Сравнение значений с плавающей запятой? Вычислять что-то из двух целых чисел? Это не то, что стоит приписывать. Все так делают. Очевидно, что программирование просто так никому не имплантировали. Мы все узнали это где-то и от кого-то.
Если вы на самом деле узнали что-то из Stack Overflow (а я понимаю, что не все узнают), вам не нужно копировать это дословно. Вы адаптируете его к своим потребностям, даже если вам нужно просто другое имя переменной или фигурные скобки. И если вы адаптируете то, чему научились, вам не нужно приписывать это кому-то. Это ваш продукт, даже если вам помогали в его создании. Нам всем помогают создавать вещи. Никто не может создавать вещи из воздуха.
Частью профессионального разработчика программного обеспечения является владение лицензиями на программное обеспечение и повторным использованием кода. Если вы соблюдаете эти правила, вы можете легко заявить менеджеру по найму, что вы следовали стандартной рабочей процедуре.
У каждого веб-сайта будет своя лицензия, но эта рекомендация предоставляется при извлечении кода из Stack Overflow (или любого сайта Stack Exchange):
Но чтобы подготовить вашу работу к будущему, мы рекомендуем вам сделать одну из этих двух вещей или обе:
A) Добавьте комментарий к своему коду, который ссылается на сообщение, где вы его нашли, или
B) Соблюдайте стандарт MIT, как он обычно используется, включая полный текст лицензии в исходный код.
Вы уже делаете вариант А, верно? Это просто стандартная рабочая процедура, когда дело доходит до поиска кода в Интернете — комментарий с гиперссылкой гарантирует, что вы сможете выполнить отладку в будущем. Но в соответствии с новыми условиями комментарий с гиперссылкой — это больше, чем просто прагматично, это совет по шляпе, и это око за око, которое гарантирует, что вы выполнили условия автора.
В целом, использование кода из Интернета — это нормально, но я хотел бы предостеречь вас от переусердствования. Если каждая функция в вашем репозитории содержит ссылку на Stack Overflow, я бы поставил под сомнение вашу способность решать более конкретные задачи.
Сабина
Брандин
Аяся
Дэн
Дойл Льюис
* Search through an array of objects to see if a given index matches a given value * http://stackoverflow.com/questions/4742903/php-find-entry-by-object-property-from-a-array-of-objects
которым я сейчас работаю. Я выбрал этот код, мы знаем, где искать.Брандин
Брандин
Дойл Льюис