Я знаю, что это может звучать немного расплывчато, поэтому я попытаюсь объяснить немного подробнее ...
После долгих лет самостоятельной работы разработчиком я нахожусь в поиске коммерческой роли веб-разработчика. Мой единственный опыт работы с серверами и хостингом - загрузка через FTP и немного поиграть с CPanel / WHM. Роль, которую я выберу, - это веб-разработка PHP, MySQL, HTML, CSS-роли, но в недавних интервью мне задавали вопросы о настройке вещей на сервере, о которых я понятия не имел, что говорится ... который не был идеальным!
Не зная больше, чем я, трудно объяснить, что именно я хочу изучать, но это в основном только элементы сервера, которые я должен знать как веб-разработчик? Если вы веб-разработчик, имеете ли вы какое-либо отношение к серверу, кроме загрузки файлов, и если да, то что? Являются ли такие вещи, как Subversion (SVN) и системы контроля версий, часто настраиваемые командой веб-разработчиков, о чем они говорили?
not a very valuable web developer
это то, что я пытаюсь преодолеть, поэтому я рад узнать об этом должным образом, я просто не знаю, как лучше всего изучить это, и на каких направлениях сосредоточиться в первую очередь.Ответы:
Это большой набор вопросов, но я подозреваю, что многие люди должны ответить на них, особенно когда они начинают продвигаться по карьерной лестнице, которая началась с интенсивного внешнего внимания.
Вы упоминаете, что собираетесь на роль, которая включает в себя разработку PHP и MySQL. Это вещи, которые нужно выполнить на сервере. Для того чтобы быть умелым специалистом в области разработки, необходимо иметь представление о том, как эти вещи работают на сервере и как они взаимодействуют с веб-интерфейсом. Таким образом, вам необходимо развить понимание сервера.
Вместо того, чтобы пытаться заранее получить точную информацию о сервере, которая вам может понадобиться, я бы порекомендовал окунуться и создать что-то, включая установку всего программного обеспечения на стороне сервера самостоятельно. Отличный способ промокнуть - это установить Linux на свой компьютер. Вы можете использовать что-то вроде VirtualBox, чтобы оно работало вместе с вашей текущей ОС. Установите MySQL, установите и настройте сервер для PHP и попытайтесь заставить все работать вместе. Самое замечательное в том, что в наши дни ноутбук со средним оснащением может управлять всем этим и быть «сервером».Вначале это может быть сложно, особенно если у вас нет опыта использования Linux и командной строки. Как разработчик, вы должны, по крайней мере, знать достаточно, чтобы справиться с этим упражнением, и оно даст вам толчок для выяснения того, как расширить свои знания.
Есть три области, где вам, вероятно, нужно будет набрать скорость:
Если вы должны были пойти с Ubuntu, вы можете следовать основные инструкции здесь , чтобы получить себе и работает. Обратите внимание, что вам придется немного освоить основы Linux, прежде чем начинать установку и работу с веб-серверами / компонентами базы данных.
С точки зрения того, как разработчики должны взаимодействовать с сервером, помимо загрузки файлов, я думаю, что это сильно зависит от организации к организации.
Дело в том, что не существует единого ответа на вопрос, как именно вам нужно будет обращаться к серверу, но в ходе вашей карьеры он наверняка выйдет за рамки простой загрузки файлов через что-то вроде FTP. Начать с изучения основ сейчас поможет.
источник
Мой первый совет - не ограничиваться только одной ролью. Здорово быть специалистом и иметь глубокие знания в определенном наборе навыков (например, PHP). Однако столь же важно иметь широкие знания, которые распространяются на остальную часть вашего домена.
По моему опыту, большинство команд не хотят нанимать кого-то, кто обладает знаниями для переписывания основных функций PHP, а скорее того, кто может справиться с любой проблемой, которая им брошена (хотя наличие такого уровня знаний, безусловно, не повредит). Или, по крайней мере, кто-то, кто может помочь решить любые проблемы, с которыми сталкивается команда. Например, представьте себе ситуацию, когда ваше приложение выходит из строя и это влияет на клиентов. Вы можете либо поднять руки и сказать: «Я понятия не имею, что делать ...», или вы можете подключиться по SSH к серверу, запустить сканирование журналов, заметить, что дисковое пространство определенной файловой системы заполнено, и приступить к его очистке. Это небольшой пример, но я думаю, что суть ясна. С этими базовыми знаниями, как разработчик, Вы могли бы написать скрипт, который отслеживает эту конкретную файловую систему и очищает ее, как только она достигает определенного порога. Теперь вы стали гораздо более ценным для своего менеджера.
Еще одна вещь, которую я узнал за свою карьеру, это то, что все движется быстро, и если вы не поспеваете, вас оставят позади. Чем больше вы знаете обо всей своей среде (включая аспекты бизнеса), тем лучше для вас. Это не значит, что вам нужно быть экспертом во всем, что вы делаете, но, по крайней мере, иметь знания, чтобы не быть помеченными как невежественные. Чем больше вы знакомы, тем более адаптируемы вы и тем более ценный актив для вашей компании.
Чтобы конкретно ответить на ваши вопросы ...
Быть знакомым со всем стеком приложений. Узнайте, какой веб-сервер, база данных, механизмы кэширования и т. Д. Используются. И какие версии тоже. Имейте достаточно знаний, чтобы вы могли воссоздать среду на своем собственном сервере. Что само по себе жизненно важно. Вы должны стремиться к тому, чтобы более или менее иметь одинаковые среды в разработке и производстве, так как это уменьшает количество сюрпризов ( http://12factor.net/dev-prod-parity ).
Это действительно зависит от команды. В моем конкретном случае разработчики играют огромную роль в организации среды. Мы наиболее знакомы с внутренней работой приложения и поэтому можем определить, какие серверные технологии используются для его запуска. Я полагаю, что не у всех команд есть такой практический подход, но иметь достаточную осведомленность, чтобы иметь возможность участвовать в обсуждениях, является большим преимуществом. В частности, что касается контроля версий, вы, как разработчик, очень сильно зависите от того, какая технология выбрана (Git, Subversion, Mercurial и т. Д.), И поэтому должны стремиться вовлечь себя в процесс принятия решений.
Ну что теперь?
Что касается моего предложения о том, как лучше всего подойти к изучению всего этого? Двигай ногами . Не беспокойтесь о попытках прочитать все, что вы можете по этому вопросу, большинство из них, вероятно, просто вытечет из вашего мозга к тому времени, когда вы закончите. Вместо этого начните разрабатывать что-то с нуля. Начать с бродяги ; это позволит вам легко создавать и управлять виртуальной машиной, которую вы можете использовать в качестве новой игровой площадки. Затем установите веб-сервер и базу данных и начните создавать. Если у вас есть идея для приложения, идеально, пойти на это ... если нет, найдите учебник или попробуйте воссоздать существующее приложение. Дело в том, чтобы просто ознакомиться со всем процессом. Кроме того, как разработчик PHP, обязательно ознакомьтесь с PHP: правильный путь... это действительно содержит много отличной информации. И самое главное, не напрягайте себя. Я предполагаю, что вы пошли по пути разработчика, потому что это то, что вам нравится и вы увлечены ... не упускайте это из виду!
источник
Сосредоточение внимания на том, что вам нужно знать о серверах, чтобы стать веб-разработчиком? ...
На самом деле удивительно мало. Ваши основные области знаний должны быть программирование, HTML, PHP и т. Д.
То, что вам нужно знать, это то, как запускать вещи локально, и когда вы делаете это, вы используете свой ящик в качестве «сервера». Таким образом, при локальном запуске вы используете веб-браузер для просмотра страниц, как и на любом интернет-сайте ... кроме вашего
http://localhost
илиhttp://127.0.0.1
Что касается настройки cgi, http и т. Д. Я не ожидаю, что вам нужно это знать. Вы всегда можете изучить любую общую книгу по настройке веб-сервера для операционной системы, в которой вы работаете, и этого будет достаточно, чтобы знать общие термины.
Для большей картины я рекомендую войти в Linux и узнать, как настраивать и настраивать такие машины, как веб-серверы. Но только если вы действительно заинтересованы в этом. Не только чтобы произвести впечатление на интервью.
Наконец, я бы порекомендовал вам сделать заметки во время интервью по тем областям, о которых вы недостаточно знаете. Было бы полезно, если бы ваш вопрос был более конкретным о том, какие именно термины и т. Д. Вы не знаете.
источник
Для завершения цикла веб-разработки вам необходимо знать следующее.
1) IDE (Netbeans, Eclipse и т. Д.)
2) Любой язык программирования для кодирования. (PHP, Java и т. Д.)
3) Фронтальная технология оформления страниц (HTML, CSS и т. Д.)
4) Резервная база данных для хранения и извлечения данных. (MySQL и т. Д.)
3) Система контроля версий для проверки и получения вашего кода формы хранилища.
4) инструмент сборки для компиляции кода с зависимыми файлами. (Муравей, мавен)
6) Веб-сервер для развертывания и запуска вашего кода.
7) Необходимо знать базовый процесс развертывания на серверах для запуска и тестирования веб-компонентов и компонентов ejb. (Tomcat, сервер Web-Logic)
источник
В дополнение к ответу DemetriKots, я бы также добавил, глядя на решения для автоматического развертывания и непрерывной интеграции. Первоначальная настройка сервера - это только один шаг, и развертывание по FTP является болезненным и подверженным ошибкам, без надлежащего решения для отмены неудачных развертываний.
источник