LINUX.ORG.RU

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

 


0

4

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

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



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

Я имею представление, и, тем не менее, советую.

Вы таки хотите про это поговорить? Ладно. Пара вопросов:

  • Какой именно ассемблер предлагается изучать?
  • Список ассемблеров, на которых работали лично вы.
  • Вы знакомы с aarch64, и хотя бы примерно представляете, что нужно сделать, чтобы «завести» современный SoC с нуля? Ну, типа, что делает ATF+Uboot. Если да, ты вы, видимо, понимаете, что, в современных архитектурах, ассемблер вообще ничего не решает - там сама архитектура крайне сложна, а знание ассемблера не даёт там ровным счётом ничего для понимания архитектуры.
  • Или вы всё таки из тех, кто дальше x86-realmode никогда не продвигался?

Я сам с ассемлером познакомился после 2 лет после C и знаю о чём говорю.

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

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

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

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

А теперь, я бы хотел послушать, что лично Вы знаете про регистр. Объясните нам, что это такое? Купить его где-нибудь можно? :)

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

А ты решаешь?

Нет, вопросы задаю. :) Следите за диалогом. Я высказал гипотезу, что все, кто тут будет слово «ассемблер» повторять - относятся к поколению пепси, и вообще ни в чём не шарят. Как только её опровергнут, я эту тему покину. Мне самому интересно, опровергнут или нет. Наводящие вопросы нужны как раз для этого.

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

Какой вывод сделает ТС из нашей беседы?

Никакой: тут много веток, и конкретно за нашей он вряд ли следит. Ему не интересно, ни что такое регистр, ни что такое aarch64 - ему это не нужно.

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

Будь снисходительней, человек хочет писать программы. Надо ему помочь, книг посоветовать.

Так для ТСа у меня совет был уже: С чего начать свой путь? (комментарий) и другого не будет.

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

Какой именно ассемблер предлагается изучать?

Плевать, но вроде бы x86-realmode ещё вполне доступен, в том числе эмуляция древних графических режимов. Всё же упирается не в архитектуру, а в доступные устройства для обучения на этой архитектуре, а там, как правило, уже есть какое-то подобие ОС, на x86-realmode ведь никто не запускает x86-процессор (даже древние 086, 286 и 386) в bare metal, там этим занимается BIOS, а потом начинающие запускают свои поделия из-под DOS, в том числе могут использовать её сервисы. Просто вы упомянули RISC как некое препятствие, хотя именно с RISC наличие/отсутствие подходящих устройств никак не связано.

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

Список ассемблеров, на которых работали лично вы.

Я же не утверждал, что я «работал», сейчас таких людей очень мало, а знаком с x86 (в том числе 32- и 64-разрядным), 32-разрядными ARM и PowerPC. Изготавливал устройства на AT91RM9200+FPGA и MPC8308+FPGA, делал прошивки для них на Verilog, писал драйвера под Linux, в том числе частично на ассемблере.

Вы знакомы с aarch64, и хотя бы примерно представляете, что нужно сделать, чтобы «завести» современный SoC с нуля?

Я уже писал выше, что для первоначального обучения никакого bare metal не надо, годится уже установленный Linux. Насчёт сложности архитектуры – не надо путать архитектуру, микроархитектуру процессора и архитектуру SoC в целом. Программист имеет дело исключительно с архитектурой и, возможно, с некоторым куском архитектуры SoC (когда работает с периферией) — это интерфейс с программистом, как там в кремнии всё устроено знать полезно для увеличения производительности, но не обязательно. Ещё раз повторю — речь про первоначальное обучение полных нулей чтобы они начали самостоятельно хоть как-то плавать.

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

А если он хочет не за деньги писать, а для души?

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

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

А ты из глубинки, провинциального города, из небольшой столицы региона или города-миллионника?

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

Если из глубинки или провинциального города, то на ЛОР могли бы дать совет. Возможно, что уже дали, но нужен фильтр, чтобы отсеять кучу всего вредного. Некоторые ведь даже прикалываются над тобой в своих сообщениях (и им не стыдно!). Такова природа интернета.

В общем, попробуй все-таки «С». Не зайдет - возьмешь другой язык.

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

Кстати, тут есть зависимость. Обычно, чем выше уровень подачи материала в книге, то тем обычно лучше иллюстрации и тем выше уровень печати в книге, да и там всегда видна работа рецензентов да и самого издательства тоже!

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

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

Программирование, а не кодерство - это искусство, это дар. И не каждому дан этот дар.Ради денег можно заработать где-то в другом ремесле. А так читай классиков. Таже серия книг Математическое Обеспечение ЭВМ.

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

Тогда программисты тоже начинают с практики

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

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

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

За деньги я бы сделал какой нибудь проект большой , который мне бы принес и опыта и много другого что я смогу получить с этого проекта.

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

Плевать, но вроде бы x86-realmode ещё вполне доступен, в том числе эмуляция древних графических режимов.

Вы про что? Где доступна эмуляция древних графических режимов?

Просто вы упомянули RISC как некое препятствие, хотя именно с RISC наличие/отсутствие подходящих устройств никак не связано.

Я упомянул риск как пример того, когда знание ассемблера уже не даёт ни малейшего представления об архитектуре. Раньше, совсем давно, ассемблер изучали для написания более эффективного кода (чем, скажем, на вездесущем тогда бейсике). Потом - его стали изучать просто чтобы понимать x86 архитектуру. А сейчас я не вижу ни единой причины, почему его всё ещё надо изучать новичку. С архитектурой он, при этом, не ознакомится. Эффективный код писать не будет. А вы говорите, типа, «да пиши на асме под линуксом!» Вы в своём уме - нынче портабельность и читаемость кода во главе угла. Этот совет для новичка вообще не подходит, да и даже не для новичка - да нафейхуа вы будете под линуксом писать на асме? Ладно ещё под баре-металом… И если даже вы мне про ассемблерные вставки будете говорить, типа для повышения эффективности небольших участков, то я вам напомню про интринсики и прочие вещи типа библиотеки simd-everywhere.

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

Хуже некуда - начать с непортабельного, нечитаемого кода. А если он привыкнет к такому маразму? И не поймёт потом, что это были просто, типа, «советы от гуру»? Научите человека писать максимально портабельный и читаемый код! А не с анти-паттернов обучение начинайте.

Изготавливал устройства на AT91RM9200+FPGA и MPC8308+FPGA, делал прошивки для них на Verilog, писал драйвера под Linux, в том числе частично на ассемблере.

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

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

Разные задачи бывают. Кто-то в траст-зону какие-то фичи вставляет. Кто-то гипервизоры делает для разграничения доменов безопасности. С появлением aarch64, исследования в системных областях программирования существенно расширились, так как это стало вотчиной ИБ (информационной безопасности).

Ещё раз повторю — речь про первоначальное обучение полных нулей чтобы они начали самостоятельно хоть как-то плавать.

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

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

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

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

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

Ну хорошо, хорошо, «где-то что-то похожее». :) Всё таки посмотрите хотя бы википедию для начала: https://ru.wikipedia.org/wiki/%D0%A0%D0%B5%D0%B3%D0%B8%D1%81%D1%82%D1%80_(%D1%86%D0%B8%D1%84%D1%80%D0%BE%D0%B2%D0%B0%D1%8F_%D1%82%D0%B5%D1%85%D0%BD%D0%B8%D0%BA%D0%B0)

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

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

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

Хочется узнать что это такое вообще интересно же что-то узнать новое

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

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

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

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

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

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

Iron_Bug ★★★★★
()

С понимания где именно ты можешь в этом мире заработать. Или упростить свои собственные задачи с помощью программирования.

Для 99% людей без базы и специального образования это python и php

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

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

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