История изменений
Исправление soomrack, (текущая версия) :
Так начни с основ: типы, операции над ними, базовый ввод/вывод, блоки, ветвления, циклы, композиция этого, потом сделаешь «открытие» что блок — вырожденный цикл, ветвление — выбор между блоками, цикл — повторение блока, и что блоки можно выносить в процедуры и прочие функции, когда встречаешь необходимость скопипастить блок :)
Не думаю, что это подходит ТС. Описанная проблема (если это не троллинг) в том, что у него не развито абстрактное мышление, нет никакой математической базы. В частности, очень показателен пример с проблемами реализации бинарного поиска.
Поэтому заход нужно делать с позиции развития абстрактного алгоритмического мышления. На мой взгляд, на первом этапе нужно ограничиваться написанием процедурного кода, в ООП и пр. не лезть (пользоваться можно, но самому от объектов программу не выстраивать). Нужно написать программу в стиле процедурного программирования этак на 20.000 строк. Это должно развить навыки алгоритмизации (в мозгу).
Соотв. для этого нужна задача, которая будет поддерживать его мотивацию эти несколько месяцев, пока он будет ее каждый или почти каждый вечер кодить, и которая будет достаточно легкой, чтобы он смог ее решить. А вот тут без обратной связи, без общения сложно что-то посоветовать. Можно только предложить написать какие-то вещи связанные с его основной специальностью – пошаговые игры, квесты, тесты и пр….
И потом, по результатам этого этапа можно думать о переходе на следующий уровень абстракции – на ООП, а потом уже систематически изучить основные структуры данных и алгоритмы. Ну а дальше уже специализация на нужном инструменте, языке, библиотеке под выбранную работу.
Исходная версия soomrack, :
Так начни с основ: типы, операции над ними, базовый ввод/вывод, блоки, ветвления, циклы, композиция этого, потом сделаешь «открытие» что блок — вырожденный цикл, ветвление — выбор между блоками, цикл — повторение блока, и что блоки можно выносить в процедуры и прочие функции, когда встречаешь необходимость скопипастить блок :)
Не думаю, что это подходит ТС. Описанная проблема (если это не троллинг) в том, что у него не развито абстрактное мышление, нет никакой математической базы. В частности, очень показателен пример с пробелами реализации бинарного поиска.
Поэтому заход нужно делать с позиции развития абстрактного алгоритмического мышления. На мой взгляд, на первом этапе нужно ограничиваться написанием процедурного кода, в ООП и пр. не лезть (пользоваться можно, но самому от объектов программу не выстраивать). Нужно написать программу в стиле процедурного программирования этак на 20.000 строк. Это должно развить навыки алгоритмизации (в мозгу).
Соотв. для этого нужна задача, которая будет поддерживать его мотивацию эти несколько месяцев, пока он будет ее каждый или почти каждый вечер кодить, и которая будет достаточно легкой, чтобы он смог ее решить. А вот тут без обратной связи, без общения сложно что-то посоветовать. Можно только предложить написать какие-то вещи связанные с его основной специальностью – пошаговые игры, квесты, тесты и пр….
И потом, по результатам этого этапа можно думать о переходе на следующий уровень абстракции – на ООП, а потом уже систематически изучить основные структуры данных и алгоритмы. Ну а дальше уже специализация на нужном инструменте, языке, библиотеке под выбранную работу.