LINUX.ORG.RU

Стоит ли учить С для развития или скриптовых языков достаточно?


0

5

Задался в свободное время посвятить себя изучению оного языка. Не могли бы посоветовать литературу, которая вам помогла в освоении. Ну а если вы думаете, что Си учить не надо, то почему?


Керниган и Ритчи, обязательно. Ричард Хэзфилд - Искусство программировать на С, тоже можно почитать.

hippi90 ★★★★★
()
Ответ на: комментарий от hippi90

Первые двое есть, уже готовлю себя к погружению. А насчет второго поищу, большое спасибо. А много времени отняло освоение?

Ginki
() автор топика
Ответ на: комментарий от sched

>Но Си - простой язык, много времени понимание не займёт.

Язык простой, но писать на нём не так и просто. Очень много времени уходит на простые вещи, которые в динамических языках делаются «сами собой».

anonymous
()
Ответ на: комментарий от sched

Смотря для чего. Но Си - простой язык, много времени понимание не займёт.

Мне казалось, что C не из легкого десятка.

Ginki
() автор топика

Не учите новый язык, если он не перевернёт ваше представление о программировании (с).

stolz
()
Ответ на: комментарий от Ginki

Честно, не помню!) Еще стоит прочитать Эрик Реймонд - Искусство программирования Unix, это для общего развития хорошо. И Мэтью, Стоунс - Основы программирования в Linux, без знания особенностей ОС на С писать сложно.

hippi90 ★★★★★
()
Ответ на: комментарий от hippi90

«Эрик Реймонд - Искусство программирования Unix» есть эта книга, да руки не доходят. Ибо о мире *nix узнал лишь недавно.

Ginki
() автор топика
Ответ на: комментарий от Ginki

Сам язык простой, но написание кода сложнее, чем в языках более высокого уровня.

Поддерживаю совет читать Хэзвилда.

sched
()
Ответ на: комментарий от sched

> Сам язык простой, но написание кода сложнее, чем в языках более высокого уровня. Поддерживаю совет читать Хэзвилда.

Благодарю за совет. Буду искать книжную версию по городу и переворачивать свое представление.

Ginki
() автор топика
Ответ на: комментарий от buddhist

Кстати, да, даже если вы пишете преимущественно на питоне, например, то однажды вам может понадобиться написать модуль расширения на С, или залезть в исходники интерпретатора, чтобы понять почему ваш код работает не так, как вы от него ожидаете.

hippi90 ★★★★★
()
Ответ на: комментарий от hippi90

Как то ковырялся в исходниках ruby, было дело. Вот только глубоко не влезал, а надо бы. В моем случае лень доводит до полной растраты ценного времени.

Ginki
() автор топика
Ответ на: комментарий от eklalstE

>Не в динамических языках, а в языках высокого уровня.

Если придираться к формулировкам, то Си тоже является языком высокого уровня.

А конкретно динамичность, кстати, тоже облегчает работу. Захотел набить массив объектами разных типов - набил. Это не всегда хорошо, но иногда удобно.

anonymous
()
Ответ на: комментарий от Ginki

В общем-то правильно казалось, зачем тебе эта низкоуровневая муть? Если таки решишься, после книг полезно будет полистать вот это.

arturpub ★★
()

>Стоит ли учить С для развития или скриптовых языков достаточно?
You made my day.

Скоро каждый говнокодер на джаваскрипте/питоне себя программистом считать будет.

JFreeM ★★★☆
()
Ответ на: комментарий от Manhunt

На нем очень просто велосипедить и создавать «на пустом месте» непонятные проблемы, над разрешением которых можно не один день провести.

Eddy_Em ☆☆☆☆☆
()

Любой, уважающий себя инженер-айтишник, должен на каком-то годном уровне владеть Си.

drSchur ★★★
()
Ответ на: комментарий от Eddy_Em

А можно не велосипедить и решать проблемы, которые тебе создал кто-то другой.. Других вариантов я вроде не встречал.

Принципы знать полезно, но писать более чем врапперы на нем не стоит.

arturpub ★★
()

После Кернигана&Ричи рекомендую перейти к Керниган&Пайк «Практика программирования». Много полезных вещей написано, и в основном на Си.

Есть ещё Peter van der Linden «Expert C Programming», но она на английском и посложнее. Но обратить внимание стоит.

Про нужность/ненужность ничего говорить не буду. Мне Си нужен.

OldFatMan
()
Ответ на: комментарий от JFreeM

>Скоро каждый говнокодер на джаваскрипте/питоне себя программистом считать будет.

да-да-да, давайте ещё и ассемблер всех заставим учить, а тех кто не может с паяльником в компьютер залезть - сразу вон из профессии

lazyklimm ★★★★★
()
Ответ на: комментарий от anonymous

>А конкретно динамичность, кстати, тоже облегчает работу. Захотел набить массив объектами разных типов - набил.

в чем проблема сделать это в нормальных языках с статической типизацией?

lazyklimm ★★★★★
()
Ответ на: комментарий от lazyklimm

>в чем проблема сделать это в нормальных языках с статической типизацией?

Давай пример на нормальном языке со статической типизацией.

anonymous
()
Ответ на: комментарий от anonymous

Ну, например в Java так можно. Поскольку каждый класс Java является наследником класса Object, то можно создать массив объектов Object и запихивать в него любые объекты приводя их к типу Object. Так как в Java массивы хранят не сами объекты, а ссылки на них, то такое приведение не обрезает поля класса, и его потом можно привести снова к производному типу без потерь.

hippi90 ★★★★★
()
Ответ на: комментарий от hippi90

>приводя их к типу Object.
вот это лишнее) восходящий каст выполняется автоматически.

JFreeM ★★★☆
()

Какова мотивация для изучения? Хотя даже банальное «расширение кругозора» будет хорошим поводом. Потому что язык, хоть и не молодой, но до сих пор актуальный и, нужно заметить, один из немногих на лоре не обкладываемых г-ном.

alienclaster ★★★
()
Ответ на: комментарий от beastie

>знание инстумента первично.

с одной стороны - я это одобряю, то бишь, знать как лежат байтики внутре - полезно (правда не факт что пригодится). С другой - выдавать подобные знания за нечто архисложное и сакральное - наглое враньё.

lazyklimm ★★★★★
()
Ответ на: комментарий от lazyklimm

>тебе только массивы, или любые гетерогенные структуры подойдут?

И так и так будет хорошо.

anonymous
()
Ответ на: комментарий от Manhunt

> Си - простой язык

4.2

простой, простой, просто посмотри sizeof(K&R)

PS только вот писать на нём сложно

shty ★★★★★
()
Ответ на: комментарий от lazyklimm

товарищи просто не в курсе ;)

язык то как раз прост как топор. только вот топором этим владеть тоже надо уметь. по неопытности и обе ноги отстрелить можно. с опытом же обычно приходит умение отстреливать всё меньшие части тела. :)

beastie ★★★★★
()

Я предпочитаю ориентироваться от задачи. Какие задачи мне интересно решать и что для этого нужно знать. Причем пообщался бы с теми людьми, которые решают данные задачи. Т.е. если ты хочешь работать в конкретной области, то приходишь к людям, которые там работают и спрашиваешь, что тебе нужно узнать, чтобы этим заниматься. Для этого придется для начала описать (т.е. самому сориентироваться и именно написать), что ты в данные момент умеешь. Причем, если хочешь работать в конкретной конторе, тупо туда приходишь, и говоришь, я хочу у вас работать, но скорее всего я вам не подхожу сейчас. Я знаю (1, 2, 3), я умею (3, 4, 5, 6), я делал (10, 11). Что мне еще нужно освоить? Народ припухнет с такого подхода, но в нормальной конторе ответят (потому что людей, которые серьезно хотят работать всегда не хватает, и любой начальник будет рад такому подчиненному, а тебе нужно общаться не с отделом кадров, разумеется, а с конкретными людьми, с которыми ты планируешь работать), что им от тебя понадобиться (если пошлют, то они тебе не нужны такие замороченные). И так в пару-тройку мест, потом люди повторяться начнут. :) Как вариант, можно по асе, почте. Только для начала лучше сделать какую-нибудь страницу во вконтакте или в блоге, с описанием кто-ты и лучше фотографией и ссылку дать в письме, чтобы человек понимал, с кем разговаривает. С таким подходом вопрос ставиться не «стоит ли учить С для развития или скриптовых языков достаточно», а что мне нужно выучить.

Если ты хочешь получить новые знания не для решения конкретной задачи, а для собственного удовольствия, расширения кругозора, по другой причине, тогда такой подход, наверное, не подходит.

anonymous
()
Ответ на: комментарий от JFreeM

> Скоро каждый говнокодер на джаваскрипте/питоне себя программистом считать будет.

Если говнокодеры на джаве считают себя программистами, то почему другие говнокодеры тоже не могут считать себя программистами?

anonymous
()

Смотря для чего кодишь. Писать на C это тот ещё мазохизм.

Deleted
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.