Другие языки программирования и технологии

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

Мне 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. Сортировка и поиск

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

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

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

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

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

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

Если ты не можешь самостоятельно воспроизвести "умные "( на самом деле достаточно тривиальные) мысли из той книги, то перспективы у тебя нет.
Есть принципиальная разница в изобретении любого алгоритма сортировки и открытия эмпирических законов вроде з-на Максвелла.
Не важно что ты выберешь, учиться очень сложно, а если до 21 года у тебя к этому тяги не было, то и не берись, ибо программист вечно учится. Конечно программистом ты можешь стать и делать программы, но конкурентноспособным на этом рынке стать сложно, так как начинать надо с детства с математики и логики, пробовать программировать еще раньше и иметь желание или любовь к делу, желание созидать и получить конечный результат.
Димас ___
Димас ___
54 128
Санька Литвинович Имею желание и готов изучать не теряя интерес через 5 10 и т. д лет серавно буду совершенствоваться в этой области, а ещё мне понравилась это область потому что неё нет каких то определённых ограничений всё время развивается принося что-то новое и серавно изучая одно направление этой области понимаешь что серавно совершенно её не знаешь и развиваешься дальше
Может меня многие осудят за эти слова, но на начальных этапах программисту не очень важно знать, как работает компьютер (Если вы конечно не начали с ассемблера или программирования микроконтроллеров). Главное понять принципы программирования (что такое переменная, операторы, условия, циклы, ООП) и научиться алгоритмические принципы. Современные языки программирования позволяют абстрагироваться от технических подробностей.
Начните изучать Си или какой-нибудь другой язык, напишите пару десятков программ, пробуйте разные фишки, затем перейдите на плюсы, изучите его фишки. Если вы это сделаете, то на другие языки переходить вам будет легче в разы.
Но если вы захотите стать хорошим программистом, то понимать работу компьютера желательно. Ну и математика вам поможет. Но главное, практика.
на этапе 4 я бы шаги местами переставил.
Ну и перед Си еще бы посоветовал "Структура и интерпретация компьютерных программ" для "поможет достичь правильного «программистского мышления»"
Dmitriy Stytsko
Dmitriy Stytsko
25 516
Теоретиком хочешь стать?) Лучше начни с ассемблера (fasm),так и компьютер изучишь, и программировать научишься. Лучше всего изучать на практике

>поможет достичь правильного «программистского мышления»
Это все бред)). Программирование это не магия
Хотя С хороший язык
Вадим Кириков
Вадим Кириков
24 328
Эт ты конечно нашёл... учебник по 80286 какого года?))
Тебе второй верно написал... но уже если так хочешь...

Смотри...
Если хоч оснавательно, то:
1) Математика
1. Дискретная математика
2. вычислительная математика.
3. Матлогика - можно конечно... но главное первые 2 пункта
Цель - не уметь решать что-то сложное, но иметь представления что такое, как и где используеться и т. п.

2) Как работает компьютер
. Таненбаум. (3 книги - Архитектура, ОС, Сети).
Просто конкретный ликбес по тому, что как и зачем в компьютере

3) Собственно праграммирование. Кнута не поймёшь, уж очень он заумный, он по факту не особо нужен...
https://ru.wikipedia.org/wiki/Алгоритмы:_построение_и_анализ
Эта книга, тока поновее...
Очередной MustRead

4) Любая книга по Языку программирования. У тя норм в полне....
Санька Литвинович 1) Математика
1. Дискретная математика
2. вычислительная математика.

Изучить поверхностно можно или лучше углубится?
geekbrains.ru вам в помощь.
Юрий Лемягов это такой сайт для популяризации неквалифицированных рабов, которые потом будут делать рутины за еду?