# Освоение программирования
Anotheroneuser(syscall,27) — All
2018-05-14 07:13:17


Парни, набросал тут себе небольшую программу по освоению языков. Но, конечно, сомневаюсь в том, правильна ли последовательность и т.д. Можно вас попросить — посмотреть, исправить и рекомендовать мне что-нибудь? Там не очень много.

# Re: Освоение программирования
Peter(syscall,1) — Anotheroneuser
2018-05-14 08:05:25


> Но, конечно, сомневаюсь в том, правильна ли последовательность и т.д.

Я самоучка. Так что вообще боюсь что то советовать. Я просто делал то, что было интересно и все. Кмк основная движущая сила -- любопытство.

# Re: Освоение программирования
Andrew Lobanov(tavern,1) — Anotheroneuser
2018-05-14 10:03:45


Anotheroneuser> Парни, набросал тут себе небольшую программу по освоению языков. Но, конечно, сомневаюсь в том, правильна ли последовательность и т.д. Можно вас попросить — посмотреть, исправить и рекомендовать мне что-нибудь? Там не очень много.

А где посмотреть то?

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

# Re: Освоение программирования
Anotheroneuser(syscall,27) — Andrew Lobanov
2018-05-14 12:38:50


Не знаю, как тут ответить и тебе и Петру сразу, так что отвечаю так.

> А где посмотреть то?

Вот сама учебная программа:
---------------
Начало освоения
---------------

С++
Б. Страуструп - Принципы и практика с использованием C++
К этому меня привели рассуждения Владимира Моженкова 
Он рекомендовал начинать изучение программирования с C++.
Меня берут глубочайшие сомнения, что мозг не закипит уже после пятнадцатой минуты обучения.

------------------------------------------
Продолжение изучения и начало деятельности
------------------------------------------

Lua
Lua 5.3 Руководство - http://lua.org.ru/contents_ru.html
C++ сам по себе мне необходим для изучения Lua, а Lua — для разработки игр.
Всё-таки, хочется освоить язык. Подойти к этому если не профессионально, то сколь-нибудь специально.
Как думаете — не слишком ли? Может быть, не пыжиться, а просто освоить движок и дело с концом.. 

-----------------------
Облегчение деятельности
-----------------------

Emacs LISP
Emacs Lisp https://www.gnu.org/software/emacs/manual/html_node/elisp/index.html
Он необходим для нормального использования EMACS, который, как мне показалось, весьма подходит для организации информации.
О цели такой организации уже говорили здесь. Есть определённая система обращения с информацией, которая требует наличия стационарной и переносной машин (в качестве переносной машины пока будет выступать onyx-boox darwin 5, когда удастся его приобрести на средства, вырученные от продажи другого их устройства, которое не подошло по ряду интересных причин, подробности — по интересу).

LaTeX
Documentation https://www.latex-project.org/help/documentation/
Необходим для облегчения работы с процессуальными документами. Хочется забыть о текстовых процессорах и, как говорят разработчики LaTeX: «… it is better to leave document design to document designers, and to let authors get on with writing documents».
Не знаю насколько верным будет такое решение с точки зрения практики, поскольку на данный момент не сверстал в LaTeX ни одного документа.

> Важнее учиться алгоритмизации, а потом уже учить те или иные языки
Посоветуешь что-нибудь толковое по алгоритмизации. Я искал, но попадалось либо очень сложное, либо малоизвестное. А ты, наверняка, знаешь что-нибудь толковое.

Ну и всё.
Сам вот самоучка. Поэтому, как самоучка — самоучкам ))

# Re: Освоение программирования
Anotheroneuser(syscall,27) — Anotheroneuser
2018-05-14 12:42:44


> Посоветуешь что-нибудь толковое по алгоритмизации. Я искал, но попадалось либо очень сложное, либо малоизвестное. А ты, наверняка, знаешь что-нибудь толковое.
После «алгоритмизации» знак вопроса, конечно же))) Прошу прощения — спешил и спотыкался )

# Re: Освоение программирования
Andrew Lobanov(tavern,1) — Anotheroneuser
2018-05-14 13:16:55


>>  Посоветуешь что-нибудь толковое по алгоритмизации. Я искал, но попадалось либо очень сложное, либо малоизвестное. А ты, наверняка, знаешь что-нибудь толковое.
Anotheroneuser> После «алгоритмизации» знак вопроса, конечно же))) Прошу прощения — спешил и спотыкался )

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

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

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

Если про написание игр и lua имелся в виду instead, то тут не обязательно вообще знать плюсы. Даже не обязательно знать lua, хотя последнее очень полезно. Если же какой-то другой движок, то я не могу ничего сказать.

Лично я бы начал как раз с чего попроще. То есть с lua, так как он проще C++ и является целью. В books.tech (спрашивайте у оператора вашего уза =) лежит Иерусалимски на русском языке. Очень хороший учебник.

// Книжку могу скинуть более дургим способом, но для этого лучше написать мне на почту spline at rooker dot ru.

# Re: Освоение программирования
btimofeev(tavern,13) — Anotheroneuser
2018-05-14 13:51:46


Anotheroneuser> С++
Anotheroneuser> Б. Страуструп - Принципы и практика с использованием C++
Anotheroneuser> Меня берут глубочайшие сомнения, что мозг не закипит уже после пятнадцатой минуты обучения.

Не знаю почему тебе советовали начинать с С++, но если ты никогда раньше не программировал, то, имхо, лучше с него не начинать (а уж тем более с книги Страуструпа). Переходи сразу к lua, как посоветовал Андрей. Или можно начать с Python'а или Go, например. C++ выучишь когда-нибудь потом.

# Re: Освоение программирования
Anotheroneuser(syscall,27) — btimofeev
2018-05-14 14:42:49


> Не знаю почему тебе советовали начинать с С++
Программу обучения составляю спешно, ориентируясь на мнение таких людей, как ты, Андрей, Пётр — специалистов.
Начинать с С++ рекомендует В.Моженков в своём видеожурнале https://www.youtube.com/playlist?list=PLY7PmJJFH5nS_QOUktkW_eJikn41A819x
Он говорит, что начинать изучение программирования с какого-нибудь вспомогательного (возможно, я не точно воспроизвожу его слова) языка приведёт к тому, что впоследствии придётся осваивать основной язык как бы заново. Может быть, меня попросту переклинило в анализе этой теории применительно к изучению Lua по отношению к C++... А, может, Моженков говорил это не для всех, а лишь для тех, кто планирует капитально связать свою жизнь с программированием и заниматься им профессионально? У меня-то нет такой цели.

> Переходи сразу к lua
Привлекательная мысль, благодарю. И очень сэкономит время.

# Re: Освоение программирования
Anotheroneuser(syscall,27) — Andrew Lobanov
2018-05-14 14:50:58


Надо подумать... Благодарю за советы
Кстати, сам Иерусалимски, в ответ на претензии одного из читателей его книги в последней редакции, ответил следующее: «The book is not addressed to newbie programmers, and its description clearly says that: "Programming in Lua is targeted at people with some programming background". It also says that "[it] does not assume any prior knowledge about Lua", and I stand by it, as long as the reader has some programming experience.»
Это есть на Amazon.

Я не просто «newbie» а «damn newbie man-who-seek-the-way-to-become-a-programmer» )))

# Re: Освоение программирования
Peter(syscall,1) — Anotheroneuser
2018-05-14 16:19:38


Сугубо для оживления беседы. :) У меня был примерно такой путь:

1) БК0010-01 играл в игры
2) Написал программу для решения квадратных уравнений на Фокале (и тут настал катарсис!)
3) Начал писать игры на Фокале (без знаний вообще)
4) Начал писать игры на Бейсике (без знаний вообще)
5) Начал дизассемблировать код и не понимая что он делает вставлять в свой код игр на Бейсеке :) Обычно для звука и графики
6) В школе появилась информатика но там были блок-схемы. Ничему не научился =)
7) Появилась машина на процессоре 8086 (без винчестера, конечно). Начал писать на gwbasic
8) Начал читать литературу по ассемблеру и писать код прямо в debug.com и отлаживать/менять чужие игры. Уровни к sopwith, музыка в арканоиде итд.
9) Кто то дал C компилятор. Начал пытаться писать на C
10) В итоге, стал более менее писать на ассемблере и С. Конечно, гл образом игры =)
11) В институте уже только C и ASM + Паскаль как предмет
12) Усторился на работу где надо было дизассемблировать ядро Windows NT
13) Устроился на работу где надо было дизассемблировать ядро Windows NT + писать драйверы на c++
14) Устроился на работу где делать примерно то же самое, но для Linux :)
15) Написал INSTEAD. Понравился Lua, появился инстерес к высокоуровневым языкам. Так что теперь с удовольствием применяю то, что попадется под руку.
16) Работы менялись, но C остался =)

# Re: Освоение программирования
vit01(mira, 1) — Anotheroneuser
2018-05-14 16:10:44


>> Переходи сразу к lua
Anotheroneuser> Привлекательная мысль, благодарю. И очень сэкономит время.

То, что для "настоящего" обучения программированию советуют C++, на самом деле не лишено смысла. Это должно научить некоторым базовым вещам, да и строгая типизация дисциплинирует.

Но всё-таки соглашусь с остальными товарищами и посоветую начать с Lua.

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

// python тоже очень крут в плане низкого порога вхождения и неплохо оптимизирует рутину

P.S. Когда начнёшь изучать Lua, попробуй установить Awesome WM. Будешь изучать язык и одновременно тюнинговать свой рабочий стол =)

# Re: Освоение программирования
Andrew Lobanov(tavern,1) — Anotheroneuser
2018-05-14 17:57:52


>>  Не знаю почему тебе советовали начинать с С++
Anotheroneuser> Программу обучения составляю спешно, ориентируясь на мнение таких людей, как ты, Андрей, Пётр — специалистов.
Anotheroneuser> Начинать с С++ рекомендует В.Моженков в своём видеожурнале https://www.youtube.com/playlist?list=PLY7PmJJFH5nS_QOUktkW_eJikn41A819x
Anotheroneuser> Он говорит, что начинать изучение программирования с какого-нибудь вспомогательного (возможно, я не точно воспроизвожу его слова) языка приведёт к тому, что впоследствии придётся осваивать основной язык как бы заново. Может быть, меня попросту переклинило в анализе этой теории применительно к изучению Lua по отношению к C++... А, может, Моженков говорил это не для всех, а лишь для тех, кто планирует капитально связать свою жизнь с программированием и заниматься им профессионально? У меня-то нет такой цели.

Если честно, по ссылке я не сходил, но сильно не согласен с В. Моженковым по той простой причине, что в современном мире именно C++ требуется разве что для поддержки legacy-кода. Для системщиков он так и остался слишком монструзным, хотя кто-то что-то и пишет на нём, а для прикладного ПО появились более классные языки. Причём если говорить именно о прикладном ПО, то опускаться до низкого уровня нынче нет никакого смысла, так как большинство потребностей программиста, особенно если он пишет для себя, с лихвой покроют те же python или go.

>>  Переходи сразу к lua
Anotheroneuser> Привлекательная мысль, благодарю. И очень сэкономит время.

На самом деле, выражать свои мысли в коде проще, когда имеешь простой инструмент. lua достаточно компактный язык. При этом не требует больших знаний и уж тем более, знания C++.

// Может, я предвзят, но С++ не самый удачный язык в принципе. Не самый и плохой, но уж учиться программировать с него это как-то слишком.

# Re: Освоение программирования
Andrew Lobanov(tavern,1) — vit01
2018-05-14 17:57:52


>>> Переходи сразу к lua
Anotheroneuser>> Привлекательная мысль, благодарю. И очень сэкономит время.
vit01> То, что для "настоящего" обучения программированию советуют C++, на самом деле не лишено смысла. Это должно научить некоторым базовым вещам, да и строгая типизация дисциплинирует.

ИМХО, а я не настоящий сварщик, делать первые шаги с C++ имеет смысл только если под рукой есть гуру, который всегда придёт на помощь. Причём именно гуру, а не преподаватель.

vit01> На мой взгляд, самое важное в обучении программированию - это иметь возможность сразу "потрогать" результат своего труда. А если твоя краткосрочная цель есть написание игрушек на Инстеде, то Lua - это точное попадание. Так у тебя будет мотивация улучшать свои навыки, и, натренировавшись, можно будет углубляться, переходить от простого к сложному. К тем же плюсам, например.

Да, собственно, до долгой сборки проектов на том же C++ ещё дожить надо. Так что потрогать на первых порах получится сразу практически с любым компилятором.

# Re: Освоение программирования
Andrew Lobanov(tavern,1) — Peter
2018-05-14 17:57:52


Peter> Сугубо для оживления беседы. :) У меня был примерно такой путь:

Довольно увлекательный, надо сказать, путь =)

Peter> 15) Написал INSTEAD. Понравился Lua, появился инстерес к высокоуровневым языкам. Так что теперь с удовольствием применяю то, что попадется под руку.

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

Peter> 16) Работы менялись, но C остался =)

И это не просто так. До сих пор считаю его очень крутым инженерным языком. Конечно, писать прикладной софт на нём нынче не очень удобно, КМК, но системные вещи сам Пат велел =)

# Re: Освоение программирования
Anotheroneuser(syscall,27) — Peter
2018-05-14 18:36:17


*С восхищением* Обалдеть..
У тебя прямо врождённая склонность есть к программированию.
Вспоминаю, как в школе уравнения решал — жуть берёт ) Тёмный лес со зверями. Еле-еле что-то укладывалось. А информатики у нас вообще не было, гуманитарный же уклон. Вот по этому уклону и пришлось катиться всю дорогу ))

Но Бейсик мне запомнился. И «Лабиринт колдуна».

# Re: Освоение программирования
Anotheroneuser(syscall,27) — Andrew Lobanov
2018-05-14 19:03:57


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

С моей точки зрения на данный момент, язык — некий набор инструментов, с помощью которого мне предстоит оживить сценарий игры. Как это будет в натуре, пока даже не представляю. Ну main3.lua понять могу. И приблизительно представляю себе, что движок будет воспроизводить то, что предусмотрено алгоритмом, который ему напишешь в main3.lua. Наверное, в main3.lua же будут содержаться ссылки на звуковые- видео- фото- и прочие материалы, которые необходимо разместить в каталоге игры (это, кстати, отлично).

Но читать код... пока не понимаю. Изучаю пособие. Слава Богу, кстати, что не придётся пока учить С++ )) Наверное, на это уйдут годы

# Re: Освоение программирования
Anotheroneuser(syscall,27) — vit01
2018-05-14 19:49:00


> Это должно научить некоторым базовым вещам
А могу я некоторые базовые вещи освоить просто в теории? Или обязательно надо сразу где-то закреплять их на практике?

> сразу "потрогать" результат своего труда
Да. Именно так. Есть запас сил и не хотелось бы перерасходовать его. Хотелось бы составить алгоритм и посмотреть, как он будет исполняться. Короче, Lua так Lua.

> Awesome WM
На некоторых снимках выглядит обалденно. Только у меня не настолько глубокое знание Linux на данный момент. Уже несколько лет работаю в Mint. Но надо что-то менять — согласен. Попробую..

# Re: Освоение программирования
Anotheroneuser(syscall,27) — Andrew Lobanov
2018-05-14 19:52:17


Я о Моженкове особо ничего не знаю, если честно. ПРосто его видеодневник попался мне в Youtube и показался нормальным. Он там старается аккуратно советовать, так что, может я что-то не так понял: если разбираться, то придётся лезть в вашу профессию, а я не могу по причине полного отсутствия представления о ней )

> На самом деле, выражать свои мысли в коде проще, когда имеешь простой инструмент. lua достаточно компактный язык
Эта мысль меня вполне удовлетворяет.

# Re: Освоение программирования
Andrew Lobanov(tavern,1) — Anotheroneuser
2018-05-15 05:24:33


Anotheroneuser> Это позволит сэкономить массу сил. По-крайней мере, сейчас, когда их действительно есть куда девать. Как ты понимаешь, до меня практически не доходят характеристики языков программирования. Я просто не понимаю, что значит «монструозный-компактный» или «простой-сложный».

Да оно тебе особо и не нужно. Просто есть языки с кучей конструкций и концепций, которые нужно знать. Теоретически на них проще писать, ведь на каждый чих у тебя есть в языке что-нибудь. А есть языки с необходимым минимумом. В них тебе многое придётся делать чуть сложнее, но зато там мало всего и писать/читать код будет существенно проще. Это, конечно, моё мнение как любителя, но для себя я вывел такую штуку.

Anotheroneuser> С моей точки зрения на данный момент, язык — некий набор инструментов, с помощью которого мне предстоит оживить сценарий игры. Как это будет в натуре, пока даже не представляю. Ну main3.lua понять могу. И приблизительно представляю себе, что движок будет воспроизводить то, что предусмотрено алгоритмом, который ему напишешь в main3.lua. Наверное, в main3.lua же будут содержаться ссылки на звуковые- видео- фото- и прочие материалы, которые необходимо разместить в каталоге игры (это, кстати, отлично).

Instead предоставляет кучу удобных штук для программирования игр. Причём по большей части для написания игры уровня квантового кота (эталон да =) можно прочесть только документацию к движку и изучить код какой-нибудь простой игры. Тут я только о своих играх могу судить, так как в чужой код лажу редко, если это не код stead. Правда сейчас есть смысл опираться только на новое ядро, так что даже и не знаю в какую игру посоветовать заглянуть.

Anotheroneuser> Но читать код... пока не понимаю. Изучаю пособие. Слава Богу, кстати, что не придётся пока учить С++ )) Наверное, на это уйдут годы

Ну с инстедом всё просто на самом деле. Есть в РИЛ-сообществе мнение, что инсед сложный, но на самом деле это не так. Инстед против FireURQ, ИМХО, примерно как go против python. То есть писать на питоне, может, ипроще новичку, но go проще устроен с точки зрения синтаксиса и структуры языка. Инстед это простой инструмент, но не с самым низким порогом вхождения. Но это так. Растекаюсь мыслью по байтам =)

Я как-то объяснял жене как писать игры на инстеде. Вот комната, вот ещё комната. Их можно связать переходами. Вот объект, вот ещё объект. Можно сказать движку, что их можно брать или что между ними возможно взаимодействие.

По секрету скажу, что я до сих пор не знаю lua, так как не прочёл ни одного учебника по этому языку. Просто я изучал чужие игры и экспериментировал =)

# Re: Освоение программирования
Andrew Lobanov(tavern,1) — Anotheroneuser
2018-05-15 05:24:34


>>  Это должно научить некоторым базовым вещам
Anotheroneuser> А могу я некоторые базовые вещи освоить просто в теории? Или обязательно надо сразу где-то закреплять их на практике?

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

>>  Awesome WM
Anotheroneuser> На некоторых снимках выглядит обалденно. Только у меня не настолько глубокое знание Linux на данный момент. Уже несколько лет работаю в Mint. Но надо что-то менять — согласен. Попробую..

А вот тут моё мнение диаметрально противоположное, если честно. Использовать лучше то, к чему привык. Конечно, любопытство в своё время заставило меня попробовать так называемые тайловые оконные менеджеры, да так на них и остался по сей день, но Awesome достаточно сложен в настройке, если именно осмысленно писать ему конфиг и аплеты, и его изучение требует времени и сил.

# Re: Освоение программирования
Andrew Lobanov(tavern,1) — Anotheroneuser
2018-05-15 05:24:35


Anotheroneuser> Я о Моженкове особо ничего не знаю, если честно. ПРосто его видеодневник попался мне в Youtube и показался нормальным. Он там старается аккуратно советовать, так что, может я что-то не так понял: если разбираться, то придётся лезть в вашу профессию, а я не могу по причине полного отсутствия представления о ней )

Я о нём вообще только от тебя услышал. Просто рекомендовать C++ как основной язык сегодня не очен хорошо даже для профессионалов. Рекомендовать же его любителям и вовсе вредительство. Если говорить, например, о профессиональной деятельности, то знание C++ сейчас требуется только для сопровождения старых программ и кучи чужого кода. Новые программы на нём пишут мало. По крайней мере в сфере коммерческого ПО.

// Я говорю много тут, но на самом деле я совершенно не имею отношения к программированию в своей профессиональной деятельности. Максимум это простые скрипты иногда. Программирование для меня всего лишь хобби.

# Re: Освоение программирования
Andrew Lobanov(tavern,1) — Peter
2018-05-15 05:24:35


Peter> Сугубо для оживления беседы. :) У меня был примерно такой путь:

Забыл же про свой неказистый путь рассказать =)

Когда мне было два года, отец собрал свой первый компьютер Радио-86РК. Честно говоря, я ничего толкового о нём рассказать не могу, кроме того, что мне очень нравилась на нём игра "Клад" и ещё отец написал простенькую программку, которая занимала меня пока он готовил ужин, а за одно учила считать до десяти. На экране было изображено десять вертолётиков и если я правильно их сосчитал и ввёл ответ, один из них улетал. Изображались вертолётики вот так:

  -.-
*=(0)

так как компьютер не имел графического видеорежима.

Потом был спектрум. Тоже самопальный и в разных вариантах. Без дисковода с 48 килобайтами памяти, с дисководом с ним же, с 128 килобайтами памяти, потом даже с музыкальным сопроцессором. Там я лет до восьми только в игрушки играл и баловался графическим редактором Art Studio. А лет в восемь задал себе вопрос: как же делаются эти игрушки? Как раз примерно в это время мой друг принёс мне книжку по бейсику для детей. Называлась она, как сейчас помню, "Сказки дядюшки компьютера". Там были нелепые истории и самое ценное - примеры программ на бейсике, визуализирующие эти истории. Меня тогда это сильно впечатлило, но при ближайшем рассмотрении оказалось, что написаны они на диалекте бейсика, отличном от спектрумовского. Сейчас я искренне недоумеваю как мне тогда это удалось, но я смог их ввести в спектрум и адаптировать под имеющийся диалект.

Если кто не помнит или не знает, ввод программ на бейсике в спектруме был достаточно хитёр. Каждый символ занимал в памяти один байт, но ввести можно было только 128 символов. И ещё 127 значений этого байта было отведено под команды бейсика. То есть на экране было написано какое-нибудь слово, например, "CIRCLE", а в памяти эта команда занимала целый байт. В связи с этим команды вводились нажатием одной клавиши или клавиши-модификатора и буквы. Это сильно усложняло мне задачу, ведь на тот момент у меня была только самодельная клавиатура вообще без какой-либо маркировки и догадаться, что надо нажать, например, EXT MODE и букву для ввода команд было тяжело. Но я и с этим справился =)

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

Так я и баловался с бейсиком и в ус не дул. Я слышал, что есть некий ассемблер, но у меня не было ни литературы ни компилятора этого дела. А больше языков я не знал совершенно. Даже не догадывался об их существовании. Открытием для меня стало приложение к журналу "Радиолюбитель" с оригинальным названием "Мой компьютер". Оказалось, что есть такой язык, как паскаль. Читая статьи и пытаясь понять опубликованные в журнале программы, я возомнил его чем-то очень крутым. Строго говоря, оно так и было, ведь прогаммы были ориентированы на Turbo Pascal от Borland, и PC с паскалем на фоне спектрума с бейсиком был очень классным и интересным. Но PC у меня не было. Как и какого-нибуь компилятора паскаля.

Правда однажды я у кого-то стянул компилятор для спектрума, но на 128 килобайтах оперативки что-то дельное на нём было сделать тяжело. Он был тяжёлый и на программу оставалось мало памяти. То есть было просто тесно. Не знаю, скорее всего я с ним просто не разобрался, ведь сопроводительной документации к нему у меня не было. Так что побаловавшись немного, я так и вернулся на бейсик, лелея мечту когда-нибудь осилить ассемблер, потому что все крутые программы на спектруме были написаны именно на ассемблере. Значительно позже мне попался справочник по процессору Z80 (сердцу спектрума), но сама концепция программирования на ассемблере настолько отличается от программирования на бейсике, что ничего это мне не дало.

Тем не менее, бейсика всё равно было достаточно для многих штук, ведь в спектруме была очень простая работа с памятью, а видеопамять была в одном адресном пространстве с остальной. И никто не мешал мне писать и читать там что угодно прямо из бейсика. Как и вызывать встроенные в ПЗУ низкоуровневые процедуры, благо отец когда-то вёл дневник по своему спектруму и там были все нужные мне адреса и точки входа.

Так я и промаялся с бейиком до 14 лет. А потом в моей жизни появился PC на базе 486 процессора. Рухлядь по тем временам (2001-й год), но после простенького спектрума это было для меня откровением. До того момента я вживую видел PC только у друга и ничего в нём не понимал. Только в дум резаться умел =)

Друзья быстро присоветовали книжку и дали заветные дискетки с турбо паскалем. На книжку мне пришлось копить несколько месяцев, но я всё таки её купил. Как сейчас помню, Немнюгин С. А. "Turbo Pascal Учебник". Кстати, очень хорошая книжка была для старшеклассников. Наисана ясно и примеры хорошие. Так я начал писать программки для доса.

Потом был целый пентиум, разогнанный аж до 166 МГц и Windows. И Delphi с ужасной книжкой "Delphi для чайников". Случилось это где-то уже годам к 16. На страшной и ужасной Delphi я просидел ещё несколько лет и даже диплом писал там же. А потом я открыл для себя GNU/Linux и занялся егё изучением. И программирование несколько забросил, ведь кроме паскаля ничего не знал, а с free pascal быстро наигрался. Так продолжалось достаточно долго и двигаться дальше я начал уже года в 24. Для начала освежил в памяти паскаль, начал играться с python-ом, вспомнил, что хотел попробовать написать игру для Instead. И понеслось до сих пор.

Профессиональная деятельность у меня ушла от программирования далеко в сторону, а для себя я пишу на чём попало. Python3, Common Lisp, Go и, конечно, lua. Ведь инстед стал частью моей жизни.

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

// Надеюсь, это было не слишком скучно читать =)

# Re: Освоение программирования
Peter(syscall,1) — Andrew Lobanov
2018-05-15 09:19:48


> // Надеюсь, это было не слишком скучно читать =)

Интересно. :) Лучшая часть, конечно, это:

  -.-
*=(0)

:)

# Re: Освоение программирования
Anotheroneuser(syscall,27) — Andrew Lobanov
2018-05-16 21:05:39


> Надеюсь, это было не слишком скучно читать
Можно даже игру написать по этому рассказу.

У меня вот не слишком интересно.

* Как уже говорил, в детстве со старшим братом проходили «Лабиринт колдуна» Юрия Пульвера
https://quest-book.ru/forum/images/upload/2_d40701905cb005a2f4bb32540fea6c95.jpg
* Потом была Стальная Крыса Г.Гаррисона, которую прочитал, конечно, всю. Пусть земля ему будет пухом, этому человеку. Из приключенческих там была «Стань Стальной Крысой», которую впоследствии несколько раз с удовольствием прошёл на INSTEAD.
* Потом, когда ещё не было Спектрумов, пробовали составлять игры самостоятельно, но недоставало знания алгоритмизации (их и теперь недостаёт, но мне удалось найти литературу [1]. В конце задам вопрос по ней)
* Потом начались Спектрумы 48К, игры на кассетах, которые мы покупали ещё на старые российские рубли. Там уже, конечно, всё было по-взрослому: графика и прочее. Вот, текстовых игр для Спектрума я что-то не припоминаю.. Припоминаю, как сосед, который учился в школе с уклоном по информатике, писал в клетчатой тетради программы для ЭВМ. На каком языке он их писал, уже не помню. Кажется, Бейсик. Некоторые вещи мне удавалось выучить попутно. Потом удивлял друзей, оказавшись в классе информатики, где учились уклоняющиеся в неё старшеклассники и оставляли машины (Электроника какая-то там) включенными с результатом на экранах. Мне удавалось изменять код и запускать его снова. Получалась хрень, но это впечатляло непосвящённых ))
Вообще, тот код писать было весело.
* По-настоящему к компу удалось приобщиться лишь в 2006 году. Пришлось приобщиться, я бы даже так сказал. Всё происходило на бегу, лету и ползу (если есть такое слово).

---
[1] Нарыл несколько популярных изданий по алгоритмизации. Хотел бы посоветоваться по ним, но не знаю, можно ли тут выкладывать ссылки: они все ведут на Rutracker :)

# Re: Освоение программирования
vit01(mira, 1) — Andrew Lobanov
2018-05-17 02:33:48


>>>  Awesome WM

AL> А вот тут моё мнение диаметрально противоположное, если честно. Использовать лучше то, к чему привык. Конечно, любопытство в своё время заставило меня попробовать так называемые тайловые оконные менеджеры, да так на них и остался по сей день, но Awesome достаточно сложен в настройке, если именно осмысленно писать ему конфиг и аплеты, и его изучение требует времени и сил.

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

# Re: Освоение программирования
Andrew Lobanov(tavern,1) — Anotheroneuser
2018-05-17 05:03:42


Anotheroneuser> * Потом, когда ещё не было Спектрумов, пробовали составлять игры самостоятельно, но недоставало знания алгоритмизации (их и теперь недостаёт, но мне удалось найти литературу [1]. В конце задам вопрос по ней)

Ссылки не стоит, но авторов и названия же можно =)

Anotheroneuser> * Потом начались Спектрумы 48К, игры на кассетах, которые мы покупали ещё на старые российские рубли. Там уже, конечно, всё было по-взрослому: графика и прочее. Вот, текстовых игр для Спектрума я что-то не припоминаю..

Были, конечно. И их было много. На https://www.worldofspectrum.org/ их насчитывается 2217 штук. Для меня года с 1996-го это стал практически основной жанр игр, в которые я играл тогда.

Anotheroneuser> Припоминаю, как сосед, который учился в школе с уклоном по информатике, писал в клетчатой тетради программы для ЭВМ. На каком языке он их писал, уже не помню. Кажется, Бейсик. Некоторые вещи мне удавалось выучить попутно. Потом удивлял друзей, оказавшись в классе информатики, где учились уклоняющиеся в неё старшеклассники и оставляли машины (Электроника какая-то там) включенными с результатом на экранах. Мне удавалось изменять код и запускать его снова. Получалась хрень, но это впечатляло непосвящённых ))

Я так и не позанимался на компьютерах в школе. Да и были там корветы до самого моего 10 класса. Как раз когда я перешёл в 10 класс, поставили третьи пентиумы и там уже был паскаль.

Anotheroneuser> Вообще, тот код писать было весело.

Это да =)

# Re: Освоение программирования
Andrew Lobanov(tavern,1) — vit01
2018-05-17 05:03:43


>>>>  Awesome WM
AL>> А вот тут моё мнение диаметрально противоположное, если честно. Использовать лучше то, к чему привык. Конечно, любопытство в своё время заставило меня попробовать так называемые тайловые оконные менеджеры, да так на них и остался по сей день, но Awesome достаточно сложен в настройке, если именно осмысленно писать ему конфиг и аплеты, и его изучение требует времени и сил.
vit01> Ничего ведь не мешает просто попробовать. Да, конечно, для настройки авесома надо мануалов покурить, поизучать чужие примеры. Но зато интеграция WM с языками программирования вырабатывает творческий подход к своему десктопу.

Это основная причина, по которой я отказался и от Fvwm и от stumpwm. Я в итоге слишком много времени тратил на кастомизацию, вместо того, чтобы пользоваться машиной =)

# Re: Освоение программирования
Anotheroneuser(syscall,27) — Andrew Lobanov
2018-05-17 06:30:31


> авторов и названия

Авторы и названия литературы об алгоритмах.
Цель единственная — освоение программирования игр.

-1-

Algorithms Unlocked / Алгоритмы. Вводный курс
Год: 2014
Автор: Thomas H. Cormen / Томас Х. Кормен
Переводчик: Игорь Красиков

-2-

Алгоритмы: разработка и применение. Классика Computers Science
Год издания: 2016
Автор: Клейнберг Дж., Тардос Е.
Переводчик: Е. Матвеева

-3-

Algorithms in C++, Third Edition / Фундаментальные алгоритмы на C++ (3-я редакция, в 5-ти частях, 2 книгах)
Год: 2001
Автор: Р. Седжвик
Жанр: Программирование

-4-

Essential Algorithms: A Practical Approach to Computer Algorithms / Алгоритмы. Теория и практическое применение
Год издания: 2016
Автор: Rod Stephens / Род Стивенс
Перевод: В. Кириленко, Р. Волошко

-5-

Алгоритмы. Построение и анализ. Издание 3-е
Год: 2013
Автор: Томас Кормен, Чарльз Лейзерсон, Рональд Ривест, Клиффорд Штайн
Переводчик: И.В.Красикова

-6-

Алгоритмы. Просто как дважды два
Год выпуска: 2007
Автор: И. В. Красиков, И. Е. Красикова

-7-

Грокаем Алгоритмы. Иллюстрированное пособие для программистов и любопытствущих
Год издания: 2017
Автор: Бхаргава А.

-8-

Алгоритмы. Справочник с примерами на C, C++, Java и Python
Год издания: 2017
Автор: Хайнеман Д., Поллис Г., Селков С.

-9-

Алгоритмы. Теория и практическое применение
Год издания: 2016
Автор: Стивенс Род

Ещё нашёл http://www.stolyarov.info/books для получения теоретической основы. Как кажется, подойдёт? Вот базовая книга: http://www.stolyarov.info/books/pdf/progintro_vol1.pdf