Pull to refresh

10 способов улучшить свои навыки программирования

Programming *
Translation
Original author: AntoArts

1. Выучить новый язык программирования


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

Среди языков программирования отличный познавательный эффект и наверстывание опыта дают: Lisp (или Scheme), Форт, PostScript или Factor (стековые языки программирования), Haskell (строго типизированный, чистый функциональный язык) либо OCaml (объектно-ориентированный язык функционального программирования), Пролог (логическое программирование), Erlang (отличные паралельные вычисления).



2. Прочесть хорошую, сложную книгу по программированию


Много знаний можно почерпнуть из книг. Несомненно, практика имеет очень важное значение, но прочитав хотя бы одну хорошую, сложную книгу по программированию, Вы не только проверите своё мышление, но и, вероятнее всего, прокачаете свой скилл в этом вопросе.
Вот пример такой литературы: The Art of Computer Programming (если хотите вскипятить мозг), Structure and Interpretation of Computer Programs, A Discipline of Programming или знаменитую dragon book. По совету ArtemSmirnov: Concepts, Techniques, and Models of Computer Programming.
Конечно, можно прочесть и простенькие книги, но избегайте литературы типа «Для чайников», "… за 24 часа", "… за 3 недели". Такие книги не дадут вам весомой пользы, с точки зрения улучшения навыков программирования.

3. Присоединитесь к open source проекту


Какие преимущества участия в open source проекте? Командная работа (прекрасная вещь, особенно, если раньше работали только самостоятельно), возможность научится копаться в чужом коде, понимая его (достаточно сложная задача).
Известные (и не очень) сообщества разработчиков открытого программного кода: GitHub, Sourceforge, gitorious, BitBucket, Ohloh.

4. Решать программистские головоломки


Это тоже отличный метод улучшения навыков программирования, тем более, что найти задачку на вечер сейчас не проблема. К примеру, математически-ориентированные задачи можно найти на Project Euler, который является одним из самых популярных сайтов с головоломками по программированию. От себя могу посоветовать The Python Challenge.
Также предлагаю Вам попробовать программистский гольф, где программисты пытаются решить задачку, сделав как можно меньше нажатий клавиш. Это может научить Вас многим изотерическим и специальным особенностям языка программирования, сделав работу более творческой и веселой. Попробовать себя в этом специфическом гольфе можно тут.
Ссылка от sl_bug: Timus Online Judge
Ссылки от winger: acm.sgu.ru, codeforces.ru, topcoder.com
Ссылка от black_bunny: acm.mipt.ru
Ссылка от kane: spoj.pl

5. Программа


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

6. Читайте и изучайте код


Исследуйте интересные коды, например ядро Linux (имейте в виду, это очень большой код). Хорошей операционной системой для учебных целей является MINIX3. Вы сможете познать много новых идиом языка, а еще кое-что о архитектуре ПО. Чтение незнакомого исходного кода — это сложная, но очень полезная работа.

7. Зависайте на сайтах и форумах по программированию, читайте блоги


Зависая на сайтах и форумах по программированию, вы покажете себя и поучитесь у других. Также читайте блоги, желательно почаще. Посоветовать могу Joel on Software (больше не публикует записи, но есть архив, в котором можно найти много интересного), Coding Horror и Lambda the Ultimate. С подачи spmbt: хабрахабр, StackOverFlow
mgarin подсказывает:
forum.sources.ru и forum.vingrad.ru — 2 крупных форума по всевозможным языкам программирования


8. Пишите о программировании


Заведите свой блог о программировании, и пишите в него, пускай даже для себя. Просматривайте сайты типа Q&A и старайтесь давать ответы. Так вы можете получить знания в вопросе, с которым самостоятельно, возможно, никогда и не столкнулись бы. Если чувствуете себя уверенно — пишите туториалы. Если пишите о программировании — должны быть в курсе освещаемого вопроса по максимуму, использовать соответствующую терминологию, иметь возможность грамотно ответить на поставленный по теме вопрос. Если пишите на англоязычных сайтах — это еще и отличная возможность прокачать свои знания английского.

9. Изучите низкоуровневое программирование


Изучение низкоуровневого программирования полезно для лучшего понимания работы машины. Почитайте о C, возможно освойте ассемблер. Узнайте, как компьютер выполняет программу, и как работает операционная система (на высоком уровне, по крайней мере). Если вы хотите познать серьёзное в низкоуровневом программировании, то почитайте книги по компьютерной организации, операционным системам, встраиваемым системам, по разработке драйверов и.т.д.
hx0 подсказывает:
Если Вы хотите подучить ассемблер и узнать о построении операционных систем — рассмотрите исходный код VictoriaOS, попробуйте написать для неё несколько простейших программ типа echo.

SaveTheRbtz поделился интересной ссылочкой:
Думаю стоит упомянуть MIT'шную ОС:
pdos.csail.mit.edu/6.828/xv6/

+ к ней прилагаются замечательные pdf'ки


10. Не работает? Не гонитесь сразу за помощью! Подумайте сами!


Итак, у Вас появилась проблема в коде: не работает, либо работает не так как нужно. Вы хотите ее решить как можно быстрее. Что вы делаете? Пишете сразу на форум, в QA, или просто другу. Так вот, никогда так не делайте. Лучше самому потратить время, пытаясь исправить ошибку самостоятельно. Возьмите бумагу, карандаш и распишите схему работы алгоритма, сверьте с кодом. Не заработало? Отдохните, сходите на прогулку, освежите мозг, попробуйте разобраться снова. Вы уже часик-второй (время зависит от размера проблемы) мучаетесь с этим куском кода? Избили Google в поисках решения? Так и быть, обратитесь за помощью. Во всяком случае пытайтесь решить проблему своими мозгами. Вы потратите время, но прибавите навыков.

P.S.: В некоторых пунктах есть ссылки на хорошие книги, блоги, сайты. Если у вас есть чем дополнить линк-лист (желательно русские ресурсы, книги) — пишите в ЛС, обязательно добавлю.
Tags: программированиеулучшение навыковразработкасоветырекомендацииразвитие
Hubs: Programming
Total votes 239: ↑227 and ↓12 +215
Comments 96
Comments Comments 96

Popular right now