• Как развить мышление для программирования?

    @LLlAMuJIb
    Для алгоритмов стоит изучать алгоритмы, и как сказали выше - практиковаться. Необходимо понять что есть абстракция и декомпозиция как минимум, а потом этим научиться пользоваться.
    В любом техническом вузе есть сотни книг для курса программирования, главное понять суть, а потом уже расширять знание умением.
    Не потянул Кормена, попробуй другого: Вирт, Скиена, Голдаев, Левитин... их можно перечислять до бесконечности, они все об одном и том же разными словами, а порой и теми же.
    Почитай про паттерны, постарайся осмыслить и проанализировать. Главное тяга.

    upd:
    Ну или вон в соседней ветке рекомендуют aliev.me/runestone
    Ответ написан
    Комментировать
  • Как развить мышление для программирования?

    @krog
    Developer
    У Кнута есть книжка "Конкретная математика", если не осилил Кормена, эта должна легче зайти )
    Ещё есть на интуите видеокурс "Дискретная математика", там прям вообще с самых азов всё подробно
    Ответ написан
    1 комментарий
  • Как развить мышление для программирования?

    @Dum_spiro_spero
    На мой взгляд математика и программирование связаны мало.
    Еще в школе (ну да, физматшколе) у моего друга с математикой было не хуже чем у меня, а с программированием - никак. Школьная и институтская математика - увы - учат решать стандартные задачи стандартными методами.
    Создание же даже просто алгоритма - это процесс творческий.
    Ну на самом деле - в программировании же понятийных сущностей мало - переменные, ввод-вывод, циклы, функции, С++ как приятный бонус вкупе с RAD.
    Если взять типичную программу - решение квадратного уравнение - то даже тут встретятся моменты творчества.
    Как назвать переменные? Коэффициенты вводит пользователь или они жестко заданы? После окончания программы - всё, стоп или решаем еще одно? А если подсунули линейное уравнение, а не квадратное - как быть? А если уравнение задано в виде строки вида "2x^2+3x-10=0" - может такое решим?
    Ну и так далее.
    А какие-нибудь крестики-нолики запрограммировать - надо еще больше таких вопросов решить.
    А математика как таковая вообще мало нужна - если нужно запрограммировать как спутник летит - то почитаете книжки по численным методам благо их нынче вагон - с точки зрения программирования - там все гиперпросто.
    Как правило это программы вида считать данные, долго считать по сложным формулам, вывести результаты.
    Да, есть некоторое количество знаний которое надо знать - типа что такое указатель и как он хранится, что не нежелательно сравнить переменную типа float с нулем, как хранятся массивы, и т.п.. ну это все в книжках по программированию есть.
    Моя идея такая - старайтесь одну и ту же задачу по программированию решить РАЗНЫМИ способами - ну или обдумать хотя бы разные подходы.
    О себе - с первого курса института работал в программисткой фирме. Пишу на С/С++ в его разных ипостасях, новомодных штучек типа Питона не знаю.
    Ответ написан
    6 комментариев
  • Как развить мышление для программирования?

    Опыт лучший учитель. Занимайся непосредственно программированием от легких задач к сложным. Я закончил физико-технический факультет и когда занялся программированием ничем не отличался от тебя путался в алгоритмах и с трудом строил циклы. Начинал с самого простого, брал учебник и разбирал примеры, придумывал задачки и храбро их решал, читал мануалы, находил толковые видеоуроки по нужному материалу. Терпение и труд делают свое черное дело, я занимаюсь Web-программированием и чем больше изучаю его, тем больше осознаю как много еще не знаю. Думаю, в программировании самое важное то, чтобы тебе самому было интересно им заниматься и ты с удовольствием тратишь на него свободное время и силы, все остальное придет со временем. Еще могу посоветовать найти компанию единомышленников или наставника, с кем можно посоветоваться и попросить помощи, мне в этом повезло, у меня лучший друг хороший программист, даже и не знаю, что бы без него делал)
    Ответ написан
    Комментировать
  • Как развить мышление для программирования?

    gbg
    @gbg Куратор тега Программирование
    Любые ответы на любые вопросы
    Изучайте математику. Нажимайте на высшую алгебру, матлогику и теорию алгоритмов.

    Решайте задачи. Почитайте "Конкретную математику" Кнута.
    Ответ написан
    Комментировать
  • Нужно ли начинать изучение программированию с книг, а не с ЯП?

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

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

    С моей точки зрения, вам стоит прямо сейчас, без дальнейших сомнений, взять какой-нибудь несложный язык программирования, - пусть Python, - и приняться за работу. Выберите себе какой-нибудь проект, который вам интересно было бы сделать. Да хоть возьмите задачки из "Конкретной математики", если она вам так нравится. Там уже в первой главе есть. И пишите, пишите, пишите код.

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

    Если знаете английский - есть видеокурсы по программированию на Python на Coursera, Udacity, codecademy, где там ещё, - много их. Если не знаете - есть переведённый на русский учебник за авторством Лутца. Но английский, вообще говоря, знать надо.

    Теперь, что касается фундаментальных книг. Я сам читал "Конкретную математику", но продвинулся недалеко. Считаю, что у человека должен быть стимул и интерес изучать вещи; тогда лишь их изучение будет плодотворным. В обратном случае, даже если вы заучите что-то, мозг выбрасывает ненужную информацию.

    Пишите код и много. Когда вы почувствуете, что не хватает знаний о красно-чёрных деревьях - возьмёте Кнута и прочтёте. Надоест динамическая типизация в Питоне - пойдёте штудировать C/C++. Захотите писать под микроконтроллёры - выучите ассемблер.

    Короче говоря, не бойтесь начать.
    Ответ написан