LINUX.ORG.RU

Кто не разрабатывал на Си, тот не разработчик?

 , , ,


3

2

Недавно услышал примерно такую фразу:

«Кто не разрабатывал на Си, тот не разработчик»

Вопрос: насколько глубоко нужно погрузиться в разработку на Си, чтобы стать тру-разработчиком (для сферы, не связанной с деланием ПО для железа)?

Ну не в прод же на Си писать будущему сайтостроителю гeймдеву одинэснику девелоперу?! С другой стороны, написать и забилдить пробный хелловорлд с мэллоком и указателями будет не-безполезно и для скрипто-писателя, но достаточно ли? Или стоит отталкиваться от сферы деятельности: каждому написать примерно то, что он будет в дальнейшем делать (или с чем работать) на других ЯП? Например, бэкендщику стоит написать свой веб-сервер и крад-аппу, игроделу свою 2/3d игрушку и т.д. А может нужно написать свой модуль/либу для другого ЯП (основного)?

Или же: "Си не нужен, все программирующие - разработчики" ?

Ваше предложение по достижению тру-девелопер-левела:

  • попрограммируй микроконтроллеры, запили патч ядра Linux'a, а потом лезь в калашный ряд веб-/мобайл-/иной-разработки
  • напиши что-то из своей сферы
  • реализуй модуль/либу для другого ЯП
  • Си не нужен
  • другое

А зачем тебе разрабатывать на каком-то другом ЯП, если С годится на 105%?!!

Ведь в отличие от других ЯП, С совершенно прост и универсален! Ты можешь на нем писать под микроконтроллеры, писать числодробилки, веб-приложухи и многое-много другое...

anonymous ()

насколько глубоко нужно погрузиться в разработку на Си, чтобы стать тру-разработчиком?

Хмм. Писать на Си, только чтобы стать разработчиком? Это не тру.

Писать на Си, чтобы решить какую-то задачу. Это тру. А чтобы стать тру-разработчиком надо книжки умные внимательно читать.

zvezdochiot ()

Язык как язык пиши чё хочешь, но лучше всего что-то что решит одну из проблем/задач. Не обязательно писать на си жонглируя указателями на функции через массивы вложенных структур, на си просто прекрасно писать логику к примеру где прочитав её сразу понятно что программа делает, а не вникать в тонкости новой фичи языка и не думать что эта штука делает в этом контексте. Просто от балды что-то писать всегда сложно, лучше столкнутся с проблемой и героически решить её написав утилиту, например конвертилка файлов из формата А в фомат Б или парсар какой без сторонних либ и быстрый как пуля работающий в несколько потоков через pthread/openmp для разнообразия.

Но я не тру, так что принимай мои слова вскользь.

Ах да! Забыл важный момент Ъ сишник должен знать как минимум ещё 50 языков, что бы при любой возможности аргументированно обсирать их.

linux-org-ru ()
Последнее исправление: linux-org-ru (всего исправлений: 1)

Недавно услышал примерно такую фразу:

«Кто не сидел, тот не мужик»

Вопрос: насколько долго нужно сидеть, чтобы стать тру-мужиком (для сферы, не связанной с тюремной иерархией)?

Ну не квартиры же обкрадывать будущему петуху чухану крысе мужику?!

anonymous ()

реализуй модуль/либу для другого ЯП

this. И в «С» поиграешь и на любимый+знакомый «somelang» глянеш изнутри.

Не факт что дальнейший выбор останется в пользу somelang :-)

MKuznetsov ★★★★★ ()

Ну не в прод же на Си писать будущему сайтостроителю гeймдеву одинэснику девелоперу?!

Почему нет? У нас на проде есть система часть модулей которой написаны на Си. Периодически берём кодеров-практикантов и даём им мелкие задания по этим модулям. Они конечно охреневают и тут же спрашивают - «почему не переписать всё на Java?». Но когда осознают объем работ и то что бизнес не выделит им на эту задачу денег, умолкают и садятся учить Си. =)

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

Выше написана чушь, но доля правды, как мне кажется, есть. Большинство программ написаны на C и C++. Если ты разработчик на этих языках, ты их можешь исправить и дополнить (ну, в линуксе большинство исходников открыты). А ты разрабатываешь на других языках (яве, жс, питоне, го еще чем угодно) и понятия не имеешь о сишке и плюсах, то получается вроде как и программист, но беспомощный. Такой какой-то ненастоящий :)

Im_not_a_robot ★★★ ()

Кто не разрабатывал на Си, тот не разработчик

Не служил - не мужик

Не рожала - не женщина

Не проектируешь в каде - не инженер

Стоматолог - не врач

Ничего не забыл ?

Dred ★★★★★ ()

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

MyTrooName ★★★★★ ()

Если кто-то это сказал лично тебе, то может он тонко намекал на то, что заметно отсутствие профильного образования?

Лично я плохо эту всю тему вдуплял пока не спустился до асма. Но это печальки моего мозга, я бы не стал делать категоричных заявлений типа «не прогал на x86 асме - не девелопер».

pon4ik ★★★★★ ()

Вопрос: насколько глубоко нужно погрузиться в разработку на Си, чтобы стать тру-разработчиком (для сферы, не связанной с деланием ПО для железа)?

Начальный уровень: уметь писать биндинги для сишных либ для своей платформы

Средний уровень: писать нативные модули для своей платформы

Продвинутый уровень: уметь фиксить баги в своей платформе

Например лично я фиксил баги в JVM. Это продвинутый уровень :-)

cvv ★★★★★ ()

1. Всего знать нельзя, особенно в 2019 году. 2. Если ты хорошо и качественно выполняешь свою работу,то ты профессионал в своей области. 3. Профессионал должен знать как платформу, на которой он работает, так и устройство инструментов которыми он пользуется, но, может быть, найдутся исключительные ситуации, когда даже это не нужно(скорее всего это не так). Знания на более чем на 2 уровня вглубь, скорее всего, не будут сильно востребованы и вероятно быстро забудутся. 4. Все утверждения, что если ты чего то там не делал, то ты тем то не являешься - уровня не служил не мужик, или тыжепрограммист, то есть детского сада.

Зачастую изза кривого менеджмента даже в крупных компаниях приходится заниматься непрофильной деятельностью. Отсюда глупые хайпы про то что надо знать многое, желательно все(при этом всегда надо помнить про п.4).

olesz ()

Тебе нужно чтобы на попе татуху выбили с сертификатом в организации тру-девелоперов?

Встречный вопрос - тебе нужно решить какую-то задачу или красоваться красным гребешком среди одноясельников?

Я плохой программист. Для меня программирование всегда было побочным продуктом разработки каких-то продуктов и решения задач, выходящих за рамки десктопа. Призываю к тому же. Думай о задаче глобально, а какой-то там язык - дело десятое. Иногда может и на Python стоит написать, а порой и на ksh каком-нибудь.

Таких как ты видно сразу - у тебя нет задачи, нет цели, нет мечты. Хотелось бы мне, чтобы она у тебя появилась, тогда и ЯП станет ясен.

I-Love-Microsoft ★★★★★ ()

Скорее всего имели ввиду, что сишка сломает тебе неверные стереотипы о том, как «все это» работает на самом деле, если они у тебя есть. Следующее по вероятности - ты услышал это от мудилы с чсв. Одно другому не мешает.

Если и так знаешь, что на низком уровне происходит и может отличить боксед от небоксед, сказать разницу между динамическим, статическим и автоматическим стореджем, понимаешь, что new/create/{} это тоже дохера тактов и пр. - то можешь смело слать таких идиотов куда угодно, т.к. писать что-то на сишке или крестах без особых требований или ради доказательства скилла будет только конченый придурок.

anonymous ()

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

anonymous ()

Кто не писал на {C, asm, Lisp, Haskell, Smalltalk, Forth, Prolog}, тот не разработчик.

Но на практике - в 90% не пригодится. Вернее, мозги отчасти кое-в-чем поставит, но это же касается и остальных языков в списке и еще массы. Непонятно, почему нужно выделять C.

anonymous ()

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

AntonyRF ★★ ()

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

Deleted ()

ASM && C - базовые же курсы по шпециальности в ВУЗе.

Вопрос только к тем, кто вдруг стал погроммистом не имея профильного образования. Пусть это будет прикладной погроммист узкого профиля с широкой компетенцией, как например всякие Васяны-1с-интеграторы :) На самом деле это почти так, тому що в налоговом и прочем учёте вынуждены ориентироваться.

Deleted ()

Кто не разрабатывал на Си, тот не разработчик

Сейчас это уже не так актуально. С другой стороны мне сложно представить, как можно познакомиться с устройством железа и ОС без написания хотя бы нескольких лаб на Си, потому что Си давно стал lingua franca в этой области (да и вообще, в принципе).

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

Это брюзжание тупорылых старпёров и культ карго. Если тебе не нужно C - не трать на него время, ты можешь быть Ъ разработчиком на питоне не написав ни одного malloc’а в жизни. C действительно не нужен, ибо это неэффективный и небезопасный устаревший язык, сейчас и под микроконтроллеры имеет больше смысла писать на C++, а то и на каком-нибудь микропитоне. Всё что может дать разработка на C - это набить шишки в разработке на C - как пердолиться с выделением и освобождением памяти, расчётом размеров буферов и строк, ручной обработкой ошибок, поиском утечек и т.д., а это нигде кроме разработки на C уже не пригодится. А принципы работы вычислительной техники и техники программирования можно изучать на любом нормальном ЯВУ.

slovazap ★★★★★ ()