Нужен ли неопытному программисту IDE? [закрыто]

12

Чтение этого другого вопроса заставляет меня задуматься, стоит ли мне (как программисту-новичку на PHP) придерживаться WAMP и Notepad ++ или перейти на какую-то IDE, например Eclipse.

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

Обновление для уточнения:

Моя цель - получить базовый опыт программирования. Выбирая PHP и WAMP (а также FogBugz и Kiln), я надеюсь избежать необходимости разбираться со сложными / запутанными особенностями ОС, компилировать и т. Д. И просто сосредоточиться на основных функциях, таких как онлайн-форма регистрации пользователей.

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

Есть так много вопросов, чтобы задать. Так много ошибок, с которыми мне, вероятно, придется столкнуться. Этот вопрос - только одна часть (моя первая!) Этой загадки.

Торбен Гундтофте-Бруун
источник
Зависит от того, что вы подразумеваете под IDE ... Notepad ++ можно использовать как элементарную IDE.
Отредактировано
10
Да! Нет! Я не знаю .. Иди с тем, что подходит для вас!
Бен
1
Ситуация с простым редактором - это базовый уровень - опыт, общий для всех программистов. Кроме того, все инструменты - это инструменты, так что вы должны начать изучать основы, чтобы оценить, с чем может помочь IDE.
Я запустил небольшой скриншот экрана на programmers.stacexchange.com. Использование слова «зависит» или «зависит», по-видимому, увеличивает вероятный толчок голосов, в то время как люди, отвечающие фразами, начинающимися с «Я бы ...» или начинающимися с «Да» или «Нет», имеют тенденцию быть отвергнутыми. Совет для написания постов: не иметь четкого мнения ни о чем.
Джейсон Себринг

Ответы:

21

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

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

user281377
источник
16

Должен ли n00b использовать IDE? Это зависит от вашей цели как n00b. Вот некоторые возможные ближайшие цели:

1) Просто начните изучать некоторый язык программирования / кое-что о программировании (легкое введение)

2) Стать мастером и понять, как все работает (введение в тяжелом весе)

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

Для 2), не используйте IDE (сначала). Если вы хотите все прекрасно понять, то с помощью отладчика и компилятора командной строки вы сможете лучше понять, как все работает. Это будет сложнее и может поначалу обескураживать.

Кейси Паттон
источник
Как бы вы не использовали IDE, чтобы лучше понять, как все работает? Вам не хватало бы параметров командной строки компилятора и команд отладчика, но это то, что вы можете узнать позже в одностраничном объяснении. Makefiles тоже не намного сложнее. Я не могу думать ни о чем другом, что не является тривиальным.
Рей Миясака
3
Я не говорю, что есть разница между днем ​​и ночью, но я бы, конечно, не классифицировал Makefiles и все такое как «тривиальное» для нового разработчика. Я также не говорю, что вы будете совершенно не замечать, если начнете с IDE. Я только говорю, что начиная с командной строки, вы получите лучшее представление о том, как все работает.
Кейси Паттон
Что ж, я имею в виду, что Makefile-ы довольно просты позже, когда вы понимаете, что создание программ обычно включает в себя несколько шагов и много файлов - чему IDE научит вас в любом случае.
Рей Миясака
3
@ReiMiyasaka, вас учат IDE по пути? У меня сложилось впечатление, что многие кодеры так и не поняли, что происходит между вводом кода в IDE и созданием исполняемого кода.
Уинстон Эверт
@ Уинстон Да, они делают. Невозможно не заметить, что что-то происходит, объединяя десятки файлов кода и библиотек. Изучение точного формата данных, описывающих взаимодействия, полезно, но, опять же, это то, чему можно научиться за несколько часов, когда уже поняли, что что-то действительно происходит. Вы когда-нибудь пробовали преподавать связанные списки, не объясняя, для чего они хороши? Связанные списки имеют больше смысла для людей, когда у них есть причина, чтобы узнать подробности этого. То же самое касается make-файлов, параметров компилятора и всего такого.
Рей Миясака
5

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

Когда вы только начинаете, вы совершаете ошибки. Вы где-нибудь забудете точку с запятой или неправильно введете имя переменной. Без и IDE вам придется сосредоточиться только на языке и как вы его написали. Это ценное обучение.

Большой блестящий IDE попытается сэкономить ваше время, пытаясь поймать эти ошибки, которые лишают вас возможности учиться. Также, как говорили другие, изучение IDE также увеличит ваши затраты на обучение. Представьте себе, когда IDE предлагает что-то, вы будете удивляться, почему оно делает предложение, или даже является ли оно правильным. Это только добавит путаницы.

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

joatis
источник
4

дополнительная проблема изучения IDE

Вы имеете в виду ту часть, где IDE выполняет большую часть работы за вас?

Я никогда не использовал PHP IDE, но предполагая, что они функционируют аналогично другим типам IDE, они экономят вам огромное количество работы. Работа, связанная с изучением IDE, будет тривиальной по сравнению с функциональностью, которую IDE избавляет от необходимости заниматься самостоятельно. Такие вещи, как завершение кода и подсветка синтаксиса, являются невероятно полезными инструментами и совершенно незаменимы.

Все, кто профессионально программирует, делают это с помощью таких инструментов, как IDE, и не без причины.

DeadMG
источник
2
Я профессионально работаю с PHP и не использую IDE, я использую Vim!
Гэри Уиллоуби
1
@Gary VIM является IDE.
правее
2
Нет, это редактор. Определение IDE: en.wikipedia.org/wiki/Integrated_development_environment Vim это не так.
Гэри Уиллоуби
1
Я уверен, что Vim поставляется с такими вещами, как завершение кода, или может быть добавлен для этого, что в значительной степени делает его IDE для этой цели.
DeadMG
3
Существует большая разница между VIM и IDE. VIM не скрывает детали того, что происходит, как делает IDE. Многие из преимуществ IDE доступны в VIM. Но называть VIM IDE просто неправильно.
Уинстон Эверт
4

Я думаю, что неопытный разработчик PHP будет гораздо более продуктивным с IDE.

Вопрос должен быть: нужно ли опытным разработчикам PHP IDE?

Гари Уиллоуби
источник
2
вот собственно то, что я думал, это означало неправильное прочтение названия ...
bunglestink
4

Как правило, я выбираю так:

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

Научитесь использовать оба при необходимости. Начните с командной строки.

Дэвид
источник
3

Есть несколько вещей, которые помогут любому программисту на любом языке независимо от его уровня квалификации:

  1. подсветка синтаксиса плюс сопоставление скобок

  2. проверка синтаксиса при вводе (очень удобно, чтобы избежать десятка ошибок, возникающих из-за одной забытой ;или несовпадающей скобки)

  3. легкий просмотр документации (однако это не обязательно должно быть в самой IDE),

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

только 1 и 2 должны быть в IDE / редакторе

чокнутый урод
источник
3

Я всегда использую IDE (Eclipse) и рекомендую его даже новичку. Основные преимущества, если вы начинаете:

  • Мгновенный отзыв о неверном коде (например, синтаксические ошибки в коде)
  • Заботится о настройке проектов с использованием стандартных соглашений, поэтому вам не придется беспокоиться о конфигурации / особенностях ОС и т. Д.
  • Часто может генерировать пример кода, на котором вы можете опираться и учиться
  • Избегает необходимости запоминать целый набор непонятных параметров командной строки и вызовов, чтобы вы могли сосредоточиться на коде.

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

mikera
источник
1

Другой, не заданный вопрос: нужна ли опытному программисту PHP IDE?

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

Я занимаюсь PHP в NetBeans, но это только потому, что я привык к NetBeans. Бьюсь об заклад, я мог бы сделать это так же хорошо в любом количестве текстовых редакторов.

Майк Баранчак
источник
1

Если вы разумно ожидаете, что в основном будете писать код на протяжении всей жизни или, черт возьми, даже если нет - вы должны получить расширяемый редактор / IDE и начать его изучение. Если вы ничего не можете себе позволить, используйте Notepad ++ или что-то подобное, что позволит вам начать свою пожизненную задачу с определения «как мне нравятся мои горячие клавиши» и изучения обычных.

Ваши инструментальные IDE, как я их называю - Visual Studio, Eclipse, What-have-you, будут приходить и уходить и развиваться, часто становясь слишком громоздкими и не отвечающими требованиям, чтобы их можно было использовать, когда вы просто хотите выпалить код или сделать массаж / рефакторинг это определенным образом.

Таким образом, у вас есть ваш «домашний» редактор, который остается с вами на всю жизнь, которого вы любите больше, чем ваш GF.

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

Мой Home IDE - SlickEdit, который я использовал и расширял за последние 10 с лишним лет. За это время я написал для него более 120 макросов и у меня более 1000 горячих клавиш.

Я помню их всех? Нет, вероятно, около половины в любой момент времени, может быть, 60%, но остальные предназначены для специализированных задач, которые я в конечном итоге ищу по запросу.

Помните, жизнь коротка, и если вы сделаете математику в любом большом проекте, вы увидите, что даже если доброжелательные инопланетяне, телепатически диктующие вам идеальный код, набирают 8 часов в день - все равно потребуются МЕСЯЦЫ, чтобы написать что-то большое (без умного редактора, макросов, шаблонов и т. д.).

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

На самом деле, очень часто. Хотя сейчас это стоит вам.

отметка
источник
1

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

Прежде всего, я скажу, что мне нравится работать в обеих средах. Использую ли я Vim и make-файл с GCC или QtCreator / Visual Studio с их соответствующими средами и компиляторами, зависит только от самого проекта и масштаба приложения.

Для обучения я буду иногда использовать Vim просто потому, что ненавижу не знать, как все работает, и просто уйти и написать что-то из-за невежества. Когда я впервые научился кодировать, я делал это через C # и Visual Studio. Это научило меня основам. Однако через некоторое время я решил взять на себя обязательство научиться использовать Makefiles и приличный текстовый редактор.

Рей Миясака сказала в комментарии, что любой может научиться использовать Makefile в течение нескольких часов, не используя ничего, кроме информации на странице. Я от всего сердца не согласен с этим, особенно для кого-то нового. Это может занять несколько дней (по крайней мере, в моем случае так и было). Также стоит отметить, что большая часть документации по Makefiles занимает сотни страниц, и хотя вы можете получить хорошее представление на одной странице, для того, чтобы действительно знать, как их использовать, требуется гораздо больше времени и времени для чтения.

На мой взгляд, если вы достаточно амбициозны и только начали изучать, попробуйте дистрибутив Linux (не важно, какой из них, если у него хороший менеджер пакетов и он относительно стабилен - я рекомендую Linux Mint или даже Debian). сам) и изучите C. Начните с текстового редактора (выделение синтаксиса, авто-отступ и поддержка номера строки - это просто необходимость - все остальное - просто предпочтение), просто научитесь вызывать компилятор через CLI. После того, как вы дошли до точки , где вы в прошлом обучения , как код , используя только один исходный файл для каждого проекта, когда вы потомначать изучать, как написать Makefile. Также стоит обратить внимание на Valgrind (если вы пишете на C / C ++, я не уверен, поддерживает ли он другие языки программирования). После нескольких месяцев программирования в этой среде, когда вы беретесь за более крупные проекты, изучите IDE (желательно что-то FL / OSS), и вам будет хорошо.

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

Приветствия.

о пустом
источник
-1

Использование IDE сделает жизнь намного проще. В PHP особенно много противоречивых функций, с которыми может помочь автозаполнение в IDE. Кроме того, наличие отладчика в вашей IDE действительно бесценно ...

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

bunglestink
источник
-1

На моих уроках информатики мы не начинали с IDE. Это было то, что мы делали ПОСЛЕ того, как поняли, что делаем.

Интегрированные среды имеют тенденцию отвлекать слишком много для начинающих и заканчивают тем, что производят образованных дураков. Вначале очень важно, чтобы вы хорошо понимали, или в конечном итоге вы будете думать только в среде IDE и не сможете понять основные вещи без нее. Вы также будете ограничены только тем, что может сделать IDE. Некоторые IDE совершенно злонамеренны, имея такие абстракции и собственную парадигму, что фактически заставляет людей тупить при их использовании. Пример веб-форм для ASP.NET.

Есть кое-что, что можно сказать о самозагрузке.

Джейсон Себринг
источник
-4

Вот мой взгляд на это:

  1. Начинающие - единственные люди, которым нужна IDE. Это из-за отладки - у новичков все еще могут быть проблемы с пониманием того, как работает программа, и пошаговое выполнение кода может помочь с этим.
  2. Программисты Mediogre могут ускорить процесс программирования, поскольку в среде IDE предусмотрены функции, которые упрощают навигацию по большим исходным репозиториям и определяют местоположение каждого символа в исходном коде. Им больше не нужен иде, но иногда это облегчает жизнь.
  3. Опытные программисты не нуждаются в IDE. Они сделали это достаточно долго, чтобы пользовательский интерфейс IDE был слишком медленным для них - нажатие клавиши и ожидание ответа занимают слишком много времени - требуется немедленный ответ, чтобы не тратить время. Навигация по исходному коду не является главным приоритетом, так как они могут запомнить, где находится каждый фрагмент кода - они прочитали весь код перед тем, как что-либо изменить.
ТР1
источник
1
Я бы проголосовал против, если бы мог. При работе с большими проектами не представляется возможным держать все в голове. Вам не обязательно использовать ide, но для этого необходимо иметь какой-либо инструмент (ы).
Bwmat
@Bwmat, теперь вы можете понизить голос
Пратик