• В сфере IT для новичков нет перспектив?

    @nApoBo3
    Это сложный вопрос. На первый взгляд на низовых позициях в ИТ дикая конкуренция. С другой стороны, она дикая но совершенно беззубая, поскольку уровень кандидатов соответствует дворнику.
    Месяц назад искал себе помощника помощника, кандидатов море, уровень ниже плинтуса, не знают ничего совсем, две кнопки выучили и вот уже ИТ специалист.
    Работа, это все таки не школа и не институт, тут вы в замен тоже что-то должны дать, т.е. должны делать какую-то работу полностью самостоятельно и с должным качеством. Если вы что-то умеете делать самостоятельно и полностью понимаете процесс, то вот такую работу и ищите. То что кто-то может next, next, finish, поставить windows ИТ специалистом данного человека не делает.

    Вот и получается, конкуренция дикая, но среди перспективных ее практически нет.
    А перспективные это те, кто понимают, чтобы получить нужно сначала вложить, и много, и регулярно вкладывают в себя.
    Ответ написан
  • Что происходит с выполнением долгого запроса SQL при разрыве соединения?

    @ora19dba
    Senior Oracle DBA
    Если значение параметра SQLNET.EXPIRE_TIME=0, то Оракл не узнает про то что клиент уже отключен, текущая операция будет завершена и индекс будет создан. В случае DML операций, транзация будет откачена, т.к. после нее должен быть коммит, а к тому времени Oracle уже поймет, что клиент отключен и выполнит откат.
    Ответ написан
  • Как поднять сервер на Linux и задеплоить приложение?

    @superyateam
    Java programmer
    А есть еще вариант использовать Spring Boot или Dropwizard (и их аналоги), тогда ставить веб сервер даже и не придется. Просто из командной строки: java -jar yourwebapp.jar
    Ответ написан
  • Агрессивное собирание инфы о пользователе через браузерный js?

    xmoonlight
    @xmoonlight
    https://sitecoder.blogspot.com
    Сбор инфы - только для троллинга ЦА к покупке вашего продукта (Или нет?!)
    Не нужно тратить время на тех, кто пришёл просто, чтобы потролить вас.

    Как делаю я:
    вешаю краткое назначение продукта и текст:
    "Мы продаём только тем, кому это нужно. Всем остальным - просьба не беспокоить.
    Если Вы заинтересованы и Вам это реально нужно - заполните следующие поля формы:"
    и тут форма на 2 поля и кнопка "Без вопросов".

    Всё остальное - нах не сдалось!
    Задача, не насобирать бесполезной инфы, а сразу получить АДЕКВАТНЫХ ЦЕЛЕВЫХ клиентов, которые купят с вероятностью более 80% ваш РЕАЛЬНО НУЖНЫЙ ПРОДУКТ/УСЛУГУ!
    (Или я что-то путаю?!)

    PS: мне вообще не интересно его: имя, ник, пол, возраст, друзья и кол-во ласт, если он вдруг пингвин) Купил? Отлично! -> Я - в прибыли!
    Ответ написан
  • Как писать много кода, оставляя его простым, как в начале?

    Deerenaros
    @Deerenaros
    Программист, математик, задрот и даже чуть инженер
    Ну в общем-то ответов много. Могу кое-что добавить от себя.

    Во-первых, голова не бесконечна во всех смыслах. Запихнуть в неё больше чем 10 объектов одновременно вряд ли получится, у многих начинаются огромные проблемы уже с 5. Лично я испытываю ДИКУЮ больше если собственный код становится больше чем большой. Для меня это где-то 15~20 сущностей, причём чем сильнее они связаны, тем сложнее они даются, так как становится сложно абстрагироваться. Что примечательно, при работе с чужим кодом таких проблем практически нет, ну у меня по крайне менее. Всё дело в том, что чужой код изначально воспринимается чёрным ящиком, поэтому если он не представляет из себя дикую лапшу, аккуратная работа с ним с минимальным вмешательством в проект получается легко.

    Во-вторых, не стоит делать код пушистым. Однообразность воспринимается лучше. Массивы некоторых объектов надо называть $названием_объекта + 's'. Классы с большой буквы, любой объект стоит называть так же, как класс, но с маленькой буквы. Конечно, если семантически прям просится по другому, то стоит правило нарушить, но в общем случае никаких выдумок не надо. Временная строка - str, временное число - tmp, временный объект - obj. И пробелов не жалей, внутри файла разделяй разные структуры двумя-тремя пробелами, стоит обособлять регионы, например, "глобальные" функции наверху, по середине структуры, потом классы. В C# есть #region.

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

    В-четвёртых, внутри монолита также надо делать максимально растянуто, никаких супер-синглетонов бдящие за всем и вся. Равно как и с микросервисами, внутренние объекты должны иметь минимум точек входа. Они должны быть просты и понятны. Если какой-то класс выполняет слишком много задач, часть из них надо делегировать другим классам, возможно новым. Это по сути цикломатическая сложность, о которой упомянул Ivan Sokolov, но мне не нравится эта формальность. Да и некоторые вещи сложно формализовать ребром на графе.

    В-пятых, иерархия должна быть логически правильной, наивной, без выпендрёжа. Тоже самое, что и в третьем, плоское лучше объёмного.
    Плохо:
    3dbadffb7d954b2d93a5dfec863289be.png
    Лучше:
    1238e5c4d83340239a250116d4d2fa3a.png
    Пример немного утрирован, но суть, навроде, ясна. Не надо наследовать всё и вся от чего угодно, если есть возможность включить внутрь - включай. Всё остальное от лукавого и только в крайних случаях.

    В-шестых, используй UML, mind maps, блокнот и таск менеджеры. Эти инструменты словно манна небесная спасают дедлайны от полного уничтожения. Хотя UML спорен, им очень удобно следить за структурой проекта, представлять картину с высока, рисовать его стоит самому, учитывая неявные связи и убирая рудиментарные. Mind maps помогут собрать мысли в кучу. Блокнот банально запишит то, что постоянно забывается. Таск менеджеры сформируют привычный график, отобразят прогресс, помогут фокусироваться на текущих задачах, не растекаясь по проекту.

    В-седьмых, изучи декларативное программирование. Шикарная вещь, которая позволяет сконцентрироваться на задаче, а не на решении. Из коробки в функциональных (erlang) и логических (prolog) языках, однако многие элементы существуют и в монстрах вроде C#/Java, Python, особенно JavaScript. Насчёт Go не знаю, но на первый взгляд весьма декларативный.

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

    Ещё пара абзацев. Ну про вредные советы: методы надо делать ровно такими, какие они должны быть. 20 строк - это что-то вроде лакмусовой бумажки, однако это лишь один из параметров. Очень часто требуется сделать громадную функцию для работы со сложным API или подробить много разных чисел в циклах. Поэтому ориентироваться на это плохая идея. Равно как и папки-подпапки-подпапками погоняемы, максимум - два уровня в чрезвычайно сложных проектах. Иначе будет очень сложно ориентироваться. Ещё происходит странный возврат к комментариям. На мой взгляд, если это не продаваемая за большие деньги библиотека - нах*й надо. Документация в комментариях - рудимент кода, он нигде не используется, зато требует поддержки, на что приходится распылять внимание. Если нет условного рефлекса править комментарий после кода - выбрасывайте и не жалейте. Везде! Без исключений. Ещё есть много "архитектурных" паттернов. Снова вред, если вы не работаете в Google, где вашу зарплату надо оправдать умными словами. Самый эффективный способ - программировать наивно. Чем проще для вас сейчас, тем лучше для вас потом. Если думаете больше десяти минут - плохо думаете... Но об этом позже. Паттерны это некая систематизация неких знаний, причём совершенно не понимаю, зачем её вообще сделали. Да, архитектура в некотором роде нужна, но постоянно искать какой паттерн здесь надо использовать, если это не проект на 100500 лет вперёд - нельзя. Почти всегда будет дешевле в случае неуспеха отрефакторить всё и вся, чем переписывать с нуля или тратить месяцы на продумывание архитектуры... В которой также могут быть ошибки.

    И последнее. Отдыхайте. Если чувствуете, что задыхайтесь - пройдитесь, подышите. Если чувствуете, что мозги плывут - отвлекитесь, подумайте о другом. 8 часов в день для программиста - это дикость, но это реальность. Для разных людей наибольшая эффективность поддерживается где-то 3~6 часов, причём некоторым требуются перерывы каждые пол часа, другому хватит обеденного перерыва, а третьему вообще нельзя сегодня никаких отвлекающих факторов, ибо "волна". На самом деле, человек существо динамичное, так что будут разные дни. Но если не получается сейчас - не бесите самого себя. Отдохните, перекусите, пробежитесь, покурите, проверьте почту, послушайте музыку, почитайте статью. Не тратьте время бездарно и, что интересно, проблемы будут решаться, усилия будут прикладываться аналогичные, но вот ощущения от работы станут совершенно другими.
    Ответ написан
  • Порекомендуйте программу надзора за сотрудниками?

    @CobaltTheTerrible
    Копипастю код на Python
    То, что вы хотите таким образом контролировать работников, означает, что как руководитель вы слабы.

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

    Поймите, что все эти программы слежения можно обойти. Например, я лично видел как человек сидел и я на протяжении нескольких часов дёргал мышь, но при это смотрел фильмы с личного планшета.
    Ответ написан
  • Порекомендуйте программу надзора за сотрудниками?

    IonDen
    @IonDen
    JavaScript developer. IonDen.com
    Подобный жесткий контроль за сотрудниками не имеет смысла и только создает ужасную не творческую, депрессивную атмосферу.

    Используйте Scrum. Cоставьте план работ, согласуйте его с сотрудником. Если он будет всё успевать, то какая вам разница сидит он днем в соц. сетях или на ютубе? Если же не успевает, то вот вам и показатель, что пора увольнять.
    Ответ написан
  • Стоит ли работать программистом?

    Начал изучать вакансии и вижу, что предлагается от 25-35 тысяч для джуна (прикинул, что это на год-два), затем миддл (думаю около 60-70 тыс года на 3-5).

    Деньги не такой большой приоритет для тех кто идёт работать программистом. Идут потому что могут и получают удовольствие от работы. Не все, но часто именно так. За большими деньгами идут в офисы, банки и т.д., куда там ходят за большими деньгами?) Плюс программирование даёт свободу(возможно только иллюзию:)). И такие зп в русском секторе, почитайте тут же про фриланс.
    БД, C#, Java, JS, PHP

    Какой-то несвязный список технологий, третье четвертое ещё как-то вместе смотрятся, но С# и ява и дальше лендинг? Интернет-магазин лучше не писать)
    женат, ребёнок; мне 27, кстати ... Но времени на это "хобби" катастрофически не хватает.

    По началу, когда перейдёт в работу, тоже времени не будет хватать, дальше - окупится
    Еще на одном портале с вакансиями полистал резюме чужие, у многих смена мест работы каждые 2-6 месяцев и таких мест у людей от 5

    Какие-то не те резюме смотрели. Если устраиваться в разработку сервиса какого крупного или интернет-магазина, то месяца 2-3 уйдёт только на то чтобы въехать в бизнес-логику и что куда где уходит приходит, на уровне - вроде как более менее понятно.
    Расскажите, господа программисты, что меня может ждать?

    Если привык к размеренной жизни, то не вариант, если только в энтерпрайз какой-нибудь. Если в веб - будут ждать постоянно меняющие тенденции, новые технологии, версии, библиотеки, языки, legacy код и много чего интересного и не очень. Из плюсов - стек технологий, которым пользуются все, своеобразный драйв от того что принимаешь участие в разработке продуктов, которые помогают другим людям, от того что участвуешь в этом.
    Ответ написан
  • Angular js как пользоваться cookies?

    Basters
    @Basters
    Кокер-спаниель
    Для начала вам нужно скачать и подключить к проекту модуль ngCookies версии, равной версии вашего Angular
    Скачать ее можно по адресу - https://code.angularjs.org/1.x.y/ где вместо x.y вам нужно подставить цифры из вашей версии анугялра. Например: https://code.angularjs.org/1.3.15/

    Если у вас angular < 1.4.x, то

    angular.module('cookiesExample', ['ngCookies'])
    .controller('ExampleController', ['$cookies', function($cookies) {
      // Retrieving a cookie
      var favoriteCookie = $cookies.myFavorite;
      // Setting a cookie
      $cookies.myFavorite = 'oatmeal';
    }]);


    К сожалению это все что может стандартная библиотека ангуляра для версии < 1.4.x.

    Для версии 1.4.x+ все описано на этой странице с примерами.

    С LocalStorage прекрасно можно работать и без ангуляра, не вижу необходимости в обертках.
    Документация по LS здесь
    Ответ написан
  • Angular js как пользоваться cookies?

    vvovas
    @vvovas
    Вот ссылка на документацию по куки: https://docs.angularjs.org/api/ngCookies/service/$...
    Localstorage стандартного, кажется, нет - вот есть такой плагин: ngmodules.org/modules/ngStorage
    Ответ написан
  • Почему не работает navbar в bootstrap 3?

    paradokso
    @paradokso
    Начинающий фронт-эндер
    а вы bootstrap.min.js подключили после jQuery?
    Ответ написан