Как улучшить знания программирования и как проверить его текущее состояние? - PullRequest
2 голосов
/ 11 июня 2010

Эй, ребята, я очень взволнован тем, насколько опытен в программировании. Первая, работающая программа, которую я написал, была в 2004 году с C. После этого я пробовал много языков программирования, теперь застрял с php. В настоящее время я работаю веб-разработчиком, и все довольны своей работой. Кроме меня :) Вот почему я хочу знать, насколько высок мой опыт и знания.

Не могли бы вы рассказать мне несколько советов, трюков, тестов или чего-нибудь еще, о том, что я вижу, сколько мне нужно изучить и попрактиковаться, чтобы получить мастерство в программировании? (на первом месте в php)

Ответы [ 2 ]

14 голосов
/ 11 июня 2010

Я также программист, который не любит застоя, поэтому, возможно, я могу предложить несколько советов:

1) Какая ваша самая слабая область?Сеть?Графика?Regex?Какова одна область, которая, если кто-то спросил вас «Мне нужна программа, которая может выполнять X», и эта X пугает вас, что это такое.Теперь изучите как можно больше на эту тему.Взломайте несколько прототипов и сделайте так, чтобы вы лучше понимали их.Раньше я ненавидел команды Regex, теперь я использую их, когда могу.

2) Изучение «разных» языков.Я бы порекомендовал изучать «функциональный» язык, такой как Erlang, Lisp или, возможно, некоторые аспекты Python.Получить книгу по «функциональному программированию» и прочитать ее, а затем подумать, как вы можете применить эти концепции в своей текущей работе.Начните использовать map () и filter () в python, а не для циклов и т. Д.

3) Если вы занимаетесь веб-программированием, соберите огромный набор данных и начните выполнять некоторые вычисления.Некоторое время назад я играл в EVE Online, поэтому я запустил SQL Server Express и взломал в нем некоторые процедуры анализа рынка.Это было около 4 ГБ данных, через которые хранился сервер, но за это время я много узнал о SQL Server.

Недавно я смотрел лекцию на Лиспе, и профессор сказал: «Информатика не о компьютерах и не о науке. Она о знаниях и о том, как манипулировать этими знаниями, чтобы получить больше знаний».чем больше у вас инструментов для манипулирования и получения знаний, тем лучше вы станете программистом.

3 голосов
/ 12 июня 2010

Начните новый программный проект и не торопитесь, чтобы сделать каждый его аспект как можно лучше.

  • Используйте git или Mercurial для контроля версий. Используйте субмодули (или какой-либо эквивалент Mercurial) для управления внешними платформами. Установите перехваты после фиксации для запуска модульных тестов и архивирования исполняемого файла. Используйте новые ветви для всего и делайте слияния осьминога, чтобы вернуть их обратно в одну ветку.
  • Сценарий все, что вы делаете. Развертывание новой версии вашего приложения (включая обновления веб-сайта!) Должно быть таким же простым, как запуск одного скрипта.
  • Сделайте ваше приложение на 100% локализованным. Развертывание на новом языке должно быть таким же простым, как отправка файла строк добровольцу для перевода, а затем вставка этого переведенного файла в исходный код, никакой дополнительной работы не требуется.
  • Оптимизируйте, оптимизируйте, оптимизируйте. Потратьте дополнительную неделю, чтобы приложение загрузилось на 100 мс быстрее.
  • Рефакторинг, рефакторинг, рефакторинг. Не просто стремитесь к ортогональности и абстракции, стремитесь к чистой красоте кода. Использование ваших классов должно быть похоже на использование блоков Duplo, они просто защелкиваются на месте без видимой ошибки.
  • Юнит-тестирование всего. 100% покрытие. Не позволяйте ни одной регрессии остаться без предупреждения. Автоматизируйте весь набор тестов, чтобы вы не могли продвигать свой код без прохождения всех тестов.
  • Поместите ваше приложение в облако. Если вы пишете что-то для настольного компьютера или мобильного устройства, дайте своим пользователям возможность синхронизировать свои данные с веб-сайтом. Написать этот сайт. Если ваш проект основан на веб-технологиях, предоставьте своим пользователям мобильный или настольный интерфейс для доступа к их учетным записям.
  • Доступность. Пользователи с ограниченными возможностями должны быть в восторге от того внимания, которое вы уделяете разработке своего приложения.

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

...