Какой тип настройки / инструментов должен иметься, если я хочу развить свои навыки в качестве разработчика программного обеспечения (на Java, Python, C, C ++)? - PullRequest
3 голосов
/ 20 ноября 2008

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

Я хочу иметь возможность оборудовать свой домашний «офис» инструментами, которые позволят мне развиваться и развиваться.

Ответы [ 5 ]

6 голосов
/ 20 ноября 2008

Написать код:

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

Оборудование:

Подойдет любое современное оборудование для ПК / Mac. Если вы планируете использовать Windows или Linux, я бы использовал ПК через Mac. Есть много шума, который лучше, но используйте тот, который вам нравится больше всего.

Это должно быть спорным вопросом в наше время, но убедитесь, что у вас есть какое-то надежное подключение к Интернету (кабель, DSL, что угодно ...). Тогда у вас будет доступ к Google и StackOverflow ; оба хороших ресурса для программистов.

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

редактор / IDE:

Выберите редактор: Vim, EMACS, KATE, Eclipse, независимо от . Неважно, какой именно, но какой бы вы ни выбрали, изучите это хорошо. Редактор - это ваш основной инструмент, и вы хотите быть удобным и хорошо осведомленным при его использовании. Чем лучше вы знаете свой редактор, тем быстрее вы сможете создавать / редактировать код.

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

Инструменты сборки:

В какой-то момент вы обнаружите себя лицом к лицу с необходимостью создать или исправить систему сборки. Make довольно стандартен для * nix и C / C ++, но для ваших личных проектов найдите тот, который подходит вам больше всего. Есть из чего выбирать: булочки, муравьи, марки, джемы, ...

Я лично использую SCons, так как он основан на python, и мне нравится python.

Книги:

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

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

Языки:

Раньше у меня были сильные чувства по поводу того, какие языки изучать, но теперь я понимаю, что вы должны писать на языке, который вам нравится больше всего. Однако не бойтесь пробовать новые языки. Лично мне нравятся C ++, python и C # в произвольном порядке.

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

В деловом мире предпочтительный язык имеет тенденцию колебаться около 5-7 лет. Однако вы можете найти работу (по крайней мере, в настоящее время) на всех «больших» языках (C ++, JAVA, C # VB.net, python, ruby, perl, ...). Если вы хорошо выучите один из современных языков, переход на другой язык обычно не составляет проблемы. Библиотеки, как правило, занимают больше времени, чем сам язык. Так что выбирайте язык, который вам нравится изучать, и учите его.

Разные мысли:

Как сказал Марк Шарбонно, настройте контроль источников. Существует множество бесплатных предложений по управлению исходным кодом, поэтому выберите тот, который вам больше нравится. Лично я использую Perforce , что бесплатно для двух или менее человек. Я также слышал хорошие новости о Subversion и git . Конкретный не так важен, но выберите один из них.

Если вы хотите получить более глубокие знания о компьютерах, я бы порекомендовал Sipser's Book и Knuth .

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

Если вы занимаетесь веб-разработкой, убедитесь, что вы знаете, как минимально настроить и запустить Apachie (или IIS).

Избегайте священных войн, если можете. Это пустая трата времени, и вы ничему не учитесь из этого, кроме того, что люди упрямы. Некоторые темы священной войны (стиль скобок, редакторы, endianess, «лучший» язык, «лучшая» ОС, ...).

Мои персональные настройки:

Стандартный ПК (Windows XP Pro)

  • Visual Studio 2007 (немного позади).
  • VIM
  • Python
  • C / C ++
  • C * # 1100 *
  • Scons

Стандартный ПК (FreeBSD работает без головы: без графического интерфейса)

  • цепочка инструментов GNU (Make, C / C ++ и т. Д.)
  • VIM
  • питон
  • Scons
5 голосов
/ 20 ноября 2008

Лично я бы рекомендовал начать с Linux - почти на каждом языке программирования есть хорошие бесплатные инструменты для Linux. Затем я бы использовал VMWare для создания виртуальных машин с различными другими платформами, на которых вы могли бы протестировать свое программное обеспечение - Windows, другие дистрибутивы Linux, может быть OpenSolaris и т. Д. Опять же, по моему опыту, Linux с виртуальной машиной Windows работает лучше, чем Windows с Linux VM.

1 голос
/ 20 ноября 2008

Быстрое соединение (для загрузки linux) и учетная запись safari.oreilly.com!

1 голос
/ 20 ноября 2008

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

Что касается конкретных инструментов, то единственный ответ зависит от того, что вы хотите сделать. В конечном итоге вы можете использовать Visual C # Express от Microsoft, среду IDE NetBeans для Java или Xcode на Mac. Все это бесплатно, но на самом деле важно то, что вы планируете делать с инструментами, а не с тем, чтобы они были установлены на вашем жестком диске. То же самое относится и к аппаратному обеспечению и ОС, вам может понадобиться хороший ПК с Windows для создания игры на C #, или использовать Mac для веб-разработки и т. Д. Решите, что вы хотите сделать, и выберите лучшие инструменты, которые позволяют чтобы достичь этой цели.

Одна вещь, которая в значительной степени независима от всего, - это некий контроль версий; Это хорошая идея, независимо от того, какой проект или технологию вы используете. Git и Subversion - два популярных кроссплатформенных варианта.

1 голос
/ 20 ноября 2008

Я рекомендую KATE (часть KDE) в качестве редактора. Это легкий и простой редактор с подсветкой синтаксиса, несколькими файлами и встроенным терминалом. Это не навязчиво, как emacs или vim, и отлично подходит для всех видов проектов, благодаря терминалу. Это как мини-IDE.

...