Что надо знать, чтобы работать веб-программистом

aego

Новичок
Что надо знать, чтобы работать веб-программистом

Вопросы довольно обыденные и распространенные... Прошу простить меня за столь глупую тему, но я запутался в разнообразии подходов и языков...
Подскажите, что мне надо доучить, чтобы стать полноценным веб-программистом? (на данный момент я освоил html, css, sql, php(синтаксис, работа с БД)
Как нужно модифицировать проект http://81.200.16.229/ , чтобы он стал полноценным первым сайтом в моем портфолио?
 

Фанат

oncle terrible
Команда форума
отладку и профайлинг

сайтов в портфолио программиста не бывает. это ты перепутал с дизайнером и верстальщиком.
в портфолио программиста бывает только код.
 

aego

Новичок
Я полный новичок в плане трудоустройства, но, при беглом просмотре вакансий обратил внимание на то, что работодатели, в основном, ищут человека "на все руки", т.е. их интересует и дизайн и код. Я ни в коем случае не претендую на стопроцентную правоту, но, может частично, так ли это? Меня интересует трудоустройство, будет ли достаточно кода изложенного выше проекта для поиска работы?
З.Ы.
Меня также крайне интересует самосовершенствование, подскажите, что мне лучше изучать далее?
З.Ы.Ы.
Понимаю, что трачу ваше личное время столь нудными вопросами, но мне больше не к кому обратиться...
 

Krishna

Продался Java
отладку и профайлинг
:confused:
Да брось, какой процент из зарабатывающих на жизнь пыхом занимались профайлингом хоть раз? :)

php(синтаксис, работа с БД)
Пхп это гораздо больше, чем синтаксис и работа с БД.

Это ещё куча разных расширений http://www.php.net/manual/en/funcref.php

Что по существу вопроса, то чтобы стать профи надо разобраться с ООП, причем не на уровне синтаксиса, а на уровне умения применять правильно.

Рекомендую так же освоить один из современных движков, навроде Zend Framework или Symphony и переделать своё творчество на его основе - будет серьёзный экспириенс.

Так же, для того, чтобы сделать заявку на звание веб-разработчика надо освоить хотя бы основы Unix.

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

aego

Новичок
Я студент третьего курса, с никс знаком на уровне администрирования (Работал и работаю с дистрибутивом Debian, протоколы HTTP, DNS(Кэширующий), FTP, DHCP (в рамках небольшого офиса, работал у знакомого за символическую плату). Касательно ООП - писал всякие консольные приложения на C++ (среда Dev-C++) для получения небольших навыков работы с ООП. Разобатьс в общем-то во многом могу самостоятельно (тот же указанный выше сайт разработан на основе чтения доков на php.ru и sql.ru, да и никсы я познавал и познаю на основе статей да мануалов). Напрягает тот факт, что я уже на третьем курсе, а не работаю да и никогда серьезно не работал. Хочется, конечно, зарплаты, но, что куда важнее, опыта.
 

Krishna

Продался Java
обратил внимание на то, что работодатели, в основном, ищут человека "на все руки", т.е. их интересует и дизайн и код.
Идиотов хватает и среди работодателей, не поверишь :)
Уметь всё, значит не уметь хорошо ничего. Тем не менее, грамотный веб-программист обязательно должен владеть основами всех областей применяемых в вебе, от фотошопа и верстки до администрирования серверов.

Но настоящим профи во всём сразу быть невозможно и на качественных, сложных, интересных проектах многостаночников не бывает. Впрочем, тебе пока выбирать не придётся.


Меня интересует трудоустройство, будет ли достаточно кода изложенного выше проекта для поиска работы?
Ну только как демонстрация способности к самообучению, не более. Что впрочем уже немало в какой-то мере.

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

-~{}~ 07.01.10 18:20:

Я студент третьего курса, с никс знаком на уровне администрирования (Работал и работаю с дистрибутивом Debian, протоколы HTTP, DNS(Кэширующиу), FTP, DHCP (в рамках небольшого офиса, работал у знакомого за символическую плату).
Это большой плюс тебе.

Касательно ООП - писал всякие консольные приложения на C++ (среда Dev-C++) для получения небольших навыков работы с ООП.
Сам по себе факт написания консольного приложения говорит мало.

Ну в общем мой совет освоить фреймворк в силе. :)
 

Фанат

oncle terrible
Команда форума
aego, короче, чтобы на работу наниматься, этого достаточно.
"на все руки" частично правда. Клиентского программинга ждут от программиста, понятное дело. Верстка тут тоже недалеко ушла. А вот дизайн вряд ли.
 

Krishna

Продался Java
Код у тебя, кстати, страшно похабный похоже.
Учился по какому-то самоучителю PHP для домохозяйки за 24 урока?

Более или менее нормальный автор учебника - тот же Котеров. Вот только Денвер пользовать не следует. Поставь LAMP вручную.

mysql_num_rows()
mysql_free_result() - это всё мусор, с БД так не работают для нормальных операций.

вообще не надо работать с mysql_ это устаревшая библиотека. Используй mysqli или PDO.

И почитай вот это:

http://phpfaq.ru/slashes#injection
 

Духовность™

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

Я начина с работы веб-мастера, совмещая и верстку и программирование и иногда даже работал с графикой. Потом по нарастающей. Главное - учиться. Читать форумы, статьи, книги, показывать свой код и принимать критику. А профессионалами сразу не становятся. Сначала надо в говнокоде поковыряться на унизительных должностях веб-мастера, чужое го-но поразгребать за в спешке уволившимися говнокодерами и т.д.


Как нужно модифицировать проект http://81.200.16.229/ , чтобы он стал полноценным первым сайтом в моем портфолио?
А где проект то сам? Мы пока видим меню из 4 пунктов. И все.
 

Krishna

Продался Java
aego
Проверяй свою почту. Я тебе на неё твоё же резюме отправил. :)
 

aego

Новичок
Всем большое спасибо за советы! Вообще система с стадии разработки. Во имя критики - http://81.200.16.229/1/1.txt - кусок кода, функцию добавления данных в базу.
 

Krishna

Продался Java
/*Экранируем, чтобы всякие бяки не юзали SQL инъекию :Р*/
$name=mysql_real_escape_string($name);
Молодец, я смотрю про инъекции слышал. Только экранировать надо везде, а не там, где тебе это кажется логичным.


А то как в анекдоте про пьяницу, что искал ключи под фонарём, потому что там светло. :)

И экранировать надо один раз один параметр, а не два раза разными функциями ))

Лучше почитай про PDO и placeholders.


Ну и инъекции бывают не только SQL, почитай на эту тему.
 

aego

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

-~{}~ 07.01.10 18:59:

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

Krishna

Продался Java
Ага, я уже как раз залил и смотрю что у тебя интересного есть на диске :)
 

Духовность™

Продвинутый новичок
Какой смысл в операциях?
PHP:
$name = $_POST['name'];
$aftor = $_POST['aftor'];
$date = $_POST['date'];
$keywords = $_POST['keywords'];
$type = $_POST['type'];
$creator = $_POST['creator'];
Зачем плодить переменные?

PHP:
if (!$flag) 
{ 
	exit("<p align='center'>Заполнены не все поля. <a href='add.php'>Назад</a></p>"); 
}
надо выводить предупреждения и показывать поля формы с заполненными значениями. Пример обработки формы: http://phpclub.ru/talk/showthread.php?s=&threadid=43521&rand=0

PHP:
$name=mysql_real_escape_string($name);
$aftor=mysql_real_escape_string($aftor);
$date=mysql_real_escape_string($date);
$keywords=mysql_real_escape_string($keywords);
$type=mysql_real_escape_string($type);
$creator=mysql_real_escape_string($creator);
//------------------------------------------------
addslashes($name);
addslashes($aftor);
addslashes($keywords);
addslashes($type);
addslashes($creator);
какой смысл применять два раза функции экранирования? зачем плодить все эти выражения, если всё это можно было сделать в цикле?

PHP:
/*Обрезаем */
$name = substr($name, 0, 64);
почему 64?почему не 255? Почему идёт принудительное обрезание? Пользователя надо оповестить, что мол имя_слишком_длинное, но обрезать ничего втихаря не нужно.

PHP:
/*Вычисляем ID новой записи*/
так не делают. ID новой записи вычисляется после добавления записи, а не до.

в общем, начальный уровень.
 

Krishna

Продался Java
Ну вот, вырубил наконец, я уж думал придётся в аську стучать :)

-~{}~ 07.01.10 19:15:

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

-~{}~ 07.01.10 19:18:

Да, и очень плохая идея оставлять пустой пароль для root у MySQL, который привязан к сайтам торчащим наружу.
И вообще плохая идея давать сайтам рутовый доступ к БД.
 

aego

Новичок
Рут запаролен, я просто убрал пароль когда копировал код. А когда ставил мускул было пофиг, не думал так развивать сайт. Нового пользователя делать лень, все равно сайт скоро переедет.
 

Krishna

Продался Java
Купи книжку Котерова, мы тут её всем советуем для начала ))

http://www.ozon.ru/context/detail/id/4030251/

Только не ведись на его проекты вроде DBSimple и денвер его не пользуй, один вред. Настрой нормальный WAMP, разберись как всё работает.
 
Сверху