Вольный перевод списка из довольно удачных способов для повышения своего уровня, как программиста.
Изучайте различные парадигмы программирования:
- напишите программу на ассемблере
- напишите программу на функциональном языке
- напишите программу на объектно-ориентированном языке
- напишите программу на прототипном языке
- напишите программу на логическом языке
- напишите программу, используя Модель акторов
- напишите программу на Forth
Изучайте тонкости программирования на различных платформах:
- напишите нетривиальное веб приложение
- напишите нетривиальное десктоп приложение
- напишите нетривиальное мобильное приложение
- напишите встраиваемое приложение
- напишите систему реального времени
Совершенствуйте понимание программного обеспечения на различных уровнях:
- напишите сетевой клиент (HTTP, FTP)
- напишите драйвер устройства
- напишите B-tree базу данных
- напишите обертку существующей библиотеки для более удобного пользования
- напишите приложение или фреймворк, который использует модель плагинов
- напишите фреймворк для тестирования
- напишите язык программирования
Совершенствуйте себя с коанами, катами и мудростью веков:
- пройдите пять кат программирования
- пройдите коаны программирования для языка, который вы хотите изучить
- посещайте code retreat
- прочитайте SICP и сделайте все упражнения
Программируйте открытое программное обеспечение:
- внесите долю кода в open source проект
- убедитесь, что ваш патч принят
- заработайте права на коммиты в большом open source проекте
- опубликуйте open source проект
- проведите Refactotum open source проекта
Учитесь, обучая других:
- проведите блиц-доклад
- участвуйте в локальных юзер группах
- участвуйте в конференциях
- создайте учебный курс
- опубликуйте учебное пособие (туториал)
- опубликуйте конструктивную ревизию кода open source проекта
- напишите книгу по программированию
PS. не пинайте за перевод — он отчасти «вольный».