LINUX.ORG.RU

С чего начать свой путь?

 


0

4

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

Перемещено dataman из development



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

ну, Verilog - это уже специфика. причём очень узкая. и Verilog имеет довольно мутный синтаксис. я лично для альтеры предполчитала AHDL. хотя с точки зрения мощностей эти HDL равны. но всё это жёстко привязано к железу и для начинающих не годится, в любом случае. с этим даже профессионалы сталкиваются только в разработке железа.

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

хотя понимаю разницу железа тех времён и нынешних.

Видимо, вы не понимаете, в какие концепции эта разница в железе вылилась в конечном итоге.

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

В общем то, вопрос «а есть ли у вас ЯП по-выше Си» я уже задавал, так что это было бы повторением. Просто если у вас всё сводится только к этим 2 языкам, то это полностью подтверждает то предположение, которое я высказывал в начале: все, кто будут твердить про ассемблер, имеют в своём распоряжении только x86-realmode asm, и Си.

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

Вопрос о том, какой конкретно ассемблер вы тут подразумеваете, знакомы ли с aarch64 и понимаете ли, что знание ассемблера современных риск-архитектур нисколько не приближает вас к пониманию самих архитектур - думаю, уже не стоит задавать. Пробовал это на ваших предшественниках в данном триде, повторяться не охота. Если вы считаете, что слово «ассемблер» несёт в себе хоть малейший смысл без указания хотя бы архитектуры, то вы ошибаетесь. При том, что 20 лет назад, действительно, достаточно было сказать «ассемблер», и все всё понимали (был, правда, ещё z80 в те годы).

никому бы не помешал

Зачем мне с вами спорить? Спросить бы, какая у вас позиция по штату, и какая ЗП, но это будет некорректный вопрос. Так что не спрошу. :)

anonmyous ★★
()
Ответ на: комментарий от riokor-v2

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

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

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

Я, опять же, не понимаю, к чему вы это. Предлагаете в эмулятор какой-то контрибьютить, или что?

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

… регистр … вы утверждаете, будто это именно программист должен знать.

Не я начал про регистр, а кто-то кто заметил, что мол указатель может быть без адреса если значение находится в регистре. Мне даже стало лень проверять туфта ли это полная или какая-то специальная обработка взятия адреса в стандарте C от регистровой переменной (естественно, с ограничением использования полученного «указателя»). Или намёк на разные хитрожопые архитектуры. Мне на это просто пох. Типичная придирка для раскрутки флейма.

А кто сказал, что он должен и с Си начинать?

Да никто никому ничего не должен. Я же не заставляю всех изучать C, не хотите — не изучайте. Просто когда человек начинает спрашивать о пути в некое неопределённое программирование, а не просто пишет, что хочет зашибать бабки на Питон-галере, то для меня это подразумевает владение некоторым общим кругозором в который язык C безусловно входит как системный язык большинства ОС в мире сейчас.

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

я не спорю.

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

позиции у меня были программист, разработчик РЭА, ведущий программист, сеньёр и прочее. про зарплаты спрашивать неприлично, но обычно выше средней в нашем городе раз в 10-15. я несколько лет (до всего этого кошмара) работала на зарубежные компании. так что всё серьёзно.

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

ну, Verilog - это уже специфика. причём очень узкая. и Verilog имеет довольно мутный синтаксис

Verilog имеет нормальный синтаксис по сравнению с VHDL, но надо понимать, что Verilog — это изначально параллельный (в том смысле что там куча одновременно выполняющихся процессов) язык симуляции цифровых схем, который потом приспособили для синтеза, а AHDL — это язык чисто для синтеза. Поэтому для использования Verilog надо обязательно изучить его стандарт на предмет семантики (то как работает абстрактная машина Verilog) и синтезируемые паттерны. После этого писать на нём по сравнению с AHDL становится одним удовольствием, ибо AHDL всё же более низкоуровневый.

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

Эмуляторы для первоначального обучения считаю неприемлемыми — об этом ещё Столяров писал и я с ним согласен: у обучаемого возникает ощущение что он работает с какой-то искусственной туфтой, никаких рациональных причин тут нет, чисто психология.

Не понял. Если ОСь писать (что вы и предлагаете) - то на эмуляторе. Если что-то нормальное - тогда НЕ на эмуляторе. А у вас тут что-то не сходится: уже и эмулятор не годится при написании ОС…

или какая-то специальная обработка взятия адреса в стандарте C от регистровой переменной

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

то для меня это подразумевает владение некоторым общим кругозором в который язык C безусловно входит как системный язык большинства ОС в мире сейчас.

Ну так раст уже позиционируется как системный язык. Да и потом, я что-то не помню, чтобы ТС просил сказать, как ему написать ОСь. Вы сами за него это придумали?

anonmyous ★★
()
Ответ на: комментарий от riokor-v2

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

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

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

Это всё понятно, вы эмбедщик. Вы не работали с современными риск-архитектурами на таком же низком уровне, на котором работали с х86 или микроконтроллерами. И по тому не знаете, что там (в aarch64 например) ассемблер вообще нисколько не приближает вас к пониманию (сложнейшей) архитектуры. И по тому, совершенно не обязателен к изучению. Даже те, кто работает с ATF и Uboot, могут его не знать. А могут и знать - это ни на что не влияет. Там системный программист изучает саму архитектуру: как самого девайса, так и стека загрузки. А вовсе не ассемблер. Соответственно, если вы вкладываете в слово «ассемблер» какой-то тайный смысл, то это лишь говорит о том, что вы эмбедщик из прошлого. Современному эмбедщику лучше всё же знать передовые риск-архитектуры, а из языков, помимо ваших 2х - ну хотя бы ещё раст и плюсы. А. произнося «ассемблер», добавлять хотя бы название архитектуры.

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

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

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

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

так что заставить меня танцевать не получится.

Любой айтишник должен знать математику, английский, и уметь играть в настольный теннис. Соответственно, раз вы чела продинамили с танцами, то предлагаю ему попробовать вам предложить теперь партейку в настольный теннис. :)

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

почему сразу «эмбедщик»? я работала с самыми разными архитектурами и разными проектами. и с железом и эмбеддедом, и с серверами хай-лоад в сети. на удалёнке трудно работать с железом, поэтому я перешла на чистый софт. однако, RISC-V вон у меня на полке лежит. ничего ужасного в нём нет. как и ничего особенного. процессор как процессор. их много разных. не вижу смысла выделять их как-то отдельно. у меня в шкафу полка завалена разными процами и тестовыми платами, FPGAшками и тестовыми образцами. а также прошивалками и отладчиками. всё это добро мне сейчас особо не нужно, я работаю с сетями, но так, на всякий случай, лежит.

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

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

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

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

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

Если вы работали с Арм Девелопер Студио, то там эмуляторы встроены. При чём, они настолько точные и корректные - чуть ли ни потактово кеши симулируют.

Но если вы поборник кему, то да, что-то вроде вот такого:

qemu-system-aarch64 -m 4G -cpu cortex-a76 -M virt \
    -pflash flash0.img -pflash flash1.img \
    -drive if=none,file=kinetic-server-cloudimg-arm64.img,id=hd0 \
    -device virtio-blk-device,drive=hd0 \
    -device usb-ehci \
    -device virtio-gpu -device usb-kbd -device usb-tablet \
    -drive file=user-data.img,format=raw \
    -netdev type=user,id=net0 -device virtio-net-device,netdev=net0 \
    -monitor none \
    -smp 8
anonmyous ★★
()
Ответ на: комментарий от riokor-v2

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

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

Если ОСь писать (что вы и предлагаете) - то на эмуляторе

Какую ось для полного нуля? Он должен сначала почуствовать «механику» процессов на игрушечных примерах и делать это можно внутри существующей оси на реальном железе. А дальше не моё дело чего он там будет писать, хочет писать ось — пусть пишет.

Ну так раст уже позиционируется как системный язык. Да и потом, я что-то не помню, чтобы ТС просил сказать, как ему написать ОСь. Вы сами за него это придумали?

Разница в том, что Rust позиционируется, а C массово используется. И ещё долго будет использоваться по вполне понятным причинам в силу размера кодовой базы. Даже если вы не пишете ось, а просто пользуетесь существующими, то бывает полезно хотя бы в общих чертах представлять как оно там под капотом. В «общих чертах» в моей трактовке подразумевает, что человек может при необходимости что-то реально сделать, а не просто махать руками про абстрактные сущности.

Ну и относительно просьб ТС — я же ему ничего не навязываю, просто излагаю своё мнение, которое он может просто проигнорировать. Надо задавать конкретные вопросы типа «как рубить бабки на условном Питоне», тогда и подобных дискуссий не будет.

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

я с этим не работала, потому что обычно компиляторы в таких суповых наборах - проприетарщина. а я более 20 лет как полностью перешла на опенцорц и не хочу засорять свою домашнюю сеть всяким. поэтому и от разработки железа ушла, отчасти: очень мало полностью опенсорцных тулчейнов для железа. я бы рада писать для альтеры, которой у меня до чёрта, но... проприетарщина. и всё на этом. я потому и смартфоны не использую: нет там ничего, что можно собрать полностью на опенсорце. да и не нужны они мне, по большому счёту. но другими архитектурами интересовалась чисто из любопытства. покупала тестовые платки, если поддерживается опенсорцный стек. однако, особых плюсов в RISC не вижу. имхо, это больше хайп, на волне популярности. да, оно «другое». но не лучше и не хуже, чем многие другие архитектуры. я работала с x86_64, arm64, realtek и прочими MIPS'ами, плюс-минус пара инструкций. по причине доступности и популярности меня вполне устраивает x86_64. не вижу причин его хаять. мои машины - это в основном интелловские процы.

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

мажор. меня тогда даже не сущетвовало

Да мажор - конкурс на поступление, начиная от военкомата был 1 к 40-50, непосредственно в палаточном лагере училища 1 к 25, жили в палатках под дождем (в августе) на поле стадиона учебного заведения, готовились к экзаменам на трибунах. Я прошел все экзамены, в том числе и по физ.подготовке. И потом, через 2 года, на выпуске я был первым в своей роте по достигнутым результатам по предметам на распределении в высшие военные училища. В этом случае да. А родился я в небольшом поселке около Московской области и это не Рублевка, а шахтерский поселок.

Обучение в «школе», в аналоге выпускных 9-10 классов (тогда было 10 летнее среднее образование) было не по учебникам, а «по-взрослому» - по конспектам с лекций преподавателей такое, что в высшем военном училище, а потом в гражданском ВУЗе, после того как я ушел из военного и отслужил в Советской Армии, я откровенно на 1-2 курсах «пинал дурака» за исключением Высшей Математики, где были еще незнаемые мной темы.

Еще там, в то время 85-86 год был тест на IQ (решение логических задач на время) от каких-то психологов - я не знал результат, так как меня поставили в наряд <в не очереди>, но он (IQ) у меня тоже был лучший в училище из 400х человек, так что вызывали к высоким командирам и спрашивали «есть ли у меня намерение стать военным», потому что по расчетам психологов, люди с высоким IQ являются «неуправляемыми», что не очень хорошо для простого офицера. И они были в этом правы. Позже, поступив в уже простое высшее военное училище с простыми преподавателями и офицерами, я действительно ушел, разочаровавшись в их уровне, дослужил в Армии и пошел в гражданский ВУЗ на то что мне понравилось - на программирование.

В общем, было интересно - эра окончания прогнившео «совка», власти «дедов-генсеков», при этом интересные эксперименты по ускорению и интенсификации обучения, которые начали на нас испытывать. Место действия - Казань. Также знаю язык Дари (Фарси Кабули) - язык межнационального общения в Афганистане - туда нас готовили, но потом войска вывели, 14-16 лет тогда нам, ученикам (талабан по-афганки) было. Поэтому не верьте что в СССР все было плохо - нет, было нормально во многих областях, но «дедовщина» и «импотенция» во власти и ее метастазы разрушили СССР.

MichIs
()
Последнее исправление: MichIs (всего исправлений: 1)
Ответ на: комментарий от riokor-v2

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

riokor-v2
()
Ответ на: комментарий от minermoon

Пробел-запятая:

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

Давно ушел от игр ,в пару тройку играю конечно ,но больше всего софт привлекает разный , тем более linux стоит

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

процессор как процессор.

Ему до aarch64 как до луны: и уровней привилегий там по-меньше, и трастзона не факт, что есть, гипервизорного уровня по-моему нет, AiA по-моему пока так и не добавили, которому до армового GICv5 тоже далеко, tzasc по-моему нет, и тд. А в армовом ядре всех этих компонентов - миллион, да ещё и разных версий. Это ещё не говоря про всякие MMU/IOMMU, но их уже ядро ОС обычно настраивает, а не стартап.

Армовый стартап - хрень сложнейшая, но, при этом, асма там почти нет. Ну, в смысле, понятно, что надо сделать ERET для переключения на другой уровень привилегий, но всё же, асма там нет, и ни кому он там не нужен. Что творится в прошивке Risc-V - я не в курсе, но полагаю, что примерно тот же подход, только гораздо проще. А уж если даже стартовая прошивка без асма, то вполне понятно, что ни эмбедщики, ни системные программисты там асм почти не используют. А прикладные - ну соответственно. Да и зачем? Если одних этих асмов уже сколько сменилось, особенно если и 32битные версии в рассчёт брать, с их thumb’ами. А вы говорите «не уточнять архитектуру», А там даже не достаточно архитектуру уточнить, столько было в одном только арме разных ассемблеров.

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

потому что по расчетам психологов, люди с высоким IQ являются «неуправляемыми»

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

Поэтому не верьте что в СССР все было плохо

я не писал, что там было плохо, тем более эта устрана уровня 1990 года по многим параметрам так и не достигла… и скорее уже не достигнет

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

я не писал, что там было плохо, тем более эта устрана уровня 1990 года по многим параметрам так и не достигла… и скорее уже не достигнет

СВО много что выявило в розовой картине мира Полковника. Будем надеяться, что достигнем и превзойдем, иначе просто исчезнем

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

Разница в том, что Rust позиционируется, а C массово используется.

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

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

Давайте уточним: под капотом ОСи? Вы про принципы работы ОС? И что, давно ли курс «операционные системы» стал в себя ассемблер включать?

В «общих чертах» в моей трактовке подразумевает, что человек может при необходимости что-то реально сделать, а не просто махать руками про абстрактные сущности.

То есть, условно говоря, на позицию «линукс кернель девелопер» вы не примите чела без знаний ассемблера?

Надо задавать конкретные вопросы типа «как рубить бабки на условном Питоне», тогда и подобных дискуссий не будет.

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

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

я не писал, что там было плохо, тем более эта устрана уровня 1990 года по многим параметрам так и не достигла… и скорее уже не достигнет

Кстати, да. «Слово Пацана» - происходило в то время. Была газета «Казанский Комсомолец» вроде бы (или что-то похожее), которую нам доставляли в «подшивку». И там каждый день было по 2-3 некролога на молодых людей из-за войн группировок. Но нас в увольнениях не трогали - может из-за военной формы и потому что не принадлежали к какой-то «группировке».

MichIs
()
Ответ на: комментарий от riokor-v2

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

я могу увлечься программированием и колупанием с компом и про обед на плите мне вдруг резко напоминает сизый дым, который начинает тянуться с кухни :) в отличие от «типичных женщин» я никогда не парилась насчёт внешнего вида, не использовала косметику и все эти «женские» прибамбасы, которые сложно объяснить с логической точки зрения. а я логик до мозга костей. штаны и футболка вполне комфортны для сидения за компом и любых других занятий.

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

То есть, условно говоря, на позицию «линукс кернель девелопер» вы не примите чела без знаний ассемблера?

Я не понимаю, что вы подразумеваете под знанием ассемблера. Если про умение писать более-менее тяжёлый софт с применением макросов как это делали деды — то я согласен, что это не нужно. Если же человек не в состоянии прочитать ассемблерный листинг компилятора в случае подозрения, например, на какие-то вредоносные оптимизации, не в состоянии при необходимости понять что написано в немногочисленных .S-файлах ядра или написать похожий файл если возникнет необходимость, то для человека это будет минус.

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

У меня была необходимость использовать в AT91RM9200 специфические инструкции загрузки значений в РОН в пакетном режиме (по несколько слов на команду) причём с предельным быстродействием и пришлось написать небольшую ассемблерную портянку, потому что надёжно заставить компилятор использовать именно эти инструкции при генерации кода возможности не было.

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

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

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

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

но есть и эстеты, которые пишут на ассемблере (fasm, nasm) довольно мощные фреймворки и очень эффективный софт для ПК и серверов. конечно, он прибит гвоздями к архитектуре. но при текущем раскладе железа у хостеров и юзеров это не проблема. меня привлекает скорость и оптимальность работы такого серверного софта. и код там поистине прекрасен. чтение такого кода доставляет эстетическое удовольствие не меньше, чем поход в оперный театр. как говорится, «пир-духа». поэтому такие вещи весьма вдохновляют и навевают мысли попробовать писать на ассемблере примерно всё. хотя я отчётливо понимаю все ограничения, но не могу устоять перед таким великолепием. браузер на ассемблере - это моя несбыточная(?) мечта.

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

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

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

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

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

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

и вся эта гонка процов плодит, как ни странно, не оптимизацию и улучшение софта, а ровно наоборот: говнокод и блоатварь. потому что макаки считают, что «сервер мощный, зачем оптимизировать, и так сойдёт». глюки процов накладываются на глюки материнок и шин, добавляются глюки говнософта и мы имеем то, что имеем: современный совершенно убогий софт, который умудряется просрать все возможности железа хуже, чем можно было бы себе представить.

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

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

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

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

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

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

У меня была необходимость использовать в AT91RM9200 специфические инструкции загрузки значений в РОН в пакетном режиме (по несколько слов на команду) причём с предельным быстродействием и пришлось написать небольшую ассемблерную портянку

Это всё эмбедщина (уж не знаю, с линуксом или без). Никто не говорил, что ТСа надо в эмбедщину отправлять.

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

то не «мир погряз в легаси». мир просто нормальный. софт написан, работает и никому не мешает.

Иногда он недостаточно безопасен. Иногда - недостаточно масштабируем. Да и вообще… когда вы последний раз видели совт, который «написан»? Его пишут всегда. Современные проекты нельзя «дописать», слишком велика их сложность. Можно только забросить.

в случае с ржавчиной это делают копрорасты.

Мозилла? Ну такие себе корпорасты.

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

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

Что за фантазии на вольные темы? Даже в aarch64 их 5-6 всего. И все используются. А ось действительно не использует более 2, по тому, что остальные - они не для неё. Там есть уровень юзера, для ядра, для гипервизора, для фирмвари, для трастзоны, для трастед-гипервизора, ну и тд и тп. Это всё вне ведения ОСи работает. Опять же, я вам это всё объясняю по тому, что предполагаю (да и уверен), что не работали вы со всем этим.

и всё больше и больше багов, потому что никто не использует фичи и не тестирует на практике

Все всё используют. Только при чём тут компилятор, он к этому отношения не имеет. Я вам ещё раз повторяю, что все фичи риск-архитектур добавляются не в систему команд - она тут ВООБЩЕ не при чём. Именно по этому и ассемблер не при чём. Прочитайте про уровни привилегий и GICv5 для начала.

а софту часто лучше одно ядро, но мощное. из-за этого возникает ещё куча проблем типа проц вроде «мощный», а софт тупо тормозит. и ничего сделать нельзя.

А кто-то только что про хайлоад втирал. Ща я усомнюсь, что вы с хайлоадом-то всерьёз работали. :)

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

Но, конечно, если всё переписать на асме, то все проблемы уйдут. Понимаю…

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

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

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

за Мозиллой стоят другие заинтересованные в устранении опенсорцной сишки и независимых от них компиляторов из обращения. такие как Гугл и Мелкомягкие. так что Мозилла тут просто марионетка, которая торгует лицом. они ничего не решали и не решают.

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

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

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

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

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

Я вам ещё раз повторяю, что все фичи риск-архитектур добавляются не в систему команд - она тут ВООБЩЕ не при чём.

Зачем вы всё время упираете на RISC, и тут же пишете, что система команд ни при чем? Потому что RISC — это именно про систему команд. И x86-64 это не RISC, да, микроархитектурно он не сильно отличается от современных высокопроизводительных RISC и поддержка устаревшей системы команд является по сути просто эмуляцией.

И мне не понятно как вы будете пользоваться фичами если они прямо или косвенно (как чтение/запись по определённым адресам) не добавлены в систему команд и никто за вас не написал обёртки для вызова на C. Либо в системе есть какой-то дополнительный служебный процессор со скрытым каналом управления основным, но с которым вы также общаетесь при помощи тех или иных команд основного процессора (ибо он больше ничего не может по определению).

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

anonymous
()