Веб-разработка для компьютерного ученого

Я имею степень бакалавра в области компьютерных наук и, таким образом, имею опыт разработки программного обеспечения, которое работает в командной строке или с базовым графическим интерфейсом. Однако у меня нет опыта создания реальных, функциональных веб-сайтов. Мне стало очевидно, что мне нужно расширить свои навыки, чтобы охватить веб-разработку. Я использую Ruby для разработки приложений, но я знаю, что он довольно популярен для веб-разработки. Я хочу использовать свои навыки программиста, чтобы помочь мне в разработке персонального веб-сайта для группы.

У меня есть опыт работы с HTML, но очень мало с CSS. Я хочу использовать свои навыки с помощью языков программирования для создания веб-сайта, содержащего изображения, аудиоклипы, динамический календарь, инструмент запроса планирования и другие функции, общие для веб-сайтов.

Какие ресурсы доступны для квалифицированного программиста на рабочем столе, чтобы узнать весь процесс разработки веб-сайта? Лучше ли использовать бесплатные шаблоны CSS и WordPress в качестве основы для моего сайта или сделать это с нуля? Должен ли я использовать инструменты GUI или написать все это в Vim/Emacs? Является ли Ruby on Rails достаточным для моего личного сайта или я должен рассмотреть более зрелую платформу разработки?

Моя главная цель для этого проекта - ускорить разработку существующих технологий веб-дизайна и на самом деле понять весь процесс создания веб-сайта.

Ответы

Ответ 1

Если это как-то учебное упражнение, чем что-либо, то итеративный подход. Стройте пересмотр. Стройте пересмотр. Моя (очень) приблизительная рекомендация ниже:

Клиент

  • Начните со структуры веб-сайта и сосредоточьтесь на клиенте.
  • Используйте блокнот и создайте кучу статических страниц для вашей группы. то есть ручной код. Попробуйте построить все ваши страницы с помощью CSS. Нет разметки таблиц. Затем поиграйте с некоторым Javascript, чтобы оживить жизнь. (Навигационное меню\Выбор календаря\и т.д.). Узнайте, как импортировать и ссылаться на файлы Javascript и CSS... и как обрабатываются эти файлы re: кеширование и т.д.
  • Попробуйте узнать, что вы можете сделать на клиенте (как правило). Фактор в нюансах 3-4 браузеров (Firefox/IE6/IE8/Chrome) re: события DOM и клиентской стороны.

Сервер

  1. Затем начните искать то, что вы, возможно, захотите изменить на страницах/сеансах. то есть что нужно обрабатывать на стороне сервера. И выберите технологию на стороне сервера.
  2. Начните с базовой обработки после обратной обработки. Забудьте базы данных на этом этапе. Узнайте, как ваша система выбора поддерживает состояние... не только название технологии, но и настоящие гайки и болты. Одним из ваших самых больших активов в качестве веб-разработчика является понимание государственной модели (ов) используемой вами технологии.
  3. Затем пойдите для глубокого погружения по технологии веб-сервера выбора (и вообще). Поймите полный конвейер запросов от клиента к серверу и обратно. Это научит вас формам, http и его глаголам, веб-серверу, фильтрам и модулям, серверу для отладки рамок, страницам и жизненным циклам управления, обратно к клиенту.
  4. Теперь приступим к работе над динамическим введением контента и т.п. Как создавать и использовать повторно используемые компоненты на своих веб-страницах.
  5. Базы данных, кэширование, производительность и диагностика.
  6. Затем входите во все забавные вещи, такие как ajax и т.д. Замените javascript на jQuery и т.д.
  7. Затем вы получили всю информацию об Webservices\XML\JSON\etc, которую вы можете обнаружить.

Ресурсы

Ну, очевидно, сеть. Что касается клиентской базы, то интерес к сайтам компаний, которые делают сторонние веб-элементы управления, может оказаться весьма интересным. Спросить, как, черт возьми, они это сделали? Viewsource - ваш друг. Посмотрите, как они структурируют и строят свои страницы. Выберите пару хороших сайтов веб-дизайнеров, и вы найдете множество рассказов о войнах в браузере и т.д., Которые предоставят вам хорошую информацию (под капотом).

Как только вы нажмете серверную часть, я бы пошел на получение типа белой бумаги у вашего поставщика по вашим технологиям. i.e. вебсервер/рамки/т.д. Снова найдите сторонний сайт howto/evangelist (например, я использовал много "4 парней из Rolla" ), которые продемонстрируют, как делать разные вещи. Изучение языка продолжается. В основном просто делайте все возможное, пока не найдете лучший способ... и всегда будьте в поиске лучшего пути.

Ответ 2

Я думаю, что одна важная вещь для понимания в веб-разработке - это HTTP. HTML и CSS важны, но я думаю, что более важно понять природу веб-сайта без гражданства и как работают каждый из HTTP-глаголов, и что они могут/не могут сделать.

http://www.freeprogrammingresources.com/http.html

Хорошим инструментом для просмотра работы HTTP является Fiddler.

Ответ 3

Вам действительно нужно понять html, forms и css, чтобы добраться где угодно. Я говорю о формах, так как это даст вам круговую поездку, необходимую для понимания безгражданности веб-разработчика.

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

Поэтому для этого я рекомендую начинать с htmldog.com.

После этого многие веб-разработки выполняются с помощью фреймворков. Прошли те времена, когда вы делаете это сами (в основном), но мой вышеприведенный пункт все еще стоит. Вы должны быть в состоянии подглядывать под капот с некоторой уверенностью.

Я занимаюсь веб-разработкой уже 12 лет и начинаю работать с Perl на Solaris и Linux. С тех пор я также сделал Java и совсем недавно ASP.NET. Тем не менее, я медленно падаю на Django в своих частных проектах.

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

В программировании вы также должны ознакомиться с веб-серверами (Apache и IIS spring), Http-кодами и заголовками, типами Mime и кодировкой и FTP. Также как Javascript (уже упоминавшийся), плагины, платформы браузера и хорошие методы разработки, такие как использование Firebug, Fiddler и т.д. Также не помешает иметь хорошее представление о доступных форматах изображений, оптимизации изображений, CSS-спрайтах, сжатии содержимого, кешировании и т.п.

Все зависит от того, где вы хотите начать!

Для новичков я выбрал Django и (очевидно) Python. Хороший, чистый язык с дешевыми вариантами запуска, недорогие IDE (т.е. бесплатные) и хостинг ваших сайтов очень доступен.

Но это просто субъективное мнение.

Ответ 4

Если ваша цель -

Моя основная цель для этого проекта - приступить к быстрому текущему веб-дизайну технологии, и на самом деле понять весь процесс создания сайт.

Затем начать с нуля в Ruby, PHP, Java, ASP.NET и т.д.

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

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

Ответ 5

Если вы начинаете с нуля в соответствии с предложением John MacIntyre, вы можете опереться на PHP. Со всеми недостатками у него действительно есть действительно хорошее руководство пользователя. Также легко начать работу с и установить на почти каждый хост и хорошо сочетается с Apache.

Кроме того, w3 school хорошо начать изучать CSS и XHTML, но не забудьте проверить спецификации на W3C.

Также, пожалуйста, прочитайте этот вопрос о переполнении стека и ответы.

Ответ 6

Я согласен с Джоном на этом.

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

С учетом этого было бы лучше понять основы HTML и CSS.

Понимание синтаксиса и общего языка поможет в будущем, когда вы хотите преследовать крупные проекты с использованием таких фреймворков, как Django и Rails. Основы также особенно помогут с настройкой CMS, например Wordpress, на более удобную для вас работу.

В частности, я хотел бы упомянуть, что веб-программирование, как и многие другие формы программирования, имеет свою особую структуру и "правильный" способ делать вещи. http://www.w3.org - отличный способ гарантировать, что ваша работа проходит общие стандарты веб-дизайна, большинство сайтов не следуют этому, потому что это утомительно, но с точки зрения обучения это гарантирует, что вы получаете хороший прочный фундамент.

www.w3schools.com также является отличным ресурсом для подробной помощи по веб-программированию. Наконец, мне нравится красочный код, поэтому мне нравится использовать базовые текстовые редакторы, такие как блокнот ++ или notepad2 или gedit, чтобы сделать мой веб-код. GUI, такие как Dreamweaver, могут, как правило, заполнять ваш код дополнительными нежелательными файлами и пробелами, поэтому я не рекомендую их, но они по-прежнему отличные инструменты.

Ответ 7

Не беспокойтесь о Rails - напишите CGI скрипты в Ruby. Это будет очень похоже на то, что вы сделали для класса.

После того, как у вас будет около тридцати из них под вашим поясом, вы узнаете, чего хотите от веб-фреймворка.

Ответ 8

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

Как утверждают заголовки вышеупомянутых руководств, они сделали для меня понятия "очень легкие".

Как только у вас будет CGI и HTTP, я предлагаю проверить следующие сайты, которые содержат множество статей и ссылок для веб-программирования:

Предполагая, что вы хотите сосредоточиться на написании веб-приложений, Perl, PHP, Python и Ruby - все это прекрасный выбор (я сам использую Perl преимущественно), и я бы предложил сделать некоторые исследования популярных веб-фреймворков, доступных для каждого языка.

Самое главное, выберите что-то простое, как ваше первое веб-приложение, например. форму и страницу, на которой показаны результаты отправки этой формы. Некоторые хорошие примеры (с использованием модуля Perl CGI) можно найти здесь:

Когда вы хотите начать писать веб-приложения, которые используют базу данных, читайте на SQL и популярных библиотеках/модулях на выбранном вами языке для манипуляции с базами данных, особенно с интерфейсами ORM (Object-Relational-Mapping), которые позволяют обрабатывать записи в объектно-ориентированном виде.

Удачи вам! Быть веб-программистом - это весело, потому что ваша аудитория - это intarwebz!:)

Ответ 9

Для того, что вы описываете, Rails или Django могут быть слегка переборщиками, но не было бы больно их изучать. Django, в частности, может быть хорошим из-за понятия проекта, содержащего несколько приложений (например, календарь).

Если вы используете фреймворк или пишите все сами, вам нужно знать HTML и CSS. CSS чрезвычайно прост, если у вас есть BS в CS... вы можете прочитать учебник и узнать его через пять минут.