Программирование в Linux
Привет ребята!
Вот о чем хочу Вас спросить - каждый из Вас когда то пришел в этот прекрасный мир под названием Linux, и, безусловно, каждый (ну или почти каждый) сталкивался с задачей написания какой либо программы/скрипта и т.п.
Не думаю, что все обретшие чудо Linux - сразу могли это делать, (я имею ввиду писать программы и программки), так вот - хотелось бы услышать с чего и как Вы это начинали? какие книги читали, какие сайты посещали, какие форумы засоряли бесконечными вопросами типа "а как то а как сё?" и тому подобную информацию. Т.е. мне бы хотелось, чтобы Вы поделились опытом со мной (да, думаю, это будет интересно не только мне, но и куче других пользователей).
Мне интересны любые отклики, как гневные "RTFM!" так и более дружелюбное и приятное общение.
Хочу сказать немного о себе в рамках данного вопроса -во-первых, пожалуйста не думайте, что я полный чайник и мне хочется враз и всему научится - нет, это не так. Кое что я умею, (это конечно просто капли из бесконечного океана знаний), но тем не менее я обладаю зачаточными знаниями в Делфи, Mysql и PHP, достаточными для того, чтобы зарабатывать на жизнь, но.. я влюбился в Linux , а там , как известно без С никуда. т.е. мои дальнейшие шаги должны касатся приобретения знаний в этом области.
Да и вобще - не люблю застой, и именно поэтому постоянно пытаюсь уйти от ненависной винды,- сначала ASP потом замучившись с постоянными непонятками абсолютно новой ОС и отсутсвием неких библиотек/файлов и т.п. требовавшихся разным программам, что я пытался ставить из исходников - я попробовал логичность и стойность FreeBSD - система портов меня просто поразила, но.. хотелось чего то еще, и вот - Gentoo - думаю это то что я искал, и, т.к. я уже определился - нужно наконец-то браться за программирование в новой среде, ибо как я не мыслю жизни в застое , так и не знаю как жить без программирования, т.к. тогда это просто тупое юзание компа, что я жутко не люблю и не очень понимаю.
Вот что меня натолкнуло на создание этого топика. надеюсь это будет интересно еще линуксоидам (как гуру так и начинающим, и самым начинающим - вроде меня).
Вобщем - жду Ваших советов и мыслей - с чего начать.
P.S. KDevelop уже поставил :)
- Для комментирования войдите или зарегистрируйтесь
очень помогает книга
Самый первый скрипт, мне помогла написать книга, к сожлению сейчас я ей найти не смог. Это была книга общего характера о том что такое линукс и с чем его едят. Потом, когда узнал команду gcc -o и научился программировать на С всё пошло легче
bash
сам я новичёк как и ты. Скрипты начел писать почти сразу как подсел на Линукс. Набирай man bash и вперёд.
Стал дружить с гуглом. Почти всё там нахожу чё надо. На сишку тебе будет трудно перепрыгнуть после Делфи. Посебе знаю. Немного подругому пишеться :-)
_________________
ПЕЙ ПИВО ВСЕГДА И ВЕЗДЕ.
Re: bash
ну это понятно, но выбор то не велик :)
ясно. а вот насчет С - может помните, какую литературу использовали в качестве учебной?
что то специфическое для линукса или классику типа ричи, кернигана?
Конечно
Конечно классику, специфическую литературу без нее не поймешь, а писать простые приложения можно не зная особенных функций юниксовых систем. В программировании на С главное научиться писать красивый правильный код. А для примеров особых функций не потребуется, printf он везде printf, scanf тоже.
Потом уже освоишь особенности программирования в линуксе.
PS А про делфи. А представляете каково писать на паскале после 4х лет изучения С?
сперва
сперва "Программирование под Linux Профессиональный подход" Марк Митчел, Джеффри, Оулдем Алекс Самюэдь (О'Рейли), потом "Взаимодействие процессов" Уильям Стивенс, а таже "Фундаментальные алгоритмы на С++" Роберт Седжвик, и справочник по С++ (stl)
Или вот это на
Или вот это на языке оригинала:
http://alexkbs.livejournal.com/172340.html
Соберетесь покупать стукните, можно в складчину купить.
Согласен.
Согласен. Изучение Линукса лучше всего начинать с bash. Полистайте на досуге: http://gazette.lrn.ru/rus/articles/abs-guide/index.html
Согласен
Полностью согласен с предыдущим постом.
Так же советую заглянуть на http://ru.wikibooks.org/wiki/LOR-FAQ-Development
Я тоже начал с
Я тоже начал с bash. Потом Python. Ну, C... Assembler - отдельный разговор. На самом деле, кажется, я понял, что все равно на чем кодить по большому счету.
Кстати, кодить понравилось в vim, а не kdevelop'е каком-нить. 7-й вим особенно приятен
Ну конечно есть
Ну конечно есть навыки, которые не меняются от языка. И таких навыков больше. Но какие-то языки позволяют ракрыться полностью, а какие-то нет. С позволяет делать и контролировать почти все, что угодно. Но как следствие, к этому надо относиться осторожно, внимательно.
Есть языки менее требовательные, паскаль например. Но как я ругался, пока писал на нем учебные программы, очень будный язык, не дает развернуться.
Мне тоже нравится!
Начинал конечно с bash, мучал perl и php. Потом написал скриатик в Python. Сейчас изучаю с/c++.
Из книг думаю пойдет все, что не заточено чисто под win ( win32, MFC или что там еще ).
Потом google и очень позновательны man 2, 3
Может быть нескольео страниц в man, с одни и темже названием ( например инфа к системной роге stat, или одноименная ф-ция ). Задавая цыфру перед названием страници, выбираешь из какого раздела тебе нужна страница. Ключ -a покажет по очереди все страницы с таким названием, а -k покажет названия страниц, в которых встречается данное слово.
Пропищи также в USE="doc". Правда немного нервирует, то, что для некоторыж библиотек кроме описания API и примеров ничего больще нет, но и в это тоже можно разобраться.
_________________
Linux
...because life is too short for reboots
Изучение
Изучение программирования я начал на вильнюсовском бэйсике под ОС Демос. А сейчас используюю... C, C++, Perl, PHP, Bash, etc, для решения своих задач.
Рекомендую изучать в первую очередь C и C++, из всех книг по данному вопросу принято считать обязательными две:
1. Денис Ричи и Брайн Керниган "Язык С", превосходная книга, лёгкая для чтения, действительно объясняющая многие вопрос, такие как почему C++ а не ++C.
2. Бьярн Страустрап "Язык С++" 3-е издание, книга от создателя C++, нудная, тяжелая для чтения, но если купишь её и осилишь, то ни за что не пожалеешь.
P.S. Что получится в результате:
C++ - C
?
Это собственно
Это собственно то, с чего я начинал:
1. Керниган, Ричи "Язык программирования Си" - классика, обязательно к прочтению!
2. Теренс Чан "Системное программирование на С++ в UNIX" - вещь, бумажный вариант можно купить только у букинистов, но есть отсканеный (по нему и учился), если дадите место куда выложить, залью.
"системное программирование на С++
Вышлите, пожалуйсто. Крутая книга, читал, но в цифровиде под рукой будет. Пожалуйсто, залейте на
, заранее благодарен.
PS. Желательно, как можно сильнее сжать(rar,gz,bz2)
А можно
А можно еще?
Действительно
Действительно сильный прогресс в программировании на с/с++ у меня был, когда я решил модифицировать некоторые программы для своих нужд. В Gentoo получить исходники просто. Труднее в них разобраться. Причём это не абстрактные примеры из книг, а то, что тебе действительно любопытно и написано, часто, высокопрофессионально.
Толстые книги по программированию, по-моему мнению, для фанатов программирования как такового и испольльзую их только в качестве справочника. Google тоже не помешает.
Как это не забавно, но я начинал с tcsh. По большому счёту существенной разницы в плане функциональности по сравнению с bash нет. Не забудте заглянуть на gnu.org Там, как это не удивительно, много хорошей документации. in english правда.
Удачи!
Спасибо, ребята.
Прежде всего - спасибо всем кто откликнулся и поделился опытом. лично для меня это было интересно. по крайней мере я немного определился в целях, задачах и приоритетах, а именно:
1) нужна идея какой нибудь программы, дабы на практике усваивать приобретенные по книгам знания. я выбрал программку для расчета биоритмов человека.
естественно выполнять упражнения из книг и сохранять их :)
2) сначала буду разбиратся с консольным С (если можно так сказать), а потом уже буду приступать к Qt и графическим добавкам.
почему не GTK?
по нескольким причинам:
3) и паралельно, так скажем - в рабочем порядке, буду разбираться с bash - я так понял это неимоверная просто вещь..
а) насколько я понял Qt получше задокументирован, чем GTK
б) на нем написанно кде, а именно кде я и пользуюсь (почему не гном - отдельный разговор, не здесь об этом писать) - соответсвенно будущие приложения будут ориентированны именно на кде.
вот такой план.
теперь отвечу на сообщения, с некоторыми комментариями и новыми наводящими вопросами.
еще раз спасибо всем!
это уже нашел, скачал - сижу пытаюсь читать.
может кто подскажет где скачать? пусть в библиотеке моей будет до лучших времен..
это пока что мне не светит.. и именно из за -
а вот за это - отдельное спасибо! :)
ЭТО ПРОСТО ЧУДО , А НЕ САЙТ! СТОЛЬКО ПОЛЕЗНОГО! СПАСИБО!
а нет ли где полного варианта , пригодно для распечатки? по указанной там ссылке - не качается что-то.. :(
я так понимаю - это все были бумажные вариатны? т.к. я не нашел где это можно скачать.
P.S. может на форуме создать что-то типа раздела "Программирование/Скрипты" или что то подобное? все таки вещь нужная, важная и полезная имхо?
и туду писать об этом, там можно будет меняться ссылками на книги (внимание администрация, я не говорю о незаконных ссылках и копирайтах, из за которых у форума могут быть проблемы, все такое обсуждается иначе :)) и интересные сайты по этой теме.
Удачи всем!
На
www.linuxshop.ru
Неплохая подборка по мейкам яккам и бизонам. Для си начать читать про библиотеку глибс. Особое внимание на процессы,сигналы, каналы и все такое. После прочтения становится ясно как оно все работает, и чего делать. Куча рабочих примеров.
Справочников по си си++ в нете валом. В той же библиотеке Машкова.
У каждой приличной гуевой либы есть своя тузла для визуал проектирования.
designer - для qt
glade (или glade2)для gtk
wxglade для wxgtk
Все как у людей. Кидаешь контрол плоучаеш код. Тараканы тоже везде свои. Ну а для правки - отладки имхо емакс+gdb (некоторые советуют вим, впрочем это уже холивар).
Есть еще eclipse. Молодежь хвалит. Поставил сегодня на пробу. Тормозит - вилы. Фишек пока не нашел :)
Перед
Перед изучением QT хорошо бы вникнуть хотя бы в основы ООП, например изучить С++. Могу посоветовать Г. Шилдт "Самоучитель С++", хорошая понятная книга, с примерами и упражнениями. Для беглого изучения и понятия основ самое то.
На мой взгляд
На мой взгляд очень достойная книга Андрея Робачевского "ОС UNIX", рассматриваются почти все аспекты System V