Форум русскоязычного сообщества Ubuntu


Хотите сделать посильный вклад в развитие Ubuntu и русскоязычного сообщества?
Помогите нам с документацией!

Автор Тема: Язык С, с чего начнём?  (Прочитано 5918 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Nikki1993

  • Автор темы
  • Заслуженный пользователь
  • Почётный модератор
  • Старожил
  • *
  • Сообщений: 3261
  • Owner of Dell XPS 13 Developer Edition :D
    • Просмотр профиля
Язык С, с чего начнём?
« : 16 Апреля 2012, 21:36:04 »
Добрый вечер, уважаемые форумчане. Определился я с языком программирование для изучения (исходя из задач и целей, которые я себе поставил) и выбор мой пал на "С".
По гуглив на тему, какие книги рекомендуют к прочтению, я заметил что практически все советую
Керниган и Ритчи язык программирования С http://www.ozon.ru/context/detail/id/2480925/
Все бы ничего, да только почитав комментарии и отзывы пользователей, пишут, что не очень рекомендуется для изучения с 0.
Это так или же можно брать книгу для изучения с самого начала(при условии, что язык "С" я никогда не изучал до этого, в данный момент изучаю только Java в своем университете)?
Если же нет, какие книги вы посоветуете для изучения язык "С" с 0.
Я заранее благодарен за все ссылки, комментарии и наводки для изучения языка.
First i was like :0 Then i was like :D But now i am like(╯°□°)╯︵ ┻━┻
http://www.abload.de/img/banner_505uxa.png

Оффлайн yorik1984

  • Заслуженный пользователь
  • Почётный модератор
  • Старожил
  • *
  • Сообщений: 1592
  • Кто не хочет, ищет причины
    • Просмотр профиля
Re: Язык С, с чего начнём?
« Ответ #1 : 16 Апреля 2012, 21:55:16 »
Для изучения с нуля, то есть если вообще не владеешь программированием. А так смело можно ее читать и учится по ней.

Оффлайн Nikki1993

  • Автор темы
  • Заслуженный пользователь
  • Почётный модератор
  • Старожил
  • *
  • Сообщений: 3261
  • Owner of Dell XPS 13 Developer Edition :D
    • Просмотр профиля
Re: Язык С, с чего начнём?
« Ответ #2 : 16 Апреля 2012, 22:16:04 »
Ну, я написал, что изучаю в данный момент Java в университете. То есть базовая концепция программирования у меня есть.
First i was like :0 Then i was like :D But now i am like(╯°□°)╯︵ ┻━┻
http://www.abload.de/img/banner_505uxa.png

Оффлайн Not eXist

  • Активист
  • *
  • Сообщений: 916
    • Просмотр профиля
Re: Язык С, с чего начнём?
« Ответ #3 : 16 Апреля 2012, 23:18:03 »
Вообще это очень странный университет, в котором дают Java'у, но при этом не дали основ по С :). Так или иначе - "Язык программирования С" + какой-нибудь pet-project. Больше и не нужно.

Оффлайн Nikki1993

  • Автор темы
  • Заслуженный пользователь
  • Почётный модератор
  • Старожил
  • *
  • Сообщений: 3261
  • Owner of Dell XPS 13 Developer Edition :D
    • Просмотр профиля
Re: Язык С, с чего начнём?
« Ответ #4 : 17 Апреля 2012, 00:09:22 »
Вообще это очень странный университет, в котором дают Java'у, но при этом не дали основ по С :). Так или иначе - "Язык программирования С" + какой-нибудь pet-project. Больше и не нужно.
Что за pet-project можно по подробней ?
First i was like :0 Then i was like :D But now i am like(╯°□°)╯︵ ┻━┻
http://www.abload.de/img/banner_505uxa.png

Оффлайн RazrFalcon

  • O_o
  • Старожил
  • *
  • Сообщений: 3129
  • Zombie Mod
    • Просмотр профиля
    • Я на GitHub
Re: Язык С, с чего начнём?
« Ответ #5 : 17 Апреля 2012, 01:00:29 »
Программа написанная для себя.
Gentoo + KDE, Official Windows Hater
Хотите помочь нашей вики: https://help.ubuntu.ru/wiki/fixme

Оффлайн DeOnis

  • Новичок
  • *
  • Сообщений: 24
    • Просмотр профиля
Re: Язык С, с чего начнём?
« Ответ #6 : 17 Апреля 2012, 08:28:05 »
Лучше сразу С++, И осваивать Eclipse. Это позволит быть мульти язычным, так как под Эклипс достаточно скачать плагин, и ничего осваивать не нужно. Да и курсов разных полно. Даже студия Артемия Лебедева обучает желающих Эклипсу, по моему даже бесплатно.
А писать программу используя только поточный ввод вывод, типа std::cin >> a; std::cout << a;. Это позволит лучше понять потоки, так как после print и т.п. потом башню рвёт на работе с потоками в файлах и ip стеке.
Тем более раз вы освоили Java, то можно сказать что на 70% вы разобрались в С++.
Сам из необходимости освоил JavaME, C и С++(x86,AVR,ARM), PHP и чуть чуть Assembler.
При резком переходе от проекта к проекту башню рвёт не хило. Спасает только Eclipse.
Всё вышесказанное моё ИМХО.

Оффлайн Nikki1993

  • Автор темы
  • Заслуженный пользователь
  • Почётный модератор
  • Старожил
  • *
  • Сообщений: 3261
  • Owner of Dell XPS 13 Developer Edition :D
    • Просмотр профиля
Re: Язык С, с чего начнём?
« Ответ #7 : 17 Апреля 2012, 10:33:25 »
Тогда немного холиварный вопрос. Язык С считается языком Линукс так как большая часть кода написана в С. С++, как я понял, почти тот же язык С только объектно-ориентированый(поправьте если не так).
Скажите тогда пожалуйста, С получается "хуже" чем С++ или нет? Моя задача на будущие, создание програм для Линукс разного направления.
First i was like :0 Then i was like :D But now i am like(╯°□°)╯︵ ┻━┻
http://www.abload.de/img/banner_505uxa.png

Оффлайн DeOnis

  • Новичок
  • *
  • Сообщений: 24
    • Просмотр профиля
Re: Язык С, с чего начнём?
« Ответ #8 : 17 Апреля 2012, 11:22:57 »
Язык С действительно хуже по возможностям. Как только у вас в проекте появляются данные, которые нельзя описать каким либо одним типом (естественно самопальной структурой). Так как эти данные могут в процессе выполнения программы меняться, то у вас возникает сильная головная боль. В С++ всё построено вокруг объектов, вы можете в процессе выполнения программы создать новый тип данных и отнаследовать в него предыдущий объект. Плюс в объектах есть методы. Например разница в управлении ножкой порта девайса: С - {
/*
* пример самодельных функций
*/
portb(1,true);
portb(2,false);
}
C++ -
{
errorlamp.on();
onePump.off();
}
А если ножек сто, то начинается создание полей с дефайнами. А если нужно ножкой "мигать" и у вас С, то это отдельная функция и нужно хранить переменные с значением состояния ножки и того чего мы от неё хотим, пока отрабатывает таймер до прерывания. А если мигать нужно ещё одной ножкой, то ещё набор переменных. В С++ просто добавляем метод в тип описывающий ножку порта и они все научатся "мигать".

Пользователь решил продолжить мысль 17 Апреля 2012, 11:37:43:
Вообще в С код получается более быстрый и менее прожорливый к памяти, но только при условии что вы настолько шарите в требуемой задаче, что можете своей головой всё оптимизировать лучше чем компилятор.

Если изучите С++, то автоматически будете знать С, так как С++ это усложнённая версия С.
Если же изучите С, то потом сломаете мозг, так как только от использования printf(); и getchar(); Нужно будет отвыкать. (Для тех кто скажет, что я привёл в пример функции для консоли - знаю, но покажите книгу, где их не приводят в пример. Все книги по С учат в консоль выводить printf("Hello World\n");)

P.S
Пробежался по Гуглу в поисках примера печати Hello World на QT или GTK+ под С... И ничего не нашёл.
« Последнее редактирование: 17 Апреля 2012, 11:37:43 от DeOnis »

Оффлайн RazrFalcon

  • O_o
  • Старожил
  • *
  • Сообщений: 3129
  • Zombie Mod
    • Просмотр профиля
    • Я на GitHub
Re: Язык С, с чего начнём?
« Ответ #9 : 17 Апреля 2012, 13:57:04 »
Qt:
qDebug()<<"Hello world";

Если планируете писать ГУИ проги под линь - то тут выбор не большой.

С++ - Qt, wxw, gtkmm
C - gtk+
Gentoo + KDE, Official Windows Hater
Хотите помочь нашей вики: https://help.ubuntu.ru/wiki/fixme

Оффлайн Gekko

  • Участник
  • *
  • Сообщений: 222
    • Просмотр профиля
Re: Язык С, с чего начнём?
« Ответ #10 : 17 Апреля 2012, 14:34:34 »
Qt:
qDebug()<<"Hello world";

Если планируете писать ГУИ проги под линь - то тут выбор не большой.

С++ - Qt, wxw, gtkmm
C - gtk+

Есть еще очень хорошая библиотека wxWidgets.
Xubuntu 12.04 LTS с Xfce 4.10

Оффлайн RazrFalcon

  • O_o
  • Старожил
  • *
  • Сообщений: 3129
  • Zombie Mod
    • Просмотр профиля
    • Я на GitHub
Re: Язык С, с чего начнём?
« Ответ #11 : 17 Апреля 2012, 17:08:36 »
Я ее указал, wxw.
Сам с ней неработал. Но проги на ней не люблю. КДЕ темы в них криво смотрятся.
Это какой то облегченный Qt...
Gentoo + KDE, Official Windows Hater
Хотите помочь нашей вики: https://help.ubuntu.ru/wiki/fixme

Оффлайн Gekko

  • Участник
  • *
  • Сообщений: 222
    • Просмотр профиля
Re: Язык С, с чего начнём?
« Ответ #12 : 17 Апреля 2012, 17:58:31 »
Я ее указал, wxw.
Сам с ней неработал. Но проги на ней не люблю. КДЕ темы в них криво смотрятся.
Это какой то облегченный Qt...

КДЕ темы криво смотрятся не в wxWidgets а в GTK+, потому как wxWidgets всего лишь обвертка для GTK+, точно такая же обвертка как gtkmm для GTK+.
« Последнее редактирование: 17 Апреля 2012, 18:00:13 от Gekko »
Xubuntu 12.04 LTS с Xfce 4.10

Оффлайн Nikki1993

  • Автор темы
  • Заслуженный пользователь
  • Почётный модератор
  • Старожил
  • *
  • Сообщений: 3261
  • Owner of Dell XPS 13 Developer Edition :D
    • Просмотр профиля
Re: Язык С, с чего начнём?
« Ответ #13 : 17 Апреля 2012, 18:07:02 »
Так, я запутался в ГУИ  :) в чем различие между GTK+ и QT ? писать программы я собираюсь под Ubuntu Unity.
Ну и как итог советуюте изучать С++ вместо С?
First i was like :0 Then i was like :D But now i am like(╯°□°)╯︵ ┻━┻
http://www.abload.de/img/banner_505uxa.png

Оффлайн Gekko

  • Участник
  • *
  • Сообщений: 222
    • Просмотр профиля
Re: Язык С, с чего начнём?
« Ответ #14 : 17 Апреля 2012, 18:14:32 »
Так, я запутался в ГУИ  :) в чем различие между GTK+ и QT ? писать программы я собираюсь под Ubuntu Unity.
Ну и как итог советуюте изучать С++ вместо С?

Qt и GTK+ это два разных лагеря, Qt это KDE, а GTK+ это Gnome. Понятно, что темы оформления тоже разные и поэтому не всегда дружат друг с другом, т.е. гномовские проги в КДЕ могут отличаться от родной среды, точно так же как КДЕшные проги в среде Гном могут выглядеть не так как в родной КДЕшной среде.

Выбрать GTK+ или Qt это вопрос философский, одни будут доказывать, что КДЕ это супер а Гном дерьмо, другие будут доказывать обратное. Но если судить по скорости работы КДЕ и Гном, то Гном объективно работает быстрее, а уж за XFce (использующий GTK+) и говорить нет смысла, потому как XFce в сравнении с КДЕ и Гномом просто летает.

Пользователь решил продолжить мысль 17 Апреля 2012, 18:17:25:
P.S. Юнити это GTK+
« Последнее редактирование: 17 Апреля 2012, 18:17:25 от Gekko »
Xubuntu 12.04 LTS с Xfce 4.10

 

Страница сгенерирована за 0.057 секунд. Запросов: 25.