boffin: Программирование под Linux

20 сообщений / 0 new
Последнее сообщение
Гость
boffin: Программирование под Linux

Вот надумала серьйозно заняться программированием под никсы... но для начала хочется что-нить по проще начать учить... Пока мой выбор падает на С++, но возможно есть ещё какие нить альтернативы?

wersa (не проверено)

я все делаю перлом.

edge (не проверено)

[quote=boffin]Вот надумала серьйозно заняться программированием под никсы... но для начала хочется что-нить по проще начать учить... Пока мой выбор падает на С++, но возможно есть ещё какие нить альтернативы?[/quote]

Смотря для каких задач. Если просто понять, то наверное все равно какой язык. Если в дальнейшем знания применять на практике, то иногда например знание того же bash'a бывает более необходимым, чем знание С. Но для серьезных задач в юнихах однозначно С, так что выбор твой правильный.

Sheridan
Аватар пользователя Sheridan
Не в сети
Зарегистрирован: 20/09/2010

Народ, не путайте программирование со скриптованием, а?
[b]boffin [/b]С++ изучай. Все остальное на него похоже. В качестве среды разработки - mc для каких-ть мелочей типа hello word, kdevelop для более серьезных проектов. Если в делфи программировала - то тебе прямой путь в kylix. Обязательно кстати изучай и SQL - без него щас никуда не денежся...
<span class='smallblacktext'>[ Редактирование Thu Jun 09 2005, 08:16AM ]</span>

antoxa (не проверено)

Я бы не был таким оптимистичным...ты в начале С заботай а потом будешь в С++ лезть..

Sheridan
Аватар пользователя Sheridan
Не в сети
Зарегистрирован: 20/09/2010

[quote=antoxa]Я бы не был таким оптимистичным...ты в начале С заботай а потом будешь в С++ лезть..[/quote] Слова человека не программировавшего по всей видимости либо на С либо на С++. Это практически 2 разных языка. Синтаксис одинаков почти (на 99,(9)%) но идеология разная. На С++ С-шная программа может еще и соберется, наоборот никак.
Так что не слушай никого и изучай С++ - меньше головных болей потом будет с переходом с С на С++. ~:o(

Zmey (не проверено)

[quote=Sheridan]Слова человека не программировавшего по всей видимости либо на С либо на С++. Это практически 2 разных языка. Синтаксис одинаков почти (на 99,(9)%) но идеология разная. На С++ С-шная программа может еще и соберется, наоборот никак.[/quote]
Не совсем согласен.
Идеология не такая уж и разная. Если не лезть в дебри древних реализаций С (типа K&R), а сразу начать разбираться с ANSI C - вполне себе неплохой старт. Те же прототипы функций, синтаксис, базовые конструкции. Нет классов, конструкторов-деструкторов, перегрузки операторов и функций - но при при начале изучения языка это не беда, а даже очень хорошо - голова не забивается лишним.

Что касается "соберётся - не соберётся" - не надо быть таким категоричным. С точки зрения компилятора/линкера это вообще разные языки, хотя и с похожим синтаксисом. Но вот текст программы можно написать как угодно - и сишная программа под С++ не соберётся (достаточно прототип функции перед её использованием не указать), и плюсовая под сишным компилятором соберётся на ура (если не использует всяких iostream, написана без классов и шаблонов и т.п.).

[quote=Sheridan]Так что не слушай никого и изучай С++ - меньше головных болей потом будет с переходом с С на С++. ~:o( [/quote]
При правильном подходе никаких головных болей не будет.
Поясню.
В нормальном современном учебнике по С почти каждая конструкция языка сопровождается комментарием: "и в С++ точно так же" (или: "в С++ это чуток по-другому", или: "в С++ это не прокатит"). Так вот, если человек не совсем ещё крышей поехал, он будет разбираться только в том, что ему пригодится (в данном случае - для последующего изучения С++). Остальное - примет к сведению.
Далее - берётся учебник по С++ и начинают изучаться ОТЛИЧИЯ и новые фенечки.
В результате имеем довольно плавную кривую обучения, плюс человек учится сам классифицировать полученные сведения о языке на нужные и ненужные, полезные и бесполезные ему в работе.
Что касается учебников по С++ - я их пересмотрел достаточно. И каждый раз у меня возникал только один вопрос - они что, действительно думают, что неподготовленный человек будет на втором занятии уже строить объекты и изучать полиморфизм? %-6 Да не будет такого... Сначала пусть в основах разберётся, в функциональном стиле программирования, и уже когда не будет в этом "плавать" - можно переходить на С++.
В общем, о чём это я?
Если сразу браться за С++ - можно утонуть в дебрях языка, т.к. наворочано в нём слишком много для повседневной работы. Если начать с изучения "правильного" С, а потом перейти к изучения С++ - знания будут гораздо систематичнее и прочнее (да и учебники по С, однако, потолковее написаны, есть с чего начинать).

boffin (не проверено)

Да я собсна программирую на С++ но на уровне чайника, профессионально на Action Script и немного java. Но если я буду писать скрипты (собсна эт основная цель) на жабе, то во многом буду проигрывать ибо это всего -лишь интерпретатор. Но.. пожалуй С++ действительно рулит на фоне остальных.. но, а что же с kylix? Может с него проще начать?

Nick
Не в сети
Зарегистрирован: 20/09/2010

boffin: java или javascript? Вообще-то любой программист знает, что это совершенно разные вещи. И на Java, кстати, скрипты не пишут. На ней пишут программы, апплеты, библиотеки. И хотя там и правда интерпретатир байт-кода, но производительность его позволяет работать, например, биллингу Мегафона и других сотовых операторов. Хотя бы примерно представляете, какая там нагрузка? Правда, это все вертится на Sparc, а не на x86.

Читайте книгу Эрика Реймонда "The Art of UNIX Programming":

http://www.catb.org/~esr/writings/taoup/html/

Там все очень хорошо расписано.

kalpa
Аватар пользователя kalpa
Не в сети
Зарегистрирован: 20/09/2010

Боже мой!!! Боже Мой.
Куда катится мир!!!
Вы еще расскажите, что надо бейсик проштудировать для подготовки к С.
Не путайте, батенька Zmey, принципы описания мира со средствами описания его.
Понять и запомнить С конструкции можно за пару часов, С++ за пару дней и при этом оказаться не в состоянии реализовать простейшие мысли на этих языках. Вывод! учитесь мыслить! (Причем на первом занятии) Тогда не придется вадавать такие перлы
[quote=Zmey]
и плюсовая под сишным компилятором соберётся на ура (если не использует всяких iostream, написана без классов и шаблонов и т.п.).[/quote]

C++ программа без всяких iostream, написана без классов и шаблонов и т.п. это программа написанная на С.
Хех

<span class='smallblacktext'>[ Редактирование Sat Jun 11 2005, 10:16AM ]</span>

Vitls
Аватар пользователя Vitls
Не в сети
Зарегистрирован: 21/09/2010

Вероятно Zmey имел ввиду совместимость компиляторов и кода. Код написанный на С, будет понят компилятором С++, но не наоборот. Хотя я лет 10 не встречал компиляторов С/С++, которые бы не были универсальными.
Как было сказано выше, учитесь думать. Главное - алгоритм, на чём его реализовывать - дело десятое.

Дело не в том как болезнь вылечить.
Дело в том как других заразить.

Zmey (не проверено)

[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). Т.е. что мы видим? "Указатель - это такой неудобный указатель на объект, а ссылка - это такой удобный указатель, с которым можно работать как с не-указателем". Зашибись как всё это понятно начинающему...

Nick
Не в сети
Зарегистрирован: 20/09/2010

Господа, читайте Hacker-HOWTO. C/C++ в качестве первого языка не годятся. Учите Python.

boffin (не проверено)

[b]Nick[/b]:

[quote]java или javascript? Вообще-то любой программист знает, что это совершенно разные вещи.[/quote]

А что, в моём ответе было сказанно javascript? =))) Или Вам так того хотелось? Я всегда говорю то, что есть на самом деле.

boffin (не проверено)

Пасиб огромное всем за советы и за участие в обсуждении этого вопроса. Я пожалуй остановлюсь пока на Python ))
А там видно будет.

Zmey (не проверено)

[quote=Nick]C/C++ в качестве первого языка не годятся. Учите Python.[/quote]
Речь не шла о первом языке. И о выборе языка тоже. :) Посему отвечали на заданный вопрос.

ЗЫ: И почему именно python, а не perl, php или bash? :)

Bruin (не проверено)

А кто может выложить ссылки на толковые (чтобы как писал Zmey, были описаны не только всякие функции и синтаксис, но и много примеров с пояснениями, вообщем для новичка) буквари по тому же Python, Bash, C.

Zmey (не проверено)

[quote=Bruin]А кто может выложить ссылки на толковые (чтобы как писал Zmey, были описаны не только всякие функции и синтаксис, но и много примеров с пояснениями, вообщем для новичка) буквари по тому же Python, Bash, C.[/quote]
По С/С++ (по впечатлениям - вполне себе сойдёт туториал): http://www.cyberdiem.com/vin/learn.html

А вообще - погугли на предмет {название языка} tutorial - найдётся много интересного. :)

boffin (не проверено)

Вот ссылки, кому интересно, о Питоне:

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

// всё на русском...

sarel (не проверено)

По С я бы посоветовал
Б. Кернинган, Д. Ритчи - "Язык Си"

А вообще о "правильном программировании":
Б. Керниган, Р. Пайк "Практика программирования"
--
"Язык Си" где то видел в электронном виде....погугли.

RSS-материал