Что я должен написать, чтобы стать лучшим разработчиком? - PullRequest
6 голосов
/ 17 июня 2009

Я, как правило, довольно быстро заканчиваю работу, связанную с работой, и у меня появляется немного свободного времени. Что я должен написать, чтобы стать лучшим разработчиком? Я знаком с c ++ / java / perl / python / ruby.

Я написал следующее самостоятельно:

  • простой веб-сервер
  • простых веб-клиентов (на разных языках)
  • DSL, внутренние и внешние
  • некоторые лексеры
  • кодовые отступы (исходные beautifiers)
  • простой IDE

Мне бы хотелось несколько советов по поводу некоторого программного обеспечения, которое было бы интересно и интересно писать.

Ответы [ 19 ]

2 голосов
/ 17 июня 2009

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

2 голосов
/ 17 июня 2009

Книга. Учебник. Все, что учит. Преподавание - отличный способ учиться.

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

И вы всегда можете чему-то научиться у своих учеников или читателей.

2 голосов
/ 10 июля 2009

У вас уже есть много отличных ответов на ваш вопрос, но я чувствую, что есть пропущенное предложение: Изучите AS3 / Flex!

Моя история очень похожа на вашу, но я недавно выучил AS3 для проекта и до сих пор любил его. У него такое же «чувство», как и у других языков, с которыми вы работали (например, Java), но оно позволяет создавать мощные визуальные / слуховые приложения без раздувания раздражающей среды. AS3 / Flex прошли через несколько итераций тонкой настройки и хорошо поддаются довольно быстрой разработке.

Еще одна причина изучения AS3 / Flex заключается в том, что у вас, похоже, есть интерес к технологиям, которые либо работают автономно, либо как сервер в сетевой среде. Эксперименты с AS3 / Flex могут дать вам возможность поиграть с клиентской частью дуэта клиент / сервер.

В любом случае, получайте удовольствие! :)

1 голос
/ 04 декабря 2009

Написание большего количества кода волшебным образом не делает вас лучшим разработчиком. Вот некоторые предложения, которые у меня есть:

  1. Научитесь писать лучше код. Что вы знаете о шаблонах проектирования, рефакторинге, модульном / автоматическом тестировании и непрерывной интеграции, например?

  2. Узнайте о программной инженерии. Знаете ли вы Scrum, Lean, XP и другие гибкие практики? А как насчет вариантов использования и пользовательских историй, а также оценки и управления проектом? Управление (и выбор) командой - это совершенно другой навык. Вы хотите, чтобы это было частью вашего будущего?

  3. Научитесь общаться с пользователями (на самом деле неотъемлемая часть Agile-технологий). Ваши клиенты почти всегда ошибаются в том, что им нужно. Как вы преодолеваете пропасть между тем, что они думают / говорят, что хотят, и тем, что им на самом деле нужно, чтобы вы для них строили? Обычно есть проблемы со связью в обоих направлениях: -)

  4. Дизайн пользовательского интерфейса. Это намного сложнее, чем выравнивание текстовых полей и установка порядка вкладок. Это сложная дисциплина для освоения большинством из нас, и она имеет филиалы для толстых клиентов, веб-приложений, небольших устройств (телефонов, КПК и т. Д.) И т. Д.

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

1 голос
/ 17 июня 2009

Я согласен с идеей компилятора. Это был бы сложный и интересный проект. Выберите язык, который достаточно прост. Может быть, даже создать свой собственный :)

1 голос
/ 17 июня 2009

Вы, кажется, не сделали много графики. Как насчет игры, как уже предлагалось, начать с простой двумерной физики / стрельбы, такой как игра астероидов, довольно просто, и ее весело тестировать.

Еще лучше и, вероятно, полезнее, как насчет редактора изображений?

1 голос
/ 17 июня 2009

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

Вернувшись в школу, я написал игру в баккару на Си (нам нужно было выбрать карточную игру, и я хотел выбрать ту, в которую никогда не играл). На следующий год я переписал его по схеме. А затем Smalltalk на следующий год.

В обоих случаях я ушел с большим пониманием C.

1 голос
/ 17 июня 2009

вы можете пойти на внедрение собственной системы контроля версий ...
Это потребует большого количества кодирования и охватывает различные аспекты, такие как алгоритмы, протоколы, операционные системы и т. Д.
Но всегда лучше внести свой вклад в проекты с открытым исходным кодом, чем кодировать что-то уже построенное
Вы также можете попробовать разработать экспертную систему, которая использует AI для выполнения некоторых интересных вещей:)

1 голос
/ 17 июня 2009

G'day,

Какое начало писать некоторые фрагменты для повторного использования в других частях программного обеспечения? Таким образом, вы можете:

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

Вдобавок ко мне, некоторые вещи, о которых я думаю, такие:

  • регистрация
  • чтение конфигурации из файла
  • настройка общей среды

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

НТН

ура

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...