Top.Mail.Ru
Ответы

Основы для программирования

Мне 21 год, по жизни не имел интересов, и вот понял чтобы продуктивно использовать своё время нужно чем то заниматься, выбрав первое подходящее что мне попалось. Программированием хочу заняться конкретно и не получится так что потратя год два я всё брошу. И вот перехожу к вопросу, с чего начать чайнику в программировании если пользование компьютором на уровне среднего пользователя, аббревиатура IT не очём не говорит. Подскажите цепочку, последовательность на пути к програимированию то есть с чего начинать и последовательно переходя от простого к сложному. Что вам кажется банально и не требует пункта в цепочке изучения, для меня это ещё возможно не изученная часть. На форумах говорят что прогмамисту нужно знать только язык программировани и всё, многие пишут что английский не нужен, большинство програмистов даже не разбираются в железе и т. д я думаю что мне такие основы понадобятся что бы в дальнейшем на пути изучения понимать каких знаний хватает а каких нет. Не хотелось бы начать изучать какой нибудь язык как си не зная вобще что такое программа и т. д. В сети нашол что - то подходящее но сам не понимаю так ли это подкорректируюйте, дополните, важна литература вот список:
Этап I. Основы

Нортон «Программно-аппаратная организация IBM PC»
Эта книга, несмотря на свою давность, относятся к тем, что пока отнюдь не устарели. Как новичок подтверждаю – повествование вполне понятно и для почти полного чайника в IT.

Гук «Аппаратные средства IBM PC»
А эту книгу стоит прочитать «поверх» – она расскажет о том, как дела в данной сфере обстоят сейчас.

Этап II. Hardware

Шаг 1

Морс, Алберт «Архитектура микропроцессора 80286»
Почему тут берётся за основу именно микропроцессор 80286 – станет понятно по изучении трудов первого этапа.

Шаг 2

Гук «Аппаратные интерфейсы ПК»

Гук «Интерфейсы устройств хранения»

Этап III. Операционные системы

Шаг 1

Таненбаум «Архитектура компьютера»

Шаг 2

Колисниченко, Аллен «Linux: полное руководство»
От общей теории переходим к изучению конкретной операционной системы – на примере Linux.

Немет, Снайдер, Хейн «Руководство администратора Linux»

Этап IV. Собственно программирование

Шаг 1

Керниган, Ричи «Язык программирования С»
Почему первым для освоения выбран именно язык Си? Как мне рассказали знающие товарищи, он поможет достичь правильного «программистского мышления», чего было бы сложно достичь, начиная изучение, скажем, с Паскаля. Кроме того, язык Си по-прежнему используется в наши дни и подходит как для прикладного, так и для системного программирования.

Шаг 2

Кнут «Искусство программирования»:
Том 1. Основные алгоритмы
Том 2. Получисленные алгоритмы
Том 3. Сортировка и поиск

Бентли «Жемчужины программирования»

Дополнен

Я пока начал с изучения английского

По дате
По рейтингу
Аватар пользователя
Новичок
7лет

Я не думаю, что тот алгоритм, который вы тут предоставили очень хорош для новичка. После второй или третьей книги, интерес у вас пропадёт, потому что вы ничего не поймёте, а авторы книг пишут в очень сложной манере. Я сужу по себе. Расскажу как я начал учить программирование. Я ещё не достиг очень больших результатов, но всё таки уже разбираюсь более менее и начинал сам с нуля. Прежде чем читать книги о алгоритмах, изучать ассемблер, нужны какие-то основы, чтобы понимать что такое вообще программирование. Чтобы понять как устроен компьютер, мне помогла книга Чарльза Петцольда "Код. Тайный язык информатики". Её можете прочитать сразу, автор расскажет про то, как устроен компьютер, системы счисления, что такое ассемблер, высокие и низкие языки программирования, операционная система. Объясняет всё в лёгкой манере и понятным для новичка языком, а не как в научных учебниках. После неё советую почитать книгу по этой ссылке http://info-master.su/mail/prog/ Она бесплатна. Она в общих чертах рассказывает о языках программирования, какие они бывают, что можно писать и что программировать. Можно просто почитать, но не стараться понять все примеры, написанные там. Лучше просто знать какие языки бывают и в каких направлениях можно двигаться. После этой книги, можно почитать эту http://info-master.su/books/prog/ В неё изложен короткий общий алгоритм становления начинающего программиста, тоже написана в лёгкой манере хорошим автором. После прочтения этих книг, у вас должно сформироваться легкое представление о том, куда можно двигаться и что такое вообще программирование. Кстати, у этого автора есть ещё две книги по языку С и паскаль. Тоже хорошие. Там пару платных, но они копейки стоят, не больше 500 рублей. Просто я уже был на вашем месте, полтора года назад, наслушался советов трубатек с интернета, которые знают всё,они меня запутали и понадавали непонятных советов и я потратил кучу времени, не понимая что делать. Да, придётся много раз упасть в грязь лицом, прежде чем будет что-то получаться и пойдёт прогресс. Английский учить 100% надо, но он лёгкий на самом деле. Его тоже можно самостоятельно изучать, но если изучать самостоятельно, то разговорный язык и письмо не будут развиваться, только чтение и прослушивание, но большего многим и не надо. Можете послушать советы других, но я просто вставил свои 5 копеек, может моя инфа чем-то поможет

Аватар пользователя
Высший разум
7лет

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

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

Аватар пользователя
Высший разум
7лет

Хочешь заняться программированием - начинай с качественного учебника программирования. Например, Вирт, "Алгоритмы и структуры данных", издание от 2010 года и новее.

После основ программирования можно переходить к ассемблеру - не для того, чтобы программировать, а для того, чтобы понимать, как работает написанный тобой код. И, разумеется, никаких "архитектур 80286": трудно найти что-то более уродливое, чем 16-битная система команд x86, а "защищённый режим" 286 - тупиковая ветвь развития, о которой все постарались как можно быстрее забыть. Лучше для изучения основ взять не x86 (PC / Mac), а более логичную архитектуру.

А вот уже после этого можно переходить к K&R. Тогда будет понятно, как именно конструкции C накладываются на систему команд процессора.

Таненбаум - да.

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

Аватар пользователя
Просветленный
7лет

Теоретиком хочешь стать?) Лучше начни с ассемблера (fasm),так и компьютер изучишь, и программировать научишься. Лучше всего изучать на практике

>поможет достичь правильного «программистского мышления»
Это все бред)). Программирование это не магия
Хотя С хороший язык

Аватар пользователя
Просветленный
7лет

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