Постоянно ищу примеры кода признак плохой разработчик?
Я в CS студент с многолетним опытом работы в C и C++, и за последние несколько лет я'вэ работает с Java/целью С делают разработку приложений и теперь я перешел на веб-разработке, и я в основном сосредоточены на Ruby на Rails и я пришел к осознанию того, что (как с App развития , на самом деле) я ссылку другой код слишком много. Я постоянно функциональности Google для много вещей, я думаю, я должен быть в состоянии сделать с нуля, и это's действительно трещины меня доверия немного.
Базовые основы не проблема, я ненавижу использовать это в качестве примера, но я могу запустить через javabat в Java/Python на спринт - явно не достижение, но и то, что я хочу сказать, что у меня есть крепкий фундамент для основы я думаю?
Я знаю, что я должен использовать, как правило, постоянно, но синтаксис ссылки. Хотел бы некоторые советы и помощь, так как он был держит меня довольно добротно с точки зрения Ищу работу в этой области, хотя я'м метраж моей степени. Основная причина, почему я прошу, это не совсем про работу, но больше того, что я Дон'т хочу быть единственным парнем на хакатоне не холодную, без перерыва код и сидел там с 20 Гугл/гитхаб открытых вкладок, и я воздерживался от участия в каких-либо из-за небольшой недостаток доверия...
Это человек плохой разработчик, постоянно ищу примеры кода для средних и сложных задач?
Копипаст вслепую: плохо.
Искать документацию, примеры кода для лучшего понимания: хорошее.
Я'лучше работать с кем-то, кто смотрит все время и делает, что все работает как задумано, чем кто-то более уверенный в себе, кто думает, что знает все, но не'т. Но самое страшное-это тот, кто не'т беспокоить понимание того, как работают вещи, и просто некритически копирует код из интернета (и тогда, когда сообщения об ошибках начали валиться вниз не в состоянии исправить что-либо правильно).
Если вы код вашего решения в удобный способ и на самом деле понять, что вы копировать/вставить/изменить, то нет никаких проблем.
Я умру внутри каждый раз, когда я задаю вопросы старшим разработчиком о том, почему он сделал то, что и ответ "Я не'т знаю, я копировать вставить код и он работал при этом учитывая время".
Как и с умением [программа/из документации API](https://softwareengineering.stackexchange.com/a/129821/31260 на "обсуждали в другой вопрос, что"), looking для код examples это признак не плохой программист, а тот, кому хватает беглость...
...и практики является для меня единственным надежным способом приобретения беглости.
Там'ы теория обучения называется [Колб цикл][1] (После человека, который это описывал). Записи в этом цикле являются:
Полное раскрытие - я старый человек, который был обучен в различных интернет доступных в эпоху работы. Я'вэ смотрел на молодого разработчики постепенно снижаться, в основном из-за них не сохраняя информацию или понимание решение они взяли из интернета. Я'вэ наблюдал, что уровень компетенции человека уже после 1-2 лет опыта, 20 лет назад, сейчас уровень компетентности кто-то после 5-7 лет работы. (Да, это личное наблюдение, но я'ве сделано большое найму, у меня нет статистических данных по этому вопросу и да, я иногда старый и капризный, отнесусь к этому заявлению с недоверием. И держись подальше от моего двора.) Глядя все это неэффективно с точки зрения времени. Это также является признаком того, что кто-то, кто не'т иметь много знаний. Люди с глубине знаний можно писать код быстрее, чем люди, которые Дон'т знаю, как решить проблему, не глядя вещи. Поэтому стоит научиться обрабатывать больше вещей без необходимости искать вещи постоянно. Теперь я'м не говорю, что вы никогда не должны смотреть на вещи, я'м говорю, что ты должна научиться сохранить знания и только нужно искать вещи, которые вы используете редко или когда вы обнаружите по-настоящему новый вопрос или языка или парадигмы. И я'м не говорю, что вы должны'т иметь значение в ногу с новыми решениями и инструментами и языками. Моя реальная проблема с застройщиками, которые смотрят слишком часто то, что слишком многие из них (не обязательно вы) не развить аналитические навыки, чтобы понять их проблемы и решения, которые необходимы. Почитайте, сколько вопросов там, где человек вкладывает в сообщение об ошибке, что он или она явно не't понять, но которые должны быть вполне понятны для тех, кто работает на профессиональном уровне. Или те, где человек говорит: "Это's не работает, почему?quot; с ссылка на сообщение об ошибке или как это't работа, и код синтаксически корректен. Или те, кто дал кусок кода, который должен работать, но в спешке, чтобы ответить на первый человек сделал очевидную синтаксическую ошибку (как говорят хватает на ключевое слово в SQL присоединяйтесь, чтобы использовать пример, который я увидел только сегодня) и плакат возвращается с я получаю ошибку на строке 12. Почему да, если вы посмотрите на линии 12 очевидно, что ошибка, если у вас есть базовые компетенции. Так что если вы ищете материал, который является частью базовой функциональности языка (- ов) (кстати это должно включать SQL при обращении к базам данных), которые вы использовали в течение более чем шести месяцев, я подозреваю, вы ищете слишком много. Если вы смотрите вверх, дополнительные функции, особенно те, которые вы могли бы использовать редко, то вы делаете хорошо. Но как вы узнаете, чтобы сохранить больше информации? Сначала понять, почему код сломал. Даже если кто-то дает вам рабочее решение, если вы Don'т вижу, почему это сработало и ваш не, то спросите. Если вы Don'т понять сообщение об ошибке, а затем спросить, что он имел в виду, а затем попытаться решить его самостоятельно. И никогда не вырезать и вставить решение вы не'т понять. На самом деле, Дон'т вырезать и вставить на все. Если вы хотите сохранить информацию, вы должны сделать, набрав его. На самом деле физически написания кода поможет вам узнать это. Это известная методика обучения. Практика обобщая свое понимание кода. Я'вэ видел, как люди задают подобные вопросы снова и снова, потому что они не'т понять, что решение они получили месяц назад с проблемой АВС такое же решение новой проблемы ПОБ. Поэтому, когда вы'вэ-то исследовал, потребуется некоторое время, чтобы думать о том, какие типы проблем было бы хорошо для решения и пишите себе записки о том, что. Затем, когда вам нужно решить проблему, сначала проверьте свои собственные заметки, чтобы увидеть, вы уже отмечали возможную технику. Если оценить различные способы решения проблемы, делать заметки на тип проблемы, возможные решения, которые вы посмотрели и плюсы и минусы каждого из них. Опять заметок помогает укрепить знания в ваш мозг, у вас уже есть свой собственный мыслительный процесс с точки зрения плюсов и минусов получилось и Дон'т придется сделать это снова (или по крайней мере не столько глубина, вы все еще можете искать более возможными методами) на следующий подобная проблема. И когда мы решили, что учиться дальше, пойти на некоторую глубину в один из ваших основных технологий перед прыжком в обучение первые 30 дней стоит еще одна технология (это предполагает, что вы имеете достаточно глубокие знания, чтобы выполнять свою работу, если вам нужно использовать 6 технологий - получить основы на все шесть, прежде чем идти на глубину). Затем вернитесь назад и вперед, изучая новый материал на базовом уровне, узнать что-то более подробно, то обучение больше новых технологий на базовом уровне. Если вы делаете это с течением времени, вы увидите, что ваш базовый уровень, что вы хотите от новой технологии гораздо глубже, потому что вы понять более сложные вопросы, чтобы спросить об этом. Другой способ научиться сохранять знания, чтобы научить его кому-то еще. Ответить на эти вопросы, предложить темы тренинга для вашей команды, выступают с докладами на ваши локальные группы пользователей, записи в блогах и помогают поддерживать Вики информации в вашей компании, чтобы помочь другим разработчикам.
Ищу примеры кода-это не признак плохой разработчик. Редко нужно так мало вещей, чтобы помнить все интерфейсы, они нужны точно, так это's естественную искать там и примеры кода, как правило, ссылки, которые легче всего использовать.
То, что вы должны'т сделать, это копировать и усилитель;вставить примеры, потому что они там работают, так они должны работать здесь, не понимая, как они работают. Что обычно приводит к много бесполезных битов, которые есть скопирован вместе кстати с результатом быть трудно поддерживать, потому что если вы не'т знаю, как это работает, когда вы это писали, вы выиграли'т знаю, шесть месяцев спустя, и выиграл'т быть в состоянии исправить это.
Но вы должны понимать, что код, который вы копируете из примера, это'ы действительный способ сделать работу быстрее, и это обычно хорошо.
Эти ответы довольно хорошие. Но вы страдаете от гораздо более серьезной проблемы, чем копировать/вставить или отсутствие "и мастерство.&и"
Сравнение является смертельным. Чем больше вы сравниваете себя с другими людьми, и пусть их талант влияет на то, как вы рассматриваете себя, тем больше ты зачахнешь и умрешь внутри. Вы Don'т пойти на хакатоны из-за fear, что люди будут видеть, как бездарный ты. И единственная причина, вы думаете, что вы'вновь бесталанный потому, что вы сравниваете себя с хакеров, которые могут строчить больше кода с нуля, быстрее.
Даже если ты такой "строк кода в минуту" и были хорошие метрики для измерения мастерства, вы должны принять тот факт, что _there всегда будет лучше, чем разработчики там не выходишь. И это'ы ok, чтобы показать другим, что вам не хватает в мастерстве.
Вам не нужно быть так хорошо, как или лучше, чем кто-либо другой. Вы должны довольствоваться тем, что вам всегда не хватает в некотором роде, и что вы'вновь учиться постоянно. Если вы можете'т быть счастливым с низшей разработчик, вы'll никогда не быть счастливым.
Еще одна вещь: страх быть отвергнутым людьми, которые вы считаете, что "улучшенный" это именно то, что мешает вам бок о бок с лучшими разработчиками и учиться у них. Так что ваш страх мешает вам от выращивания, которая поддерживает свой страх. Что мешает вам расти. Увидеть цикл? Вам нужно где-то разорвать порочный круг.
Я думаю, что много зависит от того, как работает твой мозг. Моя память воняет, поэтому я'd с гораздо вернее схватить код, который является как близко к тому, что я хочу, как можно и переработать его так, что он делает новую работу. Он служит примером и напоминанием о все, что я должен делать. Например, Я'вэ использовать простой SQL для 20 лет, но я никак не могу запомнить макет select или UPDATE. (Я думаю, что нужны скобки, но я могу'т помню, где.) С другой стороны, некоторые few вещи, которые я могу вспомнить, я могу бросить вместе итератора реализация Java с закрытыми глазами.
Большую часть кода я копия моей, но я, конечно, копировать других's, когда я'м узнать что-то новое.
Я не'т знаем о хакатонах. Они могут опираться на подмножество программистов с фотографической памятью. Я'd не дать ему попробовать и посмотреть. Если выглядеть идиотом беспокоит вас, вы должны'т быть программирования.
Я'd не призываю вас понимаю, полностью, весь код можно скопировать и изменить, но, пока я не прочитал некоторые из других ответов, я никогда не думал, кто-то может скопировать без понимания. (Я, кажется, узнавая новые пороки все время на этом сайте...)
Затем остановится. Голову в другую сторону на некоторое время. Осуществить все самостоятельно, даже если вы знаете, что вы могли найти именно то, что нужно в гораздо меньше времени.
А произошло то, что вашу проблему решить мышцы (латинское название ягодичную Моджо) уже атрофировался от неупотребления, и теперь вы воздержитесь от его использования, потому что вы знаете, насколько он хлипкий. Вам нужно, чтобы начать строительство и тонизировать мышцы так же, как вы'd работы на бицепс в тренажерном зале. Начните с высоким количеством повторений и низкое сопротивление -- много простых проблем. Как вы строите какую-то уверенность, двигаться дальше, больше, сильнее проблем.
Вы'будете постепенно ощущать свое Моджо возврата и нужно полагаться на Google будет уменьшаться. Делайте зарядку, что мышцы, хотя, и убедитесь, что вы Дон'т упасть обратно в свои старые пути. Испытайте себя, чтобы решить проблему первый и только потом искать другие решения. Иногда вы'll найти, что другие уже нашли лучший способ делать то же самое, в другой раз вы'МР решите, что ваше собственное решение лучше.
Человек, который не чтобы чего-то добиться, не находя примеры-это плохой разработчик. Дело в том: вы выиграли'т знаете ли вы'вновь в состоянии или нет, пока не попробуешь.
Вы'вновь молодой, и вы'вэ работал со многими языками программирования. Я'м собираюсь гадать, что вы, наверное, поднять на новый язык быстрее, чем старые. Вы еще не поставили достаточно времени в единый язык на достаточно большое приложение, чтобы развивать беглость.
Вы ищете комплексные решения всякий раз, как весь процесс подключения веб сетке в таблице базы данных или меньшая часть, как форматирование подключения строку (я должен посмотреть, что почти каждый раз, когда я пишу около четырех в год.)?
Вы'll всегда быть ищет ссылки на синтаксис различных строк кода или функции. Чем больше вы программируете, тем больше проблем и различных средах и языковых изменений вы столкнетесь. Если вам нужен весь учебник каждый раз, когда вы делаете что-то, то у вас проблемы.
У меня был профессор, который говорил, что он ненавидел тесты, основанные на попытке сохранить кучу информации, которую вы зубрили накануне вечером, потому что вы забыли многое из этого в любом случае потом. Он лучше знает ваши ресурсы и что вы можете использовать их должным образом, чтобы найти информацию, которую вы не знаете. Я хотел бы применить подобный принцип для все, что я делаю, в том числе работы.
Я думаю, самых важных инструментов у вас есть ваши ресурсы, пока вы используете их правильно. Поэтому, когда я пишу код, я понимаю, насколько я с моими знаниями и затем сделать исследование, попросив других программистов или поиск в сети, чтобы лучше понять соответствующие решения. Знания, будет строить с течением времени и через некоторое время вы, естественно, знать и понимать навыки лучше. Я постоянно смотрю все ли я на самом деле нужна информация или нет, и я могу честно сказать, я узнаю что-то новое каждый день.
Если вы понимаете проблему вы пытаетесь решить, и понять, как вы хотите решить, посмотрев правильный синтаксис не имеет большого значения на мой взгляд.
Я закончил около двух лет назад и был брошен на растерзание, когда я получил свою работу. Мне пришлось учиться, сохранить и обновить большое приложение, написанное на языке, которого я никогда не касался раньше. Я хотел бы получить сообщение об ошибке, пройти через код и выяснить, как я хотел все исправить, а потом уже в Google примеры того, как делать вещи, которые я хотел на этом языке.
Если вы получаете вещи сделано, и понимая это достаточно, чтобы не производить ненужных маслобойку, то вы, вероятно, ОК.
Лучший способ узнать, что вы Дон'т знать: погуглите! Я чувствую, что вы правы на одном уровне с большинством разработчиков. Поставить комплекс неполноценности в свой рюкзак и перейти в с открытой душой.
Дон'т бойся задавать вопросы, заниматься исследованиями в Google, попробовать и потерпеть неудачу. Это's все части.
Я думаю, если вы сосредоточитесь на придумывают умеренного код сами, ваша эффективность и продуктивность возрастут. Он, вероятно, займет больше времени на просмотр кода, чтение/понимание его, копируя его свой источник, изменив его соответствующим образом, и т. д..
Если вы сами это придумали, это, скорее всего, более приспособлены к вашей конкретной ситуации, а через некоторое время эти решения будут приходить быстрее, чем искать их.
Я смотрю на него, что он's, как вы хотите второе мнение по определенному решению, так вы посмотрите, как другие (в Интернете) делать это. Если вы найдете себе делать/хотеть это слишком много, думать о нем, как просить коллегу о том, что он/она думает о решение. Если вы спросите своего коллеги вопрос каждые 15 минут, он/она, вероятно, будет раздражен. Поэтому вы будете задавать меньше вопросов и попытаться придумать его самостоятельно.
Визуализируйте это, когда желающих посмотреть это в Интернете.
Чисто некритическое копирование и вставка как раз в этих ответах-это плохо. Но так пишут все с нуля. Если это не является критическим компонентом, который является основой вашего бизнеса, искать библиотеку или фрагмент кода, чтобы сделать это первым. За исключением нахождения фрагментом будет то, что проблема очень проста, у вас есть очень четкое представление о том, как это сделать и если вы'повторно не использую библиотеку: что вы вряд ли нужно сделать что-нибудь другое.
Я знаю лично если я пишу что-то, что является общим, Я'м, вероятно, иметь некоторые незначительные ошибки и, возможно, один или два не очень тонкие, не большое тестирование. Так я смотрю на подобные решения, изменения и тестирования, чтобы сэкономить время на тестировании и развивается во всем. Потому что в конце концов я'м отвечает за доставку продукта, который работает, является расширяемым, или в рамках бюджета и соблюдает сроки. Повторное использование кода и библиотек является хорошим шагом к достижению этой цели.
Я думаю, что, читая примеры кода и просто читать исходный код, что другие люди развивались в общем, является лучшим способом, чтобы улучшить свои навыки. Я действительно думаю, что он открывает двери в свой мозг, что бы не был открыт в противном случае.
Если же вы придумаете решение, и кто-то еще придумывает раствор B, когда каждому из вас рассказать о ваших достижениях, вы сможете реализовать решение на C, который может быть даже лучше, чем А или В.
Разработка программного обеспечения в корпоративной настройки требует изрядной повторного использования кода. Зачем переписывать функция/метод, если АПИ уже существует и широко используется? Это, скорее всего, будут так же эффективны, как все, что ты пишешь и займет меньше времени.
Конечно, успех в области разработки программного обеспечения также требует ломать с помощью клавиатуры, так что вы можете читать и понимать, что происходит на самом деле. Возьмите любой веб-фреймворк. Вы должны знать, что происходит внизу, так что вы понимаете код, который вы пишете, но вы, вероятно, никогда не придется писать веб-фреймворка с нуля самостоятельно.
Вы просто должны написать код, который использует тип рамок (скажем, компонент база требует определенного стиля) и это приходит от понимания общей картины. Узнать более широкую картину, и вы будете прекрасны.
Я думаю, что есть много уровней развития программного обеспечения. Просто так, потому что есть также много уровней разработка программного обеспечения документация классность. Честно говоря, в эти дни, систем на порядки сложнее, чем когда я начал программировать компьютеры в середине 1980'ов.
Затем, вы должны были знать, что вы хотели компьютер, чтобы сделать, и вы написали документацию толщиной 6 дюймов, говорю вам как компьютер сделал некоторые более элементарные вещи. Поставив то, что вы хотели в виде компьютера смог принять был вопрос, зная содержание книги' показатели, и язык программирования (или два. Действительно, после изучения четырех или пяти языках, другие просто диалекты.)
Сегодня, эта задача требует знания языка, зная систему, зная, парадигмы, модели программирования, и по меньшей мере один набор API, которые являются движущимися целями.
Так, человек с определенным уровнем базовых знаний, который просит всего-это не хороший программист. Он самый лучший какой программист, сегодня'сред Ы и незаинтересованность фирм, как Microsoft в практическом применении какой-либо требовательности к собственной документации основы. Большинство их барахло самореферентных справочный материал и некоторые очень плохо образец кода. (В двух случаях в момент я'вэ столкнулся с "установщик Windows" и в API's Для изготовления wmv файлы, видео.)
Потому что Microsoft, Google, и, в меньшей степени, Яблоко, все полагаются на "сообщества", чтобы восполнить тот самый дефицит, поспрашивал-это не просто важно, это'ы жизненно. И будучи человеком, можно спросить и кто может дать твердые ответы и отклики в сегодня's условия-это очень важно. Что's, почему такие сайты как stackexchange.com сайты не так полезно, как они.
Так что задавать вопросы (задавать грамотно!) для образцов, и уважать народ, который даст ответы, и это не будет рассматриваться как знак и "плохой разработчика и".
И еще одна вещь: поставка действительно плохое образцов является признаком плохой разработчик. Он делает плохие разработчики, легче заметить, но и десны поисковые запросы Google. Если вам не хватает уверенности в простых, понятных, конкретных примеров кода, Дон'т дать 'ем.
И, пожалуйста, Дон'т издеваются над теми, кто просит.
Мне кажется, что проблема для вас менее в понимании того, что вы'повторно ссылается, и больше с вопросами установки и памяти. Если это'ы подрывает уверенность в себе, то да, это'проблема с – но это конечно можно решить!
Для меня эти проблемы приходят в различные аспекты моей жизни. Например, чтобы получить хорошее в исполнение музыки, мне нужно развивать свою независимость от ноты я'м дали – как можно по-настоящему почувствовать музыку, если ваш нос все еще погружена в свой буклет? Иногда, если у меня есть время, я'будете запоминать всю музыку – даже если это's не требуется на мой концерт. Почему? Ноты ушли, он'ы гораздо легче для меня, чтобы сосредоточиться на более сложных и наиважнейших аспектов музыки мне нужно получить права, и это'ы гораздо легче для меня, чтобы порыться в зоне чистого музицирования. Так что я найти его'ы часто стоит дополнительных хлопот.
Мой опыт программирования был похож. Я думаю, что ключи являются:
Эти принципы, кажется, применить при изучении любого языка, на самом деле! Смотрите Как запоминать новые слова например. Метод аудиокниги также работает как это.
Я'ве обнаружили, что почти все принципы, синтаксис и общих библиотек языка и технологии, которые я использую регулярно, можно полностью запомнил, используя эти ключи. Даже так, я все равно постоянно рыскать по Интернету в поисках примеров и мудрости! Но ссылки, я'м глядя на проверки на проблемы я'м пытаясь решить различные подходы, которые были приняты, инструменты, которые могут помочь, и консультации для менее часто используемых библиотек. Это'ы совсем другой вид поиска, чем я использую, когда я'м сначала учить язык и горло в учебники и методички.
Из вашего рассказа, вот некоторые конкретные камни преткновения, я думаю, вы могли бы столкнуться.
Это так важно, чтобы занять некоторое время и получить, чтобы понять основы, более сложные вещи практически построить на вершине, что. Если нет основания в понимании языка и то, что происходит за кулисами, кодирование будет просто взлом...