• Стал работать по часам и обнаружил, что выходит 6 часов в день. Это нормально?

    Maksclub
    @Maksclub Куратор тега Карьера в IT
    maksfedorov.ru
    Не забывайте, НИКОГДА не забывайте, что в ваше рабочее время входит не только полезная работа (написание кода):
    - разобраться с той или иной информацией, изучение проблемы
    - анализ и преоктирование
    - просто изучение нового (подходы, библиотеки)
    - отдых в определенном проценте (не считая обеда)

    Если за вас это не делает работодатель, делайте за него.
    В будущем, если будете управлять коллегами — делайте это для них.

    Главное для любого человека — он сам, никакая зп не переплюнет эгоизм, помните это.
    Ответ написан
    Комментировать
  • Коллеги, расскажите о своих методах защиты от "Клиент всегда прав" в процессе разработки?

    sergey-gornostaev
    @sergey-gornostaev
    Седой и строгий
    Я объясняю клиенту почему не стоит делать так, как он хочет. Но если он настаивает, то делаю. В конце концов, это же его проект и его деньги. Если он не хочет получить экспертное мнение и зарабатывающий продукт, а хочет только реализацию его идей - это его право. Несколько таких клиентов приносят мне весьма неплохой доход: они придумывают безумную идею, я её реализацию, беру оплату, через месяц-два они просят это безумие убрать, я и за это тоже беру оплату. И так уже несколько лет.
    Ответ написан
    7 комментариев
  • Можно ли (и если да, то как) сконвертировать опыт фрилансера в годы работы?

    teke_teke
    @teke_teke
    programador
    лучше не заморачиваться.

    по кол-ву лет хотят оценить ваши умения и навыки. если умения навыки и опыт есть, то какая разница сколько это в годах? но, hr хотят кол-во лет, поэтому просто назовите им какую-то цифру, которая их устроит.
    Ответ написан
    1 комментарий
  • Почему подавляющее большинство проектов до сих пор делают на CMS, а не на фреймворках?

    killmeslow
    @killmeslow
    WE
    1-ый вариант = Продаешь 10 битриксов в месяц
    2ой вариант = 0,5 сайтов на фреймворке в месяц
    Ответ написан
    Комментировать
  • Почему подавляющее большинство проектов до сих пор делают на CMS, а не на фреймворках?

    @Inav
    Потому что на cms разработка дешевле,
    потому что никто не хочет писать админку для сайта, особенно если ее разработка сопоставима по трудозатратам с публичной частью,
    потому что заказчик хочет стандартные механизмы управления контентом, а не то что ему придумает разработчик,
    потому что заказчик хочет иметь возможность уйти к другому разработчику с наименьшими издержками,
    потому что порог вхождения для cms ниже => разработчиков больше,
    потому что возможности фреймворков для большинства сайтов не нужны, а для кастомизации cms знающему человеку костыли нужны не на много чаще, чем для фреймворка;
    и потому что подавляющее большинство сайтов это не хайлоад с десятками серверов, который беспрестанно пилит команда программистов.
    Ответ написан
    Комментировать
  • Совместимы ли хороший рейт, фултайм и long-term на фрилансе/удалёнке?

    Sanes
    @Sanes
    реально ли вообще заниматься кодингом столько часов (8 часов в день, 5 дней в неделю) на протяжении многих месяцев, лет?

    Нет конечно. По крайней мере продуктивно.
    Ответ написан
  • Не могу получить заказ на бирже?

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

    А в начале 2010-х и ранее достаточно было только желания работать - берешь заказ и в путь, вот когда реально был дефицит разработчиков. Тогда не было такой популяризации и моды на профессию программиста, не было всех этих codecademy, codeschool, coursera, hexlet, stepic, geekbrains и прочих (это далеко не полный список).

    Мораль проста: если у вас появились постоянные заказчики и они вам доверяют, держитесь за них крепко-накрепко) Найти новых со временем становится только сложнее.
    Ответ написан
    1 комментарий
  • Не могу получить заказ на бирже?

    angrySCV
    @angrySCV
    machine learning, programming, startuping
    потребность рынка растет еще больше, просто вы выбрали очень конкурентный, низкоквалифицированный сегмент с низким уровнем входа, начните заниматься разработкой для ЭПЛ ватч например, или там какой-нибудь автоматизацию на ардуино, сегментов становится все больше и больше с каждым днем, а также ниш. Не стоит замыкаться, тот сегмент который вы выбрали, очевидно загибается, оставьте его школьникам или индусам, идите дальше, повышайте качество, беритесь за более сложные проекты, на них всегда будет спрос.
    Ответ написан
    Комментировать
  • Насколько у меня правильный код ООП php?

    @D3lphi
    Здесь плохо всё, к сожалению.

    Начнем с того, что вы неверно наследуете классы. Почему у вас класс, отвечающий за подключение к базе данных является родителем класса, работающим с заказами? Наследование применяется, если можно сказать, что что-то является чем-то. Например, разработчик является работником; компьютер является устройством и тд. Здесь же у вас вообще близко такой логике не получится следовать. Вы должны передавать хотя бы объект для работы с бд через инъекцию, например, в конструктор. В идеале, нужно использовать паттерн репозиторий для работы с базой данных.

    Класс SearchOrder у вас не только выполняет запросы, но еще и работает с данными, хранит состояние этих самых данных, фильтрует данные (strip_tags()). Непорядок. Это все нужно разделять. У вас вообще получаются какие-то богообъекты, которые умеют во все.

    Вы каждый раз повторяете строки с подготовкой запроса, биндингом параметров, отправкой запроса и тд. Не думали, что неплохо бы было написать какую-нибудь обертку и выполнять запросы как-нибудь так:
    $result = $wrapper->select("SELECT * FROM `tablename` WHERE `id` = :id", ['id' => 5]);

    ?

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

    Зачем вы используете свойства, если можно обойтись обычными локальными переменными:
    $this->orderID = (int) strip_tags($orderID);
    $this->column = (string) strip_tags($column);
    $this->value = (string) strip_tags($value);

    ?

    Почему вы стриппите тэги у идентификатора? вы настолько не уверены в том, что влетает в функцию:
    strip_tags($orderID);
    ?

    Если вы не используете php 7 и, как следствие, скалярный тайпхинтинг, то должны делать проверки на тип входящего аргумента. Если что-то не так с типом, бросаем исключение (А не приводим его к нужному)! Например:
    if (!is_string($arg)) {
        throw new InvalidArgumentTypeException('string', $arg);
    }

    Это в идеале. Вы не обязаны это делать, конечно же. Но вот такие проверки делают приложение безопаснее. Хотя, опять же, повторюсь, в 2017 нужно начинать новые проекты на php 7.1+.

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

    Кроме всего прочего, почитайте про стандарты оформления кода. Вы им не следуете.

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

    Желаю успехов!
    Ответ написан
    1 комментарий
  • Заказчик хочет больше работы за фиксированную сумму и не хочет доплачивать. Как урегулировать спор?

    @choupa
    Архитектор (обычный, который строит)
    Всё плохо. Даже по отрывочным данным, договор никуда не годится, правками делу не поможешь. Расторгайте, заключайте новый нормальный, а лучше просто "уносите ноги", т.к. сомневаюсь, что имея такой бэкграунд возможно дальше работать. Лучше потерять деньги после месяца работы, а не полугода.

    А теперь ближе к сути. Всё что я говорю ниже основанной на российском законодательстве, как быть с заграницей — не знаю. Ваш договор больше смахивает на трудовой договор, чем на договор подряда. Для каждого из этих договоров есть свои требования. Трудовой договор — это, грубо говоря, делаете, что скажут от забора и до обеда. А договор подряда — выполнение конкретно очерченного объёма работа в установленные сроки. Вы для начала сами определитесь, какой характер договора у вас.

    И отдельное замечание про сроки. Срок действия договора — неотъемлемый атрибут любого договора. Это просто юридическая азбука. Например (я архитектор), у меня есть договор авторского и технического надзора (Задача: регулярно прописывать люлей строителям и стучать обо всех косяках заказчику :) Хотя можно огрести люлей ото всех указанных личностей и самому, если в проекте вылезет ошибка). Стройка, скажу вам — вещь растяжимая во времени. Некоторые стройки, бывают, замораживаются на годы. Поэтому у меня написано: "срок действия договора — до окончания строительства, но не более 6 месяцев".

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

    Извините, но мне кажется, что по характеру ваш договор всё-таки трудовой. Только без социальных обязательств со стороны работодателя. Удобно, чё.
    Ответ написан
    1 комментарий
  • Заказчик хочет больше работы за фиксированную сумму и не хочет доплачивать. Как урегулировать спор?

    opium
    @opium
    Просто люблю качественно работать
    ну я бы поглядел как он будет судиться из за границы с вами в россии это минимум десятки тысяч долларов расходов.
    если клиент стал проблемный, то я сразу с ним обсуждаю решения, если решений нет то списываю проект в убытки и в тот же момент прекращаю работу.
    Ответ написан
    Комментировать
  • Заказчик хочет больше работы за фиксированную сумму и не хочет доплачивать. Как урегулировать спор?

    x67
    @x67
    Ваш договор не имеет юридической силы в силу того, что в нем не прописаны ключевые условия. Например, если заключить договор, что Маша должна пачку молока Саше потому что он бука, то такой договор прокатит только в детском садике (потому что у них все серьезно). Правда еще следует поискать что нибудь подобное в законодательстве той страны, в юрисдикции которой может быть рассмотрен договор и действий которой вы опасаетесь ( если возвести все до крайней степени, то Россия, потому что ваша страна и Индия, потому что его страна, а вы хотите когда-нибудь там побывать и опасаетесь что из-за тяжб вам может быть отказано в получении визы).
    С психологической точки зрения наверное стоит спокойно объяснить заказчику, что он чудак, вы сделали то и то, потому что это было обговорено до начала проекта в скайпе, как вы и договорились в договоре, за это он должен вам денег и дальше вы можете сотрудничать на новых условиях или не сотрудничать вообще. В крайнем случае может стоит чуть пригрозить, сказав что у вас есть записи разговоров в скайпе и он полностью отвечает за свои поступки перед законом, а вы принципиальный человек. Если не получается найти точку взаимодействия, то просто прекращайте общение и удаляйтесь искать более адекватных клиентов и писать себе памятки о том, как не стоит заключать договора)
    Ответ написан
    Комментировать
  • Что посоветуете еще подучить что бы тянуть на Junior PHP разработчика?

    @BATPYIIIKOB
    PHP, JS
    На мой взгляд просто решил похвастаться. Тут спинным мозгом понятно, что можно идти на собеседование.
    Ответ написан
    Комментировать
  • Как постепенно перекочевать из Web в Machine Learning максимально безболезненно?

    AgentProvocateur
    @AgentProvocateur
    Что-то ты не с того конца собираешься дом строить...образно выражаясь. Ты по выбору молотка загоняешься, а нужно по проектированию, архитектуре, инженерным коммуникациям, технологиям строительства и т.д. А молоток покупается в последний момент на строительной оптовке.

    Машинное обучение/нейроинженерия - это область научной деятельности. Специалист по машинному обучению - ученый-математик (часто и вовсе с докторской степенью). Программирование/владение Python - лишь прикладной навык к научным изысканиям. В научные лаборатории путь явно лежит не через изучение применяемых там языков/программ.

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

    А со знанием других языков (php, js, go) python осваивается за 10 дней. Он потому и используется так интенсивно в науке, чтобы на программирование, как на прикладной навык, тратить минимум телодвижений и времени, а максимум на нейроинженерию.
    Ответ написан
    4 комментария
  • Как вы организовали хранение данных к проектам?

    opium
    @opium
    Просто люблю качественно работать
    по заказчикам все по папкам раскидываете
    закончили работу переместили в архив с годом
    итого в активной папке ну пяток активных заказчиков.
    Ответ написан
    Комментировать
  • Переход с постоянки на фриланс, стоит ли игра свеч?

    @McBernar
    У вас скромный рейт. Хотя, возможно, для Чехии это нормально.

    Я работал и работаю на фрилансе уже много лет. И в штате много лет тоже работаю.
    Поэтому могу кое-что сказать.

    Минусы

    1. Все байки про фриланс — правда.

    2. Нужно иметь железную дисциплину, чтобы работать в строго отведенные часы, а в другое время отдыхать. И чтобы вставать вовремя, а не спать до обеда.

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

    4. Очень много мудаков среди клиентов. Со временем научишься их определять с первых же слов в переписке. Но до этого придется некоторое количество раз обжечься.

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

    6. Хорошее описание проекта, хороший продукт сам по себе — на фрилансе этого мало. Повезет, если получится удаленно вписаться в команду, которая делает или большой проект или делает много проектов на потоке. Если же это разовые проекты, то будь готов к задаче вида "ну мне вот сайт нужен с формой, сообщениями и робокассой, а ну вот еще там корзина, да".

    7. Забудь про стабильность. Сегодня ты заработал двойную зарплату, а в следующем месяце процентов 50. Нет никого, кто строго раз в две недели будет тебе перечислять деньги на карту.

    Плюсы

    1. Свобода в выборе задач и проектов. Это прям кайф.

    2. Есть возможность заниматься своими делами, потому что за проекты отвечаешь ты и только ты. Соответственно, можно брать выходные, когда тебе удобно, а не когда они на календаре пришли.

    3. Если наработать клиентскую базу, то можно со временем отойти от дел руками, а заниматься лишь форвардом задач или вообще вырасти в полноценный продакшен.

    4. Есть возможность учиться. Не вечером после работы, днем, когда голова свежая.
    Офис эту возможность сильно ограничивает.

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

    Где работать
    Попробуй везде. И на фл и на апворке есть свои плюсы и минусы.
    Но самые лучшие клиенты — это, конечно, которые приходят напрямую.
    Ответ написан
    3 комментария
  • Как развить навык проектирования приложения или как стать Senior?

    @OldCrazyCoder
    Писать код. Читать код. Например, популярные опенсорсные проекты на гитхабе. Если очень уж книгу хочется, то вот минимальный джентельменский набор:
    1. Совершенный код. С. Макконнелл
    2. Чистый код: создание, анализ и рефакторинг. Роберт Мартин
    3. Приёмы объектно-ориентированного проектирования. Паттерны проектирования. Банда четырех))
    4. PHP. Объекты, шаблоны и методики программирования. Мэт Зандстра
    5. Рефакторинг: улучшение существующего кода. Мартин Фаулер
    И т.д. Книг крайне много. И статей много. И простое их чтение мало что даст. Практика, много практики. Критичное отношение к своему коду, однако без перегибов - не стоит упираться в перфекционизм.
    Ответ написан
    Комментировать
  • Как развить навык проектирования приложения или как стать Senior?

    devspec
    @devspec
    Помогло? Отметь решением
    Вам помогут только время и большое количество реализованных проектов. Всё приходит с опытом.
    Я, например, каждые полгода делаю ревью собственного кода за предыдущие полгода и ужасаюсь - как я мог так писать? А ведь полгода назад я мнил себя профессионалом... и так каждые полгода ))
    Ответ написан
    2 комментария
  • На чем писать интернет-магазин PHP или NodeJS или...?

    @BorisKorobkov Куратор тега PHP
    Web developer
    50 тыс. товаров - это мелкий магазин. Пишите на том ЯП, который лучше знаете.
    Или возьмите любой готовый интернет-магазин.
    Ответ написан
    Комментировать
  • Как начинать работу над проектом на фрилансе?

    saboteur_kiev
    @saboteur_kiev Куратор тега Программирование
    software engineer
    Просто.
    Берешь и работаешь.
    Понял?
    Ответ написан
    1 комментарий