• Как найти работу заграницей и стоит ли?

    @kazmiruk
    Был не так давно в подобной ситуации. Предлагали 80к долларов в год в США. Сначала посчитал что и думать не стоит, но благо подумал. С 80 к вычитаем налог 30%. Остаётся 56000 в год или примерно 4700 в месяц. Квартира в штате, куда приглашали в более-менее адекватном районе стоила 1000. Проезд примерно 200 насчитал. Страховка оплачивалась работодателем. На еду 600. Развлечения ещё 600. Все бы ничего, но у меня ещё жена. Она работать там не сможет, только если найдёт работодателя, готового её принять. Соответственно для неё ещё страховка более-менее нормальная нужна. А ещё расходы на связь, наверняка захочется авто, одежда иногда, комуналка. В итоге остаётся меньше 2к. Но со всеми расходами никуда не двигаясь из России у меня остаётся 2500. Т.е. ехать только ради переезда если по мне глупо. В любом случае хорошо там, где нас нет. Суть в том, что Вы сами должны оценить необходимость. Я понял, что по мне лучше работать на удаленке и быть свободным в плане выбора места, чем получить визу и сидеть в офисе в Европе.
    Ответ написан
    6 комментариев
  • Дефицит специалистов - так всё-таки это правда или миф?

    Jeiwan
    @Jeiwan
    А вы посмотрите на те вопросы, которые тут люди задают, посмотрите, какие проблемы люди пытаются решить. 30% вопросов об одном и том же: как начать что-то делать. На другие 60% вопросов ответ можно найти самостоятельно. 10% вопросов действительно чего-то стоят. А ведь все эти вопросы как раз и задают такие вот "специалисты".
    Люди не хотят самостоятельно думать, самостоятельно решать задачи. Даже не то чтобы решать, а просто найти ответ в интернете, так как 99% проблем уже решено кем-то другим. Люди не хотят просто хоть немного напрячься. Чтобы где-то работать программистом, не нужно много ума: достаточно уметь искать информацию в интернете. Но и на это не все способны. Люди не умеют работать. Поэтому на фриланс-биржах так много откликов, поэтому заказчики постоянно обжигаются на таких откликах и поэтому изо всех сил держатся за одного хорошо разработчика.
    Любого человека, который что-то делает, который самостоятельно решает задачи, в любой компании с руками оторвут и деньгами завалят. Людей много, а способных работать — единицы.
    Ответ написан
    4 комментария
  • Как вы относитесь к возможности сортировки вопросов Тостера по степени их сложности?

    kumaxim
    @kumaxim
    Web-программист
    "Рейтинг сложности" мне кажется бредом. Я начал программировать 11 лет назад, окончил ВУЗ по ИТ-специальности, участвовал в паре hightload проектах...

    Я считаю что сложность вопроса - вещь весьма относительная. Допустим для меня любые вопросы про начало своего дела являются элементарными, я на них могу без проблем ответить в 3 часа ночи, если меня разбудят. А являются они таковыми для меня, т.к. у меня было 6 проваленных проектов, на которых я набил себе огромную кучу шишек(и как разработчик, и как руководитель/основатель).

    Однако, для человека, который создает вопрос типа "Откуда взять трафик" или "Как оптимизировать сайт" вряд ли за плечами имеет мой опыт. Да и откуда он возьмет его?! Я сам раньше таким был, отсюда и все мои шишки... Я не считаю правильным посылать нафиг новичков, только потому что они новички. Пройдет пару лет, эти ребята набьют свои шишки, получат свой опыт и станут нормальными специалистами.

    Возвращаясь к вопросу что делать с таким вопросом сейчас.
    Давайте возьмем какой-нибудь тег, например Laravel. Пусть в теге 300 вопросов, 11 тыс. лайков и 2 тыс. человек, которые участвуют в его обсуждении. Давайте будем считать, что если у одного человека, есть, допустим, 10% лайков по всем вопросам данного тега, то он специалист в этом вопросе. Я думаю логично - лайки к ответам ставит сообщество, значит сообщество считает его полезным. От суда получается, что первая переменная - количество лайков в теге у конкретного человека сообщества.

    Идем далее. Вопросы могут создавать любые люди. Однако, эти люди могут быть как новыми, так и авторитетными членами сообщества. Далее давайте подумаем, новые члены сообщества у нас как раз задают тупые вопросы, следовательно они не заслуживают внимание экспертов. Отсюда имеем вторую переменную - количество лайков в теге у вопрошающего.

    Отсюда можно сделать предположение: чем больше у человека лайков в теге, тем большим специалистом он является. Следовательно, ничего не мешает ввести систему рейтинга, вида
    1. до 100 лайков - новичок
    2. от 101 до 500 - опытный пользователь
    3. от 501 до 1000 - профессионал
    4. от 1001 - эксперт


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

    Этим решением мы достигаем:
    1)Если Вы эксперт в определенном вопросе(вяжем на тег), предложенным мною образом Вы можете отсечь вопросы второго сорта
    2)Если Вы не эксперт в этом вопросе, скорей всего Вы не сможете отделить вопросы второго сорта, от интересных вопросов, а значит раздражения у Вас они не вызовут.

    Как развитие идеи можно добавить какой-нибудь тест на знание вопроса, дающей +50 лайков, для более быстрого подъема по "лестнице".

    Я беру за основу лайки, но по идеи можно еще добавить сюда количество просмотров вопроса, количество ответов в нем, количество лайков в других ответах... Вообщем алгоритм можно дорабатывать бесконечно....
    Ответ написан
    4 комментария
  • Правильная стратегия развития до веб-студии?

    God-emperor
    @God-emperor
    create a golden path
    Я очень скептически отношусь к планам начинающимся так:
    "Нужно придумать название возможно в будущем своей студии. Это готово: Creativix"(с)ТС

    Вот когда пойдёт, тогда и придумаете.
    Ответ написан
    Комментировать
  • Стоит ли изучать актуальный Angular?

    zenwalker
    @zenwalker
    0xABADBABE
    Во первых: «устарелыми» знания не будут никогда. Ориентируясь в своей карьере именно на Angular, после выхода 2.0, еще года два, как минимум, вам будут попадаться проекты на старой версии, ибо переписывать их никто не будет.

    Во вторых: изучая Angular вы изучаете не синтаксис, а принципы работы и идеологию фреймворка. В новой версии они принципиально не изменятся, просто некоторые вещи будут делаться по-другому. Какая разница, каким синтаксисом вы будете выражать свои мысли в коде, если уже примерно представляете, как оно работает?
    Ответ написан
    1 комментарий
  • Лучшие бесплатные ресурсы по каждой технологии (или стартаперы - дарю идею)?

    RGA24
    @RGA24
    Стартапер, программист, аналитик
    Попробуйте learnxinyminutes.com
    Ответ написан
    Комментировать
  • Как правильно подойти к созданию landing page?

    XXX
    @XXX
    Решение где-то рядом
    Maxim
    • Определитесь какие товары Вы будете продавать на своей landing page
    • Целевая аудитория, кому нужен Ваш товар
    • Какие фишки у Вашего товара и что стоит выделить
    • Определитесь что Вы хотите получить: продажи, регистрации, звонки
    • Какие контакты должны быть на сайте
    • Какой Вы хотите внешне landing page? Если есть страницы которые Вам нравятся, ссылки на них. Вот большая подборка landing page.

    Запишите это все к ТЗ.

    Посмотрите:
    Как нельзя делать сайты. Открытый доступ к статист...
    Гай Кавасаки «10 способов привлечения внимания от ...

    На хабре почитайте:
    Создаем landing page: чек-лист для новичков
    Landing page, которая работает
    Устройство минималистичных посадочных страниц
    Как сделать самую лучшую посадочную страницу: чеклист из 50 пунктов
    Каждому по Landing Page. Наболевшее
    7 основных принципов юзабилити для интернет-магазинов
    Продающий дизайн интернет-магазина. Часть 1. Аналитика
    Продающий дизайн интернет-магазина. Часть 2. Элементы интерфейса
    Продающий дизайн интернет-магазина. Часть 3. Дизайн элементов

    Но как бы странно это не звучало, не совсем представляю, к кому идти за "помощью"?
    Если сами текст не можете написать, то Вам надо к маркетологу, а не к копирайтеру. Можете еще и сеошника привлечь, если сами не хотите разбираться. Только если траф на лендинг Вы с рекламы гнать будете, по сео работы с Вашим одностраничником совсем мало и можете самостоятельно разобраться.

    Когда Вы знаете что хотите и написали подробное ТЗ, идти Вам к дизайнеру за шаблоном, а потом к вебразработчику за сайтом под ключ. Вместо одного вебразработчика, можете обратится сначала к верстальщику, а потом к программисту. Быстро сайт Вам могут сделать на CMS, либо на фреймворке. Можете например взять wordpress, под него много готовых бесплатных плагинов и тем, может и под свой landing тему найдете и скачаете, а не будете делать с нуля. :)

    Если денег на дизайн и разработку landing page у Вас маловато, то лучше воспользуйтесь готовыми решениями типа ecwid, до 10 товаров там бесплатный тариф, а сэкономленные деньги лучше пустите на рекламу и нагон трафика на Ваш landing.
    Ответ написан
    2 комментария
  • В какой сфере ценят программистов?

    Sheril
    @Sheril
    Frontend developer
    Больше всего ценят хороших программистов в любой сфере.
    Оплата и перспективы зависят от навыков, опыта, региона
    Ответ написан
    Комментировать
  • Angular. Обязательно ли помещать код внутри $apply?

    @kazmiruk
    Так делать плохо https://github.com/angular/angular.js/wiki/Anti-Pa...
    Можно сделать проще

    $timeout(function() {
    код
    });

    Эффект будет такой же. Ну и все это актуально для кода, который изменяет состояние извне.
    Ответ написан
    4 комментария
  • Как в AngularJS работать с базой данных?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    1) Да, в базе норм. Между ангуляром и базой будет REST Api. Если нет желания делать бэкэнд для вашего приложения, есть сервисы типа mongolab предоставляющие доступ в монгу по REST.

    2) Не стоит этого делать. Только в качестве фэлбэка при отсутствии у пользователя localStorage.

    3) REST -> anywhere, WebStorage/LocalStorage/SessionStorage, IndexedDB
    Ответ написан
    2 комментария
  • Как быстро подтянуть свой уровень веб-разработчика, чтобы соотвествовать требованиям работодателей?

    5angel
    @5angel
    Фронтенд-лид
    Давайте обратимся к данной публикации, чтобы понять примерные тренды, потому что наиболее выгодный вариант – это все же фронтендер.

    Вкратце, полноценный клиентский разработчик должен знать:
    – html5/css3 + bootstrap
    – один-два препроцессора (less/stylus)
    – чистый js и пару-тройку клиентских библиотек или фреймворков (knockout/backbone/angular/react)
    – немного node.js, чтобы уметь пользоваться пакетным менеджером (npm) и билд-менеджером (gulp/grunt)

    Этот список покрывает большинство клиентских задач в средней студии или стартапе.

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

    Другой вопрос – что со всем этим делать.

    Я обычно предлагаю попытаться начать свой маленький проект. Какой-нибудь простенький личный сайт, игру на js (тот же flappy bird или 1048 – много ума здесь не нужно). Посложнее – свою тему или библиотечку. Это будет хорошим практическим опытом, который не стыдно описать в резюме.

    Обязательным навыком является быстрое чтение документации (желательно на английском) и понимание того, что происходит в коде, который вы видите первый раз в жизни. Советую потренироваться на различных проектах с открытым исходным кодом.

    Если говорить о личном опыте, то я неплохо подтянул js с помощью codewars – задачки начинаются от самых простых (преобразование строк, перебор массива), до очевидно тяжелых (собственные интерпретаторы и преобразование данных изображения).

    А вот попытка спихнуть на верстальщика UI/UX – это уже экономия со стороны отдельных контор, которые по какой-то причине не хотят нанимать отдельного дизайнера/проектировщика в штат или по контракту. Тут, к сожалению, придется мириться и смотреть статьи по теме – тот же GoodUI.
    Ответ написан
    10 комментариев
  • Книги по математике для программистов?

    @Gabriel_vs
    I'm a Scientist in Data Analysis / programmar.
    Читать обо всем подряд в математике будет крайне не продуктивно. Надо отталкиваться от задачи, или хотя бы от направления, в котором придётся заниматься. Математика для разработчика шейдеров или библиотек в компьютерной графике мало пригодится для разработчика в области анализа данных (например в области Информационного поиска). Как писалось выше, действительно правильно было бы направить свои усилия на алгоритмы (не полениться досконально разобраться даже в элементарных алгоритмах). Если есть ощущение, что Кормен или Кнут тяжело идут и есть пробелы (а они наверняка будут), то можно на вооружение взять книгу Ахо, Построение и анализ вычислительных алгоритмов.

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

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

    Если есть желание направить свои силы на изучение математики в области информационного поиска, то можно почитать книгу Маннинга, Введение в информационный поиск. Там множество отсылок к конкретным математическим пластам.

    Но алгоритмы и их хорошее понимание (включая асимптотику) является хорошим примером (началом) изучения математики отталкиваясь от задачи.
    Ответ написан
    Комментировать
  • Книги по математике для программистов?

    Deerenaros
    @Deerenaros
    Программист, математик, задрот и даже чуть инженер
    Всё сложно.

    Если кратко: обязательно Кнут и Кормен, остальное по желанию. Первую надо иметь как набор настольных томиков, читать не обязательно =) Я серьёзно, одна из немногих книг, что просто лежа рядом на столе повышает интеллект на 10. Кормен, ну, он другой. Его надо вдумчиво читать и выполнять упражнения. Все. То есть желательно, можно выборочно, структура книги весьма и весьма это позволяет. Математики почти нет, зато есть именно алгоритмы и структуры. Собственно, то, что программисту и надо. Выполнение всех упражнений повышает интеллект на 100500, так что этот вариант явно предпочтительнее, однако банальное наличие этой книги интеллект не повысит =)

    Из чисто математических ресурсов очень рекомендую khan academy - нашикарнейший портал невыносимо крутых знаний. Но самое крутое, что я там пока вижу - это ответ на мой вопрос. Там всё очень упорядочено, от правила Бернулли — Лопиталя до закона Чебышева, от начал Аль-Хорезми, до проблем тысячелетия. В общем, очень круто, очень структурировано и очень... Просто очень. Хотя надо уточнить - он не чисто математический, у него есть чисто математический раздел.

    UPD.
    Dmitry напомнил мне про Кнута, Грэхема с Поташниковым. Мало того, что личности сами по себе довольно интересные, так ещё и книга поистине получилась замечательная. И хотя можно долго спорить о необходимости программисту иметь определённые познания в математике - лично я почувствовал определённое просвещение, прочитав эту книгу.
    Ответ написан
    2 комментария
  • Как написать на "чистом" JavaScript приведенный пример на jQuery?

    mmmaaak
    @mmmaaak
    function pureJSEvent(selector, event, callback) {
    	var items = document.querySelectorAll(selector);
    	for(var i=0; i<items.length; ++i)
    		items[i][event] = callback;
    }
    
    pureJSEvent('.elements div', 'onclick', function(){
    	this.remove();
    });
    Ответ написан
    Комментировать
  • Расскажите про лучшие практики построения простых веб приложений на PHP+JS+jQuery?

    @egorinsk
    AJAX-приложения делаются не так и давно, потому найти собранные воедино best practices не так-то просто. Многие наработки просто не выложены в паблик, а используются разработчиками для каких-то своих проектов. Потому надо проявить старание и разобраться самому.

    Сначала посмотрите на то, что делают другие. Но здесь важно не брать плохие примеры (например, монстров типа Zend Framework и ExtJS. jQueryUI, кстати тоже уродливая вещь — вы его исходники смотрели?) Посмотрите, как написан клайентсайд у вконтакта. Посмотрите у фейсбука (хотя там код пожат, но разобраться можно). Посмотрите библиотеку Zforms. Посмотрите Google Closure Library (у Гугла есть чему поучиться, особенно в плане организации кода, посмотрите обязательно).

    Вообще, смотреть чужой код полезно. он не всегда хорошо написан, но даже в этом случае — это повод для размышлений на тему «а как правильно?».

    Теперь о теории. При построении более-менее сложных AJAX-приложений приходится решать примерно те же проблемы, что и на серверной части, а именно:

    — разделение кода на слабосвязанные компоненты (чтобы, меняя один из них, не ломать все остальное). Сюда входит как организация 3-звенной архитектуры (например, MVC), так и разбиение на модули, динамическая подгрузка модулей (посмотрите yepnope.js и сделайте то же, но проще). Выбор средства взаимодействия модулей — Dependency Injection или система событий (паттерн Observer). Мне больше нравится Observer.

    — организация хранилища данных — нужен какой-то модуль для получения данных с сервера с кешированием, проверкой актуальности, возможно с блокировками и нотификацией об изменениях. Посмотрите, например, как ведет себя Гугл Докс если открыть в 2 окнах 1 документ и править его. Нужна серверная половинка для приема/валидации/выдачи данных.

    — организация View: это решение вопроса о выборе шаблонов (jQuery Templates для начинающего — вполне пойдут), создание системы виджетов (чтобы например можно было вставить виджет графика в виджет формы и все работало) — я не знаю, правда, ни одной нормальной библиотеки виджетов, пишите сами.

    — роутер и контроллер — ну это элементарно пишется без всяких библиотек. Не знаете, как — посмотрите, как сделано у вконтакта.

    — повторное использование кода — копипаст недопустим.

    Также, есть проблемы специфичные именно для клиентсайда:

    — необходимость уменьшения числа запросов (неправильно: грузим диалог, обнаруживаем, что ему нужны CSS и JS файлы и грузим их) — лучше это делать одним запросом. То же про запросы к хранилищу: выбирайте все одним запросом. Несколько AJAX-запросов — это треш и ужас, особенно при пинге 100-200 мс.

    — необходимость минимизации объема и скорости работы JS-кода. Ради нее надо отказываться от тяжелых/перегруженных библиотек типа ExtJS, kendo и jQueryUI.

    — склеивание/сжатие JS файлов — элементарщина, можно склеивать хоть bash-скриптами (или make), плюс можно применить тулзы типа Google Closure Compiler. Разберитесь, как они работают.

    — необходимость создания адаптивной верстки — для этого есть библиотеки типа Modernizr, но по моему, это перегруженный монстр. Мне, например, хватает простого инлайн-скрипта, включаемого сразу после body, который ставит классы with/without-js, with-css3, with-ie, в итоге пользователи современных браузеров экономят трафик и видят rounded corners и CSS gradients, а пользователи ИЕ скачивают их в виде картинок.

    А, вот скрипт, если кому интересно: paste2.org/p/1947136

    — необходимость поддержки навигации средствами браузера — посмотрите библиотеку history.js (хотя имхо, ее тоже стоило бы урезать раза в 2-3, там много лишнего).

    Ну и для закрепления знаний нужна естественно практика.

    Напишите

    1) свой грид (грид — это в данном случае виджет, который отображает в виде таблицы какие-то данные), с сортировкой, фильтром и постраничным просмотром. Все должно работать через AJAX (а если яваскрипт отключен, то классическим методом). Если таблица помещается на экран без постраничной навигации, сортировки и фильтрация должны выполняться 100% на клиенте. Добавьте кеширование (при открытии уже закешированных данных они отображаются из кеша и посылается запрос на проверку их актуальности).

    2) Сделайте форму редактирования/добавления данных в этот грид с валидацией.

    3) А теперь сделайте так, чтобы он работал при пропадающем интернете (то есть, вы добавляете какие-то данные, они сохраняются, выживают при закрытии браузера и отправляются, когда соединение восстанавливается)

    4) если не испытываете отрицательных эмоций по отношению к вконтакту — решите эту задачу: vk.com/page-1_42054413. Она хорошо подходит для отработки навыков разработки AJAX-приложений.

    Что касается PHP, в AJAX-приложении он просто служит бекендом и умным хранилищем данных, не более. Слепите простейший ORM, его вполне хватит.

    P.S. И никогда не повтоярйте ошибок, которые делают косолапые разработчики Хабра. Размер textarea для комментариев должен вмещать минимум 20-25 строк.
    Ответ написан
    1 комментарий