LINUX.ORG.RU

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

 


0

4

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

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



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

как ты десятичные засунешь в машину? ещё на перфокартах, вероятно

Дональд Кнут (слыхали о таком ) программировал десятичную ЭВМ. И с десятичных перфокарт в десятичном коде, и, по мелочи, с лампово-тумблерно-кнопочной консоли

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

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

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

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

ну, например, веб-сервер жрёт 1 мегабайт памяти. я не ошиблась, именно мега-байт. один. один, Карл. не сто гигов, не десять, а один мегабайт. при этом он быстрее nginx'а, и намного.

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

чисто из-за кешей

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

ну и классический пример когда обнаружилось что иконки на десктопе квадротично перерисовывалось ибо «не жмёт» - у фонатов асма как инструмента мышления (Iverson Notation as a tool of thought https://dl.acm.org/doi/10.1145/358896.358899 https://dl.acm.org/doi/pdf/10.1145/1283920.1283935

http://rkka21.ru/turing_award.htm#:~:text=Нотация%20как%20средство%20мышления) есть вера что всякую алгоритмическую кривось оне на асме не попустят и будет эффективно и внешне(сиё асм) и унутрене(сиё оптимально по алфавиту грешнему)

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

Я как-то задавался этим вопросом и в качестве модельного объекта выбрал рисование линии алгоритмом Брезенхейма. Тогда ещё можно было прямо в видеопамять хреначить.

Вариант на Си написал минут за 10. На асме полдня изголялся и таки ускорил примерно на 5%. В основном за счет того, что в Си нет циклических сдвигов.

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

ты явно не математик. эвристика не гарантирует ничего

Я не математик, я физик. Я тебе разве что-то писал про гарантии? Ещё раз повторяю: не существует никаких гарантированных алгоритмов авторазводки плат и микросхем в общем с практически приемлемой сложностью. Для специализированных случаев расположения контактов такие алгоритмы есть, а в общем случае — нет. И все реальные алгоритмы содержат эвристики и да, формально они ничего не гарантируют, после истечения лимита на итерации ты получаешь либо недоразведённый проект, либо нарушения требуемых таймингов. Не нравится — ослабляй тайминги и/или снижай загрузку кристалла или каналов трассировки изменяя логическую схему. Ты что думаешь, когда физики встречаются с нерешённой математиками задачей или принципиально нерешаемой они сразу поднимают ручки и сдаются? Нет, используют всякие эвристические алгоритмы, да они не дают гарантий, но в случае срабатывания у физиков, в отличие от математиков, есть дополнительный критерий истины под названием практика.

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

menuetOS

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

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

они сделали ужо RAD asm какой?

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

али до сих пор пинцетом битиками рулять для полной аутэштичности ?!

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

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

Именно. Это называется адаптацией. Просто у таких людей адаптация немного искаженная, не такая как у остальных. Они пойдут за советом к другим людям, пойдут искать книги, пойдут на hh.ru нанимать людей, пойдут создавать фирмы, если это нужно будет для их проекта (скажем, написания ОС). То есть, фиксация на цели будет маячить всегда. В запущенных формах приводит к плохим и очень плохим последствиям, но есть и норма.

Пример нормы - упомянутый тобою создатель Линукса. Он человек публичный - его можно поставить в пример (мы тут этику несильно нарушаем)

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

Такие люди кормятся на идеях творческих людей. Творческие люди придумывают что-то новое и прорывное, но воплотить в жизни не в состоянии. Им банально не хватает жизненной энергии. Но тут на «помощь» приходят «создатели ОС» и реализуют идеи. У этих-то «создателей ОС» энергии как раз выше крыше, больше, чем у всех других. И часто (но не всегда) этим-то удается воплотить замыслы в жизнь (иногда поставив на уши полпланеты). Таков круговорот жизни.

Ладно. Я тут ничего не придумываю нового. Это не мои мысли. Просто начитался всякой литературы. Поэтому подкован в теме. Это все описано в (достаточно серьезных) книгах.

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

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

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

Если тема окажется неинтересной, язык - скучным, книга - скучной, то просто смени язык, смени книгу!

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

Ещё в догонку про разводку плат — если бы был алгоритм с нормальной сложностью который гарантированно разводит либо сообщает что задача принципиально нерешаема, в том числе с поддержкой констрейнтов по длинам, то он бы уже давно был в опенсорсных прогах по разводке pcb, в KiСad так точно. А там сейчас неюзабельное говно, которое максимум можно использовать как ассистента ручной разводки. И так будет ещё очень долго, ибо для нормального результата надо тратить серьёзные ресурсы, а хоббисты это не любят, они лучше гуй будут переделывать по 10 раз. Правда несколько лет назад CERN несколько улучшил ситуацию с разводкой скоростных плат (вроде бы ввёл выравнивание длин в каком-то виде).

anonymous
()

visicalc

т.е любая экактронная таблица

отличная визуальная модель памяти :) в смысле адрессуемости и прочих прелестей вычислимости

вот с кодом публике не настолько нужно возится

хотя есть вот

pyspread ( ну и более текуще-актуальная https://pysheets.app/ https://pysheets.app/about )

позновательно таймкиллерно

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

ага

например «компилятор» Паскаля (в Йонсен? Вирт изводе) на питоне своять

на входе листинг пацкаля на выходе исполнимый файл

в процессе реализации сего копулятора можно и пошаговый отладчик уровня входного языке аля ide ТупоPascal отрадить

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

Python сейчас это Pascal(улучшенный Algol60 а не космический Algol68 до которого и плюсы ещё не смогли ) тогда.

ща программисты редко когда в логику могут поэтому и Python

а вот отступы и переводы строк как скобки это как раз таки более лучший парсер чем лиспо-подобный подсчёт операторных скобок - забавно как «привычное» постулируится лучшим

и кста ноне на питоне можно однострочить и вообще изображать произвольные мона-лизы псевдографики исполнимым кодом ибо := :)

https://mathspp.com/blog/single-line-calculator#:~:text=Here's all of your code:

2. js более таргет(ибо браузерней) особливо wasm да и Pyodide сводит python выхлоп в js

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

на входе листинг пацкаля на выходе исполнимый файл

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

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

def lol(a):
    print('Постулируем что a как вероятность [0..1):\n0.',end='')
    yield '0.'
    while a:
        d,a=divmod(a*2,1)
        yield str(int(d))
def mk(a,d=3):return ''.join(str(d) for d,_ in zip(lol(a),range(d)))
#print(*In,file=open(fn:='Ins.py','w'),sep='\n')
mk(.9140625,666)
mk(.914065,66)
mk(.33333,33)
qulinxao3 ★☆
()
Ответ на: комментарий от anonymous

всё ж следует различать всратый промышленный ассемблер со спецификой развития микропроцессорной промышленности и изысками cisc архитектур ( даже 8086 за плечами имел особенности предшественников 4004 8008 8080 8085 даже если не бинарно но модульно-блочно из чертежей)

а вот какую типо vale https://www.mathworks.com/matlabcentral/fileexchange/22593-extended-brookshea...

для понимания что в «компилируемых» имена это как правило адреса - либо смещенения (что тоже адрес но по динамической базе)

ваще единстенное что нужно до pascal/c это представление об однородности нумераций что памяти что значений в ячейках и простейший алго вот такой неТьюринг машины 1(2)(3)адресной с 0-.. выделенных ячеек типо регистров

ну и да желательно о стеке

ваще учебник Информатика Бауэр(<- патент на стек в 50ых в гермашке) Гооз

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

есть тока он в опкоде али ваще если спец то «единственный такой»

т.е есть пространство адрессов

есть пространство регистров

есть пространство ещё каких портов

всё это другое это адрессуемость

qulinxao3 ★☆
()

с чего начать новичку свой путь

с устройства на работу

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

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

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

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

но все таки

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

В 36-разрядной PDP-10, на котором партнёры разрабатывали симулятор Альтаира, и BASIC для него, РОН были доступны в «общем» адресном пространстве процесса по младшим адресам.

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

Зачем вы всё время упираете на RISC, и тут же пишете, что система команд ни при чем?

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

Потому что RISC — это именно про систему команд.

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

И x86-64 это не RISC, да, микроархитектурно он не сильно отличается от современных высокопроизводительных RISC

Радикально отличается. Просто для вас микроархитектура - это система команд, ну и конвейер исполнения. И вы намекаете на то, что у них конвейеры стали похожи из-за внутренней трансляции команд в микро-операции. А я до вас пытаюсь донести, что это лишь малая доля того, что определяет архитектуру современных риск-процов. Ещё раз: ознакомьтесь с уровнями привилегий и GICv5 - это база для понимания. Без этого вам кажется, что я абстрактными сущностями оперирую.

И мне не понятно как вы будете пользоваться фичами если они прямо или косвенно

Ну, как бы, не охота сейчас делать ликбез по теме aarch64. Но хотя бы тот факт, что это риск - уже должен был натолкнуть вас на мысль о том, что систему команд там стараются не усложнять (я не говорю про всяике СИМД-расширения - таковые, конечно, туда тоже внедряются). Ладно, так как ждать от вас гугления - занятие бесполезное, то намекну, что все внутренние кишки ядра там доступны через MMIO-регионы. Так и программируются.

Я, в общем, понимаю вашу точку зрения, что не всем это надо,

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

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

работа с этими регистрами - это написание самой оси, собственно. мало кто с этим работал.

Нет, как я уже сказал, ОСь действительно только 2 уровня использует. Просто в рантайме aarch64 далеко не только ОСь присутствует. Там, параллельно с ней, можно крутить ещё кучу других компонентов: гипервизоры, трастзоны, мониторы безопасности и пр, и ОСь ничего о них не будет знать. Ну либо будет их через гиперколлы вызывать, если они ей это разрешили.

Такая вот аппаратная распределённость привилегий. Да, понимаю: из x86 мирка, со знанием только асма и Сей, кажется, что этот анонимус тут какую-то пургу несёт, не бывает такого, как это вообще, параллельно с ОСью что-то выполнять… Да вот так. Распартишнил память через tzasc, настроил роутинг событий через GIC, и вперёд, запускай что хочешь.

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

способны ли разработчики писать не на птичьих скриптиках, а на серьёзных ЯП. и тут опять начнутся обвинения в «небезопасности» и прочем, и прочем.

Что-то мне уже не хочется на эту фигню отвечать. Но обвинения будут в непортабельности, для начала.

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

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

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

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

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

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

Iron_Bug ★★★★★
()