Improve your skills / Підшивка ім. kutsyk / OOP - Портал об’єктно-орієнтованого програмування Подорожуй з gofrie.com

Improve your skills

Всім привіт, напишу маленький quide з власного досвіду, як та звідкіля вивчати алгоритми.Всі великі брендові Facebook компанії вимагають від вас логіки, вони хочуть ПРОГРАМІСТІВ, а не кодерів. Мабуть вже не раз чули «Різниця між програмістом та кодеров в тому, що перший створює, а другий кодить.» Програміст шукає розвязок, а кодер друкує. Тож якщо Ви не розглядаєте себе в майбутньому як крутого чувачка який розробляє власні проекти та шукає рішеня в складних задачах. Тоді цей пост не для вас.

Отже починайте елементарно з Coursera:
Скачайте книгу Седжвіка вона є на сайті курсу, знайти її не складно. Книга геніальна легкістю викладення матеріалу.
Algorithms, Part II
Нажаль перша частина курсу закрита, я думаю, що вона просто оновлюється, коли відкриється обов«язково пройдіть. В нас в універсітеті алгоритми тепер викладаються за цим курсом. Практичні завдання просто неймовірні. Наприклад — Seam Carver.

Скоро повинні початися нові курси:
Algorithms: Design and Analysis, Part 1
Є дві частини цього курсу, я особисто його не проходив, але всі дуже радять, тож обов»язково пройду.

Наступне теж Седжвік:
Analytic Combinatorics
Комбінаторика, куди ж без неї…

Пройшли курси, ознайомились, а куди це застосувати і невже всі задачі зводяться до цих алгоритмів.
Відповідь…
НІ!

Це алгоритми які повинен знати кожен професійний програміст. Я не кажу, що ви не зможете бути крутим пограмістом з зарплатою в 8000$, без хороших знань алгоритмів… хоча так не зможете.

Ці курси лише ознайомлення з прекрасним світом оптимізації та швидкості. Тепер коли ми вивчили основи, нам потрібен розвиток. Нам потрібна ПРАКТИКА.

А її дуже легко знайти.
Почніть з сайту: UVa Online Judge
Скачайте книгу,
прочитайте початок і коли прийде речення «не читайте наступний розділ доки не виконаєте всі задачі перерахованні нижче» так і зробіть. Задачі легкі, на «ранкове вирішення». Відносяться до типу «реалізація». Тож складності не буде. До закінчення того списку, думаю ви переглянете курси і вам буде легше з наступними частинами та задачами. І крок за кроком виконуйте задачі.

Наступний сервіс:
Codeforces — на ньому величезна кількість задач. Ці задачі вже на тип «посидіти і подумати», є раунди, в раундах по 5 задач різної складності. Є розбір задач. Можна переглядати чужий код.На Codeforces кожного тижня проводяться онлайн змагання, візміть участь. Не пожалієте.

Обидва сервіси з налаштовним автоматичним тестуванням, тестів 20-100. Відображення тестів у сервісів різне та умови різні. Кількість використання мов величезна.

Отже це два основні ресурси для навчання Competetive programming.Який робить програміста, хорошим програмістом — хакером

Ха́кер (від англ. to hack — рубати) — особливий тип комп'ютерних спеціалістів. Нині так часто помилково називають комп'ютерних хуліганів, тобто тих, хто здійснює неправомірний доступ до комп'ютерів та інформації. Інколи цей термін використовують для позначення спеціалістів взагалі — у тому контексті, що вони мають дуже детальні знання в якихось питаннях, або мають достатньо нестандартне і конструктивне мислення. З моменту появи цього слова в формі комп'ютерного терміну (започаткованого в 1960-ті роки), в нього з'явилися достатньо різноманітні значення.

«Звичайні програмісти пишуть програми за гроші, а хакери — заради задоволення.» Пол Грем — «Великі хакери»

Ось сервіс для розваги, на «ранкове розвязування»: проект Ейлера.

І звісно ж, вчіть математику, багато математики, читайте книги, розвивайтесь…

Це все. Бажаю натхнення та незламності і на кінець процитую Дейкстру:

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

3 Golden rules.

Зауваження та побажання в коментарі. Дякую за увагу.
  • +1
  • 24 березня 2014, 16:32
  • kutsyk
Автор має нагороди

Коментарі (0)

RSS згорнути / розгорнути