Использовать чужой код стыдно?

Ситу­а­ция: вам нуж­но решить зада­чу, с кото­рой вы ещё не стал­ки­ва­лись, напри­мер, выве­сти дан­ные в виде кра­си­во­го графика.

Мож­но с нуля погру­зить­ся в гра­фи­че­скую систе­му язы­ка и за 3–4 дня разо­брать­ся, как это сде­лать. Это полез­но, если даль­ше вам нуж­но будет посто­ян­но, каж­дый день рисо­вать новые гра­фи­ки. Вы осво­и­те все воз­мож­но­сти гра­фи­че­ской систе­мы и в даль­ней­шем буде­те рисо­вать гра­фи­ки лег­ко и быстро.

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

Реше­ние: за 10 минут най­ти в интер­не­те уже гото­вый код, кото­рый дела­ет что нуж­но, адап­ти­ро­вать под свой про­ект и спо­кой­но про­дол­жить рабо­ту. Код может быть неиде­аль­ным, не очень кра­си­во напи­сан, но:

✔️ вы потра­ти­ли в разы мень­ше времени;
✔️ про­ект дви­жет­ся даль­ше, а не сто­ит на месте;
✔️ вы при­мер­но поня­ли, как это сде­ла­но, и если что — смо­же­те повто­рить в дру­гом проекте.

Как сде­лать этот под­ход ещё луч­ше: выучить англий­ский. Боль­шин­ство спра­воч­ни­ков раз­ра­бот­чи­ка и фору­мов с гото­вы­ми реше­ни­я­ми — на англий­ском. Что­бы понять, что там напи­са­но, что дела­ет код и для каких ситу­а­ций он под­хо­дит, нуж­но знать англий­ский хотя бы на базо­вом уровне (а луч­ше — вла­деть тех­ни­че­ским английским).

Вот для срав­не­ния три самых круп­ных фору­ма, кото­рые спе­ци­а­ли­зи­ру­ют­ся на про­грам­ми­ро­ва­нии, на рус­ском и англий­ском языках.

Рус­ский:

Англий­ский:

Раз­ни­ца на поря­док, поэто­му если вы зна­е­те англий­ский, у вас нико­гда не будет про­блем с тем, что­бы быст­ро най­ти нуж­ный код, узнать, что не так с вашим или разо­брать­ся, как устро­е­на какая-то новая технология.

Если нужен англий­ский, забе­гай­те на Flow.

Что может пой­ти не так. Быва­ет, что раз­ра­бот­чик без раз­бо­ра копи­па­стит код с фору­мов. Он не раз­би­ра­ет­ся в том, что за код он исполь­зу­ет, а про­сто встав­ля­ет его в свой про­ект. Рабо­та­ет — и ладно.

А может ока­зать­ся, что, напри­мер, код пло­хо опти­ми­зи­ро­ван и будет со страш­ной силой тор­мо­зить всю про­грам­му; или в коде могут быть ошиб­ки, кото­рые про­явят­ся при даль­ней­шей экс­плу­а­та­ции; или на тесто­вых дан­ных всё рабо­та­ло, а в реаль­но­сти ломается.

Коро­че, всё хоро­шо в меру.