Javascript-форум (https://javascript.ru/forum/)
-   Оффтопик (https://javascript.ru/forum/offtopic/)
-   -   Чем занимаются JS-программеры. (https://javascript.ru/forum/offtopic/14704-chem-zanimayutsya-js-programmery.html)

JSTalker 27.01.2011 05:26

Чем занимаются JS-программеры.
 
Извиняюсь за нестандартный вопрос (оффтоп).
Я мечтаю быть JS-программером.
В связи с этим вопрос к уже работающим (осуществившим свою мечту).
Какие задания даются: крупные (типо сделай новый движок для сайта, ли интерфейс), либо - надо доработать такое то поведение, приделать функционал к такой-то плюшке? Жосткие ли сроки налагаются?
Каково было на начальном этапе? Что задавали? При устройстве, что нужно знать? (Соответственно мне что учить?)
Каковы зарплаты?
Какие еще технологии нужно знать: CSS, PHP, серверные языки? Или достаточно быть только Джаваскриптером если хорошим?

пс. Я сейчас больше теоретик по Флэнэгану. Практика продвигается ООчень медленно(

Gvozd 27.01.2011 08:24

Цитата:

Сообщение от JSTalker
Какие еще технологии нужно знать

для начала общие знания.
например понимание отличия разделов форума "Работа" и "Офттоп", и создание тем в соответствующих ветках
Цитата:

Сообщение от JSTalker
Какие задания даются: крупные (типо сделай новый движок для сайта, ли интерфейс), либо - надо доработать такое то поведение, приделать функционал к такой-то плюшке?

По разному.
В любом случае крупные задания, в случае если даются одному программисту, обычно разбиваются на ряд этапов, для улучшения контроля за разработкой.
Цитата:

Сообщение от JSTalker
Жосткие ли сроки налагаются?

По разному.
В разных компаниях разные темпы разработки.
Цитата:

Сообщение от JSTalker
Каковы зарплаты?

от 40$ до 4000$, и выше.
Цитата:

Сообщение от JSTalker
Какие еще технологии нужно знать: CSS, PHP, серверные языки? Или достаточно быть только Джаваскриптером если хорошим?

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

а насчет CSS: ты еще про HTML спроси.
Если писать для браузера, то тут как бы без вариантов же!

ksa 27.01.2011 10:06

Цитата:

Сообщение от JSTalker
Какие еще технологии нужно знать

Посмотри в объявах список требований - они километровые! :D

micscr 27.01.2011 15:56

Цитата:

Сообщение от JSTalker
Я мечтаю быть JS-программером.

вот просто так, берешь и мечтаешь? Раньше программировал вообще? получалось? образование?

ksa 27.01.2011 15:58

Цитата:

Сообщение от micscr
вот просто так, берешь и мечтаешь?

Ну а как еще? :D

PeaceCoder 27.01.2011 17:00

Глупый опрос. Без перекрестных технологий, JS программист ничего не стоит, т.к. и сделать ничего не сможет, разве что написание локальных скриптов на клиенте, а такое очень редко бывает. Обычно JS пересекается с AJAX и DOM/HTML/PHP и другими серверными технологиями.

Aetae 27.01.2011 17:07

Минимум: js html css
Норма:js html css php и какая либо js-библиотека.
Максимум: не ограничен, чем больше тем выше зп.)

Kolyaj 27.01.2011 17:12

Цитата:

Сообщение от Aetae
Минимум: js html css

Мне хватает этого с лихвой.

Aetae 27.01.2011 17:19

Цитата:

Сообщение от Kolyaj (Сообщение 90011)
Мне хватает этого с лихвой.

Неужто не знаете хотя бы основ пхп?
И не юзаете никакой библиотеки(пускай даже самописной)?

B~Vladi 27.01.2011 17:20

Цитата:

Сообщение от Aetae
Минимум: js html css

Минимум: js, html/xml, css, dom, http.

Kolyaj 27.01.2011 17:25

Цитата:

Сообщение от Aetae
Неужто не знаете хотя бы основ пхп?

Раньше довольно плотно на нём программировал. С появлением NodeJS с облегчением забыл про PHP.

Цитата:

Сообщение от Aetae
И не юзаете никакой библиотеки(пускай даже самописной)?

Самописная библиотека == знание JS.

micscr 27.01.2011 17:28

Тут нет волшебного ответа.
Если ТС живет в крупном городе, где есть серьезные фирмы и в них работают люди на должностях чисто js программиста(html, css я не считаю), то может хватить и "минимума". Хотя библиотечку скорее всего затребуют. Но это не проблема если pure js разобрался. Тут надо походить, помониторить.

Если таких фирм нет (работы такой нет) или оч. мало и фиг устроишься, то этих знаний будет мало. Потому что вакансии будут например только для web-программистов. А тут основное - php+mysql, CMS/php-фреймворки, а js/jquery - базовый уровень.

Gozar 27.01.2011 19:01

удалено.

x-yuri 27.01.2011 19:32

главное не только мечтать, но и делать что-нибудь, задавать вопросы на форуме, показывать свои велосипеды :) на большинство вопросов ответ - по-разному, а xml из минимума я бы исключил

Gozar 27.01.2011 20:10

удалено.

x-yuri 27.01.2011 20:25

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

Gozar 27.01.2011 20:41

удалено.

x-yuri 27.01.2011 21:02

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

ksa 27.01.2011 21:19

Цитата:

Сообщение от JSTalker
Какие еще технологии нужно знать

Вот читай.
http://javascript.ru/forum/job/14715...rbotchika.html

И так в каждой объяве... :D

Gozar 27.01.2011 21:23

удалено.

ksa 27.01.2011 21:26

Gozar, пора уже самому книги писать и издавать. ;)

Gozar 27.01.2011 21:47

удалено.

x-yuri 28.01.2011 00:21

Gozar, я бы даже сказал, что я свою точку зрения в такой форме высказал. Смотреть аниме с русской озвучкой - уныло и вызывает когнитивный диссонанс

а по поводу книг, я считаю, если писать, то лучше на английском (lingua franca, ёпт). Да и очень мало хороших книг, наверное, на пальцах можно пересчитать (или я об интересных сейчас говорю?). В большинстве случаев лучше писать статьи

x-yuri 28.01.2011 03:16

кстати, по поводу SQL, могу вам задачку подкинуть, не то чтобы что-то сложное, но явно выходит за пределы основных запросов. И не что-то сферическое. А задача такая:

Есть пользователи. Они могут "банить" друг друга, при чем в результате ни ты его не видишь, ни он тебя. Как найти пару для некоторого заданного пользователя (чтобы он никого лишнего не увидел, естественно)?

ksa 28.01.2011 09:04

Цитата:

Сообщение от Gozar
Я уже пишу помаленьку и публикую на сайте

Дело нужное. А то я, работая в институте, на таких "писателей" насмотрелся! :D

monolithed 28.01.2011 10:04

Цитата:

Сообщение от Gozar
Когда выйдет книга в русском переводе [Книга] Stoyan Stefanov, Javascript Patterns, уже пол года прошло?

Символ+ обсуждают это, решение вынесут не раньше июня, т.к. запоздало издание Фленагана, которое должно было выйти в январе на oreily (пока только драфт продают)

Gozar 28.01.2011 11:07

удалено.

x-yuri 28.01.2011 12:00

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

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

структуру таблиц выбираешь сам

PeaceCoder 28.01.2011 12:30

SELELECT id 
FROM users U 
WHERE 
  ISNULL((SELECT id 
    FROM banUsers 
    WHERE WhoBanID='{$userID}' && WhomBanID=U.id || WhomBanID='{$userID}' && WhoBanID=U.id
    ))


Структура banUsers
{
  id : int(11) auto_increment,
  WhoBanID: int(11) unsigned,
  WhomBanID: int(11) unsingned
  }

x-yuri 28.01.2011 12:52

во-первых, а без подзапроса, тем более связанного (correlated)?
во-вторых, (WhoBanID, WhomBanID) - это уже первичный ключ
в-третьих, я б not exists тогда уж использовал
в-четвертых, может ответы стоит каким-нибудь белым цветом писать

micscr 28.01.2011 13:47

а что - можно свои ответы? Я так понял задание - Гозару, который обходится листиком sql запросов?

x-yuri 28.01.2011 14:15

нет, задание в первую очередь тем, кто не знает, как такие вещи делаются. Хотя именно такой вариант, думаю, достаточно редкий

Gozar 28.01.2011 19:54

удалено.

x-yuri 28.01.2011 20:50

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

Gozar 28.01.2011 21:08

удалено.

Gozar 28.01.2011 21:15

удалено.

x-yuri 29.01.2011 03:26

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

т.е. в таблицу banlist пишется кто забанил (user_id) и кого забанили (ban_id), причем при добавлении пользователя в banlist сразу же вставляется запись с ban_id = 0. А при бане мы должны сначала узнать из таблицы users банил ли этот пользователь раньше (flag_banned = 1). Если банил вставляем в banlist новую запись, иначе обновляем существующую. Но если пользователь A забанил пользователя B, то он не должен видеть пользователя B, а у тебя видит:
Код:

drop table if exists banlist;
create table banlist (user_id int, ban_id int);
insert into banlist values (1, 2), (2, 0);
select user_id from banlist where ban_id != 1 and user_id != 1;
+---------+
| user_id |
+---------+
|      2 |
+---------+

и наоборот, но это у тебя работает. Кроме того, на каждый бан нужно выполнить три запроса select users + insert/update banlist + update users. Не хорошо, теоретически можем потерять данные. Если пользователь отправит 2 запроса бана разных пользователей, тогда один из банов может потеряется. Не уверен, что такая ситуация может возникнуть в real life, но по-крайней мере этого лучше избежать, если есть такая возможность

x-yuri 29.01.2011 06:20

точнее наоборот тоже не работает
Код:

drop table if exists banlist;
create table banlist (user_id int, ban_id int);
insert into banlist values (1, 2), (1, 3), (2, 0), (3, 0);
select user_id from banlist where ban_id != 2 and user_id != 2;
+---------+
| user_id |
+---------+
|      1 |
|      3 |
+---------+


micscr 29.01.2011 09:15

Код:

CREATE TABLE IF NOT EXISTS `users` (
  `idu` int(11) NOT NULL AUTO_INCREMENT,
  `name` varchar(30) NOT NULL,
  PRIMARY KEY (`idu`)
) ENGINE=InnoDB  DEFAULT CHARSET=latin1 AUTO_INCREMENT=8 ;

--
-- Дамп данных таблицы `users`
--

INSERT INTO `users` (`idu`, `name`) VALUES (1, 'a'),(2, 'b'),(3, 'c'),(4, 'd'),(5, 'f'),(6, 'g'),(7, 'k');

CREATE TABLE IF NOT EXISTS `banned` (
  `idu` int(11) NOT NULL,
  `idb` int(11) NOT NULL,
  PRIMARY KEY (`idu`,`idb`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

--
-- Дамп данных таблицы `banned`
--

INSERT INTO `banned` (`idu`, `idb`) VALUES (2, 3),(3, 4),(3, 5),(4, 2);

-- Запрос

SELECT u.idu
FROM users u
WHERE u.idu != $idu
AND u.idu NOT IN
  (
    SELECT IF(b.idu = $idu, b.idb, b.idu)
    FROM banned b
    WHERE b.idu = $idu OR b.idb = $idu
  )
ORDER BY RAND()
LIMIT 1


micscr 29.01.2011 09:21

Цитата:

Сообщение от Gozar
ps: а чего комментариев не будет, типа - реализация говно, жизнь фуфло или ещё каких-нибудь?

Ты делаешь запрос к одной таблице(banlist), т.е. предполагаешь, что в этой таблице обязательно встречаются id-шники всех юзверей?


Часовой пояс GMT +3, время: 21:00.