Вот надумала серьйозно заняться программированием под никсы... но для начала хочется что-нить по проще начать учить... Пока мой выбор падает на С++, но возможно есть ещё какие нить альтернативы?
boffin: Программирование под Linux
я все делаю перлом.
[quote=boffin]Вот надумала серьйозно заняться программированием под никсы... но для начала хочется что-нить по проще начать учить... Пока мой выбор падает на С++, но возможно есть ещё какие нить альтернативы?[/quote]
Смотря для каких задач. Если просто понять, то наверное все равно какой язык. Если в дальнейшем знания применять на практике, то иногда например знание того же bash'a бывает более необходимым, чем знание С. Но для серьезных задач в юнихах однозначно С, так что выбор твой правильный.
Народ, не путайте программирование со скриптованием, а?
[b]boffin [/b]С++ изучай. Все остальное на него похоже. В качестве среды разработки - mc для каких-ть мелочей типа hello word, kdevelop для более серьезных проектов. Если в делфи программировала - то тебе прямой путь в kylix. Обязательно кстати изучай и SQL - без него щас никуда не денежся...
<span class='smallblacktext'>[ Редактирование Thu Jun 09 2005, 08:16AM ]</span>
Я бы не был таким оптимистичным...ты в начале С заботай а потом будешь в С++ лезть..
[quote=antoxa]Я бы не был таким оптимистичным...ты в начале С заботай а потом будешь в С++ лезть..[/quote] Слова человека не программировавшего по всей видимости либо на С либо на С++. Это практически 2 разных языка. Синтаксис одинаков почти (на 99,(9)%) но идеология разная. На С++ С-шная программа может еще и соберется, наоборот никак.
Так что не слушай никого и изучай С++ - меньше головных болей потом будет с переходом с С на С++. ~:o(
[quote=Sheridan]Слова человека не программировавшего по всей видимости либо на С либо на С++. Это практически 2 разных языка. Синтаксис одинаков почти (на 99,(9)%) но идеология разная. На С++ С-шная программа может еще и соберется, наоборот никак.[/quote]
Не совсем согласен.
Идеология не такая уж и разная. Если не лезть в дебри древних реализаций С (типа K&R), а сразу начать разбираться с ANSI C - вполне себе неплохой старт. Те же прототипы функций, синтаксис, базовые конструкции. Нет классов, конструкторов-деструкторов, перегрузки операторов и функций - но при при начале изучения языка это не беда, а даже очень хорошо - голова не забивается лишним.
Что касается "соберётся - не соберётся" - не надо быть таким категоричным. С точки зрения компилятора/линкера это вообще разные языки, хотя и с похожим синтаксисом. Но вот текст программы можно написать как угодно - и сишная программа под С++ не соберётся (достаточно прототип функции перед её использованием не указать), и плюсовая под сишным компилятором соберётся на ура (если не использует всяких iostream, написана без классов и шаблонов и т.п.).
[quote=Sheridan]Так что не слушай никого и изучай С++ - меньше головных болей потом будет с переходом с С на С++. ~:o( [/quote]
При правильном подходе никаких головных болей не будет.
Поясню.
В нормальном современном учебнике по С почти каждая конструкция языка сопровождается комментарием: "и в С++ точно так же" (или: "в С++ это чуток по-другому", или: "в С++ это не прокатит"). Так вот, если человек не совсем ещё крышей поехал, он будет разбираться только в том, что ему пригодится (в данном случае - для последующего изучения С++). Остальное - примет к сведению.
Далее - берётся учебник по С++ и начинают изучаться ОТЛИЧИЯ и новые фенечки.
В результате имеем довольно плавную кривую обучения, плюс человек учится сам классифицировать полученные сведения о языке на нужные и ненужные, полезные и бесполезные ему в работе.
Что касается учебников по С++ - я их пересмотрел достаточно. И каждый раз у меня возникал только один вопрос - они что, действительно думают, что неподготовленный человек будет на втором занятии уже строить объекты и изучать полиморфизм? %-6 Да не будет такого... Сначала пусть в основах разберётся, в функциональном стиле программирования, и уже когда не будет в этом "плавать" - можно переходить на С++.
В общем, о чём это я?
Если сразу браться за С++ - можно утонуть в дебрях языка, т.к. наворочано в нём слишком много для повседневной работы. Если начать с изучения "правильного" С, а потом перейти к изучения С++ - знания будут гораздо систематичнее и прочнее (да и учебники по С, однако, потолковее написаны, есть с чего начинать).
Да я собсна программирую на С++ но на уровне чайника, профессионально на Action Script и немного java. Но если я буду писать скрипты (собсна эт основная цель) на жабе, то во многом буду проигрывать ибо это всего -лишь интерпретатор. Но.. пожалуй С++ действительно рулит на фоне остальных.. но, а что же с kylix? Может с него проще начать?
boffin: java или javascript? Вообще-то любой программист знает, что это совершенно разные вещи. И на Java, кстати, скрипты не пишут. На ней пишут программы, апплеты, библиотеки. И хотя там и правда интерпретатир байт-кода, но производительность его позволяет работать, например, биллингу Мегафона и других сотовых операторов. Хотя бы примерно представляете, какая там нагрузка? Правда, это все вертится на Sparc, а не на x86.
Читайте книгу Эрика Реймонда "The Art of UNIX Programming":
http://www.catb.org/~esr/writings/taoup/html/
Там все очень хорошо расписано.
Боже мой!!! Боже Мой.
Куда катится мир!!!
Вы еще расскажите, что надо бейсик проштудировать для подготовки к С.
Не путайте, батенька Zmey, принципы описания мира со средствами описания его.
Понять и запомнить С конструкции можно за пару часов, С++ за пару дней и при этом оказаться не в состоянии реализовать простейшие мысли на этих языках. Вывод! учитесь мыслить! (Причем на первом занятии) Тогда не придется вадавать такие перлы
[quote=Zmey]
и плюсовая под сишным компилятором соберётся на ура (если не использует всяких iostream, написана без классов и шаблонов и т.п.).[/quote]
C++ программа без всяких iostream, написана без классов и шаблонов и т.п. это программа написанная на С.
Хех
<span class='smallblacktext'>[ Редактирование Sat Jun 11 2005, 10:16AM ]</span>
Вероятно Zmey имел ввиду совместимость компиляторов и кода. Код написанный на С, будет понят компилятором С++, но не наоборот. Хотя я лет 10 не встречал компиляторов С/С++, которые бы не были универсальными.
Как было сказано выше, учитесь думать. Главное - алгоритм, на чём его реализовывать - дело десятое.
[quote=kalpa]Понять и запомнить С конструкции можно за пару часов, С++ за пару дней и при этом оказаться не в состоянии реализовать простейшие мысли на этих языках. Вывод! учитесь мыслить![/quote]
Вот ты сам себе на свои божемои и ответил.
Если бы ты прочитал мой опус внимательно, ты бы понял, что там высказана в точности та же мысль, но другими словами.
А вот вывод из сказанного я сделал немножко другой.
Ты рекомендуешь "учиться мыслить", но не уточняешь, КАК ИМЕННО. :) Я - рекомендую не ломать голову, а начать с малого - с изучения С, т.к. учебники по С написаны гораздо толковее (если учебник по С++ объёмом меньше 200 страниц - это просто справочник по языку, а если больше - то это просто справочник по языку плюс инструкции по работе в конкретной среде разработки).
И, кстати, в учебниках по С много времени посвящено закавыкам языка (указатели, ASCIIZ строки). В учебниках по С++ такие темы разбираются очень вскользь (надо же успеть вывалить на голову читателю такие полезные для него вещи, как перегрузка операторов, например). :)
[quote=kalpa]C++ программа без всяких iostream, написана без классов и шаблонов и т.п. это программа написанная на С.[/quote]
Если продолжить твою мысль дальше, то программа, написанная на С++ - это не весь файл программы, а только те строчки, где используются объекты. :)
Если при написании программы программист писал её на С++ - это программа, написанная на С++. То, что её сможет съесть сишный компилятор - побочный эффект.
Аналогично, если программист писал программу на С, но её может собрать компилятор С++ - это тоже побочный эффект.
Если возник вопрос, на каком языке программист думал, что пишет - рекомендую посмотреть на расширение файлов с исходником. Если .c - это программа на С, если .cc, .cpp или .C - это программа на С++. :)
[quote=Vitls]Хотя я лет 10 не встречал компиляторов С/С++, которые бы не были универсальными.[/quote]
На самом деле это не сами компиляторы универсальные, это их просто "упаковывают" обычно вместе в один дружный пакет. В том же GCC сделано два отдельных компилятора для С и С++ (а в новых версиях - ещё и для явы с фортраном отдельные компиляторы). Сам gcc просто по расширению выбирает нужный цомпайлер и запускает его с нужными опциями.
[quote=Vitls]Главное - алгоритм, на чём его реализовывать - дело десятое.[/quote]
Язык С (и С++) устроен так, что на нём можно заплутать в трёх соснах. В учебниках по С есть множество примеров, каким образом можно проще всего сделать то-то и то-то (готовые паттерны). А это весьма помогает сориентироваться начинающему. В учебниках по С++ ввиду развесистости языка примеров или мало (не до них, изложить бы основы) или слишком много специфичных (ну, валяется у меня суперкнига по изучению С++ на примере VC 6.0 - толку-то, там полкниги про MFC и всего несколько главок про собственно язык).
Собственно, о чём спорим-то? Вот возьмём простой пример: указатели, которые pointer. В любом приличном учебнике по С им посвящена как минимум глава, а иногда и не одна. В учебниках по С++ (по крайней мере в тех, которые я видел) указатели описаны "в общем и целом", да ещё и с увязкой со ссылками (которые reference). Т.е. что мы видим? "Указатель - это такой неудобный указатель на объект, а ссылка - это такой удобный указатель, с которым можно работать как с не-указателем". Зашибись как всё это понятно начинающему...
Господа, читайте Hacker-HOWTO. C/C++ в качестве первого языка не годятся. Учите Python.
[b]Nick[/b]:
[quote]java или javascript? Вообще-то любой программист знает, что это совершенно разные вещи.[/quote]
А что, в моём ответе было сказанно javascript? =))) Или Вам так того хотелось? Я всегда говорю то, что есть на самом деле.
Пасиб огромное всем за советы и за участие в обсуждении этого вопроса. Я пожалуй остановлюсь пока на Python ))
А там видно будет.
[quote=Nick]C/C++ в качестве первого языка не годятся. Учите Python.[/quote]
Речь не шла о первом языке. И о выборе языка тоже. :) Посему отвечали на заданный вопрос.
ЗЫ: И почему именно python, а не perl, php или bash? :)
А кто может выложить ссылки на толковые (чтобы как писал Zmey, были описаны не только всякие функции и синтаксис, но и много примеров с пояснениями, вообщем для новичка) буквари по тому же Python, Bash, C.
[quote=Bruin]А кто может выложить ссылки на толковые (чтобы как писал Zmey, были описаны не только всякие функции и синтаксис, но и много примеров с пояснениями, вообщем для новичка) буквари по тому же Python, Bash, C.[/quote]
По С/С++ (по впечатлениям - вполне себе сойдёт туториал): http://www.cyberdiem.com/vin/learn.html
А вообще - погугли на предмет {название языка} tutorial - найдётся много интересного. :)
Вот ссылки, кому интересно, о Питоне:
http://www.citforum.ru/programming/python/index.shtml
http://www.ozon.ru/context/book_detail/id/115501/
http://www.rushelp.com/68/
http://citforum.urc.ac.ru/programming/python.shtml
// всё на русском...
По С я бы посоветовал
Б. Кернинган, Д. Ритчи - "Язык Си"
А вообще о "правильном программировании":
Б. Керниган, Р. Пайк "Практика программирования"
--
"Язык Си" где то видел в электронном виде....погугли.
Последние комментарии
10 лет 1 неделя назад
10 лет 20 недель назад
10 лет 30 недель назад
10 лет 31 неделя назад
11 лет 20 недель назад
11 лет 20 недель назад
11 лет 20 недель назад
11 лет 21 неделя назад
11 лет 21 неделя назад
11 лет 22 недели назад