Веб-разработка для компьютерного ученого
Я имею степень бакалавра в области компьютерных наук и, таким образом, имею опыт разработки программного обеспечения, которое работает в командной строке или с базовым графическим интерфейсом. Однако у меня нет опыта создания реальных, функциональных веб-сайтов. Мне стало очевидно, что мне нужно расширить свои навыки, чтобы охватить веб-разработку. Я использую 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 и клиентской стороны.
Сервер
- Затем начните искать то, что вы, возможно, захотите изменить на страницах/сеансах. то есть что нужно обрабатывать на стороне сервера. И выберите технологию на стороне сервера.
- Начните с базовой обработки после обратной обработки. Забудьте базы данных на этом этапе. Узнайте, как ваша система выбора поддерживает состояние... не только название технологии, но и настоящие гайки и болты. Одним из ваших самых больших активов в качестве веб-разработчика является понимание государственной модели (ов) используемой вами технологии.
- Затем пойдите для глубокого погружения по технологии веб-сервера выбора (и вообще). Поймите полный конвейер запросов от клиента к серверу и обратно. Это научит вас формам, http и его глаголам, веб-серверу, фильтрам и модулям, серверу для отладки рамок, страницам и жизненным циклам управления, обратно к клиенту.
- Теперь приступим к работе над динамическим введением контента и т.п. Как создавать и использовать повторно используемые компоненты на своих веб-страницах.
- Базы данных, кэширование, производительность и диагностика.
- Затем входите во все забавные вещи, такие как ajax и т.д. Замените javascript на jQuery и т.д.
- Затем вы получили всю информацию об 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... вы можете прочитать учебник и узнать его через пять минут.