Artem Crowr
октябрь 2015.
8143

Как компьютер преобразовывает программный код в то, что мы в итоге видим на экране?

Ответить
Ответить
Комментировать
0
Подписаться
11
3 ответа
Поделиться

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

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

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

Микрофон преобразует звуковые колебания (речь) в аналогичные колебания электрического тока. И вот с этого момента начинаем смотреть. Провод микрофона (в котором ток) соединён с электрической схемой (провода, катушки, транзисторы, вот это вот всё). Когда ток есть (что-то сказали в микрофон), электроны (из которых ток состоит) начинают приходить в транзистор. Когда они туда приходят, поведение транзистора меняется, он начинает пропускать ток по-другому. Можно сказать, что ток (от микрофона) управляет поведением транзистора. Что представляет из себя транзистор? Грубо говоря, это такая электрическая штука с тремя ножками (проводами). Он очень ценен тем, что при помощи него можно выполнять что-то вроде простейших арифметических действий. Что это значит? Допустим, на одну ножку мы подаём какой-то ток. Он свободно течёт с первой ножки на третью. А на вторую ножку мы подаём другой ток, который сам по себе не столько куда-то течёт, сколько управляет тем, насколько легко ток течёт из первой ножки в третью. Получается что-то вроде процесса умножения. Если мы "поддадим" тока на вторую ножку, ток с первой ножки в третью начнёт течь активнее. Если мы, уберём ток со второй ножки, ток с первой на третью, быть может, вообще не сможет течь. При этом, конечно, мы можем изменять не только ток на второй ножке, но и ток на первой. Если на первой ножке ничего нет, то и на третьей ножке ничего не окажется.

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

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

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

У компьютера должна быть память. Как организована память? С помощью двоичного счёта. Это значит, что в каждой ячейке памяти хранится либо "одно", либо "другое". Обычно это обозначают цифрами 1 и 0. Если взять теперь много таких нулей/единиц, ими можно считать. Считать будем так: 0000 (0), 0001 (1), 0010 (2), 0011 (3), 0100 (4), 0101 (5), 0110 (6), 0111 (7) и т. д. Далее придумаем так: когда процессору нужно узнать, что там, в какой-то конкретной ячейке памяти (1 или 0) - он посылает туда электрический ток. Мы можем сделать такую электрическую схему ячейки памяти, что когда в ней 1, мы сохраняем небольшое количество тока в конденсаторе и когда от процессора приходит (в виде тока) вопрос "что в памяти", мы используем этот запасённый ток, отправляем его на транзистор и транзистор отправляет в ответ какой-то более-менее заметный ток. Если процессор этот ток получил, значит, в памяти была 1. А что если 0? Схема памяти устроена так, что в этом случае конденсатор пуст, тока нет, поэтому на транзистор ничего не приходит и поэтому процессор получает "ничего". Если так и вышло, значит, процессор знает, что в памяти 0. Процессор также может не только узнавать, что в памяти (читать), но и писать в память. Идея проста. Когда приходит комбинация нулей и единичек, они заряжают конденсаторы. Единица (наличие тока) конденсатор зарядила, ноль (нет тока) оставил конденсатор разряженным.

Но память это только начало. Сердце (вернее, мозг) компьютера - это процессор. Как устроен процессор? По-сути, процессор это очень-очень-очень-ооооооооочень сложное радио. Ну то есть, не радио, конечно, а электрическая схема, поведение которой зависит от того, какие сигналы придут на вход (как поведение радиопередатчика зависит от сигнала от микрофона). При этом у процессора десятки входов (десятки "микрофонов") и выходов (антен или динамиков, как будет угодно). 64 ножки процессора используются для того, чтобы получить из памяти сразу 64 штуки нулей/единиц, ещё столько же ножек нужно для того, чтобы процессор мог объяснить из какой конкретно области памяти (адрес) он хочет взять число. Чтобы это работало, есть контроллер памяти - это схема, которая в зависимости от нулей/единиц на ножках адреса как бы "перенаправляет" ток к одним или другим ячейкам памяти. Кроме этого у процессора существует также свой крошечный объём памяти, прямо внутри процессора, в котором он способен сохранить несколько чисел (числом мы будем называть набор из 64 электрических сигналов, тех самых "нулей" и "единичек"). Нужно помнить хотя бы пару чисел, чтобы можно было выполнять арифметические действия (сложение, умножение и т. д.). Эта крошечная память (каждая из которых умеет хранить только одно число) называется регистрами.

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

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

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

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

Описанный пример - это крошечная часть того, что очень часто встречается в реальных программах. Я описал работу четырёх команд. В программах миллионы подобных комманд. "Возьми, сложи, проверь, сравни, запиши, прочти". Так из простейших элементов складывается разумное поведение.

Ну а как всё это вывести на экран? Это уже просто. Существует видеокарта. Это отдельная схема со своей собственной памятью. При этом, допустим, 60 раз в секунду, видеокарта "сканирует" свою память и поочерёдно, число за числом, записывает сигнал в видеовыход. Только она не выдаёт число по 64 проводам (как мы это делали раньше) а сперва преобразует число: чем больше это число, тем сильнее видеокарта подаёт ток. В итоге мы получаем, что сила тока соответствует величине числа. Этот провод идёт к монитору. Монитор же, поочерёдно, выводит этот сигнал точка за точкой. В мониторе есть красные, зелёные и синие точки (очень мелкие, может потребоваться лупа). Чем сильнее ток в этот момент, тем ярче зажигается точка.

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

32
-3

Блин, а где пару строк?

+2
Ответить

Пару строк Юрий Криволапчук написал )

0
Ответить

Тоесть в настоящее время мониторы устроены так,что видеокарта посылает по ,к примеру ,hdmi разное напряжение тока которое на прямую влияет на кристаллы?

0
Ответить
Ещё 115 комментариев

> разное напряжение тока

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

0
Ответить

Немного не понял,ведь ПК воспринимает информацию в виде 0 и 1,а тоесть есть ток,нет тока,так же и видеокарта.Получается,что она не может регулировать какое-то определённое напряжение,а только лишь есть и нет,правильно ли понимаю?

0
Ответить

У видеокарт есть несколько способов (разные варианты) подачи тока к монитору. Сейчас самый распространенный вариант - цифровой. Это значит, что видеокарта передаёт только биты (есть ток / нет тока). В таком формате передачи видеокарта не регулирует силу тока (за исключением его наличия/отсутствия).

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

Для цифрового сигнала используется свой разъём и свой провод (а ещё монитор должен уметь работать с цифровым сигналом). Для аналогового сигнала - другой разъём и другой провод.

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

0
Ответить

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

0
Ответить

Вот хочу уточнить.https://youtu.be/hclQc7nzpN8 на 7:55 минуте посмотрите.В первый раз вижу чтобы субпиксели были поделены на мелкие квадратики ,так ещё и загораются по другому,для чего так сделано,не знаете?

0
Ответить

Не знаю. Не обращал внимание.

0
Ответить

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

0
Ответить

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

0
Ответить

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

0
Ответить

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

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

Подводим итоги:

> смешивание идёт по обычным законам

В общем, да. Только "обычных законов", на самом деле, не один, а два.

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

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

0
Ответить

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

0
Ответить

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

Аналогия субпикселей с красками неверна. Потому что субпиксели светят реальным светом. Они =создают= свет. Краски сами по себе не светятся. Они =поглощают= свет.

Существует два =разных= принципа "соединения" цветов.

Первый принцип работает, когда что-то реально =создаёт= свет. Например, лампочка. Или субпиксель.

Рассмотрим три разноцветные лампочки (красная, зелёная и синяя), которые висят рядом на потолке в центре комнаты.

Вот тёмная комната (все лампочки выключен) -> чёрный цвет.

Включили только красную лампочку -> красный

Включили ещё и синюю лампочку -> фиолетовый (при этом в комнате стало ещё светлее)

Включили все три лампочки -> белый (при этом в комнате стало ещё светлее)

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

Второй принцип работает, когда свет =поглощается= (то есть, теряется). Например, краски.

Возьмём =белый= лист бумаги.

Обратите внимание, что уже здесь начинаются отличия. В случае с лампочками, мы изначально брали чёрную комнату. И каждая новая лампочка делала комнату светлее (потому что лампочки создают свет). В случае с красками мы берём белую бумагу. И каждая новая краска будет делать бумагу всё темнее (потому что краски поглощают свет).

Добавим на бумагу жёлтую краску -> получим жёлтый цвет

Добавим голубую краску -> получим зелёный цвет (этот цвет темнее жёлтого)

Добавим красную краску -> получим чёрный цвет (самый тёмный цвет)

Краткие выводы:

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

0
Ответить

https://pechatnick.com/articles/razlichiya-cvetovih-modelei-rgb-cmyk-hsb

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

Картинка с подписью "RGB" - это для случая, когда светят реальные источники света (лампочки). Картинка с подписью "CMYK" - это для случая, когда свет поглощается (краски).

0
Ответить

Спасибо большое за ответ.Есть ещё вопрос по поводу программирования.Не могли бы сказать где можно найти инфу как компилятор переводит язык в двоичный код.Нигде не могу найти такую информацию.Или может сами смогли бы вкратце объяснить как это происходит?

0
Ответить

> как компилятор переводит язык в двоичный код

Если вкратце: берёт и переводит. Исходный код ("язык") - это файл. Компилятор открывает этот файл, читает его и генерирует другой файл (двоичный код). Ничто же не мешает читать из одного файла, как-то изменять то, что ты прочёл, и затем записывать это в другой файл.

0
Ответить

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

0
Ответить

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

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

То есть, схема такая:

текст программы (в виде битов) --> компилятор --> двоичный код (в виде битов)

Компилятор лишь превращает одни биты в другие биты. Никакой особенной проблемы нет.

0
Ответить

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

0
Ответить

>правильно?

Да.

> программа написана на языке программирования

Да. Программа записана в виде текста. А что такое текст? Текст - это тоже 1 и 0. На экране вы видите текст в виде букв. Но если вы сможете "заглянуть" посмотреть, из чего на самом деле состоит текстовый файл (это можно сделать специальными просмотрщиками), вы увидите, что текстовые файлы - это тоже файлы, состоящие из 1 и 0. В этом смысле они ничем не отличаются от файлов с двоичным кодом.

Для интереса вы можете взять какой-нибудь файл с расширением "exe" (если у вас Windows), это файл с двоичным кодом. Замените расширение exe на расширение txt (это будет тот же самый файл, вы просто изменили его название). Теперь откройте этот файл блокнотом. Вы увидите, что этот файл состоит из текста.

Как же это может быть? Ведь на самом деле файл не текстовый, а двоичный. Дело в том, что в компьютере =всё= двоичное, всё состоит из битов. Грубо говоря, текстовый файл показывается людям в виде текста просто потому, что он заканчивается на ".txt". А двоичный файл запускается как программа просто потому, что он заканчивается на ".exe". В реальности и то и другое - это двоичные файлы.

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

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

Компилятор просто преобразует одни двоичные файлы в другие двоичные файлы.

0
Ответить

Ааа,тоесть он занимается именно тем что логические 1 и 0 превращает в есть то и нет тока

0
Ответить

Компилятор я имею ввиду

0
Ответить

Логические 1 и 0 существуют только в наших мыслях. Это выдумка человека. Реальное устройство (компьютер) работает с помощью реальных физических эффектов. Ток - реален. Электрический заряд - реален. Логические 1 и 0 - это абстракция, это мысль.

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

0
Ответить

Логические 1 и 0 - это и есть то же самое, что "есть ток" и "нет тока". Поэтому можно сказать, что компилятор превращает единицы и нули в другие единицы и нули. Или же можно сказать, что компилятор превращает комбинации "есть токов" и "нет токов" в другие комбинации "есть токов" и "нет токов". И то и то - верно.

0
Ответить

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

0
Ответить

> него приходят одни сигналы и выходит индентичные?

Они идентичны только в том, что они состоят из нулей и единиц. В остальном они не идентичны.

Это примерно то же самое, что говорить, что все числа одинаковые, потому что все они состоят из одних и тех же цифр (0, 1, 2, 3, 4, 5, 6, 7, 8, 9). Да, цифры одинаковые. Но из них можно образовать бесконечное количество разных чисел.

Копмилятор получает единицы и нули (текст программы). После того, как компилятор "пропустил их через себя", на выходе получается другая комбинация единиц и нулей. Это новая комбинация является компьютерной программой.

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

Потому что текст программы - это не программа. Это только её текст. Компьютер не знает, как исполнить этот текст, не знает, что конкретно ему нужно делать.

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

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

0
Ответить

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

0
Ответить

> ...а затем компилятор посылает уже другую комбинацию 0 и 1 ,направленную уже на исполнение данной команды,верно? <

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

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

0
Ответить

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

1)Хочу чуть вернутьсятк теме матриц и уточнить насчёт матрицы ips.Может знаете что.Насколько мне известно,в отличие от tn  в ips кристаллы не закручены,а все время находятся параллельно друг другу,но тогда как матрица может работать,если бороздки на поляризационных фильтрах располагаются перпендикулярно на двух фильтрах,а для того, чтобы свет был поляризован,необходимо скрутить кристаллы,что свет свободно вышел на другом фильтре.Так как всё-таки устроены кристаллы в ips.

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

Спасибо,что уделяете время на 

0
Ответить

1) Про ips-экраны я почти ничего не знаю.

2) Разные области программирования требуют разного уровня навыков. Если вы хотите думать поменьше и просто приходить на работу, садиться, что-то печатать-печатать-печатать не сильно напрягаясь и получать за это деньги, то сейчас лучший вариант - это фронт-енд. Тогда учить нужно HTML, CSS, JavaScript и разные инструменты, которые вертятся вокруг этого всего. Если хорошо устроетесь по работе, то будете делать однотипную работу (программировать внешний вид сайтов) и получать вполне неплохую зарплату.

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

Работа посложнее (требует больше учёбы, больше навыков) - это серверный программист. Будете писать код, который обрабатывает данные для сайтов (внутренняя логика сайтов, которую не видно, но она необходима для работы сайта). В этом случае нужно учить Python и SQL. Однако, тоже есть опасность, что через 5-10 лет потребности в этой области начнут снижаться из-за автоматизации типичных задач. Опять есть риск получить сложности с трудоустройством.

Работа ещё сложнее - писать полноценные приложения. Точно могу сказать, что в ближайшие 10 лет в этой области потребность не уменьшится. Более того, есть вероятность, что потребности возрастут (то есть, работы станет больше). Если вы будете хорошим специалистом, вы будете очень востребованы. Если выберите эту область, то учить нужно C#, Kotlin или Swift.

Работа ещё сложнее - это мощные приложения, которые должны работать максимально быстро. Это, например игры, очень сложные редакторы, компиляторы, браузеры. Обычно их программируют на C++. Тут проблема в том, что это уже более-менее элитарная область программирования. Работы такой не очень прям много. Но и хороших программистов в этой области тоже немного. Если вы любите программирование и готовы много учиться - в этой области вы сможете решать сложные задачи и получать за это много денег (но если вы будете плохим программистом, будете не очень-то нужны). В ближайшие 10-15 лет эта область программирования точно не исчезнет.

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

Ещё одна интересная сфера, которая через 5-10 лет может оказаться =очень= востребованной - это "машинное обучение" (самообучающиеся программы, которые умеют думать почти как человек). Это отдельная область, о которой я мало что могу сказать. Если вы хотите достичь высоких результатов в этой области, вам очень желательно иметь сильную математическую подготовку. Но, наверное, можно работать и на более простых должностях. Как сложится "машинное обучение" через 5-10 лет - это очень сложный вопрос. Сейчас там всё очень быстро развивается и меняется. Если хотите заниматься машинным обучением, нужно учить математику и Python.

Что касается того, с чего начать. Начать можно почти что с чего угодно.

Единственное, что я очень НЕ советую начинать с JavaScript. Это ужасный, простой ужасно плохой язык. На нём можно программировать только ради денег.

(больше у меня пока нет времени писать, продолжу потом)

0
Ответить

Неужели простой математики на уровне знания умножения и деления не хватит?Зачем там сложная математика нужна?

0
Ответить

> Зачем там сложная математика нужна?

Зачем нужна математика в самой передовой области вычислительных технологий? Вы думаете, что разработать новую самообучающуюся программу (не просто скопировать по шаблону, а именно создать новую нейросеть) - для этого достаточно знать умножение и деление? Это настолько абсурдно, что я не могу серьёзно это обсуждать. Скажу кратко: лучшие программисты в этой области =обязаны= иметь сильную математическую подготовку.

0
Ответить

> И есть ли то,что сейчас я мог бы уже начинать практиковать.

Если вы хотите быть хорошим программистом, то наилучший вариант в данный момент - это начать программировать на C# (читается как "си-шарп").

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

Почему не PHP? Потому что программирование на PHP (и вообще бэкенд-программирование) - это специфический опыт со специфическими требованиями (REST, stateless). Программирование на PHP содаст искажённое представление о структуре и архитектуре программы (собственно, архитектуры там, можно сказать, почти что нет).

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

Почему именно C#? Потому что C# позволяет разрабатывать полноценные программы практически в любой сфере деятельности (десктоп, сервер, андроид, айфон), это достаточно хороший современный язык. Программирование на C# развивает навыки "правильного" программирования, которые в дальнейшем пригодятся, если вы захотите стать специалистом в серверном, прикладном или (в меньшей степени) системном программировании. C# проще, чем C++; C# позволяет концентрироваться на программе, вместо того, чтобы думать о памяти и указателях. Если в дальнейшем вам потребуется C++, предварительный опыт C# всё равно не будет лишним.

0
Ответить

Большое спасибо за ответ.Хочу уточнить.Раз c++ такой противный язык,чего не создавать пусть даже игры для ПК именно на нем ,а не на c#

0
Ответить

Немного ошибся Именно на c# ,а не на C++

0
Ответить

> чего не создавать пусть даже игры для ПК именно на нем

Типичная программа, написанная на С++, на 5-10% быстрее аналогичной программы, написанной на C#. Кроме того, C++ предоставляет максимальные возможности для "тонкой настройки" программы. Обычно C# самостоятельно управляет некоторыми вещами в вашей программе, что иногда делает его медленнее и (что ещё важнее) делает работу программы немного менее предсказуемой, не на 100% контроллируемой (это можно отключить, но тогда и пропадут многие преимущества C# перед C++).

Если бы игровые движки разрабатывались на C#, то было бы очень трудно поддерживать плавный FPS (частоту кадров) без рывков. Периодически происходили бы небольшие, но заметные подтормаживания (в эти моменты C# чистит свою память от ненужных элементов; в C++ этим вопросом занимаемся сам программист и он может запрограммировать маленькие строго контроллируемые этапы очистки от мусора, чтобы FPS падал не так заметно).

В свою очередь, C++ позволяет использовать сложные концепции программирования там, где вы хотите, и при этом писать на 100% контроллируемый код. Там, где нужно максимальное быстродействие, вы можете писать всё вручную, вплоть до того, что почти что (на самом деле нет, но грубо примерно можно так сказать) писать конкретные команды для процессора. C++ - это максимально "мощный" язык. Но за эту мощь нужно расплачиваться повышенной сложностью языка. И ещё тем, что при неаккуратном обращении можно легко допускать ошибки, которые будут ломать всю программу.

0
Ответить

Александр,скажите пожалуйста.Вот ПК,принимает только команды в виде 0 и 1.Для многих ,возможно, эти языки(C,java )и ТД являются неудобными,ну раз язык самого ПК примитивен,почему человек не может создать абсолютно простой язык программирования.Без скобок,точки запятой и ТД.Насколько знаю,языков на самом деле очень очень много.Так почему не могут пользоваться наиболее лёгким ,простым.Ведь по любому есть языки проще чем C++  C# 

0
Ответить

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

Но на деле наоборот. По ходу развития программирования, появлялись языки, которые =намеренно= отходили всё дальше и дальше от того, как работает процессор.

Я приведу такую аналогию:

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

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

Самый простой язык программирования (который работает так же, как работает процессор) называется "ассемблер". Возможно, вы слышали о нём. Если слышали, вы знаете, что считается, что программирование на ассемблере - это самый сложный вид программирования. И это и правда так. Почему? Потому что, если сравнивать с C++, тоэто будет как сравнивать человека, делающего сложные вычисления на калькуляторе, с человеком, делающем это ручкой на листочке. Листочек - самый простой способ записи чего угодно. Но с ним можно наделать намного больше ошибок. И считать нужно будет намного больше.

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

Возможно, вам кажется, что скобочки, точки и т. п. - это не похоже на "более наглядный способ". Но любой специалист подтвердит, что программа на C# намного более наглядна, чем программа, написанная на ассемблере.

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

Современные языки (такие, как C#) - намного более наглядны и понятны. Разработка на этих языках позволяет писать намного более сложные программы намного быстрее, совершая при этом намного меньше ошибок.

0
Ответить

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

0
Ответить

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

0
Ответить

> компилятор получаетя не нужен,ты просто сбиваешь 1 и 0 без буквенных обозначений

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

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

Пример программы на ассемблере (после знака "#" - комментарий к программе):

mov eax, 123 # записать 123 в регистр eax
mov ebx, -90  # записать -90 в регистр ebx
add eax, ebx  # прибавить к eax значение из ebx
test eax, eax  # проверить eax на равенство нулю
jz zero             # если есть равенство, перейти к адресу, заданному отметкой "zero"

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

0
Ответить

Скажите,а раньше , получается на машинном коде все программировали?

0
Ответить

> раньше , получается на машинном коде все программировали?

Да. Самые первые программы были написаны на машинных кодах. Больше ж не на чём было писать. На машинных кодах были написаны первые компиляторы для ассемблера, чтобы потом уже можно было на ассемблере писать. Затем на ассемблере написали компиляторы для более сложных языков. И так далее.

Ещё раньше, до машинных кодов программы загружались не из файла, а с помощью "перфокарт". Это были такие прямоугольные бумажные картонки, где в определённых местах нужно было дырявить дырочки там, где должны быть единички (и не дырявить, если должен быть ноль). На одной перфокарте можно было записать около 100 байт программы (не мегабайт, не килобайт, а просто байт). Далее включали компьютер и сотни таких перфокарт по очереди (главное, не перепутать) засовывали в устроство чтения перфокарт. Таким образом программа загружалась в память компьютера, с помощью перфокарт.

А ещё раньше компьютеры были "одноразовыми". Они собирались под какую-то конкретную программу, которую они должны были делать. Если нужна другая программа, компьютер нужно было переделывать.

0
Ответить

Скажите,можете ли вкратце объяснить,как же кусок кремния заставляют работать в определенной последовательности.Чтобы он,к примеру,взял инфу из оперативки,затем отправил эту инфу на жёсткий,обработал и ТД.Ведь,приведу грубый пример.мы подключим к нему переменный ток ничего не изменится ,он не станет вот так сам обмениваться с чем либо данными.Не понятно как на заводах,вот они изготовили его,как заставляют его работать с другими комплектующими?

0
Ответить

Об этом и написан весь мой ответ, к которому мы пишем комментарии.

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

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

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

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

> взял инфу из оперативки

Процессор соединён с оперативной памятью проводами. И процессор умеет понимать команды подобные "взять информацию из такой-то ячейки памяти". Информация из оперативной памяти - это комбинация токов, которая приходит из памяти в процессор.

> затем отправил эту инфу на жёсткий

Это уже посложнее, но суть примерно та же самая, что и с оперативной памятью.

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

> как заставляют  его работать с другими комплектующими?

Не просто так ведь существует материнская плата. Вы видели, сколько на ней дорожек и микросхем? Материнская плата хоть и проще процессора, но она тоже очень сложна. Она соединяет все отдельные части компьютера между собой.

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

0
Ответить

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

0
Ответить

> как же тогда человек сумел их правильно сопоставить

Первые компьютеры были собраны в 1940-х годах. С тех пор технологии постоянно совершенствуются. Никто не разрабатывал сразу с нуля схему для десятков миллионов элементов. Эти схемы постепенно развивались несколько десятилетий. За это время сменилось много поколений процессоров.

Например, бортовой компьютер для посадки на Луну в 1969-м году. Его скорость работы: около 1 мегагерца (в 3000 раз медленнее нынешних процессоров). Оперативная память: 4 килобайта (в 4 миллиона раз меньше нынешнего). Компьютер был собран на основе четырёх тысяч простейших логических схем. И он был способен работать лишь с числами в диапазоне от нуля до шестидесяти тысяч с небольшим. Для сравнения: современный процессор может оперировать числами в диапазоне примерно от минус 10 тысяч квадриллионов до плюс 10 тысяч квадриллионов (если точно то: от -9,223,372,036,854,775,808 до +9,223,372,036,854,775,807).

И всё же это был уже достаточно мощный компьютер, способный на большие дела (посадить космический корабль на Луну).

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

0
Ответить

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

0
Ответить

> Что же будет к нему подавать ток,а самое главное в определенной  последовательности,чтобы он корректно заработал,ведь ос только на  дискеона ещё никак не может работать <

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

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

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

0
Ответить

На фото - Маргарет Гамильтон (глава отдела разработки программ). Рядом с ней - стопка распечатанного исходного кода (программы), которую разработала она и её отдел для "Аполлон-11" (первый полёт на Луну). Я так понимаю, программа была написана на ассемблере.

0
Ответить

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

2 Современные языки намного способны сократить тот размер информации,что на картинке?

0
Ответить

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

2 Современные языки намного способны сократить тот размер информации,что на картинке?

0
Ответить

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

2. Намного. Как минимум, в несколько раз. Возможно, в 10 раз и больше.

0
Ответить

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

0
Ответить

Большое спасибо вам за уделённое,с вашей помощью я смог обойтись без огромного объема воды,которая есть в интернете

+1
Ответить

Логические 1 и 0 - это и есть то же самое, что "есть ток" и "нет тока". Поэтому можно сказать, что компилятор превращает единицы и нули в другие единицы и нули. Или же можно сказать, что компилятор превращает комбинации "есть токов" и "нет токов" в другие комбинации "есть токов" и "нет токов". И то и то - верно.

0
Ответить

1Александр, здравствуйте,вот появился вопрос по теме электричества в ПК.Не совсем дополнял суть работы.Получается,что по материнской плате и вообще по всему железу ПК информация передается с помощью тока.А тоесть он быстро проявляется и исчезает,как бы включается и выключается.Правильно ли понимаю?2 Если да ,то с постоянным напряжением и силой подаётся ток (Под постоянным я имел ввиду,не меняется ли сила и напряжение в ходе работы?

0
Ответить

> то есть он быстро проявляется и исчезает

Да.

> с постоянным напряжением?

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

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

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

Однако время, в течение которого сила тока остаётся постоянной, может быть очень маленьким. Процессор работает на частоте 3 гигагерца. Это означает, что один такт процессора (то есть, один период времени, в течение которого токи в процессоре остаются неизменными) длится 1 / 3 000 000 000 (одна трёхмиллиардная доля) секунды. После этого процессор переключается на следующий такт (то есть токи очень быстро "переключаются", где-то они появляются, где-то, наоборот, перестают течь). Вот в течение этой одной трёхмиллиардной доли секунды токи постоянны. Затём происходит быстрый "скачок" к новым токам. И потом новые токи опять постоянны в течение одной трёхмиллиардной. И так далее.

0
Ответить

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

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

0
Ответить

1. Да. Хочу уточнить, что ничто не обязывает ток именно =измениться= через 1/3000000000 секунды. Например, ток мог быть, а потом через 1/3000000000 секунды опять продолжить быть (это эквивалентно "была единица, а в следующий раз опять единица"). Здесь важно то, что ток может меняться только в короткий момент времени между вот этими периодами в 1/3000000000 секунды. В остальное время ток постоянный.

2. > в работе железа абсолютно не имеет никакого значения силы тока и напряжения <

В чём-то да. А в чём-то нет.

С точки зрения сути того, что мы хотим "изобразить" с помощью токов - да, сила тока никакого значения не имеет. Может быть 1 вольт, может быть 10 вольт. Всё это в любом случае является эквивалентом единицы.

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

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

Как можно заметить, остался диапазон от половины вольта до одного вольта, для которого непонятно, что это означает: единицу или ноль. Так делается специально. Это как бы разграничительный диапазон, чтобы случайные небольшие изменения тока и напряжения не приводили к ложным изменениям цифровой информации. До тех пор, пока напряжение остаётся в этом разграничительном диапазоне, считается, что цифровая величина остаётся в своём прежнем значении. То есть, например, изначально было напряжение около нуля. Это означает цифровой ноль. Затем напряжение начало расти. До половины вольта это всё ещё означает ноль. Напряжение растёт дальше. Больше половины вольта (и до одного вольта) - это непонятно что. Но поскольку до этого момента у нас был цифровой ноль, мы продолжаем считать, что это всё ещё означает цифровой ноль. Когда напряжение дойдёт примерно до одного вольта - в этот момент мы будем считать, что цифровой ноль изменился на цифровую единицу.

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

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

Если же упростить, то можно считать, что отсутствие (или же почти отсутствие) тока - это ноль. А некая достаточно заметная величина - это единица.

Я тут, пока объяснял, часто перепрыгивал между силой тока и напряжением. В нашем случае это значения не имеет. Больше напряжения - значит больше ток. Если же больше ток, то это потому что напряжение больше. Поэтому в нашем случае ток и напряжение можно считать взаимозаменяемыми терминами.

0
Ответить

Большое спасибо за такие детальные ответы.Хочу уточнить.Сейчас пополнил свои знания новой информацией,так как раньше считал,что на проце либо абсолютно нет тока,либо он есть но совсем чуть- чуть.Смотрите,как вы сказали,что ,к примеру от 0 до 0,5 вольт это 0 ,а от 1 до 1,5;2 вольт-это 1.Но если ток дойдет до 0,5 и начнет расти дальше,то это все еще 0 и это сделано для того чтобы не сбивать цифровую информацию.Тогда почему же если постоянно держать проц,скажем в 0,7 вольт это может дать сбой информации .Ведь специально установили этот промежуток,чтобы проц не тупил?

2Получается ,что такой принцип работы не только на проце,но и на всей плате со всеми элементами (видеокартой памятью,и тд?Что раз проц понимает инфу :0 от 0-0,5вольт,а 1 от 1-1,5 вольт то и также и вышеуказанные компоненты работают также или всё-таки как-то иначе?

0
Ответить

> Тогда почему же если постоянно держать проц,скажем в 0,7 вольт это может дать сбой информации <

Я предполагаю, что если постоянно держать ровно 0,7, то сбоя не будет (хотя как знать, мало ли). В этой ситуации проблема только в том, что если напряжение удерживается как 0,7, то это признак того, что что-то работает неверно.

Нехорошо оставаться в этом "непонятном" диапазоне, потому что реальная электрическая схема работает не так идеально, как наша идеализированная цифровая модель. Дело в том, что отдельные части схемы могут переключаться не строго на 1 вольте, а например на 0,9 вольта, а некоторые, может быть на 0,8 уже будут переключаться. А некоторые может быть на 0,8 сперва не переключатся, но если мы будем подавать туда 0,8 в течение долгого времени, то тогда переключатся.

То есть, мысль в том, что реальная микросхема она не может функционировать полностью идеально, безупречно, в работе реальной микросхемы есть свои сложности. Поэтому микросхема проектируется так, чтобы на 1 вольте всё уже =точно= переключилось. Но что-то переключится раньше, уже на 0,8, что-то на 0,9, что-то на 0,95. Ну и в обратную сторону то же самое. На 0,5 вольта всё должно =точно= переключиться на ноль. Но что-то переключится уже на 0,6, что-то на 0,55 и т. д.

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

0
Ответить

> Получается ,что такой принцип работы не только на проце,но и на всей плате со всеми элементами <

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

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

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

0
Ответить

1Это понял.Но хочу ещё немного уточнить.Вы сказали ,что в реальной схеме все работает не все так гладко ,что может осуществиться переход с 0 на 1 не на 1 в ,а на 0,8.Тогда как же можно говорить о хорошей работе схемы,если такая погрешность.

2 И всё-таки вы сказали про разграниченную область,созданную специально для того ,чтобы не было искажения цифрового сигнала.А значит ,по идее,к примеру проц ,если сделан так ,что переключаться будет на единицу при 1вольте не может же переключаться на на 0.8 .Просто немного не понятно.Вроде есть разграниченная область ,чтобы не сбивалась цифровая инфа,а вроде проц заточен на переключение на единицу строго при 1 вольте и при этом вы говорите,что может переключиться при 0,8 вольтах.Объясните , пожалуйста)))

0
Ответить

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

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

Нужно помнить, что спецификация =требует=, чтобы ток имел вот эти промежуточные величины (как у нас в примере от 0,5 до 1 вольта) только кратковременно, в тот момент, когда сигнал переключается из логического нуля в единицу или из единицы в ноль. То есть, если у нас длительность одного процессорного такта равна 1/3000000000 секунды, то длительность того интервала времени, во время которого происходит смена тока - она меньше ещё в 5 раз или даже в 10 раз. То есть, даже если что-то переключается при 0,8, а что-то при 0,95 - это не имеет плохих последствий, потому что ток нарастает очень быстро. Пусть даже процессор переключился не весь одновременно. Но все переключения в любом случае закончатся =задолго= до того, как истечёт 1/3000000000 секунды, отведённая на процессорный так. То есть, в любом случае процессор переключится в нужное состояние и успеет сделать то, что он должен сделать.

> Вроде есть разграниченная область ,чтобы не сбивалась цифровая инфа,а  вроде проц заточен на переключение на единицу строго при 1 вольте и при  этом вы говорите,что может переключиться при 0,8 вольтах. <

Если мы не хотим переключать процессор в состояние логической единицы, то зачем мы вообще подаём к нему какой-то ток? Если мы хотим, чтобы был ноль, мы должны ничего не подавать. Как вы себе представляете, что мы хотим, чтобы в процессоре был ноль, но мы "случайно" подали туда аж 0,8 вольта вместо нуля?

Разграничительный диапазон защищает небольших колебаний тока. Он стерпит 0,5 0,6 0,7. Может быть, он даже стерпит 0,8, но не стерпит 0,85. Вопрос в том, как вообще так вышло, что у нас ток ушёл от нужной нам величины из диапазона 0 - 0,5 аж до 0,8? Это же, если в процентах посчитать, то это ошибка более чем на 50%. Это колоссальная ошибка. Если она произошла, значит в схеме что-то очень сильно не так. Обычно в таких ситуациях мы получаем неработоспособный компьютер.

Нормальные колебания могут быть в пределах 5%, ну 10% (я не знаю точно, я сейчас фантазирую). Но 50%? Это явный перебор.

0
Ответить

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

0
Ответить

Продолжение к вопросу.Логично тогда спросить,зачем про зводителям делать такой диапазон для логического 0.Если 0 это отсутствие тока.Но раз бывают небольшие скачки напряжения для этого и логическая 1 начинается не с 0.5 а с 1 ,чтобы проц не путал информацию

0
Ответить

> Логично тогда спросить,зачем про зводителям делать такой диапазон для логического 0 <

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

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

Так вот, задача разработчиков микросхем (в частности, процессора) заключается в том, чтобы "избавиться" от всех этих несовершенств. В том, чтобы разработать такую схему, которая будет =годами= работать логически безупречно. За эти годы работы процессор совершит сто квадриллионов (!!) переключений. И все эти переключения, все до единого должны быть логически безупречными.

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

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

0
Ответить

> раз бывают небольшие скачки напряжения для этого и логическая 1 начинается не с 0.5 а с 1 <

Представим ситуацию, что в данный момент у нас есть 1,2 вольта на такой-то дорожке процессора (это логическая единица). Мы хотим переключиться в логический ноль. Но из-за несовершенства электрической схемы, мы не смогли очень быстро (мы помним, что нужно делать это =очень= быстро) убрать всё напряжение с дорожки. В результате через какое-то время, отведённое нам на переключение процессора в новое состояние, у нас всё равно ещё осталось небольшое остаточное напряжение величиной в 0,2 вольта. Это напряжение потом, чуть позже, наверное, упадёт до нуля. Но поезд уже ушёл. Если мы будем требовать, чтобы ноль означал непременное =отсутствие= тока, то процессор имеет право сработать так, как будто на этой дорожке всё ещё единица. Но благодаря тому, что даже небольшое присутствие тока мы всё равно засчитываем как ноль, наша схема всё равно сработала правильно, даже при том, что она работает не на 100% совершенно идеально.

0
Ответить

Приведем пример,0 это от 0 до 0,5,а 1 это 1-1,5.Промежуток нужен чтобы не сбивалась информация.Вопрос в следующем.Получается переключение скажем на 1 может произойти на 0,8 ,а не на 1(хотя производитель заточил переключение именно при 1 вольте,но опять,мы помним про несовершенство схем.)

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

3 <. Да. Хочу уточнить, что ничто не обязывает ток именно =измениться= через 1/3000000000 секунды. Например, ток мог быть, а потом через 1/3000000000 секунды опять продолжить быть (это эквивалентно "была единица, а в следующий раз опять единица"). Здесь важно то, что ток может меняться только в короткий момент времени между вот этими периодами в 1/3000000000 секунды. В остальное время ток постоянный.> Вы хотели сказать ,что ток постоянный тогда ,когда нам нужно сделать две единицы подряд,а меняется он значительно как только нам нужно переключиться на 0?

0
Ответить

> Вы хотели сказать ,что ток постоянный тогда ,когда нам нужно сделать две  единицы подряд,а меняется он значительно как только нам нужно  переключиться на 0? <

Да. Я уточнил, чтобы не было недопонимания.

> Раз для двоичной логики не важно напряжение и сила тока,то почему в биосе возможно повысить вольтаж процессора. <

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

Фактически, таким образом создатели материнский плат разрешают оверклокинг (переразгон) компьютера.

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

Первый очевидный шаг для разгона: это повысить частоту (я упоминал про генератор тактовой частоты) на материнской плате. То есть, если раньше процессору нужно было успевать переключиться и сделать всё, что нужно, за 1 / 3000000000, то теперь процессору нужно успевать делать всё то же самое за, например, 1 / 3200000000. То есть, теперь процессор должен успевать работать заметно быстрее. Как я уже говорил, процессор сделан "с запасом", чтобы гарантировать его надёжную безошибочную работу. То есть, в принципе, он способен работать и быстрее, но уже не так надёжно.

И вот оверклокер (человек, который разгоняет компьютер) повышает частоту на материнской плате и обнаруживает, что процессор может работать быстрее. Но не всегда. Допустим, раз в 10 минут происходит сбой и компьютер уходит в перезагрузку. Тогда оверклокер немного понижает частоту, подбирает ту величину, при которой процессор не сбоит слишком уж часто.

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

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

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

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

0
Ответить

Приведем пример,0 это от 0 до 0,5,а 1 это 1-1,5.Промежуток нужен чтобы не сбивалась информация.Вопрос в следующем.Получается переключение скажем на 1 может произойти на 0,8 ,а не на 1(хотя производитель заточил переключение именно при 1 вольте,но опять,мы помним про несовершенство схем.)?

0
Ответить
Автор удалил свой комментарий

Производитель заявляет, что при 1 вольте  (и выше) процессор =точно= переключится и будет вести себя так, как он  должен себя вести в случае логической единицы.

Также разработчики  информируют, что =после= того, как процессор переключился в состояние  логической единицы, процессор будет оставаться в этом состоянии даже  если напряжение упадёт ниже 1 вольта (но не ниже, чем, например, 0,7  вольта). Однако, такое состояние не рекомендуется. Это что-то вроде  "режима исправления ошибок".

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

Производитель  =требует=, чтобы переключение напряжения из состояния нуля (то есть,  ниже 0,5 вольта) до состояния единицы (то есть, выше 1 вольта)  происходило =быстро= (то есть, намного быстрее, чем один такт  процессора). Если переключение произойдёт недостаточно быстро, то  процессор может не успеть перейти в нужное состояние. (При этом  неизвестно, в какое конкретно состояние переключится процессор. Этого  скорее всего не знают даже сами разработчики процессора)

Вот.

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

Единственное, что недопустимо - это  когда мы подали 0,9 вольта, а до 1 вольта не довели (вернулись назад к  0,5 вольта, например). В этом случае часть процессора может переключиться, а часть нет. То есть, будет сбой в работе.

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

Аналогичные требования и для переключения из логической единицы в ноль.

0
Ответить
Автор удалил свой комментарий

Кажется понимаю.Только смотрите.В моем понимании так.Что  есть логический 0.Это от 0 до 0.5 и есть логическая 1,это от 1 до 1,5 ( к примеру).И вот процу нужно переключиться из 0 в 1 и при этом он может это сделать не при 1 вольте,а чут ниже,0,8 вольт.Вы говорите,что не ниже 0,7.Но тогда почему не при 0,7Раз мы говорим ,что проц сам может переключиться при 0.8 0.9 вольтах,то почему он не может это сделать при 0,7?Раз это может быть при 0.8 0.9 то теоретически и при 0.7 может быть.А иначе если бы человек "решал" ,то мог бы заставить проц переключаться только при определенных значениях

0
Ответить

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

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

Но при этом разработчики не хотят, чтобы процессор переключался на логическую единицу слишком слишком рано, слишко близко к диапазону логического нуля (0,5 вольта). Потому что в этом случае случайные помехи могут привести к частичному переключению процессора в непонятное состояние.

> почему он не может это сделать при 0,7?

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

Наша задача - это подать напряжение достаточно быстро, что напряжение достаточно быстро прошло через весь диапазон от 0,8 до 1,0 (и можно выше, вплоть до 1,5). Таким образом, мы точно переключим весь процессор в нужное состояние.

В любом случае, мы уже слишком сильно углубились в детали. В реальности там, возможно диапазоны не от 0 до 0,5 и не от 1 до 1,5. А, допустим, от 0 до 0,2 и от 1,2 до 1,5. Я, на самом деле, точно не знаю. Никогда не интересовался конкретно про процессоры.

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

0
Ответить

Суть понятно.Хочу понять логику создания этих разграничителей.Я понимаю,что могут быть небольшие помехи,значит,что к примеру можно сделать диапазон от 0 до 0.5 но зачем тогда делать диапазон для логической 1 ,когда можно точно дать задачу процессору переключаться при 1 вольте,а все остальные значения заставить воспринимать как не нужное,чтобы при других значениях он не производил никаких манипуляций?

0
Ответить

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

Ещё раз.

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

Руководствуясь этой мыслью, представим такие требования "от 0 до 0,5 вольта - это ноль, от 0,5 до 1 вольта - это единица". Такое требование уже намного лучше. Теперь разработчикам материнской платы уже нетрудно будет его исполнить. Однако теперь это требование трудно исполнить самому процессору. Потому что теперь его задача в том, чтобы =строго= на 0,5 вольта переключится целиком (десятки миллиардов элементов). Теперь уже у разработчиков процессора эта же самая проблема. Они не могут это гарантировать.

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

Представим такие требования: "Диапазон от 0 до 0,5 вольта - это ноль; диапазон от 0,5 до 1 вольта - это защитный диапазон, у которого есть 2 цели: 1. дать возможность схеме быть не идеальной, но работоспособной. 2. дать возможность процессору быть не идеальным, но работоспособным; диапазон от 1 до 1,5 вольта - это единица".

Рассмотрим снова все подробности защитного диапазона.

1. Мы понимаем, что процессор сделан так, что он переключается из единицы в ноль не строго на 0,5 вольта (мы говорили, что это сложно), а где-то в районе 0,5 вольта, но обязательно =выше= него (допустим, в районе 0,55-0,7 вольта). То есть, реально процессор переключается не на 0,5, а выше. Заранее. Именно за тем, чтобы когда будет 0,5 всё уже точно переключилось.

2. То же самое с окрестностями единицы. Процессор начинает переключаться не на 1 вольте, а немного раньше (допустим, 0,7-0,95 вольта), чтобы к 1 вольту всё уже обязательно переключилось.

Итак. Диапазон от 0 до 0,5 нужен, чтобы облегчить задачу мат. плате. Диапазоны от 0,5 до 0,7 и от 0,8 до 1,0 нужны самому процессору, для того, чтобы обеспечить исполнение своих же требований: к моменту достижения 1 В он должен =весь= переключиться в единицу, к моменту достижения 0,5 В он должен =весь= переключится в ноль. Диапазон от 1 до 1,5 снова нужен, чтобы облегчить задачу мат. плате. Как видите, все значения от 0 до 1,5 вольт имеют какой-то смысл.

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

3. Также помним, что процессор сделан так, что после того, как он переключился в единицу, небольшое дрожание напряжения не сможет его случайно переключить в ноль. (и наоборот тоже верно)

0
Ответить

Теперь понял, спасибо большое за уделённое время,но ещё раз спрошу😁 так на что в биосе можно повышать силу тока,на что оно нужно там,ладно частота,но сила тока

+1
Ответить

> в биосе можно повышать силу тока,на что оно нужно

Это какие-то электрические заморочки. Я точно не знаю, как это работает. Частоту можно повышать, чтобы попытаться разогнать компьютер. Но часто из-за такого переразгона в схемах начинаются сбои (оно и понятно, они же на это не рассчитаны). Но если немного поднять напряжение, то иногда можно немного улучшить стабильность работы этих схем. Хотя есть риск совсем их сжечь (либо сильно уменьшить срок их службы).

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

0
Ответить

Большое спасибо за потраченное время.Благодаря вашим ответам я разо

+1
Ответить

Александр,вот хочу спросить,всегда размышлял на тем ухудшается ли работа процессора и другие части ПК со временем или нет.Заметил,что чем старше ПК становится,тем больше он начинает шагать,хотя логично сообразить чему там портится идёт ток да идет

0
Ответить

> ухудшается ли работа процессора и другие части ПК со временем или нет

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

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

> чем старше ПК становится,тем больше он начинает шагать

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

0
Ответить

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

0
Ответить

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

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

В англоязычной среде есть термины "software developer" (программист-разработчик) и "software engineer" (программист-инженер). Вроде как считается, что "software engineer" - это такой серьёзный умный тип, который очень много знает про то, как нужно делать программы, про все имеющиеся технологии и т. д. и т. д. И он применяет эти свои знания, чтобы решить, как лучше вообще вести разработку программы, что использовать, как исползовать и т. п. А разработчик имеет практические знания о том, какие именно строчки кода лучше набирать, чтобы всё работало правильно без ошибок.

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

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

Вполне может быть, что та же самая ситуация и с названиями факультетов. Вот есть факультет "информатика и вычислительная техника" - такое стандартное название. Обычное. А вот есть "программная инженерия" - ого, впечатляюще звучит, там учат быть серьёзными специалистами. Пффффф... Это ничего не значит. Это просто название покрасивее. Имеет значение не название, а репутация университета и ум преподавателей.

0
Ответить

Понял,и вот ещё что.Для программиста обращают ли внимание при устройстве на работу на его диплом и какой вуз он закончил

0
Ответить

Если бы я сказал "не обращают", это было бы неправда. Но, скажем так, роль университета и диплома часто сильно преувеличивают.

Представим ситуацию:

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

А теперь представим другую ситуацию:

В компанию пришли два кандидата. У одного есть диплом (допустим, престижный). А другой уже 2 года в свободное время писал собственную программу и вообще любит заниматься программированием, читать про программирование и т. п. Когда их начнут спрашивать, сразу же станет видно, что один из них знает всё только по учебнику, а другой уже реально делает реальную работу. Кого из них возьмут? Здесь возможны варианты. Если компания глупая (а таких довольно много), то может быть, возьмут того, у кого диплом красивее. Но если компания умная, то они без сомнения возьмут того, кто уже имеют заметный опыт программирования.

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

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

Так что, если есть планы сразу же после университета стартануть мощную профессиональную карьеру, то прежде всего нужно много учиться самому и программировать самостоятельно какие-то реальные проекты. То, что преподают в университетах - это очень слабый уровень, если реальной практики программирования нет (а в университете именно практика программирования находится на уровне "близко к нулю"). Ну и вдобавок к этому можно, конечно, и диплом попрестижнее. Потому что учиться всё равно нужно будет - так почему не учиться сразу в престижном университете? Тогда будет и личный опыт и диплом - 100%-но крутой старт карьеры.

Но если нет желания стараться изо всех сил ради быстрой карьеры, то вариант "университет попроще" - это тоже отличный вариант. Главное, в свободное время хотя бы периодически заниматься программированием. После университета тебя, может быть, не возьмут прям в лучшие компании (из-за недостаточно крутого диплома), но через 2-3 года работы это перестанет иметь значение и ты сможешь устроиться уже на серьёзную работу. А ещё через 2-3 года легко можешь расчитывать на работу в лучших компаниях. Это всё при условии, что ты действительно занимаешься программированием и умеешь программировать.

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

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

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

0
Ответить

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

0
Ответить

Почти :)

Я учился программированию, когда у меня дома ещё не было интернета (вообще). Книжки по языку я покупал в магазине (обычная бумажная книжка объёмом в 500 страниц где-то). Документацию и программы я приносил на компакт-дисках. Интернет был в моём университете, но там всегда было много желающих, поэтому там всегда была очередь из студентов. Я туда ходил где-то 1-2 раза в неделю. Разрешалось сидеть в интернете 1 час, если я правильно помню. Там я тоже кое-что находил и уносил себе домой.

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

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

Всё это потому, что мне нравится программирование.

0
Ответить

Кстати, видеоуроки (на ютубе, например) по программированию мне не нравятся. Для меня это очень неудобно. Потому что иногда бывает, что сейчас тебе всё понятно. Но ты не понимаешь, насколько далеко вперёд тебе нужно перелистнуть. Приходится тыкать наобум и тогда можно что-то и упустить. А иногда бывает, наоборот, нужно что-то неспеша обдумать и перечитать 3-4 раза. Но перелистывать назад тоже не очень удобно.

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

Так что я до сих пор предпочитаю учиться в текстовом виде.

0
Ответить

Очень интересная история.Конечно,порой стыдно становится,что у нас так много всего где можно найти и чему-то научиться,а в ваше время только по книжкам разным и учились,так ещё и преподаватели тупенькие.Кстати,а в каком вы вузе учились.И насчёт вас с супругой.Вы сказали,что она на другом факультете училась.Как назывались ваши факультеты?

0
Ответить

Мы учились в Южном Федеральном Университете (считается, что это лучший университет на юге России; несмотря на это, преподавание всё равно было очень плохое; поэтому я думаю, что и до сих пор почти во всех университетах преподают плохо и важно учиться самому), закончили его чуть больше 10 лет назад.

У меня "Факультет Высоких Технологий", специальность "информационно-измерительная техника и технологии". У жены - математический факультет, специальность "информационные системы и технологии, программное обеспечение".

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

Впрочем, у жены ситуация была не сильно прям лучше. Чему-то учили нормально. Но в целом тоже плохо.

Удивительно, что на её факультет и специальность нужен был проходной балл в районе 38 из 40 (тогда ещё не было ЕГЭ, поэтому сдавались вступительные экзамены в университет; ей нужно было сдавать две математики (теория и задачи), каждый экзамен оценивался по 20-ти балльной системе, в сумме нужно было набрать не менее 38). Школьники, которые показали почти идеальное знание математики, в итоге учились у очень слабых преподавателей, из которых только один мог действительно научить чему-то хорошему в программировании. В общем, полная халтура. И я не верю, что за 10 лет что-то сильно улучшилось.

0
Ответить

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

0
Ответить

> факультеты уже начали переименовываться,так как таких как у вас я не находу

Да (а я не знал). Теперь Факультет Высоких Технологий называется "Институт высоких технологий и пъезотехники". А математический называется "Инстутитут математики, механики и компьютерных наук".

0
Ответить

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

Не вижу списка факультетов.

0
Ответить

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

0
Ответить

> а оказывается не все так как кажется

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

В этом году как раз поступает в университет мой племянник. Вот он выбирает между ЮФУ и ДГТУ. Я лично советую, что если есть возможность, если ситуация позволяет без какого-то прям сильного напряга - то ЮФУ лучше ДГТУ. Но в любом случае лучше учиться самому. Поэтому если есть какая-то проблема с ЮФУ, то не стоит прям рваться туда изо всех сил. Можно просто ходить в университет для галочки (всё-таки какой-то диплом всё равно нужен, совсем без диплома у нас, к сожалению, на работу не берут - это тупо, но это факт) и учиться самому.

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

0
Ответить

Ещё про ДГТУ. Может быть, я тоже зря наговариваю на этот университет. Вот у нас в ЮФУ была большая разница между разными факультетами (их сейчас зачем-то переименовали и теперь называют не факультеты, а "институты"). Например, мой ФВТ был откровенно плох по сравнению с математическим. Может, и в ДГТУ есть более приличные факультеты и не всё настолько плохо. Не знаю. Из того, что рассказывал мне приятель про его факультет, у меня сложилось впечатление, что там всё плохо.

0
Ответить

Вы сказали я не назвал факультет.Вот 2 например.Информатика и вычислительная техника и программная инженерия.Есть и несколько других,связанных с безопасностью,но их кол-во очень мало, так как во всех университетах в основном.Я помню, вы сказали ,что они сильно ничем не отличаются,но непросто так же их по разному назвали,хотя возможно я не прав.Вот в каком из этих двух факультетов математики на курсах меньше?

0
Ответить

И ещё,вот зашёл на сайт мое образование ,а там есть рейтинг институтов по твоей специальности.Рейтинг вроде как основан на отзывах пользователей сайта мое образование.И там дгту стоит на первом месте😁,а  ЮФУ на третьем месте,причем,что сайт на программную инженерию выдал всего 3 института.Непонтяно вообще 

0
Ответить

> дгту стоит на первом месте😁,а  ЮФУ на третьем месте <

Это вообще странный метод оценки качества образования - спрашивать самих студентов. Это несерьёзно. Я могу лишь утверждать, что 10 лет назад ЮФУ был очевидно более престижным университетом, чем ДГТУ, это можно определить по тому, насколько большой конкурс был в один и второй университет.

В ЮФУ на математический факультет конкурс был просто запредельно зверским (38 баллов из 40; например, я, когда тренировался на подкурсах, на одном из аналогичных тестовых экзаменов набрал 16 из 20). В то время как в ДГТУ я пошёл писать экзамен по физике - там по сравнению с ЮФУ вообще легчайше. Конкурс довольно небольшой, экзамены проще.

Вот и вопрос: почему ДГТУ лучше, но все хотели попасть в ЮФУ?

> Информатика и вычислительная техника и программная инженерия. <

А, эти. Я не знаю. По названиям ничего нельзя сказать. Это нужно где-то читать, узнавать. Учебный курс может быть очень разным. На самом деле, если учить студентов по серьёзному, то для 99,99% программистов высшая математика вообще не нужна (единственные исключения, которые я знаю, это программирование в научной области (например, разработка математических программ), и работа на передовом крае в области разработки нейросетей; для всего остального достаточно школьного курса). Ну, можно сделать 1 семестр численных методов - с головой должно хватать. Но часто математику суют всем подряд непонятно зачем (видимо, чтобы университет казался солиднее).

0
Ответить

"работа на передовом крае в области разработки нейросетей"

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

0
Ответить

А что,при разработке игр нужны логарифмы и все из этого прочее

0
Ответить

Штука в том, что для того, чтобы рассчитать физически-правдоподобное освещение, нужно дочерта вычислительной мощности (на самом деле, даже больше, чем "дочерта"). Когда делают компьютерную графику для фильмов, там каждый кадр вычисляется по несколько минут, и вычисления происходят на вычислительном кластере с тысячами видеокарт. А в компьютерной игре нужно, чтобы было не меньше 30 таких кадров за секунду (!!) на одной-единственной видеокарте. Как говорится, оцените разницу.

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

Я немного читал статьи NVidia про алгоритмы, которые используются в компьютерных играх, про то, как делается рассчёт света/теней. Скажу так: ту математику, которая там есть, я понял где-то на 25%. Но допустим, понять я ещё может быть как-то смогу, если возьму учебники, засяду с ними на недельку. Но как подобное можно придумать самому? Вот здесь без хорошего математического образования не обойтись. Логарифмы - это цветочки. Там не логарифмы, там всё намного-намного (реально намного) сложнее.

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

0
Ответить

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

0
Ответить

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

0
Ответить

Наверное, мне нужно пояснить. Когда вот эти крутые программисты-математики начинают писать конкретный алгоритм для графического движка, они не используют там ничего сложнее, чем умножение. То есть, они как раз так и делают - они заменяют сложную математику простыми аналогами. Но это происходит уже на последнем этапе, на этапе именно написания (печатания исходного кода) программы. А до этого этапа существует такой этап, как "а как бы нам придумать такую идею, какими математическими выражениями мы могли бы записать то, что мы хотим сделать?". И вот тут такая штука. Мы, конечно, могли бы всё это записать в виде "угол падения равен углу отражения; сила света обратно-пропорциональна квадрату расстояния" и т. д. Но в этом случае мы получаем адский объём вычислений. С таким объёмом вычислений персональный компьютер не способен справиться за хоть сколько-нибудь разумное время. Значит, необходим другой подход. Нам нужно придумать такую математику, которая создаст у пользователя иллюзию, что всё реалистично, в то время как вычисляться будет что-то другое, что-то похожее, но на самом деле другое. Вот на этом этапе программисты используют очень продвинутую математику. Это они делают для себя, как бы на листочке. Таким образом легче понимать, что ты делаешь, легче проверять, что получается то, что тебе нужно. Затем, когда они придумали идею, как это всё должно работать, они вручную превращают все эти продвинутые формулы в алгоритм, состоящий из сложить и умножить. Затем они этот алгоритм программируют.

0
Ответить

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

+1
Ответить

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

0
Ответить

Александр, здравствуйте,возник такой вопрос.Хочется знать на что вообще можно рассчитывать при обучении программированию.А то от своего незнания думаю,что научившись программировать можно то ,можно другое,не много времени займет ,не много сил если умеешь и тд.К примеру я разработал приложение.Допустим,его задача ,собирать определенные данные ,к примеру скидки и выдовать.Сколько,на ваш взгляд,можно будет с него заработать,(понимаю,что все зависит от скачиваний),сколько в среднем времени может уйти на такую работу и насколько тяжело

0
Ответить

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

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

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

Главная мысль такова: вы можете разработать вполне-себе неплохое приложение. Но то, сколько вы на нём заработаете - это практически не зависит от ваших способностей как программиста. Это зависит от ваших способностей как бизнесмена, пиарщика и т. п.

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

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

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

0
Ответить

Какой способ выбрали вы?

0
Ответить

Я - разработчик. Я работаю на компанию. Эта компания, в свою очередь, работает с заказчиками-владельцами бизнеса. У заказчиков есть деньги, есть бизнес, есть пиарщики. Когда им нужны программисты, они обращаются к компании-разработчику. А это компания обращается ко мне. Я получаю помесячную зарплату за свою работу. Всё как обычно.

0
Ответить

Тоесть вы считаете это наиболее перспективным вариантом?

0
Ответить

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

0
Ответить
Прокомментировать

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

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

7
-10
Прокомментировать

если процессор получает ответ 1 то продолжает операцию счисления  если 0 то результат счисления принимается для дальнейшей обработки программой

как то так 

0
-5

только счисление зависит от двоичной потом десятичной, dec, bin и hex 

всё зависит от разрядности программы 8, 16, 32, 64, 128 в памяти cmos

-2
Ответить

Что это вообще за ответ такой? Просто мешанина слов. Такое чувство, что чат-бот неудачно попытался сойти за человека.

0
Ответить
Прокомментировать
Ответить