О книгах по программированию




Введение

Что перед вами?

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

У этого учебника есть история. С 2006 года я очень много (больше 1000) раз объяснял самым разным людям различные аспекты программирования, и этот учебник – всего лишь записанные объяснения. Объяснения были опробованы множество раз на людях с очень разным опытом, и большинство возможных недопониманий, вопросов и недоумений разрешены. Но так как вы уникальны, вам могут оказаться непонятными какие-то обороты, или вы можете понять какие-то фразы не так, как я бы хотел. Непонимание вызовет неверные ответы на вопросы внутри уроков и проблемы при написании программ.

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

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

Практически все существующие книги непригодны для самостоятельного изучения программирования на Java с нуля, они или предполагают начальные знания, или охватывают слишком много для новичка, или их структура запутана и трудна для восприятия новичком.

Этот учебник написан, чтобы за минимальное время вы могли самостоятельно получить начальное представление о программировании на Java. Учебник отбрасывает многие детали ради простоты первого понимания. Самое главное, что дает учебник – общая концепция программирования, понимание ООП, фундамент для дальнейшей карьеры Java-разработчика. Без многих деталей, но с широтой понимания, чтобы в дальнейшем понять и освоить любую книгу по программированию на Java.

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

Итак, перед вами – начало карьеры Java-разработчика.

Как это читать?

В первую очередь, внимательно. Если на что-то явно обращено внимание – надо это запомнить. Если на что-то внимание не обращено, все равно надо обратить внимание и запомнить. Здесь оставлены только те детали, которые являются абсолютно необходимыми для первого освоения. Каждая фраза имеет свой смысл. Если вы что-то не поняли, вдумчиво прочитав три раза, скорее всего это моя недоработка как автора. Или ваша уникальная особенность мышления или восприятия. Напишите мне, задайте вопрос, и я вам отвечу. К сожалению, 90% всех “уникальных особенностей” учеников заключается в недостаточной внимательности.

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

О книгах по программированию

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

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

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

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

Программирование – это не знание. Это навык. Такой же навык как, ходьба, плавание, речь или чтение. Вы можете освоить его только на практике.

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

 

Урок 1

Языки программирования

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

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

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

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

Каждая инструкция – это тоже число, номер операции. Например, сложение может быть закодировано как 1, вычитание как 2 и т д.

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

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

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

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

 

Что является языком программирования?

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

последовательность инструкций, выполняющихся по очереди

инструкции, выполняющиеся только при выполнении указанного условия

инструкции, повторяющие выполнение других инструкций до наступления определенного условия (или пока определенное условие удовлетворяется)

 

Язык Java

В 1990х был запущен глобальный проект объединить все микрокомпьютеры бытовой электроники в единую сеть. Проект провалился, но выжила одна из его ветвей – разработка языка программирования Oak (в переводе с английского – дуб), предназначенного для использования в бытовой аппаратуре. В 1993 году компания Sun приспособила этот язык под нужды Internet. Оказалось, что название Oak уже зарегистрировано кем-то в качестве торговой марки, поэтому было решено переименовать язык в Java.

Сейчас Java используется очень широко, на нем пишут как огромные системы, так и небольшие сайты.

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

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

Наличие и компилятора, и интерпретатора позволяет совместить два преимущества: оптимизацию кода на этапе компиляции и кроссплатформенность на этапе выполнения.

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

Кроссплатформенность – большое преимущество, поскольку скрывает различия между ОС для java-разработчика.

 



Поделиться:




Поиск по сайту

©2015-2024 poisk-ru.ru
Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.
Дата создания страницы: 2019-04-30 Нарушение авторских прав и Нарушение персональных данных


Поиск по сайту: