Что делать, когда вы сталкиваетесь с задачей программирования, которую вы никогда не делали?

Я начал свою карьеру в качестве разработчика .NET 3 месяца назад, и после долгого плана обучения по различным технологиям, шаблонам и концепциям разработчики, которые контролировали меня, решили, что я готов присоединиться к одному из многих проектов, которые компания обрабатывает .

Я очень рад, наконец, начать кодирование. Команда, к которой я присоединилась, сейчас довольно мала, потому что начиналась с нового проекта, и это здорово, потому что я участвую во всем жизненном цикле проекта. Это веб-проект SPA с поддержкой, который использует ASP.NET MVC /ASP.NET Web API и в интерфейсе Durandal framework и связанных с ним библиотек.

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

Я никогда не делал никаких созданных задач, и я не знаю, как это сделать.

Например, одна из созданных задач создает общий механизм обработки ошибок для всего приложения.

Как обычно происходит, когда сталкиваются с задачами, которые он никогда не делал?

37 голосов | спросил aleczandru 19 Mayam13 2013, 01:15:17

3 ответа


59

Есть несколько вещей, которые вы можете и должны сделать, чтобы подготовиться к задаче:

  • Подумайте о проблеме и нарисуйте несколько диаграмм. Убедитесь, что вы знаете, в чем проблема, которую вы пытаетесь решить.
  • Проведите исследование того, что вы пытаетесь сделать. Интернет является ценным источником информации. Я не говорю, что спрашивает «Переполнение стека» - я говорю о том, как другие люди уже решили такую ​​проблему, как ваша, или подошли к ней. Это то, что Google придумал: «Обработка исключений как система Wide Concern ". Лично я всегда стараюсь учиться у других.
  • Наконец, и это может быть самое важное, поговорите с другими людьми в вашей команде, чтобы получить больше разъяснений и направлений в отношении того, что делать. Я всегда хочу, чтобы новые инженеры пришли просить руководства по проектам.

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

Вот почему я инженер; Я люблю выяснять новые вещи.

Никогда не прекращайте изучать новые вещи. Обучение - это то, что делает вас лучше.

ответил barrem23 19 Mayam13 2013, 01:57:31
18

Конечно, вы понятия не имеете, как написать «общий механизм ошибок». Никто не знает, как написать «механизм общей ошибки» до тех пор, пока не будут определены некоторые требования. . Похоже, что все, что у вас есть, - это чье-то представление о том, что для запуска этого проекта требуется как-то «механизм общей ошибки».

Лично я хотел бы вернуться к этому понятию. Написание «родового» всего до внедрения реальных пользовательских требований почти всегда пустая трата времени. И поскольку это generic , по определению это не является специфическим для вашей компании или приложения, поэтому, вероятно, есть что-то уже имеющееся, что удовлетворит около 95% ваших потребностей.

Но так как вы младший член, отталкивание назад не может быть отличной идеей. Поэтому вам нужно поговорить с людьми, которые думают, что им нужен «общий механизм ошибок», и выяснить, какие услуги они ожидают, чтобы этот механизм обеспечивал. Затем найдите в сети, чтобы увидеть, достаточно ли написанного. Если вы что-то найдете, предложите просто использовать его. Вероятно, они не согласятся, потому что любой, кто просит «механизм общей ошибки», скорее всего, страдает от плохого случая, не изобретенного здесь.

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

=================

P.S. Есть некоторые программисты, которые считают, что способ начать любой проект - написать «платформу», чтобы предоставить все общие службы, которые потребуются модулями приложений. Обычно это превращается в месяцы тривиальной работы, заново изобретающей вещи, которые уже легко доступны бесплатно. Пока вы не достигли предела производительности доступных решений, нет никаких оснований писать «платформенные» услуги. Также нет причин писать оболочки вокруг существующих API. Если вы будете рефакторировать непрерывно, то волшебная маска будет отображаться с помощью точной оболочки, требуемой вашим приложением.

ответил kevin cline 21 Mayam13 2013, 00:30:53
11

Я думаю, что вы страдаете от беспокойства больше, чем от дефицита навыков. В какой-то момент не все было ново? Вы когда-нибудь получали задание и не могли в какой-то мере его решить? Тебе платят, чтобы разобраться.

Используйте свою команду . Если вы работаете в хорошей команде, вы можете попросить о помощи. Есть вещи, которые вы узнаете, даже самые старшие не узнают. Обращение за помощью - это не признак слабости (не более, чем переход на какой-то вопрос).

Поиск . Веб-поиск по общей обработке ошибок не придумал ничего? Вы не можете найти полное решение. Вам все равно придется поработать над этим, и в любом случае это будет соответствовать вашему приложению.

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

Get Over It . Только делать то, что вы знаете, как это сделать, будет скучно. Это также приводит вас в ловушку просто грубых, заставляя некоторые решения повторяться одни и те же вещи снова и снова (если вам нравится повторять что-то, идите работать на сборочной линии.). Будьте готовы совершать ошибки. Те, кто говорит вам, что они все знают, никогда не просят о помощи или обысках, просто лгут.

Это старая шутка о том, что врачи все еще «практиковали» медицину; у них также нет ответов.

ответил JeffO 19 Maypm13 2013, 18:41:32

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132