Задать вопрос
  • Как получить опыт для устройства на работу Python Developer?

    rumkin
    @rumkin
    Договориться можно обо всем. Мне, в подобной ситуации помог простой договор: на испытательный срок — детская з/п (по сути оплачиваемая стажировка), но, если я остаюсь, то мне платят на достойном уровне. Так я получил бесценный опыт, которого у меня не было, деньги на поддержание штанов, и достойную зарплату через 2 месяца.
    Принципиально важно не выклянчивать хоть сколько-нибудь, а обозначить, что это минимум, который вы можете себе позволить. Ну, и реальное рвение нужно иметь.
    Ответ написан
    Комментировать
  • Как получить опыт для устройства на работу Python Developer?

    alexiusp
    @alexiusp
    senior frontend developer
    Соглашусь с вышенаписанным, что в вебе конкретный язык для джуниора не имеет особого значения - всегда можно переучиться. По своему, пусть небольшому, опыту могу сказать, что я и мои коллеги всегда смотрим на базовые знания соответствующих технологий. Я спрашиваю про ООП, MVC, какие-то особенности работы веб приложений. Мой коллега при поиске ораклиста спрашивал сколько нужно таблиц, чтобы описать некоторую предметную область (маленькую разумеется).
    А по поводу, где набираться опыта, у меня есть своя хитрость. Можно устроиться в бюджетную организацию, где есть свой отдел разработки. Я начинал в вузе. Если повезёт найти место, где активно занимаются разработкой всяких новых фишек. Причём разрабатывают своими силами, а не покупают или адаптируют готовые решения. Вот вам и плацдарм для пробы пера в Пайтоне. Берёте какую-нибудь задачу, которую нужно решить - расписание занятий на сайт или мобильное приложение для студентов или ещё что-нибудь. Получаете добро на разработку у начальства. И вперёд. Через год-другой у вас и строчка в трудовой и реальный опыт и есть, что рассказать на собеседовании. ;)
    Хитрость состоит в том, что в бюджетных организациях часто довольно низкие зарплаты по сравнению с коммерческими фирмами. Поэтому там всегда дефицит кадров и берут они программистов не особенно сильно придираясь. И текучка кадров там приличная. Как только молодёжь приобретает достаточно опыта, она сваливает в коммерческие фирмы, где платят больше. Всё это касается конечно провинции, в столицах, возможно, всё по-другому.
    Ответ написан
    Комментировать
  • Как получить опыт для устройства на работу Python Developer?

    zxmd
    @zxmd
    По опыту набора Python разработчиков могу сказать следующее:
    - Свои проекты на github никого кроме вас самих не волнуют. Ну сами судите - если это проект который никто не фалловит никто не форкает и написан еще кривенько - толку от него мало. Если это реально хорошо написанный код - то это можно использовать как ваш образец написания кода. Мне бы это понравилось, кто то это не учтет.
    - Опыт от 1 года - это не требования, это так сказать фильтр, который отсеит тех кто прочитал книжку "Соц сети за 24 часа для новичков".
    - Фриланс - более менее имеет вес. Но тут палка о двух концах. Я лично бывает звоню по фрилансному контракту и интересуюсь о человеке который выполнил заказ. Тоесть тут надо быть точно уверен что никто из ваших клиентов не скажет "да вы что, он нам проект делал полгода и не доделал" - хотя с вашей стороны будет "да они тз 10 раз меняли и вообще не заплатили за работу". Но обычно уже нет возможности оправдаться. Так что фриланс - не однозначная штука.
    - Голый питон - мало кому из работодателей интересен. Интересует скоп технологий. Если это web то Python+Django+PSQL+PIL+South+Elasticsearch(или sphinx)+mongo+lxml+с полсотни библиотек под разные нужды. Но это я говорю уже о сложившемся синьоре питонисте.
    - По поводу джуниоров. Я при просмотре резюме вообще не смотрю на ЯП (если это не 1c или VB) - язык, в особенности питон - дело 2-3 недель в реальном проекте. Опять по своему опыту - часто приходится переучивать народ с PHP, в этом нет ничего сложного. Многие фирмы идут на это, так как рынок питон разрабов очень ограничен. Как говориться - выращивают бабу-ягу в своем коллективе. Тут главное показать то, что хоть у вас нет опыта - вы этот самый опыт желаете получить..
    Ответ написан
    5 комментариев
  • Как получить опыт для устройства на работу Python Developer?

    JRazor
    @JRazor
    Senior StarkOverFlow Programmer
    Сначала пишите для себя. Пробуйте решать задачи, играться с разными GUI, базами данных и прочими кошерными вещами. Потом можете попробовать пофрилансить. Опыт + заработок. Я не знаю, насколько это поможет при устройстве на работу (тут все зависит от компании), но писать более-менее нормальный код рано или поздно научитесь. Опыт должен быть не в вашей трудовой книге, а в вашей трудовой голове. Сразу говорю - сам в организации не работал программистом Python (не повезло с городом), но писать научился.

    А лучше, конечно же, стараться и выбиться в джуниоры. Там вас всему научат)
    Ответ написан
    Комментировать
  • Как можно передать ссылку на экземпляр класса в другие модули, чтобы взаимодействовать с ним?

    @hsc
    full stack python back-end developer
    Не думайте о потоках как об объектах, потому что они ими не являются. Поток — это нить выполнения, которая во время инициализации принимает функцию, которую будет выполнять. После инициализации — это отдельный мини-процесс. Вызвать метод потока невозможно: у него их попросту нет. Можно вызвать метод дескриптора (объекта, который управляет потоком) но не самого потока. Отличием потоков от процессов является то, что потоки разделяют адресное пространство с процессом, который их породил. Это значит, что каждый поток имеет доступ к данным процесса и других потоков.

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

    2: Если есть необходимость ставить перед потоком разные задачи может быть разумно вынести их хранение во внешние службы, например redis. Он очень быстрый и существенного оверхед даже на малинке не создаст. Общаться с ним можно через этот пакет. Если хотите сэкономить на tcp-трафике - запускайте redis на unix-сокете.
    Этот вариант потенциально избавит Вас от головной боли с синхронизацией задач.

    3: Если есть возможность и памяти хватает больше чем на 1 поток - RQ. Это — легкий менеджер очереди задач для python. По сути, то, что Вы и пытаетесь реализовать.
    Ответ написан
    7 комментариев
  • Как на Django реализовать график работы?

    @patient
    В TextField храню сериализованный в JSON объект типа:

    [{"start":"09:00","end":"14:00","lunch_start":"","lunch_end":""},
    {"start":"09:00","end":"18:00","lunch_start":"13:00","lunch_end":"14:00"},
    {"start":"09:00","end":"18:00","lunch_start":"13:00","lunch_end":"14:00"},
    {"start":"09:00","end":"18:00","lunch_start":"13:00","lunch_end":"14:00"},
    {"start":"09:00","end":"18:00","lunch_start":"13:00","lunch_end":"14:00"},
    {"start":"09:00","end":"14:00","lunch_start":"","lunch_end":""},
    {"start":"","end":"","lunch_start":"","lunch_end":""}]


    Темплейттегом рендерится в форму:

    fd32890a341441088bafb4bf1030b5fa.png

    На стороне клиента яваскриптом всё отслеживание и высчитывается. Решения проще не нашёл.
    Ответ написан
    1 комментарий
  • PHP с нуля. Где смотреть примеры практического использования?

    Советую Лаура Томсон и Люк Веллинг "Разработка WEB-приложений на PHP и MySQL" Она в самый раз для тебя сейчас!
    Помню как то был в такой же ситуации. Знал практически все но не знал как что с чем использовать и вообще зачем это знать. А вот тут Лаури создает интернет магазин поэтапно и разжеванно все!
    Ответ написан
    1 комментарий
  • Является ли уход из университета правильным решением?

    @portfelio
    Правильным решением является то, которые вы принимаете осознанно. Какая разница, кто и как поступал в аналогичных случаях?
    Ответ написан
    Комментировать
  • Как реализовать правильно авторизацию с сессиями на codeigniter?

    Вообще фрейморки тем и хороши, что в них уже есть все самое необходимое, а если и нету, то скорее всего кто-то это уже написал.

    Для авторизации можно, например, взять плагин ion_auth. Не сказать что он идеален, но достаточно простой и универсальный (сам начинал с него, да и сейчас им пользуюсь, правда там мало чего родного осталось - переписал почти полностью)

    для сессий есть встроенный класс, там ничего особенного - cidocs.ru/210/libraries/sessions.html

    для БД тоже есть простой класс - cidocs.ru/210/database/index.html
    Ответ написан
    1 комментарий
  • Как сохранить информации в Лист на ASP.NET MVC 4.0?

    Vadimyan
    @Vadimyan
    Программист C#
    Привет. Я согласен с @foxmuldercp - материалы полезные.
    static-поле в контроллере - худшее из возможных решений. Архитектура MVC предполагает наличие модели, которую вы игнорируете. Контроллер должен работать с неким репозиторием в части извлечение и сохранения данных. Приведу упрощенный пример
    public interface IUsersRepository
    {
        UserInfo SaveUserInfo(UserInfo user);
        IReadOnlyCollection<UserInfo> GetUsers();
    }


    В этом случае ваш контроллер может выглядеть следующим образом:
    (Это тестовый пример, на практике нужно использовать DI через IoC-контейнер для внедрения репозитория)
    public class HomeController : Controller
    {
        private readonly IUsersRepository _usersRepository;
        public HomeController()
        {
            _usersRepository = new UsersRepository();
        }
            
        public ActionResult Index()
        {
            var users = _usersRepository.GetUsers();
            return View(users);
        }
    
        public ActionResult Create()
        {
            return View();
        }
    
        [HttpPost]
        public ActionResult Create(UserInfo userInfo)
        {
            if (ModelState.IsValid)
            {
                _usersRepository.SaveUserInfo(userInfo);
                Users.Add(userInfo);
                return RedirectToAction("Index");
            }
            return View();
        }
    }


    При этом работа по сохранению пользователей переносится на реализацию интерфейса IUsersRepository. В зависимости от ваших потребностей, вы можете реализовать хранение коллекции пользователей в БД, в файле на диске, в оперативной памяти (для этого нужно либо сделать репозиторий синглтоном, либо заговнокодить статическую коллекцию в нём).
    Несколько замечаний напоследок:
    1. Репозитории обычно отвечают за работу с конкретным хранилищем данных на уровне сохрани/удали/извлеки, а места для бизнес-логики не остаётся. Поэтому звеньев может быть еще больше - есть сервис бизнес-логики для работы с пользователями, который через репозиторий извлекает данные, а после формирует модель для отдачи контроллеру. Таким образом из класса EF code first Person может формироваться модель UserInfo.
    2. Еще раз напомню про материалы @foxmuldercp , которые на начальных этапах изучения mvc могут быть очень полезны.
    Ответ написан
    Комментировать
  • Программирование + Исскуство, что изучить?

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

    Sardar
    @Sardar
    не понимаю выигрыш от того что их можно не писать руками

    Есть множество других аспектов у работы с БД, кроме как выборка данных. ORM обычно обвязан кучей смежных возможностей. К примеру schema migrations – автоматическое изменение таблиц под последнюю версию. На подобии того как git/mercurial/etc держат версии вашего кода, также должны быть версии вашей БД, с помощью которых можно выкатывать обновления или возвращаться назад. Помимо миграций есть архивы, утилиты для заполнения тестовыми данными и прочее-прочее.

    Если хочется попробовать чего-то нового, то попробуйте Django. Да, это python. Для смелых можно Pyramid. Питон сам по себе очень гибкий с его мета-программированием. Вам больше не нужно генерить файлы с кодом или держать кеш под автоматически сгенерированный код. Нет глобального namespace, где неизвестным образом появляются классы, следовательно нет танцев с class loaders и всегда ясно откуда и что пришло - это очень повышает ясность кода. Любые объекты самоописываются, так, что можно получить веб-формы из ORM моделей, автоматическая валидация, generic views (django view == контроллер для всего остального мира) и многое другое. Автоматическая админка. Хороший асинхронный фреймворк в лице Celery. Неплохое управление на management commands, которые легко пишутся. Вместе с Fabric уходит головная боль с выкатыванием новых версий на тестовые и боевые сервера. В общем batteries included.
    Ответ написан
    1 комментарий
  • ASP.NET или PHP. Что начать учить?

    HDApache
    @HDApache
    PHP программист
    Если Вы хотите работать и зарабатывать деньги то выбирайте PHP, да он совсем не элегантен и не так крут как Python, C#, JAVA (нужное подчеркнуть). Но PHP как не крути это 90% рынка труда. Никто не мешает паралельно для души писать на чем то более приятном. Как говориться "мыши плакали, кололись, но продолжали жрать кактус..."
    Ответ написан
    1 комментарий
  • Какие могут быть практические рекомендации по переезду разработчика на постоянную работу из региона в Москву?

    EvilsInterrupt
    @EvilsInterrupt
    System programming, Reversing Engineering, C++
    Тут все как в переходе на FreeBSD или Linux. Да, просто берешь и переходишь.

    Я в 2007-м переехал так из глубинки(Татарстан):
    1) На старте было 27.000 руб
    2) Нашел через интернет человека которым был нужен программист за 35. 000 руб в в то время (Декабрь 2007)
    3) По чистой случайности именно он и предложил место для жилья. За 10.000 руб. в месяц.

    И того у меня сразу было 10 за квартиру, осталось 17.000, из них потратил сразу же на месячный абонемент в метро. Потом нашел места где можно по дешевле кушать, рыскал по интернет специально.

    В Москве ща можно найти, уверенно причем, 1-комн квартиру без хозяев за 25 и того с тебя будет 12.5 в месяц. Я к тому что нужно будет поискать компаньона чтобы на двоих платить! Ну на проезд в метро 1200 это 60 поездок, где-то 1.000 интернет и где-то 5-6.000 руб на покушать. И того готовь 12.5 + 1.200 + 1.000 + 6.000 руб. это из расчета на месяц, но лучше накопи 40-50 чтобы на 2 месяца уверенным быть.

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

    Да. По опыту скажу, первые 5-6 месяцев всех "понаехали" тянет обратно домой. Поэтому будь готов психологически, что придется окрепнуть морально ;)

    Также, забыл сказать, если переедешь, первое время билет не важно какой должен быть с собою. В течении 90 дней любой билет ЖД-поезда будет служить тебе временной регистрацией. Другими словами, если домой не поехал, а 90 дней проходят, иди и купи за 500-600 до какого-нибудь Владимира главное из него до Москвы, а в кассе на вопрос: "А туда как?", так и отвечай что кто-нибудь докинет, походу дела придумаешь.
    Ответ написан
  • Можно ли быть одновременно разработчиком моб. приложений и web-разработчиком?

    foxmuldercp
    @foxmuldercp
    Системный администратор, программист, фотограф
    Я из админа с 16 летним стажем сейчас тоже начал развиваться в разработчика.
    C# + Asp.Net MVC, соответственно Html, JQuery, Twitter Bootstrap, MS SQL, Linq, Entity Framework.
    сейчас постепенно пишу свой вариант домашней веб бухгалтерии, он уже живёт в Azure
    Ответ написан
    Комментировать
  • C++ или C#, с чего начать изучение с позиции фрилансера?

    @Igor_Sib
    Раз интересует Unity3d, наверно разумнее изучить C#.

    Не знаю как с точки зрения фрилансера, но с точки зрения разработчика игр (я с 2010 пишу на C#, до этого лет 10 писал на C++) - C# лучше. Мне больше нравится.

    На C# пишешь именно код, логику игры. Из плюсов - скорость разработки выше, код понятнее.

    На C++ же приходится делать много дополнительной работы, все эти выделения памяти, указатели, и т.п. утилитарные вещи, которые нужны помимо основного алгоритма.

    Конечно C++ быстрее, но сейчас глядя на топы игр - понимаешь что это не актуально, любую игру из топов можно переписать на шарпе.
    Ответ написан
    Комментировать
  • C++ или C#, с чего начать изучение с позиции фрилансера?

    С позиции фрилансера больше востребованы Java и PHP.
    Хотите писать под винду и .Net - C#. Хотите кроссплатформенности - С++. Не знаете с чего начать - начните с С.
    Ответ написан
    Комментировать
  • Как сделать авторизацию в Django только по логину (без пароля)?

    MAKAPOH
    @MAKAPOH
    многостаночник
    Думаю что да. Напишите свой authentication-backend и добавьте его в AUTHENTICATION_BACKENDS в settings.py. Ещё наверно надо будет форму входа поднастроить. Вам надо и в админку входить только по логину ?
    Ответ написан
  • Проработка цели-Профессиональный Web-программист

    1. Подтягивать английский. Без него туго приходится.
    2. На том же хабре часто мелькают codeacademy, coursera и прочие курсы. Почему бы с них не начать?
    3. Ходить по собеседованиям, где теоретически сможешь пройти. Примут\не примут - все равно, нужно найти пробелы в знаниях и их исправлять.

    Выполнять до получения работы.
    Ответ написан
    Комментировать