0 / 0 / 0
Регистрация: 06.10.2017
Сообщений: 107

Об опыте программистов

05.03.2018, 11:02. Показов 828. Ответов 19
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Начал недавно во всем купаться в этом омуте знаний. Можете сказать - Плохо ли копировать чужой код. Бывает, что я никак не могу решить часть поставленной задачи, нахожу похожий код и переделываю под свой.
Заранее всем спасибо
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
05.03.2018, 11:02
Ответы с готовыми решениями:

1. В опыте Юнга
1. В опыте Юнга экран был удалён от отверстий на расстояние 5 м. Расстояние между отверстиями 0,5 мм, расстояние от третьего...

Как объяснить пробел в опыте работы?
Здравствуйте. Сейчас мне 25 лет. Я долгое время не работал - 2,5 года, после того как окончил ВУЗ. Вообще ничего не делал. Опыта...

Подскажите о опыте работы с USR IOT продукцей.
Приветствую форумчан! Попались в руки некоторые железяки от фирмы USR IOT Technology Limited 1. Serial UART TTL to Ethernet Module ...

19
Эксперт .NET
 Аватар для Rius
12875 / 7538 / 1652
Регистрация: 25.05.2015
Сообщений: 22,907
Записей в блоге: 14
05.03.2018, 11:06
Если разбираться, как он работает, то не плохо. Но необходимо обучаться, чтобы в будущем не только копировать, а уметь написать самостоятельно.
Также есть такой вопрос, как лицензирование. Если копируемый код под GPL или подобной лицензией, то и свой код вы обязаны открыть всем желающим.
0
 Аватар для COKPOWEHEU
4072 / 2670 / 432
Регистрация: 09.09.2017
Сообщений: 11,871
05.03.2018, 11:45
С другими лицензиями не лучше: зачастую этот код и смотреть-то запрещено, даже если откопаете.
Хотя есть и несколько максимально свободных лицензий вроде WTF license или Beer license (с названиями мог напутать), там хоть авторов можно вытереть и продавать их код как свой.
0
Диссидент
Эксперт C
 Аватар для Байт
27714 / 17332 / 3810
Регистрация: 24.12.2010
Сообщений: 38,978
05.03.2018, 16:58
Цитата Сообщение от showtime200 Посмотреть сообщение
Плохо ли копировать чужой код. Бывает, что я никак не могу решить часть поставленной задачи, нахожу похожий код и переделываю под свой.
Если вы при этом разобрались в скопипастенном коде, но это не просто хорошо, это - очень хорошо!
0
 Аватар для Fulcrum_013
2083 / 1574 / 169
Регистрация: 14.12.2014
Сообщений: 13,614
05.03.2018, 17:18
showtime200, Ну вообще чужой код - это народный справочник проверенных практикой способов решения разных проблем.По большому счету кладезь "костылей" без которых литературные теории так и остались бы теориями.
При этом вы кроме всего остального приобретаете еще и очень полезный навык - умение разбираться в чужом коде, который несомненно очень пригодится в реальной работе. А когда еще и научитесь из различных вариантов решений выбирать то которое вам наиболее подходит это будет вообще здорово.
Даже когда есть свое решение, разные неоднозначные в плане возможных вариантов архитектуры места обязательно сравниваю с решениями в фреймверках/библиотеках подобного назначения, даже если они на другом языке написаны.
1
 Аватар для Вадим Тукаев
309 / 290 / 116
Регистрация: 23.01.2018
Сообщений: 933
10.03.2018, 18:06
Решение любой задачи состоит из двух этапов: анализ (алгоритмизация) и кодирование. То есть сначала мы придумываем, как это решить, а потом реализуем решение. Например, на языке C. Так вот, тут главное получить навык анализа, алгоритмизации, придумывания решения. Этому Вас никто не научит, этому можно только научиться. А вот если затык случился на этапе кодирования, то тут сам бог велел смотреть чужие решения, пользоваться наработанным годами опытом и так далее. У меня бывает, что я могу решить какую-то сложную задачу, и не могу - простую. Я понимаю, как ее решить, а навыка кодирования именно таких задач именно на таком языке нет. Так что это нормально. Кто-то мне поможет, кому-то я.

Простой пример. Вот есть такая задача - http://www.codeabbey.com/index... r-function

Элементарщина! Само решение очень простое, и если кодировать на каком-нибудь современном языке, тривиальное.

Вот, например, решение на C#:

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
using System;
using System.Linq;
 
class Program
{
    public static void Main()
    {
        Console.WriteLine(String.Join(" ", Enumerable.Range(0, Int32.Parse(Console.ReadLine()))
            .Select(_ =>
            {
                string[] input = Console.ReadLine().Split();
                int x1 = Int32.Parse(input[0]);
                int y1 = Int32.Parse(input[1]);
                int x2 = Int32.Parse(input[2]);
                int y2 = Int32.Parse(input[3]);
                int z = x2 - x1;
                int a = (y2 - y1) / z;
                int b = (x2 * y1 - x1 * y2) / z;
                return $"({a} {b})";
            })));
    }
}
А вот на C у меня не получается. Потому что вот так красиво на C не получится, а приемов для достижения подобных результатов на C я не знаю. Так что это нормальная ситуация. Задачу я знаю как решить, я не знаю как закодировать.

Нет ничего плохого в том, чтобы учиться. Я постоянно учусь и каждый день узнаю что-то новое. Это путь длиною в жизнь.

Кстати, может быть кому-то будет интересно. Я предлагаю взять какие-нибудь задачи, например с сайта CodeAbbey или из какой-нибудь книги, и решать вместе. Области знаний у разных программистов очень разные, и запросто может оказаться так, что я знаю многое, чего не знаете Вы, а Вы знаете многое, чего не знаю я. Будем учиться друг у друга, искать ошибки, плюс это какой-никакой, а все же опыт командной работы. Предлагаю создать репозиторий на сайте RiouxSVN и вперед!
1
Супер-модератор
Эксперт функциональных языков программированияЭксперт Python
 Аватар для Catstail
38148 / 21084 / 4305
Регистрация: 12.02.2012
Сообщений: 34,659
Записей в блоге: 14
10.03.2018, 18:22
Изучить чужой, но хороший код - весьма полезное занятие. Только не надо выдавать его за свой. Нужно корректно ссылаться.
0
 Аватар для IamRain
4691 / 2699 / 734
Регистрация: 02.08.2011
Сообщений: 7,209
10.03.2018, 18:48
Вадим Тукаев,

Не по теме:


А почему вы предлагаете использовать именно Subversion-based хостинг для командной работы?
Есть же гитхаб, которым пользуются все. Просто я второй раз вижу, как вы предлагаете использовать RiouxSVN, и выглядит странновато, когда советуют не самый распространенный (который, по сути, наиболее признанный разработчиками) vcs.

0
10.03.2018, 19:12

Не по теме:

Я не настаиваю. Если у Вас есть конкретные предложения сотрудничества - с удовольствием их рассмотрю.

0
 Аватар для CoderHuligan
1743 / 1008 / 257
Регистрация: 30.06.2015
Сообщений: 5,107
Записей в блоге: 56
10.03.2018, 19:19
Цитата Сообщение от Вадим Тукаев Посмотреть сообщение
То есть сначала мы придумываем, как это решить, а потом реализуем решение.
Так не правильно!
Сначала мы должны чётко понять смысл задачи, то есть - что нам нужно в итоге получить! От этого уже отталкиваться. Потом уже нужно думать КАК достичь поставленной цели.
Цитата Сообщение от Вадим Тукаев Посмотреть сообщение
А вот на C у меня не получается
Потому что Си это низкоуровневый язык , но с потенциально неограниченными возможностями. Его функционал расширяется библиотеками. А библиотек для него - куча. На "голом" Си действительно мало что выйдет.
1
Диссидент
Эксперт C
 Аватар для Байт
27714 / 17332 / 3810
Регистрация: 24.12.2010
Сообщений: 38,978
10.03.2018, 21:28
Цитата Сообщение от CoderHuligan Посмотреть сообщение
Сначала мы должны чётко понять смысл задачи, то есть - что нам нужно в итоге получить!
Вам, наверное, здорово повезло по жизни. Вы всегда решали четко поставленные задачи. И я могу вам только завидовать. Моя судьба сложилась иначе. Мне приходилось (и приходится) решать задачи класса "Пойди туда - не знаю куда, принеси то - не знаю что". И я не ропщу. Ибо знаю - это моя ниша. Потому что задачи из более определенных классов, Увы! все давным-давно решены.

Добавлено через 14 минут
Цитата Сообщение от CoderHuligan Посмотреть сообщение
Потому что Си это низкоуровневый язык , но с потенциально неограниченными возможностями. Его функционал расширяется библиотеками. А библиотек для него - куча. На "голом" Си действительно мало что выйдет.
Все правильно. На "голом" Си работают только школьники. Но каждый мало-мальски понимающий программист (не школьник-студент, мечта которого - "сдать и забыть") осваивая любой язык, тут же понимает нехватку его изобразительных средств для своих задач. И начинает создавать свою библиотеку (или искать готовые). Вопрос лишь в том, насколько в данном языке удобно это делать. В Си это делать очень удобно. Впрочем, и все современные языки стараются предоставить для этого средства. И тут ни к кому претензий нет.
И есть 2 пути (не взаимоисключающих).
1. Пытаться построить нужную тебе библиотеку самому
2. Искать в огромном мире подходящие.
Лично я - сторонник первого подхода. Но в общем-то, это дело вкуса и темперамента
3
599 / 421 / 136
Регистрация: 02.10.2008
Сообщений: 1,796
Записей в блоге: 1
10.03.2018, 22:04
Цитата Сообщение от Байт Посмотреть сообщение
И есть 2 пути (не взаимоисключающих).
1. Пытаться построить нужную тебе библиотеку самому
2. Искать в огромном мире подходящие.
Лично я - сторонник первого подхода. Но в общем-то, это дело вкуса и темперамента
Тоже сторонник подхода 1.
Набьёшь своих либ с десяток и жизнь становится лучше, т.к. типовухи начинают оч. быстро писаться - есть возможность сконцентрироваться именно на самой задаче, а не на её "обслуге".
Изучать чужие - ну нах. Как то задался целью не мутить свои окошки и начать писать с использованием turboVision(т.к. своего или другого интерфейса под рукой тупо небыло) - в результате я потратил на его изучение и разборки с багами/своими_косяками ровно столько же времени, сколько ушло на написание своего уже графического(bgi) интерфейса "а-ля турбовижн", при этом свою либу даже через год с лёгкостью вспомнишь, а коснись мне сейчас на TV что-то писать - начнётся его изучение заново... IMXO конечно.
1
Диссидент
Эксперт C
 Аватар для Байт
27714 / 17332 / 3810
Регистрация: 24.12.2010
Сообщений: 38,978
10.03.2018, 22:16
Цитата Сообщение от drfaust Посмотреть сообщение
написание своего уже графического(bgi) интерфейса "а-ля турбовижн",
Да, было дело... Приятно вспомнить молодость... Вот как говорила моя любимая Марина Цветаева
Нет и нет уму
Моему покоя
И в моем дому
Завелось такое...
1
 Аватар для Fulcrum_013
2083 / 1574 / 169
Регистрация: 14.12.2014
Сообщений: 13,614
10.03.2018, 22:30
Цитата Сообщение от Байт Посмотреть сообщение
Да, было дело... Приятно вспомнить молодость...
Цитата Сообщение от drfaust Посмотреть сообщение
сколько ушло на написание своего уже графического(bgi) интерфейса "а-ля турбовижн"
Да было дело в молодости. У нас первый же курсовик потребовал подобного финта ушами. Первокурсники следующего года лисапетили уже фреймверки мимикрирующие под винду. Время такое было. 95-ый год. Полезное кстати занятие. Когда понимаешь как оконный фреймверк фунциклит под капотом с ним гораздо проще работать. Даже с современными. Хотя конечно бывают и в полный ступор вводят. Помню первая реакция на VCL была полным ступором - типа а как тут пункту меню код события назначить и где обработчик в котором его свичем диспетчерезировать.
0
 Аватар для CoderHuligan
1743 / 1008 / 257
Регистрация: 30.06.2015
Сообщений: 5,107
Записей в блоге: 56
11.03.2018, 11:19
Цитата Сообщение от Байт Посмотреть сообщение
Вам, наверное, здорово повезло по жизни. Вы всегда решали четко поставленные задачи. И я могу вам только завидовать.
Да какие там задачи.. Для себя только делаю, в основном. Но если делаю, то вкладываю душу в это дело. Всё должно быть без сучка, без задоринки..
Если поставить не чётко очерченную задачу, то получится не чётко очерченный продукт.. В реальности, зачастую, так оно и выходит. Это я понял очень хорошо. Нельзя приступать к кодированию того, чего сам осознать не можешь. Даже если кто-то в совершенстве знает ЯП, то НЕЛЬЗЯ, говорю по опыту, приступать, пока не ясна будет цель. Если приступить раньше, то обязательно потом нужно будет переделывать, иногда полностью меняя концепцию реализации.
Под словом "цель" я понимаю функциональность конечного продукта, которая требуется техническим заданием(ТЗ). Вот с ТЗ и следует начинать, пусть это ТЗ даже будет в нашей голове для простых задач. А для сложных, нужно на бумажке написать по пунктам, что требуется реализовать. Этих пунктов может быть не одна сотня, поэтому и нужна бумажка(txt), чтобы потом не вспоминать и не забыть важный пункт или подпункт ТЗ. Затем уже станет легче. Один программист месяц тратил на формулирование ТЗ и неделю на кодинг. Когда ясны цели кодинг превращается в технический момент. А те, кто приступают к кодингу с кода, а не с ТЗ, часто бросают на пол пути.
Цитата Сообщение от Байт Посмотреть сообщение
Лично я - сторонник первого подхода. Но в общем-то, это дело вкуса и темперамента
И я - тоже. Вот к примеру. Хочу иметь у себя динамические строки на Си. Хочу абстрагироваться от индексов, поинтеров и пр. при реализации механизмов обработки текстов. Я просмотрел код нескольких строковых свободных библиотек. Только некоторые работают с динамическими строками, например SDS - https://github.com/antirez/sds, Vstrhttp://www.and.org/vstr/, Better String Library - http://bstring.sourceforge.net и др. Среди них есть достойные вещи, например последняя очень достойная. Есть сложные, а есть и простые например SDS. И всё же меня не удовлетворяют некоторые моменты.. Не всё то золото, что блестит, и везде есть свои косяки. Писать об этом долго, лучше как нибудь в своём блоге.. Я уже реализовал автоматику выделения памяти. Работа движется не быстро но движется каждый день, и приносит мне море удовольствия.
0
 Аватар для Fulcrum_013
2083 / 1574 / 169
Регистрация: 14.12.2014
Сообщений: 13,614
11.03.2018, 11:44
Цитата Сообщение от CoderHuligan Посмотреть сообщение
А те, кто приступают к кодингу с кода, а не с ТЗ, часто бросают на пол пути.
ТЗ это по большому счету только бамашка по которой пишется толмуд под названием "Математическая постановка задачи". А вот по нему уже все ясно. Просто в не очень больших задачах (там где один человек может анализом и реализацией всего заниматься) проще этот талмуд сразу кодом. Все таки алгоритмический язык лучше для записи алгоритмов чем человеческие. А если еще и операторы перегружаемые так вообще. Другое дело что как этот код работает без этого талмуда не поймешь, хоть как он распрекрасно не написан.
0
 Аватар для CoderHuligan
1743 / 1008 / 257
Регистрация: 30.06.2015
Сообщений: 5,107
Записей в блоге: 56
11.03.2018, 12:59
Цитата Сообщение от Fulcrum_013 Посмотреть сообщение
Все таки алгоритмический язык лучше для записи алгоритмов чем человеческие.
Парадокс в том, что алгоритмические языки не приспособлены для визуализации достаточно сложных алгоритмов.
0
 Аватар для Fulcrum_013
2083 / 1574 / 169
Регистрация: 14.12.2014
Сообщений: 13,614
11.03.2018, 14:13
CoderHuligan, Во всяком случае гораздо лучше чем текстовое описание или блок схемы. Блок-схемы оказались больше удобны для выполнения человеком, чем написанию по ним кода. Во всяком случае на высокоуровневых языках. Дейкстра вообще категорически против блок-схем был. И как показала практика даже компилятор с доработанных блок-схемы для программирования космических кораблей так себе оказался. А врачей ими до сих пор во всю программируют. Там ДРАКОН во всю прижился. Все плакаты-схемы информационные в больницах типа что делать в том или том случае -это программы на ДРАКОНЕ.

Добавлено через 14 минут
CoderHuligan, А не поймешь без толмуда по другой причине. Там часто вывод формул и мотивации допустимости тех или иных аппроксимаций бывают. И вот без этого фиг поймешь как считают ту или иную величину.
0
 Аватар для CoderHuligan
1743 / 1008 / 257
Регистрация: 30.06.2015
Сообщений: 5,107
Записей в блоге: 56
11.03.2018, 14:44
Цитата Сообщение от Fulcrum_013 Посмотреть сообщение
Во всяком случае гораздо лучше чем текстовое описание или блок схемы.
Согласен. Однако помимо блок-схем существует язык UML, а особенно его производные, которые уже приемлемо описывают достаточно сложные сущности.
Цитата Сообщение от Fulcrum_013 Посмотреть сообщение
А не поймешь без толмуда по другой причине.
Ну а я об чём? В любом случае требуется талмуд. Словесное описание + диаграмма описания АОУ(Автоматизированного Обьекта Упрвления) + диаграмма связей между состояниями обьекта + реальный код. Четыре документа должны присутствовать в виде общей документации.
0
 Аватар для Fulcrum_013
2083 / 1574 / 169
Регистрация: 14.12.2014
Сообщений: 13,614
11.03.2018, 15:01
CoderHuligan, Математическая постановка + код. Остальное обычно лишняя бумага. Во всяком случае когда код уже есть. Когда его еще нет, для большого проекта еще полезная штуки диаграмма HIPO чтобы код не дублировать, и сетевой график, чтобы отсутствие какого то одного модуля не тормозило разработку других.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
11.03.2018, 15:01
Помогаю со студенческими работами здесь

Определить вероятность появления события при одном опыте.
Вероятность того, что в результате 4 независимых опытов событие произойдет хотя бы один раз, равна 0,5904. Определить вероятность появления...

При какой температуре гелий в опыте Джоуля-Томпсона начнёт охлаждаться
При какой температуре гелий в опыте Джоуля-Томпсона начнёт охлаждаться, если известно,что критическая температура гелия 5,1 К? Считать,что...

Определить расстояние между третьей и шестой соседними интерференционными полосами в опыте Юнга
Определить расстояние между третьей и шестой соседними интерференционными полосами (минимумами) в опыте Юнга, если узкие щели, расстояние...

Ищу программистов Cocos2d-x для разработки игр, Ищу программистов C++
Привет всем. Ищу разработчиков С++ для мобильной игры (iOS, Android и WP в перспективе). Используемый движок - Cocos2d-x. Сейчас в...

Подбрасывают три монеты. Что в этом опыте является случайной величиной? Найти её распределения
Подбрасывают три монеты. Что в этом опыте является случайной величиной? Найти её распределения


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Опции темы

Новые блоги и статьи
Мысли в слух
kumehtar 07.11.2025
Заметил среди людей, что по-настоящему верная дружба бывает между теми, с кем нечего делить.
Новая зверюга
volvo 07.11.2025
Подарок на Хеллоуин, и теперь у нас кроме Tuxedo Cat есть еще и щенок далматинца: Хочу еще Симбу взять, очень нравится. . .
Инференс ML моделей в Java: TensorFlow, DL4J и DJL
Javaican 05.11.2025
Python захватил мир машинного обучения - это факт. Но когда дело доходит до продакшена, ситуация не так однозначна. Помню проект в крупном банке три года назад: команда data science натренировала. . .
Mapped types (отображённые типы) в TypeScript
Reangularity 03.11.2025
Mapped types работают как конвейер - берут существующую структуру и производят новую по заданным правилам. Меняют модификаторы свойств, трансформируют значения, фильтруют ключи. Один раз описал. . .
Адаптивная случайность в Unity: динамические вероятности для улучшения игрового дизайна
GameUnited 02.11.2025
Мой знакомый геймдизайнер потерял двадцать процентов активной аудитории за неделю. А виновником оказался обычный генератор псевдослучайных чисел. Казалось бы - добавил в карточную игру случайное. . .
Протоколы в Python
py-thonny 31.10.2025
Традиционная утиная типизация работает просто: попробовал вызвать метод, получилось - отлично, не получилось - упал с ошибкой в рантайме. Протоколы добавляют сюда проверку на этапе статического. . .
C++26: Read-copy-update (RCU)
bytestream 30.10.2025
Прошло почти двадцать лет с тех пор, как производители процессоров отказались от гонки мегагерц и перешли на многоядерность. И знаете что? Мы до сих пор спотыкаемся о те же грабли. Каждый раз, когда. . .
Изображения webp на старых x32 ОС Windows XP и Windows 7
Argus19 30.10.2025
Изображения webp на старых x32 ОС Windows XP и Windows 7 Чтобы решить задачу, использовал интернет: поисковики Google и Yandex, а также подсказки Deep Seek. Как оказалось, чтобы создать. . .
Passkey в ASP.NET Core identity
stackOverflow 29.10.2025
Пароли мертвы. Нет, серьезно - я повторяю это уже лет пять, но теперь впервые за это время чувствую, что это не просто красивые слова. В . NET 10 команда Microsoft внедрила поддержку Passkey прямо в. . .
Последние результаты исследования от команды MCM (октябрь 2025 г.)
Programma_Boinc 29.10.2025
Последние результаты исследования от команды MCM (октябрь 2025 г. ) Поскольку мы продолжаем изучать гены, которые играют ведущую роль в развитии рака, в рамках проекта "Картирование раковых. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru