LINUX.ORG.RU

дорога развития системного программиста (язык си)

 ,


1

2

мой основной язык питон, как основной для низкого выбрал чистый си

знание\опыт низкого примерно след:

  • насм и немного реверса (ida, r2)
  • с++11, stl
  • читал: r&k, липпмана, sicp, таненбаума (сети, архитектуру и операционки), сокеты биджа, стивенс разработка сетевых приложений, столярова
  • пара простых сетевых приложений и дебагер по туториалу

хочу спросить у опытных товарищей, которые пишут на си, куда двигаться дальше, какие сложные проекты делать что бы вкатится в системное\сетевое? какие книги читать и в каком порядке?

на данный момент начал читать advanced programming in the unix



Последнее исправление: heretek (всего исправлений: 2)

Иди работать. Можно на завод, как аноним советует.

filosofia
()

Ядро поковыряй. Модуль напиши, драйвер какой-нибудь несложный повтори с нуля.

Ядро это хороший пример как надо писать сишный код.

Дальше микроконтроллеры поковыряй. Таксказать по нисходящей, посмотри на то как жить когда нет libc, операционки и солнце закатывать вручную надо, шедулер напиши свой простецкий, lwip подними. Прочувствуешь. Потом запусти простой плюсовый код на контроллере без сторонних библиотек.

После этого магии в твоей жизни станет сильно меньше.

Если сетевое писать планируешь, проштудируй Стивенса «Программирование сетевых приложений», у него ещё есть несколько хороших книг они тоже пригодятся.

Стоит разобраться как работают vlan, туннели(openvpn/wireguard/gre) хотя бы на уровне базового понимания. Маршрутизация, source based routing, OSPF, BGP, тоже можно по минимуму, так, общее понимание зачем это вообще нужно. MPLS по желанию. Multicast, это отдельная срань, которую изучать глубоко необязательно, пока не понадобилось, но знать базово полезно.

Ну и пиши код. Сам пиши или к попенсорцу какому прибейся, научишься PR делать нормальные, в дальнейшем пригодится.

Dark_SavanT ★★★★★
()
Последнее исправление: Dark_SavanT (всего исправлений: 1)
Ответ на: комментарий от Dark_SavanT

драйвер какой-нибудь несложный

гитхабу не нужен еще один chardev

Дальше микроконтроллеры поковыряй

имхо с этого как раз лучше начать

vvviperrr ★★★★★
()
Последнее исправление: vvviperrr (всего исправлений: 3)

Впереди тупик, если не любишь закатывать Солнце вручную.

LongLiveUbuntu ★★★★★
()

читал: r&k, липпмана, sicp ...

Задание №1: дочитать r&k, липпмана, sicp ...

Artamudo ★★★★
()

вкатится в системное\сетевое

Оно тебе точно надо? Это конечно очень романтично, когда представляешь, но на практике часто всё довольно уныло.

какие сложные проекты

Вот как раз насчёт сложных, это ты забудь (пока). Ковыряй микроконтроллеры и вообще учи электронику и электротехнику. Ибо дорога тебе в программирование кофеварок. Не тешь себя мыслями, что тебе сразу представится ОС для звездолёта писать — они уже все написаны, да и писателей там без тебя хватает.

Про завод, кстати, хороший совет. Только завод конечно должен быть профильный (который электронные железки выпускает). Т.е. всякие ПО, НИИ и т.п.

no-such-file ★★★★★
()

читал: r&k, липпмана, sicp, таненбаума (сети, архитектуру и операционки), сокеты биджа, стивенс разработка сетевых приложений, столярова

интересней книжек не нашёл?

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

Ядро это хороший пример как надо писать сишный код.

Ты сейчас дискредитировал все свои советы. Ни один сишник не скажет, что Linux — хороший пример.

По сабжу — устройся на работу.

anonymous
()

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

на завод, либо в менеджеры, либо заводить трактор, этойстране не нужны НАСТОЛЬКО умные программисты.

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

настолко умные нигде не нужны

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

благодарю за ответ! о ядре сразу подумал, сейчас углубляюсь в си, после буду копать ядро от и до вместе с гуглом и книгами: linux kernel development и linux device drivers

почитав ваш блог сложилось впечатление о сильном специалисте, можно узнать ваш путь? какие проекты делали, что вы читали (кроме документации)?

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

Простите, они нигде не нужны. Сишники пишушие сетевой софт вообще мало где нужны. Почти всё уже написано, что действительно надо было написать на си.

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

в комментарии alve и в вашем, чувствуется какая-та боль. неужели у сишников все так печально или это ситуация конкретных людей?

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

дорога развития системного программиста (язык си) си-плюсы-кресты-кладбище

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

имхо с этого как раз лучше начать

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

anonymous
()

Что-то на ЛОРе всё так анально и так огорожено, что тут лучше вообще ни о чём не спрашивать. Всё равно все дельные советы какой-нибудт школомодер выпилит.

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

Сишников больше, чем вакансий про Си на рынке труда... Ну и для решения практических задач Си не так уж и часто нужен, т.к. уже написано много библиотек на Си, которые нужно было именно на Си делать, а сейчас достаточно их дергать из питона или вообще ноду брать чтобы фигак-фигак и в продакшен, когда Ъ-сишник только успеет десяток функций написать и отладить маленький кусочек кода. Не знаю, как у Alve, у меня боль в том, что на Си много всего интересного написали до меня и даже если мне что-то не нравится, я понимаю, что переписывать это просто ради удобства или простоты нерационально уже.

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

Зачем? Ни одна же баба не будет течь.

Зато на сишную зарплату их можно арендовать

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

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

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

Сишников больше, чем вакансий про Си на рынке труда…

ниша занята старыми пердунами на десятилетия вперёд

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

Каждый месяц в мире разрабатывается 100500 новых IoT-перделок, подключаемых в интернеты и собирающих всяческую информацию. Для оптимизации расходов в массовом производстве выбирается железо минимальной стоимости, и соответственно мощности, которое нужно программировать на С.

Harald ★★★★★
()
Последнее исправление: Harald (всего исправлений: 1)
Ответ на: комментарий от Harald

Мир не ограничивается рашкой

Удивительно, но человек может 1) Не хотеть менять страну 2) Не считать свою страну «рашкой». Вам, поравалитикам и всёпропальщикам, что ни скажи - у вас один рецепт, бросать всю свою жизнь и валить куда-то за долларами, «интересными проектами» и отношением как к «понаехавшим бабуинам».

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

ты забыл 3) может работать удалённо на иностранного заказчика

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

IoT-перделок

Они либо не нужны, либо там такой навар у производителя, что стоимость железки фигня, учитывая маленький объём партий.

peregrine ★★★★★
()

почему-то самая близкая ассоциация - это паталогоанатом, но там, конечно, гораздо веселей

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

ну их, на самом деле 100-500 в год, эсклюзивных, требующих отдельного программного обеспечения, притом что один программёр покрывает несколько десятков в год, минимум

в госах, там где военка и т.п. там ещё заебись, что здесь что в штатах. а ещё где? китай да, но там своих индусов хватает

anonymous
()

r&k

Это отреверсенный K&R? :D

anonymous
()

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

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

а не о том, что хочет быть патриотом

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

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

Они либо не нужны, либо там такой навар у производителя, что стоимость железки фигня, учитывая маленький объём партий.

1) Раз разрабатывают, значит думают, что нужны.

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

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

На самом деле нет, каждую копейку стремятся экономить. то есть ты тс советуешь устроиться на работу туда, где каждую копейку стараются экономить? он через месяц взвоет и уедет дворником в москву

anonymous
()

дорогА

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

2) На самом деле нет, каждую копейку стремятся экономить.

При маленьких объмах партий экономия на IT-шниках больше выходит. Т.е. пусть разница в железках 100 рублей, размер партии 10 000, затраты на IT-шника за цикл разработки 200000 в месяц (ЗП до вычета налогов, аренда помещения, амортизационные расходы и т.д.), человек на разработку на 5 больше, чем если кодить на питоне на 5 месяцев необходимых на разработку, вот и 4 ляма прибыли.

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

гитхабу не нужен еще один chardev

так же как тонны студенческих лаб

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

Ни один сишник не скажет, что Linux — хороший пример.

Остальные в среднем ещё хуже. Я вот навскидку крупных проектов где вот прям очень хорошо и не назову.

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

почитав ваш блог сложилось впечатление о сильном специалисте

Проиграл в голосину.

можно узнать ваш путь?

.NET, сайтики на нём лабал, параллельно с линуксом разбирался, потом пилил условно-ERP на 1С, потом мне отстохренело, пошёл к знакомому на «завод», точнее в контору которая роутеры с линуксом делала, а там уже меня никто не спрашивал могу я или не могу, надо сделать, ты ж специалист, вот делал-делал, набивал шишки, косячил, исправлял и так далее. А уж что там надо, скриптики прикрутить или ядерный драйвер написать - какая разница, «глаза боятся, а руки из жопы».

что вы читали (кроме документации)?

из литературы классику: K&R, Страуструп, Gang of four, Кормен/Седжвик по алгоритмам, Таненбаум по ОС, Стивенс по сетям и много практики в разных областях, от софта с libusb до раскуривания как работать с ethernet switch и пиления драйверов для него. Практика, практика и ещё раз практика.

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

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

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

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

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

Я вот навскидку крупных проектов где вот прям очень хорошо и не назову

Может и не очень, но хороший код у FreeBSD (Net-, Open-), Nginx. Классика.

Да и в линуксе нормальный, тот анон упорот. По крайней мере в центральных подсистемах.

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

Ну я ни фрю ни опен не ковырял, сказать не могу. nginx тоже только по отзывам, про него хорошо отзывались.

По крайней мере в центральных подсистемах.

В драйверах местами тоже нормально, но сильно хуже чем в среднем, это да.

Dark_SavanT ★★★★★
()
Последнее исправление: Dark_SavanT (всего исправлений: 1)

Попробуй для начала простенький веб-сервис с авторизацией написать. На веб-сокетах. И правильно про микроконтроллеры советовали. Можно и чуть повыше начать - с одноплатников вроде «апельсинки». Но для RT все равно придется часть делать на одноплатниках, да и АЦП с ЦАПом обычно у одноплатников или вообще отсутствуют, или фигня - звуковая карточка.

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

К сожалению, ты не прав! Потому что дебилов всегда больше, чем людей. И вот мы уже видим, как в IoT начинают «микропитон» использовать... А то и жабу суют внутрь SoC.

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

У тебя жаба в банковской карточке если что.

Тут как говорится, были бы руки из нужного места, а наговнокодить и на си можно влёгкую, и оставить за собой несколько трупов.

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