Прочитайте.
Ні, справді, читайте.
Прочитайте все про алгоритм та дизайн, які ви можете знайти. Є феноменальні книги там. Книги алгоритмів Sedgewick хороші. Посібник з дизайну алгоритмів Skiena також хороший. Разом ці книги слідкують за мною на кожній книжковій полиці на кожній роботі, яку я відвідую, а також "Міфічна людина-місяць".
Тоді запитайте.
Поговоріть з людьми, яких ви поважаєте. Запитайте їх, які у них були рішення та чому вони приймали рішення, які вони зробили. Хороші завжди зможуть вам сказати: "Я вирішив зробити X, тому що це краще, ніж A, B цими способами. Я міг би піти з C, але я вважав, що це був кращий вибір через це".
Далі, зробіть.
Будуйте речі. Створюйте речі, які ви ніколи не будете використовувати. Створюйте речі, які вам ніколи не знадобляться. Ідіть написати програму, яка розгадує головоломку судоку. Тепер переходимо до цього знову. І знову. Побудуйте його 5 абсолютно різними способами. Побудуйте програму, яка генерує головоломки судоку та подає їх у розв’язувачі. Знайдіть, який вирішувач найшвидший. І потім...
Дізнайтеся, чому.
"Що" майже ніколи не важливо. Я маю на увазі, так, дуже важливо закінчити проект під рукою, але в кінці кінців, якщо ви знаєте "що", не знаючи "чому", то, можливо, ви ніколи цього не робили в першу чергу. Ви отримали кращу точку на своєму резюме. Іди діставай печиво і вітай себе. "Чому" настільки важливіше, ніж "що".
І для запису Судоку був прикладом. Я витратив багато вільного часу, переживаючи цю вправу, використовуючи точку логічних головоломок на Kongregate і багато чого навчився в дорозі.
http://www.amazon.com/Bundle-Algorithms-Parts-1-5-Fundamentals/dp/020172684X/
http://www.amazon.com/Algorithm-Design-Manual-Steven-Skiena/dp/1848000693/
http://www.amazon.com/Mythical-Man-Month-Software-Engineering-Anniversary/dp/0201835959/