• Работа без высшего образования, это реально?

    @FoxInSox
    Почему вы все так спешите начать работать? Да еще и вместо обучения (каким бы оно ни было).

    - У вас еще впереди лет 30-40 работы, большую часть жизни вам придется работать. Вероятность того, что вы все эти 30 лет будете работать в удовольствие далеко не 100%.
    - Начиная работать на 2-3 года раньше вам не дает сильных преимуществ в перспективе. В практически любой работе гораздо более важна эффективность, а не просто сколько времени вы проработали на определенной должности. Т.е. проработав, например, 5 лет, всегда найдутся люди с меньшим опытом которую делают вашу работу эффективнее (быстрее, качественнее)
    - годы обучения в ВУЗе для очень многих людей являются самыми счастливыми, а во многих случаях даже формируют фундамент всей оставшейся жизни: друзья, хобби, знакомства, связи, какие-то ключевые события. Сидя 8 часов в офисе в день на работе или в квартире на фрилансе вы все это упустите скорей всего.
    - во время учебы у вас есть масса времени попробовать поработать в разных местах и сферах: backend, frontend, мобильная разработка, дизайн, попробовать заняться научной деятельностью, попробовать что либо вообще не связанное с IT. После нескольких лет работы вы только будете мечтать о таком, но времени и возможности сменить радикально сферу работы вы не сможете просто.

    ps ну нахрена вам деньги в 17 лет? Машину купить? Бабу свою свозить в Европу? iMac за 100 тысяч купить? Это все вещи которые не стоят вашего времени как минимум 17 лет точно.
    Ответ написан
    6 комментариев
  • Работа без высшего образования, это реально?

    Ronnie_Gardocki
    @Ronnie_Gardocki
    Я у мамы фронтендщик.
    Вышка желательна/возможно даже обязательна, если:
    1) Вы захотите самостоятельно свалить в какую-нибудь цивилизованную страну. Причем не абы как на полгода пожить и выежать/заежать туда сюда, а полноценно иммигрировать туда как белый человек.
    2) Вы вдруг захотите работать в каких-нибудь гос-конторах. Там любят бумажки.
    3) Вы вдруг захотите попасть в крутую ит-корпорацию за рубежом. Есть конечно исключение, если вдруг вы будете настолько круты, что за вами рекретеры будут гоняться день и ночь, но на такое лучше точно не расчитывать.
    4) Вам припрет заняться машинным обучением/бигдатой/%другим_математическим_хардкором%. Причем вышка тут уже нужна будет не для корочки, а для реальных знаний. Возможен конечно вариант с серьёзным самообучением, но это уже скорее из разряда исключений.
    Ответ написан
    Комментировать
  • Какие есть способы скрыть (от плагиата) JS на сайте?

    alexey-m-ukolov
    @alexey-m-ukolov Куратор тега JavaScript
    Никаких.
    По определению, вы js-файлы отдаете клиенту на скачивание, чтобы они у него выполнились.
    Расслабьтесь, никто не будет воровать ваши скрипты, в мире много полезного ПО с доступными лицензиями.
    Ответ написан
    5 комментариев
  • Мысли перед запуском проекта, правильные шаги и монетизация?

    1. Продвижение. Своего рода вирусный маркетинг, т.е. быстрый разовый приток потенциальных заказчиков и потенциальных исполнителей, который вдохнет жизнь в проект. Если этого не произойдет, т.е. не будет набрана критическая масса активных пользователей, то вас ждет стандартная ситуация для невостребованных бирж - нет заказчиков --> гаснет интерес исполнителей --> новые заказчики не находят исполнителей --> смысл проекта исчезает.
    2. Монетизация. Исходя из п.1 для максимизации интереса, никаких подписок и платного доступа. Можно взять модель freelansim.ru (за вычетом подписки) и прочих сайтов знакомств, где интерес к кому-либо или к чему-либо бустится за деньги. Т.е. выделяется и висит в топе определенное время исполнитель или заказ. Можно рекламу добавить, но дозированно и соблюдая семантику.
    Монетизация любого проекта начинается аккурат в момент запуска. Докажем от обратного. Вначале бесплатно, потом привычный для пользователя функционал стал платным. Нравится? Мне как пользователю нет. Правила должны быть общими и неизменными с самого начала.
    До запуска модель продумывается. Но ничего не добавляется после. После только заведомо предупредив пользователей, можно даже с ними пообщаться и опросить. И стараясь что-то взять от пользователей, стоит что-то отдавать взамен.

    Мои мысли являются моими мыслями и частным мнением. Могу в чем-то заблуждаться :D
    Ответ написан
    Комментировать
  • Обьясние принцип аунтификации на сайте?

    EagleMoor
    @EagleMoor
    PHP Yii2 RESTful API Developer
    Да нет ни каких движух в этом направлении, все по старому, по логическому верному пути — все зависит от поставленных задач!

    Куки для обычных сайтов.

    OAuth для авторизации через соц сети, и то, после перенаправления на ваш портал и обработки что чел авторизуется через сторонний сервис вы ему те же печеньки присваиваете. Писать для своего портала OAuth провайдер — а оно вам надо? В топ плане будете ли вы предоставлять api для работы с данными пользователя?

    OpenID вроде уже ни кто не юзает, но он для авторизации через сторонний/ваш сайт без предоставления дополнительного API

    По поводу bearer — это для RESTful API сайтов. Когда пишется один backend для веба и мобильных приложений. Тогда веб как и мобила подписывает любые запросы "bearer {token}". Ну и да, не стоит путать "{token}" и md5(user+pass). Сначала вы делаете авторизацию пользователя по login+pass, затем выдаете ему уникальный token (по сути тот же session_id, но не храните статус пользователя). А как вы его уже генерируете на сервере, дело 3-е. Но да, не стоит md5(login + pass) делать =)
    Ответ написан
    4 комментария
  • Обьясние принцип аунтификации на сайте?

    @Steely
    А что не так с куками?
    Ответ написан
    Комментировать
  • Как переквалифицироваться из эникейщика в программиста?

    Ronnie_Gardocki
    @Ronnie_Gardocki
    Я у мамы фронтендщик.
    23 года? И столько тлена в словах? Ну ловите мою кулстори, у меня тлена в 23 было куда больше...
    Чуть менее двух лет назад, летом 2013, мне было 23, и я имел НОЛЬ опыта работы (если не считать 2 месяца стажерства в магазине комп техники по практике от универа). Кое-как устроился seo-шником в местную веб-студию, даже не зная что это за работа, во время отправления резюме (гуглил после уже). Конечно, как только приступил к работе, сразу понял что seo это не мое, но это помогло мне через 3 месяца на том же месте стать веб-джуниором. И вот я стал джуном, имея за плечами 4 курса на codecademy и одну, плохо прочитанную, книгу. С космической зп в 12к рублей! Через 5 месяцев я уже приступил к работе по удаленке с другими людьми, где платили 30к, и при этом можно было работать по 15-25 часов в неделю. Это позволило мне читать все интернеты на тему фронтенда, а потом, самое важное, пилить демки на кодпене, засиживаясь до ночи. В марте уволился, отдохнул, и в апреле начал очень лениво заполнять профили на зарубежных фриланс биржах. А потом на меня внезапно свалилось подобие сарафана из-за моих демок, и люди просто стали писать мне с предложением что-нибудь запилить, хотя профили я так и не запилил на биржах. Сейчас пилю 2 проекта, с рейтом в 30$/h, для клиентов пустяковая цифра, а для моего Архангельска это вообще какой-то криминал :)
    Ну а вам, с вашим имеющимся бэкграундом, вообще не знаю чего бояться. Проблемы могут быть, только если окажется что программирование это "не ваше". Если же вы любите это дело, то просто садитесь, и начинайте пахать. В первую очередь на свое саморазвитие, поначалу я бы даже посоветовал искать что-то с удобным графиком/местом работы, ибо "неудобная" офисная жизнь убивает весь энтузиазм как правило. А без энтузиазма на старте никуда не уехать.
    Ответ написан
    16 комментариев
  • Как переквалифицироваться из эникейщика в программиста?

    MegaMufa
    @MegaMufa
    Я так понимаю, вы из Краснодара. Я сам из этого города и знаю о трудоустройстве в нем довольно много ибо на одной работе больше года не задерживался.

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

    Крупные фирмы очень часто выращивают себе сотрудников т.к. это часто получается выгоднее, чем искать сеньора с завышеной самооценкой. Например в головной офис Тандера требуются разрабы на питоне и яве.

    Мне тоже 23 года. Без профильного образования. Первую работу (три года назад) нашел без проблем. Начал с 25к, через 5 мес получал почти 40к, на том же месте. Сейчас получаю 80к, но уже в другой фирме.

    Я вас понимаю, у меня тоже был психологический барьер чтобы начать. Думал, что я дурак и ничего не знаю. Потом жизнь приперла, срочно понадобились деньги - за 4 дня устроился программистом. А как потом оказалось, я знал больше своих коллег. Это я к тому, что разработчиками работает куча балбесов без вменяемых навыков и не парятся. Если у вас есть желание учиться и развиваться, скажите об этом потенциальному работодателю. Этот вариант будет выгоден и вам и ему.

    Понятно, что первые полгода о зп в 50к говорить не приходится. Но стоит ужать свои расходы и пойти на этот шаг. Потому что в будушем (не таком далеком) это даст большой профит. За полгода усердной работы вы наберетесь достаточно опыта, чтобы нормально развивать дальше свою карьеру. Сможете работать удаленно на другой горов или страну и получать много больше, чем могли бы в Краснодаре.
    Ответ написан
    10 комментариев
  • Стартап. Есть готовый прототип. Какие следующие шаги?

    SternMore
    @SternMore
    Работаю над GrabDuck.com
    Мне кажется с такими вопросами вы очень далеки от того, чтобы начинать.
    Если проект стоящий и вы в нем уверенны, то потратьте время, поизучайте как работает этот рынок. Попробуйте сами разобраться как оно работает, без этого, просто прочитав тут ответы вы мало что сможете сделать.

    Чтобы не быть голословным, попробуйте начать свой поиск с этого - Максим Чеботаре, Как найти инвестиций от бизнес-ан...
    Ответ написан
    Комментировать
  • Как правильно использовать связь таблиц?

    sanchezzzhak
    @sanchezzzhak
    Ля ля ля...
    1 Я называю таблицы в единственном числе, как и модели.
    пример
    blog_post
    blog_category
    blog_category_many или по фен-шую blog_category_pivot в общем любая many_to_many таблица заканчиваться на pivot
    И еще, если это таблица относиться к блогу вначале всегда будет идти будет blog_ , так легче потом ориентироваться по БД.

    Связи как меня учили манахи, которые часто используються в моделях я выношу в trait

    UserRelationshipUserId
    User что я в этой связи получаю Relationship - говорит мне что за трейт UserId по какому полю я получаю User модель

    Большая чать роли как говорил мне сенсей являеться поддержка phpdoc в комментариях для IDE
    <?php
    namespace app\models\traits;
    use app\models\User;
    
    /**
     * Class UserRelationUserId
     *
     * @package app\models\traits
     * @property \app\models\User $user
     */
    trait UserRelationUserId
    {
    	/**
    	 * Relationship get user
    	 * @return \yii\db\ActiveQuery
    	 */
    	public function getUser()
    	{
    		/**@var \yii\db\ActiveRecord $this */
    		return $this->hasOne(User::className(), ['id' => 'user_id']);
    	}
    }


    4 Обычно из CRUD я использую только генерацию модели, так как ручное создание кода модели с нуля тратит мою чакру в пустую)
    Ответ написан
    Комментировать
  • Как по вашему мнению лучше объяснить потенциальному клиенту, что его сайт устарел?

    Anilbemo
    @Anilbemo
    Сравнить его сайт с конкурентом и показать, что у конкурента больше прибыль и т.п.
    Это сразу мотивирует заказчика поменять дизайн :) А говорить, что поменять дизайн "лучше, удобней" не поможет, проверенно на опыте работы.
    Ответ написан
    Комментировать
  • Как по вашему мнению лучше объяснить потенциальному клиенту, что его сайт устарел?

    Petroveg
    @Petroveg
    Миром правят маленькие с#@&ки
    Ну, клиенты приходят не чтобы заказать сайт или какие-то работы (типа дизайна) по отдельности. Им нужно решать свои задачи (чаще всего — продавать товар, привлекать клиентов, только своих, и т.п.).

    У большинства художественный вкус таков, что показывая образцы самого современного и прогрессивного дизайна, будьте готовы наблюдать лёгкое непонимание. А на вопрос «Что нравится вам» приготовьтесь увидеть такие образцы говнодизайна, что аж дух захватывает в плохом смысле этого слова:). Обсуждение структуры — вообще, на мой взгляд, трата времени.

    Так что вам, всего-то, нужно ответить на самый важный вопрос — как смена сайта повлияет на продажи клиента?
    Ответ написан
    Комментировать
  • Top level веб-разработка. Где и как?

    codingal
    @codingal
    Front end и не только
    На голой верстке далеко не уедешь, нужен полноценный фронт-энд
    Почитайте вот эту статью для понимания того, что происходит в браузере
    0. Алгоритмы и структуры данных
    1. Тонкости самого языка, если js, то прототипирование, замыкания, колбэки и т.д.
    2. Паттерны проектирования архитектуры
    3. Фреймворки js
    4. Инструменты сборки и автоматизации
    5. Системы контроля версий
    6. Инструменты CI и всякие таск-менеджеры типа джиры - для общего развития.
    Ответ написан
    Комментировать
  • Есть ли основные правила супер оптимизации?

    ErmIg
    @ErmIg
    Программист
    Есть развернутый ответ для С++ кода, но его можно обобщить и на другие языки и платформы:

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

    1) Важно понимать, что алгоритмическая оптимизация практически всегда может дать лучший эффект, чем программная. Так, если алгоритм имеет сложность O(n^2), то на больших исходных данных он при любой оптимизации будет медленнее, чем неоптимизированный алгоритм сложности O(n). Впрочем, при выборе алгоритма, опираться только на его сложность не стоит: если объем исходных данных не велик, то вполне может оказаться, что алгоритм со сложностью O(n^2) будет работать быстрее, чем с O(n).
    2) Очень важно повторное использование (кеширование) промежуточных данных, вычисленных в программе – ибо быстрее всего выполняется работа, которую не надо делать. Тем не менее, не надо чрезмерно кешированием увлекаться – если объем кэшируемых данных слишком велик, то это может отрицательно сказаться на общей производительности программы (некоторые данные быстрее вычислять на лету, чем считывать из памяти).
    3) Следует избегать излишнего копирования данных (например, передавать сложные типы данных по ссылке, а не по значению).
    4) По возможности следует избегать условных операторов во вложенных циклах. Так как условные переходы, вызываемые такими операторами, плохо обрабатываются современными процессорами с конвейерной архитектурой.
    5) Данные в памяти, которые используются алгоритмами, должны по возможности лежать упорядочено, и использоваться последовательно. Это позволит процессору их эффективно кешировать. Важно помнить, что доступ к кэшу процессора значительнее быстрее, чем к оперативной памяти.
    6) Если алгоритмы это позволяют, то возможно стоит реализовать их параллельное исполнение (в отдельных потоках или процессах). Это позволит эффективно задействовать современные многоядерные процессы.
    7) В некоторых случаях (например обработка изображений) большого эффекта можно достичь применением специализированных расширений процессора (SSE, SSE2, AXX, AVX2 и другие). Стоит отметить, что большинство современных компиляторов (GCC, MSVS, ICC) поддерживают непосредственное использование данных расширений непосредственно из С++ кода при помощи специальных встроенных функций (intrinsics). Минусами такого подхода является потеря переносимости (впрочем, эта проблема решается наличием разных веток программы под разные процессоры) и значительное усложнение программы.
    8) Также большого эффекта можно достичь применением специализированных ускорителей, например GPU (технологии CUDA, OpenCL). Минусами таких решений являются потеря универсальности и значительное усложнение программы, а также то, что на специализированных ускорителях, как правило, хорошо работает далеко не каждый алгоритм.
    Ответ написан
    Комментировать
  • Обьсните пользу многочисленных абстракций на примере zfcUser?

    1. ZF2 - это "чистый" PHP на основе php-patteens. В нём нет готовых решений для реализации того или иного функционала, всё надо делать вручную. Чтобы понять его низкоуровневый слой абстракции, нужно на очень высоком уровне знать сам PHP, его тонкости и нюансы, встроенные особенности, и понимать php-patteens, ибо их там немереное количество. Я очень люблю сравнивать PHP-framework с музыкой, и ZF2 у меня асоциюеться с Rammstein, то есть ну ОООчень жесткий (hardcore), к чему я это всё виду - к тому, что у этого framework-а очень большой порог вхождения, и в изучении затруднительный даже для продвинутых разработчиков. Это не значит что он плох, да - он сложный, но web-приложение на нём будет будет радовать вас своей производительности, с которой не сравнится ни один PHP-framework. (при условии, что вы не используете готовые сторонние решения, такие как объектно-реляционное отображение, шаблонизаторы, и т.д.)
    2. Насчёт слоёв абстракции, в большинстве случаев вы будете иметь дело с ServiceManager - это всего лишь контейнер других экземпляров классов. То есть если вы создали форму, то вы можете поместить её в этот контейнер, а позже, когда она вам понадобится, просто извлечь её оттуда. (по умолчанию возвращается один и тот же объект, но вы можете это изменить, возвратить конкретно для какого то случая новый объект). Так же вы можете определить какой то класс бизнес-логики как службу, и использовать её на уровне всего приложения (так же можете её настроить как хотите). Можете ещё к всему этому подключить в дело компонент EventManager - и делать какие то действия, когда произойдёт любое событие в web-приложении.
    3. Гидратор - это процесс заполнение объекта данными, или наоборот - извлечение этих данных из объекта. Данные - это в большинстве случаев обычные свойства класса, и на выходите вы получите объект в виде массива, то есть объект без методов, лишь с одними свойствами. Вот как это работает в ZF2: пользователь вводит данные в форму и отправляет их на сервер, система их получает, преобразует обычные строковые данные с помощью гидратора в объект-прототип (то, что я выше писал, в объект в виде массива). Что же этот объект-прототип из себя представляет?! Как выше писалось, это обычный класс с одними свойствами. Свойства должны быть либо защищёнными, или приватными, а также в этом классе допускается использовать методы доступа к этим свойствам (get и set). После того, как наш объект-прототип наполнился данными, мы можем с ними манипулировать, например поместить в базу данных (разумеется мы должны данные фильтровать и проверять на валидность как при получение с формы, так и помещении в БД). Процессом заполнения данных в БД тоже занимается гидратор.
    4. Если вы работали с ORM, то наверняка заметили большое сходство. По большому счёту, то что я выше описал, реализовано в самой DoctrineORM. Получается что ZF2 реализовал свой "собственный велосипед", какой пока ещё не доведён до совершенства. Хотя если сравнять производительность, то ZF2 вне конкуренции. Но если надо будет реализовать крупную систему, то альтернатива ZF2 ещё пока не подходит, она не сможет проявить весь ваш потенциал системы. Можно попытаться дописать этот "велосипед", или на его основе создать собственную систему объектно-реляционного отображения, но для этого надо иметь очень большие знания в этой области. К стати, чтобы добиться производительности, надо использовать расширение mysqli, а не PDO.
    5. На основе выше мною сказанного, вы должны понимать, что возможно для ваших задач вполне подойдёт Symfony, ибо вам придётся очень много потратить ресурсов, чтобы хоть как то сделать что-то стоящее на ZF2. Ведь если добавить в ZF2 DoctrineORM и шаблонизатор-Twig, то сам framework станет не лучше SF2, я бы сказал что ещё хуже, ибо упадёт производительность и будет очень сложно поддерживать. Поэтому я лично для себя решил, если мне надо что-то сделать действительное стоящее, с большой производительностью, и чтобы это был сугубо только чистый PHP, то я выберу Zend Framework; а если мне нужно web-приложение с умеренной производительностью, и сделать его приложив при этом минимальные усилия, то я выберу Symfony. В любом случае, выбирайте то, что подходит лучше для вашей задачи, выбор за вами.
    Ответ написан
    Комментировать
  • Почему страницы Facebook открываются без загрузки впрочем и Вконтакте тоже - это Ajax?

    benbor
    @benbor
    Помог ответ - не забудь лайкнуть
    Все ответы есть в интернете:
    основы - likbez-net.ru/po-tu-storonu-brauzera.html
    основы ajax - javascript.ru/ajax/intro
    Откуда ответ, да, это AJAX.
    А стоит ли переводить, зависит от отношения затраченных средств к прибыли, полученной от перевода.
    Ответ написан
    3 комментария
  • На чем писать бекенд?

    mututunus
    @mututunus
    Backend developer (Python, Golang)
    Все просто. В чем лучше разбираетесь, на том и пишите.
    Ответ написан
    Комментировать
  • Как найти и наказать хакера?

    @inkvizitor68sl
    Linux-сисадмин с 8 летним стажем.
    shellshock.
    bash обновлять нужно, батенька.
    А на ip-шнике, скорее всего, живет домашний пользователь с вирусней, который и слов таких не слышал никогда.
    Ответ написан
    Комментировать
  • Как найти и наказать хакера?

    mva
    @mva
    CEO, CTO, Lua/Gentoo/IPv6 Pioneer
    я бы ещё посоветовал:
    1) не называть взломщиков (и тем более скрипткидис) хакерами без разбора
    2) понять, что вина лежит на вас, а не на нём
    3) понять зачем он это сделал: чтобы показать вам уязвимость, на которую вы предпочли забить
    Ответ написан
    4 комментария