Вы хотите стать настоящим программистом? И не знаете с чего начать? Тогда следуйте этим десяти советам. И много работайте.

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.

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

Ссылки от winger: acm.sgu.ru, codeforces.ru, topcoder.com
Ссылка от black_bunny: acm.mipt.ru


5. Программа

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

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

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

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

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

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

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

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

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

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

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



2011-07-01 • Просмотров [ 2834 ]