• Меня уволили. Что мне думать?

    @Vitsliputsli
    Увольнение это обычное дело, не преувеличивайте его значение. "непродуктивно работаешь" - это хрень, а не причина, при нормальном руководителе, вы бы знали причину, а не гадали. Вы правильно заметили, что руководитель обязан был заранее обговорить с вами, что не получается, что он ожидает от вас, и как этого можно добиться. К сожалению, некомпетентность руководителей это повсеместная проблема. Я не думаю, что вы сможете что-то выяснить у них, тем более после увольнения, но если есть желание попробуйте, за спрос не бьют. А причины могут быть совсем с вами и не связаны...
    Позанимайтесь самокопанием некоторое время, а затем назовите их всех козлами и идите дальше. За время самокопания быть может найдете моменты, которые следует подкорректировать. Но только если они явные, в противном случае вы скорее всего их выдумали.
    Обязательно спросят почему ушли, постарайтесь сказать что-то представляющее вас в хорошем свете, но недалёкое от истины. В этом вопросе универсального хорошего совета нет.
    На собеседования идите, как вернётся нормальный настрой, но затягивать тоже нельзя. То что вы не сработались с кем-то не делает вас конфликтным или нежелательным работником. Мысли что вы сделали не так от вас не отстанут, но в жизни это не самое выносящее мозг испытание.
    Ответ написан
    1 комментарий
  • Как перестать говнокодить и принимать неверные архитектурные решения?

    miraage
    @miraage
    Старый прогер
    как писать поддерживаемый код?

    Если уж очень коротко, то соблюдать SOLID/GRASP. Мне понравился твит одного из авторов React Router:
    https://twitter.com/mjackson/status/1171524189850701825

    Most common mistake software developers make: putting stuff in the wrong place. Coupling responsibilities and concepts that should be kept separate.
    For me, this is 95% of software development. Just figuring out *where* things belong.


    Что гуглить, что учить?

    Фундаментальные знания, вроде вышеупомянутых SOLID/GRASP, паттерны (не только классические паттерны, но и вообще, общеизвестные решения определённых задач), базовые структуры данных. Фреймворки/библиотеки всегда будут приходить/уходить, что-то будет забываться. А фундаментальные знания всегда актуальны.

    Может литературу какую почитать посоветуете?

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

    Можно ли себя называть миддлом, если твой код говно?

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

    И ответ на главный вопрос.
    Как перестать говнокодить и принимать неверные архитектурные решения?

    Это невозможно. Все проекты, которые чуток сложнее CRUD-ов, рано или поздно обрастают говнокодом. Никто не пишет идеальный код. Код должен работать и решать проблемы бизнеса.
    Ответ написан
    6 комментариев
  • Как из Python back-end перейти в Unity разработку?

    @vanillathunder
    Можно поискать конторы где на сервере используют python, и потом внутри компании перейти с сервера на сам геймдев.
    Ответ написан
    1 комментарий
  • Как программировать в команде?

    saboteur_kiev
    @saboteur_kiev Куратор тега Программирование
    software engineer
    Тебе выдадут куратора, он будет тебе давать конкретные задания.
    Тебе должны выдать ссылки на документацию или показать, как у них организована работа.

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

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

    Не обязательно в первые недели выполнить все-все-все, важнее разобраться как правильно работать. У тебя на это целых три месяца, и понять, справляешься ли ты, можно будет только через месяц-два.
    Ответ написан
    3 комментария
  • Отношение заказчиков к исполнителям?

    Jump
    @Jump
    Системный администратор со стажем.
    Вы конечно извините, но вы написали полную чушь.
    Биржа это рынок. А на рынке как известно два дурака - покупатель и продавец.
    Нормальное желание заказчика - сделать подешевле.
    Нормальное желание исполнителя - срубить побольше денег.
    Есть среднестатистическая цена на услугу, но если хорошо поискать то можно сделать работу значительно дешевле, хотя как правило это будет дольше.
    Поэтому если сроки не горят, то почему бы и не поискать подешевле? Я не вижу в этом ничего плохого.
    А тот факт что кинули - ну так смотреть надо, контролировать, и кинуть может кто угодно. Вы же не думаете что человек взявшийся за работу по нормальной или высокой цене не может кинуть?
    Точно так же может.
    почему заказчик платит за ремонт автомобиля в сервисе указанную сумму
    на какую договориться, такую и платит. Если цена не устраивает можно найти сервис подешевле.

    а другой труд он считает простой задачей и считает, что это верстать, кодить, отрисовывать диз это просто тыкать по клавиатуре и водить мышкой
    А какое дело заказчику до вашего труда? Вы думаете насколько сложная задача крутить гайки в автосервисе? Я вот не думаю. Мне пофиг. Мне называют цену, я прикидываю насколько оно мне выгодно и либо плачу, либо отказываюсь.
    Ответ написан
    14 комментариев
  • Как обратиться к полям объекта не используя for?

    winordie
    @winordie
    Лучшая документация -- исходники
    Like.objects.filter(ip=client_ip).first()
    Хотя на самом деле не ясно зачем фильтр, используйте гет, если там только один елемент.
    Like.objects.get(ip=client_ip)
    Если же ис несколько, то вы уверенытчто нужный будет первым?
    Ответ написан
    1 комментарий
  • Стоит ли высылать заказчику подписанный договор NDA?

    @inkvizitor68sl
    Linux-сисадмин с 8 летним стажем.
    Отсылай фотографию паспорта.
    Уточни, какие данные можно "замазать".

    Если так не подходит - то иди к нотариусу и делай заверенную копию для "передачи в компанию ХХХ", чтобы её не могли передать в другое место.
    Ответ написан
    Комментировать
  • Есть задача написать WEB приложение на Python?

    mmmaaak
    @mmmaaak
    Берешь бумажку и карандаш. Расписываешь в виде плана что и как должно быть в приложении.

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

    Потом планируешь структуру БД и какие классы за что будут отвечать в приложении.

    Гуглишь фреймворки, подбираешь под нужды, смотришь скринкасты, туториалы примеры.

    Создаешь репозиторий, поднимаешь рабочую среду и пишешь. По вопросам сюда или на stackoverflow, если с англицким дружишь.

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

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

    Длинный ответ: ваш транслятор принимает на вход последовательность символов (допустим, UTF-8 текст), "понимает" ее в соответствии со спецификацией вашего языка, и выплевывает в качестве вывода инструкции на другом языке (в виде текстового файла или файла спец. формата). Этим "друим языком" может быть язык ассемблера какой-то железной платформы (x86_64, ARM, SPARC), и результирующим файлом будет бинарник под указанную архитектуру (точнее - объектный модуль, бинарник потом будет собран линковщиком) - так компилятся, например, C/C++. "Другим языком" может быть язык виртуальной машины (LLVM/байткод Java/MSIL) - так компилятся С/C++ (если через LLVM), Java, Scala, C#, F#, VB. "Другим языком" может быть и более высокоуровневый язык - часто, чтобы не париться на начальных этапах развития языка генерацией машинного кода, делают транслятор, который генерит код на Си, и этот код на Си уже компилят известным компилятором в бинарник. Или к примеру, CoffeeScript/TypeScript транслируются в JavaScript, т.к. веб-браузеры кроме джаваскрипта исполнять пока ничего не умеют.

    Конечно же, вы можете написать интерпретатор, а не компилятор - тогда ваша программа будет сразу же исполнять инструкции на вашем языке, не генерируя какой-либо выходной файл. Так поступают довольно много систем, например Node.js. Python делает также, если отключить генерацию pyc-файлов (поправьте меня, если я ошибаюсь).

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

    Т.к. в задачах разбора входного потока (parsing) уже набито очень много шишек, и люди посвятили свои жизни и научные карьеры изучению этого вопроса, то сделано и немало инструментов для помощи в разработке компилятора. Как правило, такие инструменты дают возможность описать грамматику вашего языка на некоем специализированном синтаксисе (вроде BNF), а потом по этому описанию генерят вам код лексера и парсера на удобном для вас языке (это модули, которые выполнят первичный разбор входного потока на вашем языке на токены, и построят абстрактное синтаксическое дерево (AST)). А вы уже дописываете к ним основную часть вашего компилятора. Как пример, при написании компиляторов на языке Си часто используют flex в связке с yacc/bison. Есть более комлексные пакеты, позволяющие генерить код парсеров на различных языках - ANTLR, GOLD. А можно и самому написать лексер и парсер, особенно если вы уже сделали первую версию компилятора и переписываете его на вашем же языке).
    Ответ написан
    Комментировать
  • Как вернуть мотивацию к обучению?

    При повторной потере мотивации алгоритм следующий:
    1) Идем высыпаемся. По-нормальному так, без будильников. Чтоб глаза вообще больше не закрывались.
    2) Если мотивация не вернулась (возвращается в 70% случаев) - берем велик (хотя можно и пешком) - и на улицу. Если есть приличный парк в городе - находим пару нестандартных физ. упражнений (можно боевых), пытаемся выполнить. Работа с телом и физические нагрузки - это совершенно другая часть вашего сознания, про нее нужно не забывать.
    3) Если мотивация не вернулась (уже где-то 85% случаев) - берем случайную книгу (не техническую), в идеале - из жанра который вам нравится. Читаем. Спокойно, страницы не считаем.
    4) Если не вернулась, повторить с п. 1 до пяти раз, не думая о времени и выполняя только самые важные дела (срочные задачи по учебе, работа, если есть), можно даже попросить родных/знакомых помочь по дому и бытовым делам, чтобы себя разгрузить.
    5) Если не помогло после 5 раз, задаем новый вопрос на тостере, подробно описываем что делали).

    Хотя бы один из п. 1-3 выполняем для профилактики каждый выходной.
    P.S. в принципе плохо сравнивать себя с кем-то - для "сравнения" на свете есть всякие соревнования и состязания, где есть правила и контекст. В жизни правил нет, один учится в MIT, другой учится в колледже в России - какие могут быть сравнения? Вы думаете тут большинство людей за один год все узнало и всего добилось? Вы глубоко заблуждаетесь) PHP-шники-выскочки не в счет, у них искаженное представление о реальности.
    Ответ написан
    11 комментариев
  • Как вернуть мотивацию к обучению?

    alexclear
    @alexclear
    A cat
    > А сегодня "напали" мысли что у меня ничего не получится, что я просто так трачу время и в конце концов я признался себе что я по сути никто.

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

    > Как вернуть мотивацию? Как заставить себя осознать что время которое я трачу на обучение проходит не зря?

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

    saboteur_kiev
    @saboteur_kiev Куратор тега Программирование
    software engineer
    Конечно возможно. Уже существует и много. Просто вам следует осознать какие бывают ИИ, на что именно они запрограммированы.

    P.S. Написать ИИ на все случаи жизни невозможно, поскольку для этого требуется время больше чем жизнь (Невозможно полностью описать систему, будучи ее частью).
    Ответ написан
    1 комментарий
  • Как извлечь информацию сайта в удобную таблицу?

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

    xmoonlight
    @xmoonlight
    https://sitecoder.blogspot.com
    просто проходите мимо таких проектов.
    Ответ написан
    Комментировать
  • Как начать заниматься фрилансом? Как начать программировать с нуля?

    @Gregpopov
    Full stack web developer
    Прочти, и подумай.

    1. Ты ребенок. В том плане, что работать рано. Не можешь справиться с неудачей без опущеных рук, рано начал.

    2. Учи сначала front-end. Angular, JQuery, Pure JS. Учись делать качественный и великолепный UI как в коде, так и в глазах юзера.

    3. Если мало, учи бэк. Выбери фреймворк, и под него язык. RoR или Zend или Yii или Symphony.

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

    DmitriyEntelis
    @DmitriyEntelis
    Думаю за деньги
    Глобально правильное решение - устроиться junior на удаленке куда угодно на любых условиях (в первый ~год вам нужны не деньги а что бы вас учили), дальше по ситуации.
    По количеству предложений imho лидирует php.
    По зарплатам - или java (но в силу специфики проектов на ней, я не уверен что получится найти удаленку) или мобильная разработка ios/android (но нужны первоначальные затраты на оборудование)
    PS Можете связаться со мной если хотите, контакты в профиле. По PHP смогу помочь
    Ответ написан
    7 комментариев