мм... пишу нижеследующее в невменяемом состоянии. Нафигатор по изучению любого языка программирования: Шаг 1 - Изучаем основные понятия и термины: Что такое компьютер (в общем)? Из каких компонентов состоит процессорный блок и какие роли они играют? Методы представления информации в компьютере? Что такое программа? Что такое ОС (Операционная система)? Кто такие прикладные и системные программы? Что такое ЯП (язык программирования)? Кто такой машинный язык? Кто такой низко-уровневый ЯП (aka язык-ассемблер)? Кто такой высоко-уровневый ЯП (aka ЯВУ)? Кто такая программа Компилятор (плюс что такое программа-ассемблер)? Кто такая программа Интерпретатор? Шаг 2 - Методы решения задач на компьютере: Что такое алгоритм (а кто такой Абу Абдулло Мухаммад ибн Мусо аль-Хорезми)? Что такое модель? Шаг 3 - Познаем один ЯВУ: Если вам понравился синтаксис паскаля то сливаем FreePascal, устанавливаем, ищем справочники по компилятору FP(должен быть в дистрибутиве), далее учебник по языку программирования Pascal. Если вам понравился синтаксис бейсика то сливаем FreeBasic, устанавливаем, ищем справочники по компилятору FB(должен быть в дистрибутиве), далее учебник по языку программирования Basic. Если вам понравился синтаксис си/си++ то сливаем msvc++ или digital mars c/c++ или open watcom c/c++, устанавливаем, ищем справочники по компилятору, далее учебник по языку программирования C/C++. Шаг 4 - Истина где-то рядом(только после того как подурачитесь с каким не будь ЯП): Берем Зубкова "Ассемблер под DOS-Windows-Unix" или что нибудь в этом роде, берем masm/tasm (эти два пакета программ по разработке собственных программ очень широко распространены). Кто такая программа Debugger? Кто такая программа Дизассемблер? Шаг 5 - Для чего и кого будем писать ПО (программное обеспечение): Выбираем платформу (т. е. операционную систему) Выбираем область будущих программ (прикладная или системная) Познаем систему в той мере которая была определена (или от и до, зависит только от вас) Не рекомендуются (для начала изучения программирования): различные RAD-средства, и баалистические технологии визуального кодинга (ака Visual Basic, (C/C++ с ATL, MFC, и прочие библиотеки затуманивания мозга ниофиту), Borland Delphi, Borlad C/C++ (хотя если слить только компилятор, без VCL - то можно юзать), .NET, Java, и прочие средства разработки у которых имеется ООП парадигма + байт-код + здоровенный Framework предусмотренный на все случаи жизни или хотябы на половину). Рекомендуется: Если вы выбрали Си/Си++, то рекомендую для начала изучить Си (К&Р), так думаю будет легче изучить Си++. Рекомендуемый мной отладчик для прикладных программ под Windows - OllyDbg, для системных программ - SoftIce который сейчас входит в пакет DriveStudio. Хотя SoftIce отлаживает и прикладной софт. Рекомендуемый мной дизассемблер - IDA. Шлепать консольные приложения с прогрессивным уровнем сложности (от простого Hello World, до более сложных программ, типа введите ваше имя, фамилию, отчество, скан-паспорта, пароль от акаунта webmoney, и полученные данные отправляете к себе на сервер ) Только представьте себе - работа с клавиатурой и консолью, плюс работа с сокетами (сетевыми розетками), алгоритм преобразования цветного изображения в черно-белое и конвертирования в png или zip сжатие bitmap'a, и реализация как клиента так и сервера. И вы уже хакир! Правда еще не кулХацкир, но между первой и второй промежуток не большой P. S. бред. Закрыто.
Мои первые проги шли в примерах к C++ Builder'у. Перелез на него с VB6, ибо задолбало городить ему DLL-ки на TASM32. Еще была тормозная VC 6.0++, вызывавшая полный отврат (формошлепства как такового не было, инсталл обгаживал всю винду). Ставил редко, чисто на покомпилять примеры, интересовали ActivеX контролы для васьки, однако маст-дайная сложность этой недотехнологии отбила всю охоту, юзать весь этот замороченый до нельзя отстой. Вобщем билдер. Удручало все. Тормоза компиляции, навороты в скобочках, непонятных константах и знаках припинания, немеряный размер ничего не делающих прог. Зато был отладчик, шагающий не по какойто псевдокодовой мутотени а по настоящим кодам асм'а (за одно это я готов был на всё). Кой как перепортировал, пару своих формошлепных прог с мерзопакосного VB васика.. Так и познакомился с Object Pascal, в связке с которым С++ билдер и крутился. И когда столкнулся с необходимостью использовать свои визуальные компоненты (благо борманы щедры на примеры), оказалось куда легче забацать их на pas-е. Ну и как то так, програмирование, перетекло в разборки c нюансами компиляния и доводку напильником того что мне не нравилось, что и побудило обгрейдить FAR colorer-ом, после чаво мне было уже не особо до гуевой IDE Вылазил разве что для более удобного передирания примеров c с/c++ на дельфе, ну или частичного портирования участков кода. Студию тож время от времени поюзывал, ибо разжился примерами DirectX SDK, сорцами Quake1, которые с некоторыми переделками, потом пахали в том же билдере. А так в кодинге под свои задачи (любые что придут в расширеное сознание), юзал в основном Far/Colorer и дельфе компиль децеце32, и все решалось и решаеться проще, быстрее, без лишнего нервоза. зы и да! практически никогда не читал help-ы и msdn-ы, доверял только провереному в компилянии и работе коду, из которого выдрать те или иные решения, порой радикально упрощая всю писанину со ста строк до... десятка.
Arthur +2 От себя еще допишу, что можно еще взглянуть на интерпретируемый Lua (lua.org). Он прост, мал, быстр, достаточно мощен, в нем есть объекты, наследование, операторы (реализовано не на С++ уровне, но +, -, =, > итд подменить можно), гц, работа со строками, хэши, массивы (срезов нет), его легко расширить или встроить. У него простые сорцы и можно будет впоследствии наклонить в нужную сторону. Синтаксис достаточно сильно похож на паскаль (нет нагнетания бегинов и ':'), что я считаю преимуществом перед питоном (перл поначалу учить запрещено категорически - сорвет крышу). У него очень хорошая дока. Кроме того на оригинальном сайте свободно лежит первое издание книги иерусалимовского по нему, если с английским норм - очень рекомендую. По ней и язык выучите и прогить научитесь за недельку - две. Потом на более серьезный ланг (пас) перейти будет легко. К нему куча либ, пакетов, расширений (см на сайте). Язык развивается, регулярно появляются новые версии, патчи. Сорцы компелятся под кучу платформ. таково мое имхо.
Arthur FreePascal же консольный компилятор, если не ошибаюсь к нему нет ИДЕ (Lazarus не в счет), стало быть лишаемся множества полезных вещей, например source level отладчик...
K10 IDE там есть по типу ТурбоПаскаля, но весьма глючная и для работы... паршивая, так скажем. Даже если делаешь чисто консольное приложение. Лично я использую в основном Дельфи, но стараюсь обеспечить, чтобы исходники нормально компилировались и во ФриПаскале. Как правило, это сделать не слишком сложно, чуть ли не основное -- это всегда ставить ^ там, где, это положено по виртовскому синтаксису (Борланд несколько это дело упростил: если компилятор способен сам понять, что нужно выполнять разыменование указателя, ^ не нужен).
Arthur Ну да, неплохо. Конечно, многовато написал. Я тоже недавно что-то подобное составлял, но немного покороче. Так сказать, мое видение того, как надо обучать в вузах по IT-специальностям. 1. Дискретная математика, мат. логика, булева алгебра, теория автоматов и т.д. Основы алгоритмов и структур данных. 2. Архитектура и организация ЭВМ, здесь же немного ассемблера под любую, пусть даже под устаревшую платформу. При этом на ассемблере реализовывать практически то, что изучалось в пункте 1. 3. Изучение более сложных алгоритмов и структур данных и одновременно чистого С, т.е. без ООП, для закрепления изучаемых алгоритмов на практике. 4. Теория операционных систем + опять же практика на чистом C по работе с потоками, процессами и прочими вещами, относящимся к теме. Под любую ОС, в принципе. Хотя лучше под Linux или FreeBSD. 5. ООП на C++. 6. Формальные языки и грамматики. Обязательно с практикой, поначалу можно с использованием flex и yacc. 7. А дальше уже все то, что относится непосредственно к конкретной специальности.
K10 Зачем IDE? Максимум простой редактор с поддержкой подсветки синтаксиса + bat/make. Когда уже все это осознаешь, поймешь и переваришь, потом пожалуйста хоть IDE, хоть Binary Editor. Нужно с самого начала научиться отделять компилятор от интегрированной среды разработки, понимать процесс компиляции и компоновки, и желательно ознакомиться со всеми ключами самого компилятора. inviZ В вузах конечно роль немалую играет преподаватель. Я же попытался выделить основные термины и понятия, чтобы можно было самостоятельно начать осваивать какой нибудь язык программирования. На сколько это правильно, честно говоря я сам не знаю Это лишь предположение возникшее исходя из собственного горького опыта.
ага, как на модулях: конпилер и редактор где то на сервере, а ты по телнету к нему и набиваешь edit main.cpp, в удобном насколько это возможно телнет-редакторе, потом conpile link, полное пэ! я на таком кодил - жуть.
Comer_ Ну это как бы не дело, учиться программированию, когда компилятор на сервере, а не у вас на локалке