Pull to refresh

Comments 59

Просьба ответить уважаемое хабрасообщество. Я, к сожалению. очень слабо знаком с программированием ( пока (: ), А в данном вопросе надо разобраться, еще и мотивировать руководству… Вопрос покупки того же VS не стоит, не в деньгах вопрос, а именно в целесообразности использования и полезности для клиентов… Обучение ведется без привязки к платформе. именно основы языка.
Качайте Visual C++ Express Edition, он абсолютно бесплатен и в нем есть все для обучения языку.
Code::Blocks. Тоже бесплатен, весит 19 мб. а так как ни в том ни в другом редактора Win-GUI нет — то и разницы особой нету.
Visual Studio имеет нормальный дебагер(в watch отображается любая структура), Code::Blocks таким похвастася не может
я конечно понимаю, старая школа, стремление к минимализму…
но зачем же себе усложнять жизнь печатая код в блокноте, потом переносить в студию, компилировать, смотреть ошибки и так в цикле…

это дурная работа, лучше сразу иде юзать
Зачем переносить в студию? Компилируйте внешним компилятором. Такой подход позволит вам разобраться «как же это все работает».
Я так начинал изучать, + на сертификационном экзамене такие знания необходимы.
зачем переносить в студию? неужели без студии совсем нельзя разрабатывать?

компилировать можно через командную строку

а использование блокнота оправдано тем что понимаешь(запоминаешь, изучаешь, ну и так далее) больше, так как делаешь все сам, и нет большого количества автоматизированных процессов (которые делает IDE)

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

на С++ не писал, учился на JAVA, применение блокнота на ранних этапах было более чем оправдано
Навыки работы в IDE пригодятся, если впоследствии полученные знания захотят использовать. В очень многих софтостроительных компаниях именно Visual Studio используется для разработки.

Мое ИМХО. Уже больше 15 лет занимаюсь разработкой. Хорошо владею NetBeans, Eclipse, CodeWarrior, Visual Studio. По личному опыту — Visual Studio + Visual Assist вне конкуренции :(.
Готов вами поспорить. Никто вас не заставляет разрабатывать в блокноте, для серьезных задач свои инструменты. Но не зная азов, не стоит (на мой взгляд) садиться за IDE. Сначала нужно досконально разобраться в технологиях.

За годы моей практики (чуть меньше чем у вас :)) не раз убеждался в относительной «полезности» визардов и других помощников. Далеко не всегда они упрощают разработку.
Готов согласиться. Но тут многое зависит от модели обучения — «снизу вверх» или «сверху вниз». ХЗ что сейчас для новичков лучше. Да и вообще с++ ИМХО не лучший язык для обучения именно новичков — все-таки он шибко низкоуровневый.

Что мешает обучать непосредственно программированию в IDE где и отладка есть, и ошибки сразу подсвечиваются, и автодополнение — а тему «волшебная компиляция текстового файла в .exe» показать на том же gcc или коммандлайновой версии Visual C++? ИМХО, в «программировании для новичков» непосредственно волшебный процесс компиляции и линковки не то чтобы очень долгий или сложный.
эммм у модели «снизу вверх» нет конкурентов. Несколько раз уже замечал, зная как работают некоторые «черные ящики» можно с большой долей вероятности сказать как работает другой (паттерны и т.д.). Можно на основе этих «размышлений» избегать или исправлять ошибки. А не зная как это все работает с низкого уровня вам будет сложно разрабатывать «взрослые» программы. Разве нет?
Я раньше был такого же мнения — только Visual Studio + Visual Assist, но в последнее время стал присматриваться к Eclipse+CDT и в итоге пользуюсь и тем и тем. VS+VA для кодирования и отладки, Eclipse+CDT для изучения чужого сложного кода — он для этого подходит намного лучше в нашем случае (сотни мегабайт исходников). К тому же в CDT есть несколько приятных вещей, которых нет в VA, например препроцессинг куска кода или подсветка перегруженных операторов другим цветом.
Насколько я помню, в eclipse + CDT до сих пор нету аналога «code definition window» из visual studio. Незаменимый инструмент для изучения чужого кода.
Там этот Definition в тултипе всплывает при наведении мышки на символ, с клавиатуры тоже можно стриггерить, F2 по-моему.
Если только основы языка, то Borland C++ 3.1 :)

А если серъезно советовал бы Visual Studio.
нас основам учили в борланд 3 кажется dos версия… вообщем то ничего лишнего не было.
позже Visual Studio, я бы не рекомендовал начинать учиться на Code gear rad studio ибо там слишком большой соблазн попрограммироваь мышкой… а на начальном этапе я думаю это губительно
Думаю, да и опыт подтверждает, не стоит начинать обучение с С/С++
C#, Java, Python. Но это так, навскидку, серьзно пока не подходил к этому вопросу.
Скорее python, ruby.
C# и Java не подойдут в виду полной объектной ориентированности, что довольно трудно понять начинающему.
Если начинать с C# или с Python, то С++ вы уже не выучите, если с С++ — позже вы сможете освоить любой язык ;)
Так же отдаю свой голос за Borland Turbo C, но с некоторыми условиями.
1. Мы изучаем именно основы и именно Си. Так как на момент выхода среды (1992 год), современного стандарта языка cpp ещё принято не было, то и не всё из ООП в BTC работают.
2. Мы изучаем именно язык, а не программирование под win или технологию программирования на c/cpp.
Borland сильно «развращает мозг» начинающего программиста… у них плоховата стандарт реализован и имеются всякие свои извращенные механизмы перенятые с object pascal

для начала
1. учи стандартный с++
2. старайся не привязываться к среде и к платформе
Лол, что Вы понимаете под стандартным c++?
то что описано в ISO стандарте(ISO/IEC 14882), без всяких извращений компилятора…
Я в свое время при изучении использовал Borland Turbo C.
Но ведь время идет, все меняется :) Сейчас бы, наверное, выбрал Visual Studio или C++ Builder. То есть полноценную среду разработки с автокомплитом и пр. Я сам был просто вынужден использовать Borland Turbo C потому, что не было достаточно хорошего компьютера.
Хотя в обучении, наверное, все же не среда важна :)
Qt Creator
и просто для С++ хорош, и еще и под Qt заточен

вообще для новичка нужно разве что автодополнение кода (ну кроме подсветки) + документация
документации в инете полно, а с автодополнением — почти каждая IDE
Только в обычном текстовом редакторе, никаких IDE. Изучить как это на самом деле работает, как из исходного кода получается программа. Освоить написание простейших Makefile. А освоить ту или иную IDE — это уже мелочи, главное научиться программировать. А то есть такие программисты, которых научили батоны на формы вешать, а какой нибудь мало-мальски сложный алгоритм реализовать немогут.
пока запускается эклипс можно скачать C++ express
1. Любой редактор с подсветкой синтаксиса, например, kate или notepad++. Главное, что бы это было не IDE.
2. Компилятор + linker из консоли.
3. Затем можно Makefile освоить.
4. После того, как эти шаги отточены и поняты можно браться за IDE.

Если освоить шаги в такой последовательности, то будет очень просто перейти к continuous integration и nunit тестированию.
Думаю, что make нужно сразу, со второго-третьего урока, и программы из нескольких файлов.
Другое:

1. Текстовый редактор (emacs/vi/notepad++)
2. make/Makefiles
3. gcc/mingw

Основам только так и строго обязательно. Иначе нормальный программист не получится.
А вы не выбирайте — используйте и то и другое, пусть ученики поймут основные принципы работы в IDE, без привязки к какому-то конкретному.

Если решите все же привязываться к одной IDE — я бы советовал Visual Studio и вот почему. Visual Studio — это промышленный стандарт для разработки под Windows. Для разработки под *NIX такого стандарта нет, поэтому те, кто будут разрабатывать под *NIX всё равно будут выбирать себе IDE из присутствующего многообразия и не факт, что остановятся именно на эклипсе.
Code::Blocks, потому что он быстрый и простой в использовании.
если будете изучать при помощи студии то сможете отвязяться от проблем с сборкой, настройкой, запуском — код написал, и запустил. Что происходит в промежутке — неизствестно но оно работает. Таким образом человек научится писать код, но не будет понимать как из кода возникает бинарник. Потом брошенный в разработку чего-то неизвестного человек потеряется — он ведь привык чтобы из кода программа возникала сама.

другой вариант — эклипс. Тут вам придется указать компилятор, заодно увидят и остальные настройки проекта. Сразу же конечно ничего не заработает, придется немного покопаться. Таким образом помимо самого кода вы научите людей не боятся разбираться с разными полезными программами, да и они будут разделять понятия IDE и компилятор.
Я знаю людей, которые на вопрос «чем компилируешь?» отвечают «F7». Поэтому никаких IDE в начале обучения. А то потом возникает полное непонимание того, какие файлы исходного кода в какие объектные файлы входят, почему именно так работают extern и static (и особенно ститические члены классов) и многие другие вопросы.
Полностью согласен, среда разработки вредна начинающим.
Учиться нужно писать руками. Собственноручно разбираться в процессе построения программы из исходников в готовый к установке вид, чтобы не спотыкаться на вопросах менеджмента ПО.

В идеале (как математику требуется только бумага и карандаш) для обучения программированию требуется простейший текстовый редактор и командная строка для запуска компилятора с отладчиком.

А вот после изучения азов, когда они уже начинают превращаться в рутину и мешать творческому процессу, уже можно браться за IDE и изучать удобные инструменты разработки и сопровождения разрабатываемого ПО.
Visual Studio, как никак промышленный стандарт под win, все равно под ней придется работать, если под linux vim + make. Borland C бессмысленно, стандарты языка и С и С++ изменились довольно значительно, да никаких полезных навыков для современной работы не будет. Блокнот для извращенцев и любителей отладки printf-ом.
Да, да, мы уже тут.

g++ main.cpp -o main.elf
UFO just landed and posted this here
Практиков обучайте с использованием той среды, с которой планируется работать.
Для академического же обучения используйте блокнот.
UFO just landed and posted this here
Нам в универе говорили пользоваться Express студией
Если необходимо именно обучать и именно начинающих программистов, то просто необходим IDE, с удобными средствами отладки (чтобы новички могли посмотреть значения переменных, и сложных типов). И Visual C++ здесь вне конкуренции поскольку более мощного и быстрого отладчика просто нет. (CDT в разы более медленнее, при пошаговом исполнении программы)
Разработка же в текстовом редакторе потребует разъяснения таких понятий как единицы компиляции и компоновка, что уже выходит за рамки начального обучения.
Новичкам надо не в отладчике смотреть, когда они еще не понимают что смотреть и зачем, а отладочную печать освоить.
Отладчик вообще нужен очень редко. Лично я отладчик смотрю обычно только чтобы посмотреть, где вылетает по сегфолту.
И что в компиляции осваивать? То, что компилятор из исходного текста делает объектный файл, а потом все объектные файлы нужно связать в один? Вы преувеличиваете трудность освоения этого процесса порядка на два.
Людей, способных смоделировать все выполнение комплексной программы в голове и потому не нуждающихся в отладчике, не нужно обучать программированию, они сами разберутся.
Детали же процесса компиляции я не называл сложными, я лишь отметил что они выходят за рамки начального обучения.
Я понял, что Вы имеете в виду. Не согласен с Вами по сути.
С Visual Studio начинающие будут тратить время начального изучения на то, чтобы выучить, где какие кнопочки нажимать. Скажем первые два-три часа.
Аналогично, при работе с текстовым редактором за те же 2-3 часа они уже поймут кто и что компилирует, для чего компоновщик, как использовать отладочную печать.
Начинающие обычно пишут простые программы.
Отладочная печать гораздо удобнее отладчика как при написании простых, так и сложных программ. Отладчик нужен очень в небольшом количестве специфических случаев. Начинающим он нафиг не нужен.
На самом деле в Visual Studio достаточно выучить 2 кнопки. F5 — run, F10 — step over. После этого можно целый семестр учить синтаксис, структурное программирование, основы ООП итд итп.

Подход же к обучению и его программа будет зависеть от образовательного учреждения.
В профильном ВУЗе изучение процесса компиляции необходимо. В других случаях на нем не стоит останавливаться.
> В профильном ВУЗе изучение процесса компиляции необходимо.

Я только одного не пойму, что там изучать?
Sign up to leave a comment.

Articles