![]() |
Кстати, ещё вопрос. Все материалы, с которыми я сталкивался, предполагают наличие даже у новичка каких-то довольно обширных знаний о "компиляторах", "средах", "классах/объектах/отношениях". Существует ли какая-то "азбука" для начинающего программиста, который вот прям вообще не понимает ничего?
Например, зачем нужно выделять память под каждый объект; каким образом эта память выделяется; что интерпретирует язык программирования в машиннный код, и т.д.... |
Цитата:
Основных регистров 4 - это: ax, bx, cx, dx (32Bit). eax, ebx, ecx, edx (64Bit). Не знаю как сейчас - используются ли регистры 8Bit - a, b, c, d... Это регистры процессора. На прямую с ними работать могут только языки низких уровней, в частности assembler (в переводе - сборщик) и C++ 5 (и выше, название происходит от языка B (Б), а его в свою очередь от БИСИПЛ (BCPL)). ... Если ты хочешь быть супер хакером - тебе придется как минимум учить С ++ за ради его мощи. ... Как ясно из выше написанного - языки высокого уровня в частности не имеют прямого доступа к регистрам процессоров, системному стеку и т.д. - в связи с чем их потенциальные возможности ниже, но при этом программировать на них проще и быстрее. Языки верхнего уровня в основном использую предоставляемые системой функции. ... Далее. Языки в принципе раньше можно было разделить на объектные и процедурные. Сейчас процедурные вполне нормально поддерживают объекты, а объектные - процедуры, так что я бы не сказал, что на данный момент эта градация актуальна. Процедурный метод программирования - это программирование при использовании предопределенных или заданных функций. Объектный метод - это метод программирования с использованием объектов, их свойств (переменных хранящих данные) и методов (собственно процедур (функций) объектов)... ... Пример - если "Кошка" - это объект, то Сирин - это ее свойство, а модерировать - ее метод. Так вот - объектные языки имеют одну очень важную вещь - в них введены "события" (перехваты управления). Но - все эти языки - интерпритируемы и являются языками верхнего уровня - так что скорость исполнения программ на них ниже чем у языков низкого уровня (самая низкая скорость исполнения у Java - за кросплатформенность приходится платить). Компилируемые языки - это языки, код программ на которых напрямую переводится в машинный код. Интерпретируемые языки - это языки, код которых сначала переводится в аналоговый, а потом компилируется для исполнения - при чем каждый раз при запуске программы. C++, assembler - компилируются. VB, Delphy, PHP, ActionScript - интерпретируются. Примечание: VB и Delphy имеют возможность готовую програму загнать в системный инсталлятор - на этом этапе они безвозвратно компилируются. ... Ну вот в принципе теперь ты все знаешь :) ... Не, еще чуть чуть про процедурные и объектные языки... Вот представь - есть у тебя набор свободных действий (идет, упала, села) и есть элемент - кошка. Чтобы она пошла ты делаешь так: 1. Что делать? 2. Идти. 3. Кому? 4. Кошке. Это процедурный язык. А в объектноориентированном языке у тебя есть объект кошка, а уже непосредственно у кошки есть методы (функции/процедуры) и по этому чтобы объект-кошка пошла ты делаешь так: 1. Кто? 2. Кошка. 3. Что делать? 4. Идти. Кроме того - ты объекту кошке можешь назначить событие, например: 1. Если чо? 2. Если кошка пошла. 3. Тогда сделать что?. 4. Упасть и сдохнуть. ... Процедурные языки не предоставляют возможности использовать события предопределенные системой (потому что она их не предопределяет), но некоторые заморачиваются и делают эмуляторы сами. ... О резервации памяти. В языках верхнего уровня это невозможно. В языках низкого уровня это можно сделать и делают это для того, чтобы выделить для приложения ОП, на случай если вдруг юзер или сис.процессы запустят тонну сторонних приложений - то эти приложения не смогут забить всю память так, что тебе ничего не останется. |
Весьма познавательно, спасибо. А где этому научиться?
В принципе, подумываю о заочном в какой-нибудь "компьютерной академии", но для начала хочу попробовать самостоятельно. Можешь посоветовать литературу/форумы, где разъясняется именно эта информация, а не только языки программирования, предполагающие определённый багаж знаний у меня? Если короче - где/как ты этому учился? |
Цитата:
Скрытый текст:
Есть достойные курсы |
|
Цитата:
Спасибо! |
Я тоже новичок в программировании, но уже начал ковыряться. Выбрал для себя Delphi. Язык прост в освоении и очень функционален. Моя методика изучения такова. Я взял самую простую книгу по Паскалю (прародитель Delphi, во многом похож) - Турбо – Паскаль 7.0 Самоучитель для школьников, студентов и начинающих. Прочесть и понять можно за неделю. Из неё усвоил синтаксис языка, основные конструкции. Попрактиковался, написал десяток-другой несложных программ, которые позволили мне закрепить прочитанное. А дальше захотелось повысить планку и я полез ковырять Дельфи. Для начала захотелось узнать, в чём его отличие от Паскаля. Прочитал 2 первые главы из Учебное пособие по программированию на языке Delphi, которые расширили и дополнили мои знания (можно начать сразу с них, но в первой книжке объяснение проще некуда). Программы работающие в консольном режиме начали надоедать, захотелось кнопочки, формочки и т.п. вещи, а это отдельный раздел - объектно-ориентированное программирование. Довольно сложная тема для начинающего. Перечитал главы по теме из разных книг по Дельфи, но там слишком нудно написано и долго вникать в суть, а мне надо уже писать программы:pardon: И тут я наткнулся на одни ламерские курсы, где легко и просто было изложено всё то, что я не понял в книгах. После просмотра первого видео написал несложную, но в то же время полноценную программу с кнопками, анимацией, всплывающими окнами, меню и т.д. Практикум был отличный.
В общем, мне не нужно быть профессиональным программистом, я учусь для себя, поэтому всякие там толстые книги принципиально не приемлю. Чем короче путь до цели, тем лучше. Мой принцип - от общего к частному, нахвататься вершков, с помощью которых уже воплощать в жизнь первые задумки, а по мере практики восполнять недостающие пробелы с помощи справочников и поисковиков. Подобным образом в начале выстраивается мозаика, которая со временем заполняется недостающими элементами. Таким же макаром я начал изучать PHP. Прошёл месяц с момента обучения, но текущие знания уже позволяют мне кое-что делать. |
Цитата:
Не нужно передергивать я писал совсем о другом Цитата:
|
Цитата:
Если о себе, то у меня был начальный уровень знаний примерно как у Вас (Basic, DBase III), т.е. специально на программиста я не учился, но работа эта нравилась. Устроился в ЖЭУ программистом (реально работал системным администратором), потом устроился в торговую фирму - у них была 1С-ка, к ней книги идут по конфигурированию и администрированию, сидел изучал и ковырял потихоньку её. Потом устроился в 1С франчайзинговую фирму, ну а там уже набрался большого опыта на множестве клиентов. Цитата:
|
Цитата:
|
| Часовой пояс GMT +3, время: 19:47. |
Осознание, 2008-2016