вторник, 3 мая 2011 г.

Как стать web-программистом за 1 год?

На написание этой статьи меня вдохновила статья J.P. Stacey
Не все советы подходят для российского программиста, поэтому я решил ее адаптировать.
  • УЧИТЕ английский. На русском языке значительно меньше полезной и актуальной информации,чем на английском. Если даже вы не слишком хорошо знаете английский, пусть вас это не останавливает. Чем больше вы будете читать на английском, чем быстрее вы его освоите.
  • ЧИТАЙТЕ: Hacker News - очень важный источник полезной информации в наши дни. Это аналог Digg для программистов и предпринимателей в IT. Многие участники работают в Силиконовой Долине. Иногда там бывают общие разговоры о карьере программиста и индустрии. Публикуются новинки и стартапы, интересные для разработчиков.
  • ЧИТАЙТЕ: Stack Overflow. Это большая база данных, содержащая решения проблем в области разработки. Часто гугл в поиске дает ссылки на этот ресурс (если вы делаете поиск на английском).
  • ТАКЖЕ ЧИТАЙТЕ: Wired, Techcrunch, 37signals, UXMovement, Coding HorrorDiveintomark. Избегайте: Slashdot и The Register; сейчас эти ресурсы полны информационного мурора.
  • УЧАСТВУЙТЕ: в конференциях по веб-разработке типа http://devconf.ru/. Включайтесь в сообщество программистов. Лучше всего, если вы будете работать в компании, где есть чему научиться.
  • ПРАКТИКУЙСЯ. Делай пусть небольшие, но работающие проекты. Получай отзывы от коллег и пользователей. Сейчас можно купить достаточно недорогой хостинг, чтобы начать размещать в интернете свои проекты.
  • ИССЛЕДУЙ. Посмотри, как работают облачные сервисы. Это сервисы от Амазона: EC2, S3. Альтернативные сервисы: Rackspace. VM hosting from e.g. Bytemark. Google App Engine. Посмотри на их API, по крайней мере составь представление о том, что там можно делать. Изучай новые технологии. PHP все еще черезвычайно популярен, но не останавливайтесь только на нем. Ruby (on Rails) и Python (Django) набирают популярность и показывают себя довольно хорошо. Изучите, как работает принцип MVC в этих фреймворках. Познакомьтесь с AOP (разновидность событийно-ориентированного программирования) и другими не MVC-моделями. Популярные CMS наших дней - это Drupal и Joomla являются зрелыми и богатыми возможностей продуктами. Wordpress проще, но более популярный. Попробуйте что-нибудь написать с их помощью, чтобы оценить их возможности. MySQL все еще является стандартом в вебе, но обратите внимание на решения NoSQL типа CouchDB.
  • ИССЛЕДУЙ Dive into HTML5 - это великолепный ресурс по web-стандартам. Изучи возможности CSS3 и способы создания динамического контента без Flash. Javascript вкупе с jQuery дает вам богатые возможности по созданию интерфейсов. В качестве систем управления версиями (VCS) все большую популярность набирают распределенные системы типа git и mercurial. Поставьте для себя правилом использование VCS. Мне лично нравится Git. Для его изучения рекомендую Pro Git book.
  • ПРИСОЕДИНЯЙСЯ к сообществам разработчиков через TwitterLinkedIn, Github
  • ИГРАЙ. Выберите язык, с которым вам хотелось бы поиграться. Мой персональный выбор - это Python. Python - объектно-ориентированный язык с возможностями функционального программирования. Имеет строгую, но динамическую типизацию.
  • ПИШИ много кода. Пробуй на вкус фреймворки и языки. Составляй примеры. Делай разработки на базе существующих проектов, коих сейчас бесчисленное множество.
  • ОТТАЧИВАЙ мастерство. Выбери что-нибудь почитать отсюда: these recommendations off Stack Overflow. Я бы также предложил почитать The Pragmatic Programmer и Mythical Man Month. Если у вас еще останется свободное время, почитай в википедии про принципы разработки: Agile, XPScrum, Kanban и т.д., чтобы вы могли работать по этим принципам, если предоставится такой случай
Не все советы могут подойти каждому. Некоторые могут никому не пригодиться. Я не хочу ввязываться в споры по поводу этих советов. Лучше напишите, что вы рекомендуете, чтобы стать профессионалом за указанные 12 месяцев.