Урок №1, вводный.
--------------------------------------------------
Пополение прибыло))). Становись, равняйсь, смирно. Казалось бы банальные фразы, но как и в любом деле от нас потребуется:
дисциплина, внимательность и выносливость.
Каждый раз прикосаясь к новому железу или вникая в суть работы программ вы будете чувствовать себя первооткрывателем. Я бы даже сказал хирургом информационно-технологической отрасли, именно от вас будет зависить успешность того или иного проекта. Да, придется запастись немалым терпением, путь каменист и часто вы будете падать буквально на самое дно. Зачастую решение всех технических задач лежит на поверхности, но чтобы разглядеть их придется возвращатся каждый раз в самое начало проектов. Почему в начало спросите вы? Потому что правильно подобранная стратегия сама выведет нас на нужный результат и решение. Составить стратегию очень просто. Достаточно взять текущий проект и понять что мы хотим получить. Кроме того мы должны сделать решение универсальным и легко масштабируемым для большей отказоустойчивости.
-------------------------------------------------
Знакомство начнем с самого "простого" операционная система. Все хотябы один раз уже сталкивались с этой программой например в компютере, телефоне, терминале оплаты, навигаторе, планшете, микроволновке и тому подобном.
Подробно расписывать не буду можете ознакомиться сами введя в поисковой системе интерента комбинацию слов "операционная система"
https://www.yandex.ru/ или https://www.google.ru .
Нам самое главное надо понять тот факт что операционная система это программа которую написали люди на определенном языке "язык программирования".
Уже легче, писали люди, значит мы с вами можем понять как это устроено и как работает.
Замечу что программа может работать как самостоятельное решение, а может взаимодействовать с другими программами.
-------------------------------------------------
На этом урок закончен. Суть этого урока психологическая. Мы должны принять факт существования этих вещей и перестать испытывать страх к непонятному.
До встречи на втором уроке. Досвидания.
-------------------------------------------------
Урок №2, в процессе создания.
-------------------------------------------------
Морально мы подготовились, теперь займемся физической подготовкой. Да да именно физической подготовкой, многолетний опыт подсказывает мне что она нас выручит не раз.
Упражнение для глаз.
Повесьте на несколько метров за монитором небольшую картинку и каждые 20-30 минут пытайтесь рассмотреть что на ней нарисовано. Это избавит нас от переутомления глаз и покупки очков.
Упражнение для ног.
Каждый час-два вставайте из-за стола и делайте не менее 50 шагов, можно пару раз поприседать как альтернатива.
Упражнение для плеч и шеи.
Сидя старайтесь выпрямлять осанку, плечи отводим назад и вниз. Как почувствуете усталость так сразу посмотрели в потолок плечи распрямили, опустили.
Упражнение для желудка.
Старайтесь не есть во время работы, лучше поставьте рядом чистой воды и переодически пейте её. Чай или кофе тоже пойдут но не увлекайтесь, лучше воды ещё ничего не придумали.
Вывод: хороший боец не тот что сдохнет через три года, а тот который наберется опыта за три года и будет способен дальше развиваться в интересном ему направлении. Здоровье наше всё, а остальное приложется само.
---------------------------------------------------
Урок №3, что мы хотим? Рациональное использование ресурсов. С чего начать если ты вообще в этом не понимаешь? Секрет "алгоритма". Навык "ключника" (из фильма Матрица :-) ).
---------------------------------------------------
Как я уже писал раньше программы писали люди, писали для себя и других людей, поэтому они придумали алгоритм примерного поведения пользователя. В дальнейшем это позволило адаптировать проекты так чтобы даже человек незнающий и не имеющий навыков программирования смог примерно разобраться в увиденном. Самые простые действия это "открыть программу" и "закрыть программу" также часто значки для этих действий распологаются в одних и тех же местах. Мне вспомнились детские задачки прочитайте их внимательно и попытайтесь дать ответы:
№1: Как засунуть жирафа в холодильник?
№2: Как засунуть в холодильник слона?
№3: Лев созвал всех зверей на собрание. Явились все, кроме одного. Что это за зверь?
№4: Вам нужно пересечь широкую реку, которая кишит крокодилами. Как вы это сделаете?
ОТВЕТЫ:
1. Правильный ответ: Открыть холодильник, засунуть туда жирафа, закрыть холодильник.
Этот вопрос позволяет выяснить, нет ли у вас склонности выискивать чересчур сложные решения для простых задач.
2. Неправильный ответ: Открыть холодильник, засунуть туда слона, закрыть холодильник.
Правильный ответ: Открыть холодильник, вынуть оттуда жирафа, засунуть туда слона, закрыть холодильник.
Этот вопрос позволяет выяснить, способны ли вы при принятии решений учитывать последствия ваших предыдущих действий.
3. Правильный ответ: Это слон. Он же в холодильнике, помните?
Этот вопрос проверяет вашу память.
4. Правильный ответ: Вплавь. Ведь крокодилы-то все на собрании у льва.
Этот вопрос позволяет выяснить, способны ли вы учиться на собственных ошибках.
(материал взят с сайта: http://www.psycho.ru/library/94 )
Поиграли? Понравилось? Если "ДА",тогда можно смело приступать к любому проекту. Если нет "НЕТ" вернитесь ко второму уроку. Понимание процесса работы проекта уже половина дела, это и есть наш "секрет ключника" (насколько я помню из фильма там у него были ключи не только от всех дверей но и от двери ведущей на несуществующий этаж).
Теперь подведем итоги: 1. Цель проекта = понимание и четкое представление конечного результата проекта. 2. Алгоритм = понимания и четкое представление процесса действий конечного пользователя. 3. Оптимизация = понимание логических ошибок и их устронение.
4. Поздравляю вы готовы к завершающему этапу: перенести проект понятный вам в язык понятный машине. В заключении прошу вас пользоваться негласным правилом "Создателя" (опять фильм вспомнил :) ) глосящим: делаю так чтобы любой человек в этом мире смог этим воспользоватся.
---------------------------------------------------
Урок №4, нормальный урок.
---------------------------------------------------
Начнем. Перед нами некое устроиство состоящее из системного блока, монитора, устройства ввода (например смартфон, планшет, ноутбук ...). Для работы не всегда требуется наличие всех трёх компонетов. Монитор и клавиатура с мышью нужны для нашего взаимодействия с системным блоком. Для работы устроиства не обладающего батарейкой понадобится подключение к розетке с электричеством. Нажимаем кнопку вкл и ... та-дам! Перед нами появилась самая первая программа она называется загрузчик, хотя нет перед ним есть ещё одна программа. Для материнской платы представляет из себя код оптимизированный для работы с "железом" (называется BIOS, EFI, UEFI) главная его задача определить наличие или отсутствие компонентов в устройстве и запустить "загрузчик". Загрузчики бывают разные, не буду на этом акцентировать внимание. Суть этих программ сказать пользователю что чего-то нехватает либо запустить операционную систему (windows, linux, firmware, dos, ...). Именно с операционной системой мы и будем работать.
Напрашивается вопрос почему так сложно? Нельзя ли сразу запустить операционную систему? Отвечаю: можно :) с одним условием: для каждого устроиства необходимо будет написать свою операционную систему. Дело в том, что как раз именно эти прокладки между операционной системой и железом позволяют нам запускать множество различных операционных систем не привязывая нас к определенной.
Также свой индивидуальный програмный код имеют сложные устройства например жесткий диск, видеокарта и т.п. они тоже берут на себя задачи прокладок между операционной системой и железом.
Самая главная прокладка которая отвечает за работоспособность всего устройства впринципе находится между стулом и экраном. Шутки, шутками но по большей части именно человек вводит и выводит данные на устройство. Цель большинства программ оптимизировать этот процесс и убрать слои человек, монитор, клавиатура чтобы мы с вами могли заниматся нужными нам делами а не обслуживать "ящик".
Операционная система загрузилась. Перед нами может быть увиденно два варианта: первый часто распространенный это "оконный режим" представляет из себя кучу картинок на экране; второй "командный или строковый режим" представляет из себя однотонный экран с возможностью написания неких команд. Запуск того или иного варианта обусловлен задачами (читай желаниями) которые мы хотим осуществить с помощью "ящика".
Для новичков подойдет любой вариант, отличия составят лишь способы ввода информации.
А как же интернет, почта? Спросите вы, и будете правы.
Опеационная система может иметь установленные программы, а может не иметь их. Программы можно установить и удалить. Опять непонятный слой? Да снова слой который принимает на себя роль посредника между устройствами и программами, опять же служит для универсальности запуска последних на любом оборудовании и запускающихся с различными обработчиками (компилятор). Всё. Надеюсь вы поняли алгоритм работы програмного обеспечения и поняли как оптимизировать и сделать универсальными ваши решения. Программа не обязана сама всё делать она может взаимодействовать с другими программи. Это делается ещё и для облегчения чтобы вам не пришлось писать драйвер к видеокарте для получения вывода картинки на экран.
---------------------------------------------------
Урок №5, просто о сложном, как не испортить то что уже хорошо работает.
---------------------------------------------------
И так будем считать раз вы читаете эту статью то у вас уже что-то установлено и оно работает! Главный принцип любого системного администратора: "работает?! не лезь!". Смешно? Но именно такой принцип позволяет избежать сбоев в работе уже настроенной и отлаженной программы. Мы тоже не будем заниматься ерундой и совершать действия не предусмотренные алгоритмом разработчиков вашего программного обеспечения. Для своих нужд мы воспользуемся понятием "виртуальность" это такая же среда разработки с одним условием: она изолирована от вашей основной системы. Это похоже на игрушку "матрешка" где внутри одной куклы другая более меньшего размера.
Программы виртуальных машин на момент написания заметки были Virtualbox, VMware Player, XenServer, Hyper-V, QEMU их надо установить или поискать как их включить если они уже установлены на вашей операционной системе. Все наши проекты и эксперементы мы будем осуществлять на "виртуальных машинах" по той причине что вы не изучали и вряд ли у вас будет время изучать все тонкости работы с операционной системой и конкретной программой.
Также не стоит скачивать программы из недостоверных и сомнительных источников.
---------------------------------------------------
Урок №6, 5-4-3-2-1-0 Поехали! Пять секунд полёт нормальный, перегрузочки маленько растут.
---------------------------------------------------
Подобными словами запустилась ракета с космонавтами на борту. Сегодня мы тоже попробуем запустить операционную систему на виртуальной машине.
Для этого нам потребуется программа для работы с виртуальными машинами которую вы установли или нашли как включать на прошлом уроке. Создаем новую виртуальную машину, настройки стандартно из шаблона, позже мы можем их поменять. В качестве дистрибутива я бы рекомендовал использовать свободное програмное обеспечение либо временную версию коммерческой версии, если вы уважающий себя человек старайтесь действовать в рамках лицензионных соглашений. В противном случаее вы понесете ответственность и дай бог дело ограничется только штрафом. (Тут надо задуматься, и перечитать строчку пару раз, попасть в невыгодное для вас положения из-за ниразу неиспользованного програмного обеспечения мне лично кажется очень обидным).
Установка различных операционных систем может различатся, но вы знаете алгоритм. Она служит для связки программ конечного пользователя с оборудованием. Следовательно надо понять что у вас там за оборудование и запастись драйверами этого оборудования для устройств которые операционная система не сможет определить. Вы сразу поймете какие надо после прекращения установки или если установка полностью прошла но что-то из оборудования не работает (читай работает некорректно).
Вывод: На данном этапе вы должны научится пользоваться различными источниками информации, понять зачем же нужна операционная система, постарайтесь не затягивать этот урок ставьте секундомер. По моим подсчетам на успешный исход задания можно потратить не больше одного часа! Если у вас получилось дольше значит вы выбрали неправильную стратегию. В таком случае вернитесь к уроку №2 и после пробуйте снова. После получения результата (установил работает/не получилось) оцените свои действия, а именно: выбор операционной системы, выбор метода установки, метод поиска сопутствующей информации. Теперь пересмотрите ваши действия, что можно сделать быстрее? Как устранить ту или иную ошибку в процессе? Помните что метод "боем" не проходит гладко никогда! Используется ваш накопленный опыт и способность быстро аналитически мыслить во время процесса, и находить верные решения. Старайтесь понять что авторы операционной системы хотели донести до пользователя, поняв это вы легко сможете работать с операционной системой в последующем, вы увидите ключ от этой программы.
---------------------------------------------------
Урок №7, ясность в голове = ясность в проекте!
---------------------------------------------------
Вы выспались, хорошо покушали, поставили чашечку с кофем, отлично! Приступаем к выбору языка программирования. Стоп! Данное утверждение полностью противоречит кодексу программиста. В повседневности нам придется сталкиваться с различными языками программирования. Java, PHP, Python, C/C++, VisualBasic.NET, и этот список можно продолжать. Нам следует понять что язык программирования нужен для написания программ, программы могут запускаться на различных операционных системах. Конкретный синтаксис конкретного языка нам понадобится только для конкретной задачи. Методы которыми оперируют языки программирования во многом схожи и научившись выполнять процедуру на одном языке вы быстро освоите аналогичную на другом. Не привязывайтесь к чемуто одному будьте гибкими в решении, но не забывайте об отказоустойчивости (читай сбойности) программы. Чем больше модулей задействовано тем больше шанс получить ошибку и тем сложнее продумать вероятность того или иного результата. Старайтесь не создавать универсальный комбаин в одном коде. Пусть это будут +1001 маленьких стабильно работающих частей. Для пробы и понимания процесса можете установить Python и написать 10 -15 простеньких программ и попробуйте написать программу которая взаимодействует с этими 10-15 простенькими программами. Сделайте тоже самое на Java. Синтаксис разный но что-то одинаковое? чувствуете? Об этом наш следующий урок.
---------------------------------------------------
Урок №8, стандартные циклы и массивы.
---------------------------------------------------
Здравствуте. Долго искал как же точнее выразить структуру программ и обнаружил что она похожа на природу окружающую нас. А именно на деревья, реку и даже животных. По этому рассмотрим закон "по принципу и подобию". Хотите чтобы ваша программа заговорила - узнайте как этот процесс происходит у вас лично (открываете рот -выдыхаете -шевелите связками а-а-а-а-а-а-...). Оказывается, нового-то, ничего и не придумали ))) смотрят как это реализовано на других объектах и делают аналогично. Вот например массив: похож на дерево (корни -ствол -ветки -листья). Или цикл: похож на круговорот воды в природе (вода испаряется на ледниках -тучами собирается -выливается по достижению критической массы -океанами бежит на полюса -превращается в ледники). Подумайте над этим на стадии подготовки проекта попробуйте сравнить его с тем что вокруг вас и вы поимёте ещё один ключ -вселенная стремится к минимальным затратам энергии на выполнение того или иного действия. Так и нам надо с минимальными затратами человеческого ресурса и машинного написать программу которая требует минимальные ресурсы машины и выполняется за минимально возможный отрезок времени. В идеале мы должны уперется в производительность компьютера и произвдитьельность операционной системы. Старайтесь не создавать "программных уродов" такие приложения не принесут вам стабильной работы и потраченное время уже не вернешь. Этого легко избежать если внимательно отнестись ко всем элементам кода вплоть до того насколько удобно он читается, не стесняйтесь оставлять комменты "# # #", делать табуляцию, и перенос строки.
Домашнее задание: научиться пользоваться cron. Для linux дистрибутивов ищите crontab, для windows дистрибутивов ищите cygwin и nncron. Данная прогрмма поможет вам в дальнейшем запускать задачи по расписанию. Что запустить? Пусть создается папка каждый день с именем равным сегодняшней дате и пусть удаляется папка старше трех дней. Делайте на различных дистрибутивах чтобы понять "ключ" для всех аналогичных программ.
---------------------------------------------------
Урок №9, анализ ошибок.
---------------------------------------------------
Здравствуйте. Как для любой программы хорошо понимать алгоритм и принцип её работы, так и для отладки и тонкой настройки надо понимать алгоритм анализа ошибок. Сразу скажу что ошибки есть всегда, даже если их нет.
Тут надо вернутся к уроку №2.
Всё дело в том что ошибки могут быть разные: программные (можно ознакомится здесь) и форс-мажер (это внешние факторы которые тоже надо учесть, например сохранность информации при неожиданном отключении электропитания). Теперь задание: придумайте свой алгоритм поиска ошибок и сравните с теми что есть в интернете, анализируйте что вы не предусмотрели в своем алгоритме. Поиск ошибок верный путь к оптимизации и пересмотрению модели программы впринципе как таковой, потомучто ошибка может быть не обязательно в коде ошибка может быть в выбранном вам подходе к решению задачи. В таких случаях надо искать альтернативу. Оглянитесь вокруг и найдите схожие процессы. Находите простые решения с минимальными затратами.
Домашнее задание: Написать кроссплатформенный код который бы показывал вам текущее время и найти 10 ошибок. (Подсказка: учесть часовые пояса и синхронизацию с точными часами).
---------------------------------------------------
Урок №10.
---------------------------------------------------
...
...
---------------------------------------------------

--------------------------------------------------
Пополение прибыло))). Становись, равняйсь, смирно. Казалось бы банальные фразы, но как и в любом деле от нас потребуется:
дисциплина, внимательность и выносливость.
Каждый раз прикосаясь к новому железу или вникая в суть работы программ вы будете чувствовать себя первооткрывателем. Я бы даже сказал хирургом информационно-технологической отрасли, именно от вас будет зависить успешность того или иного проекта. Да, придется запастись немалым терпением, путь каменист и часто вы будете падать буквально на самое дно. Зачастую решение всех технических задач лежит на поверхности, но чтобы разглядеть их придется возвращатся каждый раз в самое начало проектов. Почему в начало спросите вы? Потому что правильно подобранная стратегия сама выведет нас на нужный результат и решение. Составить стратегию очень просто. Достаточно взять текущий проект и понять что мы хотим получить. Кроме того мы должны сделать решение универсальным и легко масштабируемым для большей отказоустойчивости.
-------------------------------------------------
Знакомство начнем с самого "простого" операционная система. Все хотябы один раз уже сталкивались с этой программой например в компютере, телефоне, терминале оплаты, навигаторе, планшете, микроволновке и тому подобном.
Подробно расписывать не буду можете ознакомиться сами введя в поисковой системе интерента комбинацию слов "операционная система"
https://www.yandex.ru/ или https://www.google.ru .
Нам самое главное надо понять тот факт что операционная система это программа которую написали люди на определенном языке "язык программирования".
Уже легче, писали люди, значит мы с вами можем понять как это устроено и как работает.
Замечу что программа может работать как самостоятельное решение, а может взаимодействовать с другими программами.
-------------------------------------------------
На этом урок закончен. Суть этого урока психологическая. Мы должны принять факт существования этих вещей и перестать испытывать страх к непонятному.
До встречи на втором уроке. Досвидания.
-------------------------------------------------
Урок №2, в процессе создания.
-------------------------------------------------
Морально мы подготовились, теперь займемся физической подготовкой. Да да именно физической подготовкой, многолетний опыт подсказывает мне что она нас выручит не раз.
Упражнение для глаз.
Повесьте на несколько метров за монитором небольшую картинку и каждые 20-30 минут пытайтесь рассмотреть что на ней нарисовано. Это избавит нас от переутомления глаз и покупки очков.
Упражнение для ног.
Каждый час-два вставайте из-за стола и делайте не менее 50 шагов, можно пару раз поприседать как альтернатива.
Упражнение для плеч и шеи.
Сидя старайтесь выпрямлять осанку, плечи отводим назад и вниз. Как почувствуете усталость так сразу посмотрели в потолок плечи распрямили, опустили.
Упражнение для желудка.
Старайтесь не есть во время работы, лучше поставьте рядом чистой воды и переодически пейте её. Чай или кофе тоже пойдут но не увлекайтесь, лучше воды ещё ничего не придумали.
Вывод: хороший боец не тот что сдохнет через три года, а тот который наберется опыта за три года и будет способен дальше развиваться в интересном ему направлении. Здоровье наше всё, а остальное приложется само.
---------------------------------------------------
Урок №3, что мы хотим? Рациональное использование ресурсов. С чего начать если ты вообще в этом не понимаешь? Секрет "алгоритма". Навык "ключника" (из фильма Матрица :-) ).
---------------------------------------------------
Как я уже писал раньше программы писали люди, писали для себя и других людей, поэтому они придумали алгоритм примерного поведения пользователя. В дальнейшем это позволило адаптировать проекты так чтобы даже человек незнающий и не имеющий навыков программирования смог примерно разобраться в увиденном. Самые простые действия это "открыть программу" и "закрыть программу" также часто значки для этих действий распологаются в одних и тех же местах. Мне вспомнились детские задачки прочитайте их внимательно и попытайтесь дать ответы:
№1: Как засунуть жирафа в холодильник?
№2: Как засунуть в холодильник слона?
№3: Лев созвал всех зверей на собрание. Явились все, кроме одного. Что это за зверь?
№4: Вам нужно пересечь широкую реку, которая кишит крокодилами. Как вы это сделаете?
ОТВЕТЫ:
1. Правильный ответ: Открыть холодильник, засунуть туда жирафа, закрыть холодильник.
Этот вопрос позволяет выяснить, нет ли у вас склонности выискивать чересчур сложные решения для простых задач.
2. Неправильный ответ: Открыть холодильник, засунуть туда слона, закрыть холодильник.
Правильный ответ: Открыть холодильник, вынуть оттуда жирафа, засунуть туда слона, закрыть холодильник.
Этот вопрос позволяет выяснить, способны ли вы при принятии решений учитывать последствия ваших предыдущих действий.
3. Правильный ответ: Это слон. Он же в холодильнике, помните?
Этот вопрос проверяет вашу память.
4. Правильный ответ: Вплавь. Ведь крокодилы-то все на собрании у льва.
Этот вопрос позволяет выяснить, способны ли вы учиться на собственных ошибках.
(материал взят с сайта: http://www.psycho.ru/library/94 )
Поиграли? Понравилось? Если "ДА",тогда можно смело приступать к любому проекту. Если нет "НЕТ" вернитесь ко второму уроку. Понимание процесса работы проекта уже половина дела, это и есть наш "секрет ключника" (насколько я помню из фильма там у него были ключи не только от всех дверей но и от двери ведущей на несуществующий этаж).
Теперь подведем итоги: 1. Цель проекта = понимание и четкое представление конечного результата проекта. 2. Алгоритм = понимания и четкое представление процесса действий конечного пользователя. 3. Оптимизация = понимание логических ошибок и их устронение.
4. Поздравляю вы готовы к завершающему этапу: перенести проект понятный вам в язык понятный машине. В заключении прошу вас пользоваться негласным правилом "Создателя" (опять фильм вспомнил :) ) глосящим: делаю так чтобы любой человек в этом мире смог этим воспользоватся.
---------------------------------------------------
Урок №4, нормальный урок.
---------------------------------------------------
Начнем. Перед нами некое устроиство состоящее из системного блока, монитора, устройства ввода (например смартфон, планшет, ноутбук ...). Для работы не всегда требуется наличие всех трёх компонетов. Монитор и клавиатура с мышью нужны для нашего взаимодействия с системным блоком. Для работы устроиства не обладающего батарейкой понадобится подключение к розетке с электричеством. Нажимаем кнопку вкл и ... та-дам! Перед нами появилась самая первая программа она называется загрузчик, хотя нет перед ним есть ещё одна программа. Для материнской платы представляет из себя код оптимизированный для работы с "железом" (называется BIOS, EFI, UEFI) главная его задача определить наличие или отсутствие компонентов в устройстве и запустить "загрузчик". Загрузчики бывают разные, не буду на этом акцентировать внимание. Суть этих программ сказать пользователю что чего-то нехватает либо запустить операционную систему (windows, linux, firmware, dos, ...). Именно с операционной системой мы и будем работать.
Напрашивается вопрос почему так сложно? Нельзя ли сразу запустить операционную систему? Отвечаю: можно :) с одним условием: для каждого устроиства необходимо будет написать свою операционную систему. Дело в том, что как раз именно эти прокладки между операционной системой и железом позволяют нам запускать множество различных операционных систем не привязывая нас к определенной.
Также свой индивидуальный програмный код имеют сложные устройства например жесткий диск, видеокарта и т.п. они тоже берут на себя задачи прокладок между операционной системой и железом.
Самая главная прокладка которая отвечает за работоспособность всего устройства впринципе находится между стулом и экраном. Шутки, шутками но по большей части именно человек вводит и выводит данные на устройство. Цель большинства программ оптимизировать этот процесс и убрать слои человек, монитор, клавиатура чтобы мы с вами могли заниматся нужными нам делами а не обслуживать "ящик".
Операционная система загрузилась. Перед нами может быть увиденно два варианта: первый часто распространенный это "оконный режим" представляет из себя кучу картинок на экране; второй "командный или строковый режим" представляет из себя однотонный экран с возможностью написания неких команд. Запуск того или иного варианта обусловлен задачами (читай желаниями) которые мы хотим осуществить с помощью "ящика".
Для новичков подойдет любой вариант, отличия составят лишь способы ввода информации.
А как же интернет, почта? Спросите вы, и будете правы.
Опеационная система может иметь установленные программы, а может не иметь их. Программы можно установить и удалить. Опять непонятный слой? Да снова слой который принимает на себя роль посредника между устройствами и программами, опять же служит для универсальности запуска последних на любом оборудовании и запускающихся с различными обработчиками (компилятор). Всё. Надеюсь вы поняли алгоритм работы програмного обеспечения и поняли как оптимизировать и сделать универсальными ваши решения. Программа не обязана сама всё делать она может взаимодействовать с другими программи. Это делается ещё и для облегчения чтобы вам не пришлось писать драйвер к видеокарте для получения вывода картинки на экран.
---------------------------------------------------
Урок №5, просто о сложном, как не испортить то что уже хорошо работает.
---------------------------------------------------
И так будем считать раз вы читаете эту статью то у вас уже что-то установлено и оно работает! Главный принцип любого системного администратора: "работает?! не лезь!". Смешно? Но именно такой принцип позволяет избежать сбоев в работе уже настроенной и отлаженной программы. Мы тоже не будем заниматься ерундой и совершать действия не предусмотренные алгоритмом разработчиков вашего программного обеспечения. Для своих нужд мы воспользуемся понятием "виртуальность" это такая же среда разработки с одним условием: она изолирована от вашей основной системы. Это похоже на игрушку "матрешка" где внутри одной куклы другая более меньшего размера.
Программы виртуальных машин на момент написания заметки были Virtualbox, VMware Player, XenServer, Hyper-V, QEMU их надо установить или поискать как их включить если они уже установлены на вашей операционной системе. Все наши проекты и эксперементы мы будем осуществлять на "виртуальных машинах" по той причине что вы не изучали и вряд ли у вас будет время изучать все тонкости работы с операционной системой и конкретной программой.
Также не стоит скачивать программы из недостоверных и сомнительных источников.
---------------------------------------------------
Урок №6, 5-4-3-2-1-0 Поехали! Пять секунд полёт нормальный, перегрузочки маленько растут.
---------------------------------------------------
Подобными словами запустилась ракета с космонавтами на борту. Сегодня мы тоже попробуем запустить операционную систему на виртуальной машине.
Для этого нам потребуется программа для работы с виртуальными машинами которую вы установли или нашли как включать на прошлом уроке. Создаем новую виртуальную машину, настройки стандартно из шаблона, позже мы можем их поменять. В качестве дистрибутива я бы рекомендовал использовать свободное програмное обеспечение либо временную версию коммерческой версии, если вы уважающий себя человек старайтесь действовать в рамках лицензионных соглашений. В противном случаее вы понесете ответственность и дай бог дело ограничется только штрафом. (Тут надо задуматься, и перечитать строчку пару раз, попасть в невыгодное для вас положения из-за ниразу неиспользованного програмного обеспечения мне лично кажется очень обидным).
Установка различных операционных систем может различатся, но вы знаете алгоритм. Она служит для связки программ конечного пользователя с оборудованием. Следовательно надо понять что у вас там за оборудование и запастись драйверами этого оборудования для устройств которые операционная система не сможет определить. Вы сразу поймете какие надо после прекращения установки или если установка полностью прошла но что-то из оборудования не работает (читай работает некорректно).
Вывод: На данном этапе вы должны научится пользоваться различными источниками информации, понять зачем же нужна операционная система, постарайтесь не затягивать этот урок ставьте секундомер. По моим подсчетам на успешный исход задания можно потратить не больше одного часа! Если у вас получилось дольше значит вы выбрали неправильную стратегию. В таком случае вернитесь к уроку №2 и после пробуйте снова. После получения результата (установил работает/не получилось) оцените свои действия, а именно: выбор операционной системы, выбор метода установки, метод поиска сопутствующей информации. Теперь пересмотрите ваши действия, что можно сделать быстрее? Как устранить ту или иную ошибку в процессе? Помните что метод "боем" не проходит гладко никогда! Используется ваш накопленный опыт и способность быстро аналитически мыслить во время процесса, и находить верные решения. Старайтесь понять что авторы операционной системы хотели донести до пользователя, поняв это вы легко сможете работать с операционной системой в последующем, вы увидите ключ от этой программы.
---------------------------------------------------
Урок №7, ясность в голове = ясность в проекте!
---------------------------------------------------
Вы выспались, хорошо покушали, поставили чашечку с кофем, отлично! Приступаем к выбору языка программирования. Стоп! Данное утверждение полностью противоречит кодексу программиста. В повседневности нам придется сталкиваться с различными языками программирования. Java, PHP, Python, C/C++, VisualBasic.NET, и этот список можно продолжать. Нам следует понять что язык программирования нужен для написания программ, программы могут запускаться на различных операционных системах. Конкретный синтаксис конкретного языка нам понадобится только для конкретной задачи. Методы которыми оперируют языки программирования во многом схожи и научившись выполнять процедуру на одном языке вы быстро освоите аналогичную на другом. Не привязывайтесь к чемуто одному будьте гибкими в решении, но не забывайте об отказоустойчивости (читай сбойности) программы. Чем больше модулей задействовано тем больше шанс получить ошибку и тем сложнее продумать вероятность того или иного результата. Старайтесь не создавать универсальный комбаин в одном коде. Пусть это будут +1001 маленьких стабильно работающих частей. Для пробы и понимания процесса можете установить Python и написать 10 -15 простеньких программ и попробуйте написать программу которая взаимодействует с этими 10-15 простенькими программами. Сделайте тоже самое на Java. Синтаксис разный но что-то одинаковое? чувствуете? Об этом наш следующий урок.
---------------------------------------------------
Урок №8, стандартные циклы и массивы.
---------------------------------------------------
Здравствуте. Долго искал как же точнее выразить структуру программ и обнаружил что она похожа на природу окружающую нас. А именно на деревья, реку и даже животных. По этому рассмотрим закон "по принципу и подобию". Хотите чтобы ваша программа заговорила - узнайте как этот процесс происходит у вас лично (открываете рот -выдыхаете -шевелите связками а-а-а-а-а-а-...). Оказывается, нового-то, ничего и не придумали ))) смотрят как это реализовано на других объектах и делают аналогично. Вот например массив: похож на дерево (корни -ствол -ветки -листья). Или цикл: похож на круговорот воды в природе (вода испаряется на ледниках -тучами собирается -выливается по достижению критической массы -океанами бежит на полюса -превращается в ледники). Подумайте над этим на стадии подготовки проекта попробуйте сравнить его с тем что вокруг вас и вы поимёте ещё один ключ -вселенная стремится к минимальным затратам энергии на выполнение того или иного действия. Так и нам надо с минимальными затратами человеческого ресурса и машинного написать программу которая требует минимальные ресурсы машины и выполняется за минимально возможный отрезок времени. В идеале мы должны уперется в производительность компьютера и произвдитьельность операционной системы. Старайтесь не создавать "программных уродов" такие приложения не принесут вам стабильной работы и потраченное время уже не вернешь. Этого легко избежать если внимательно отнестись ко всем элементам кода вплоть до того насколько удобно он читается, не стесняйтесь оставлять комменты "# # #", делать табуляцию, и перенос строки.
Домашнее задание: научиться пользоваться cron. Для linux дистрибутивов ищите crontab, для windows дистрибутивов ищите cygwin и nncron. Данная прогрмма поможет вам в дальнейшем запускать задачи по расписанию. Что запустить? Пусть создается папка каждый день с именем равным сегодняшней дате и пусть удаляется папка старше трех дней. Делайте на различных дистрибутивах чтобы понять "ключ" для всех аналогичных программ.
---------------------------------------------------
Урок №9, анализ ошибок.
---------------------------------------------------
Здравствуйте. Как для любой программы хорошо понимать алгоритм и принцип её работы, так и для отладки и тонкой настройки надо понимать алгоритм анализа ошибок. Сразу скажу что ошибки есть всегда, даже если их нет.
Тут надо вернутся к уроку №2.
Всё дело в том что ошибки могут быть разные: программные (можно ознакомится здесь) и форс-мажер (это внешние факторы которые тоже надо учесть, например сохранность информации при неожиданном отключении электропитания). Теперь задание: придумайте свой алгоритм поиска ошибок и сравните с теми что есть в интернете, анализируйте что вы не предусмотрели в своем алгоритме. Поиск ошибок верный путь к оптимизации и пересмотрению модели программы впринципе как таковой, потомучто ошибка может быть не обязательно в коде ошибка может быть в выбранном вам подходе к решению задачи. В таких случаях надо искать альтернативу. Оглянитесь вокруг и найдите схожие процессы. Находите простые решения с минимальными затратами.
Домашнее задание: Написать кроссплатформенный код который бы показывал вам текущее время и найти 10 ошибок. (Подсказка: учесть часовые пояса и синхронизацию с точными часами).
---------------------------------------------------
Урок №10.
---------------------------------------------------
...
...
---------------------------------------------------
Комментариев нет:
Отправить комментарий