Задать вопрос
  • Системный vs Прикладной программист?

    @asd111
    1. Вакансий больше всего под веб программирование и разного рода финансовый софт. Java, C#, Python, PHP.
    2. Зарплата примерно одинаково у всех. Лучше всех тем кто работает удалено на заграничных заказчиков.
    3. Стабильность зависит от компании. Например в jetbrains и в google всегда будут вакансии. У мелких компаний соответственно работы меньше и такая компания может внезапно разорится.
    4. Google будет всегда. Машинное обучение будет всегда. Игры тоже будут всегда.
    5. Муторность. Gamedev - делаешь игровой AI, графику и т.п. В основном геометрия(произведение векторов, матриц и т.п. Google и т.п. web - работаешь со строками, с базами данных, с машинным обучением и т.п.
    Сменить сложную область на web всегда можно, т.к. там учить особо нечего. Тем более после написания игрового сервера на котором можно играть с ботами. Разница пожалуй в том что если быть хорошим веб или Java, C# программистом, то можно в молодом возрасте стать senior или нач. отдела с соответствующей зарплатой(более 100 тыс. руб. мес.). В игрострое стать senior C++ не так то просто, а начальником отдела тем более.

    В целом к игрострою я отношусь прохладно, поскольку от игр нет практической пользы, зато бывают случаи когда из за игр человек портит свое здоровье. На мой взгляд лучше делать медицинские тренажеры и оборудование, промышленных роботов, автопилоты для гражданских машин и самолетов, т.к. если работать на военных то может появиться запрет на выезд, а хорошие программисты часто уезжают, потому что за границей лучше.
    Ответ написан
    2 комментария
  • Системный vs Прикладной программист?

    @Archusha
    https://agaltsovav.ru/
    Ну для студента 2 курса, без опыта, слишком уж категорично откинули WEB.

    Так или иначе все основные системы выходят в web.

    Смотрите сами, выбирайте сами, но не рубите с горяча.
    Ответ написан
    Комментировать
  • Как сделать активную ссылку в Python?

    sim3x
    @sim3x
    Правильное решение! - определить во вью или модели, какой сейчас линк нужно пометить активным
    stackoverflow.com/a/9793609

    Апп
    https://github.com/hellysmile/django-activeurl
    Ответ написан
    Комментировать
  • Обязательно ли знать Bitrix чтобы быть web-разработчиком?

    north_leshiy
    @north_leshiy
    Руководитель направления разработки
    Есть две стороны медали.
    1. Разработка на самой востребованной на рынке пока что в СНГ системе (Bitrix). Востребованной в 1 очередь заказчиками, а не разработчиками.
    Вы всегда найдете себе работу.
    Но вам придется мириться с текущими недостатками, которые исправляются не так быстро, т.к. поддерживается обратная совместимость (они не могут себе позволить ее не поддерживать т.к. имеют слишком большую долю на рынке). Но все же исправляются, и на новое ядро уже переписана немалая часть функционала.
    2. Разработка на фреймверках. В России к примеру распространены YII, Symphony и активно набирающий обороты Laravel. Yii - больше для мелочи, Symphony/Laravel потенциально для более крупных проектов.
    Работа с ними приятнее с точки зрения программирования, но вам потенциально придется писать очень много того что в CMS уже написано. Хотя порой написать новое быстрее чем кастомизировать уже написанное под бизнес задачу.
    Рынок/вакансий на FW меньше, + есть не стабильность, сегодня популярен один FW, завтра другой. Доминирующей позиции ни у кого нет. Если выберете эту ветку - я бы посоветовал Laravel, мне кажется наиболее перспективный, в топовых студиях по крайней мере спрос растет.
    Плюсы данного пути - вы начинаете изучать программирование "снизу", с ООП, ядра, без вариантов. Это сложнее чем изучать CMS, должна быть неплохая теоритическая база чтобы не гавнокодить (имхо).

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

    Ваша лучшая документация код, который под капотом, за красивыми (или не очень) интерфейсами. Хорошо документированных CMS почти нет, bitrix в этом направлении один из лидеров.
    Если скил пока не позволяет читать исходный код и понимать, то начинайте мануалов).

    Вообще для обучения мониторьте HH.ru на тему: junior разработчик. Вам повезет если вы попадете в крупную студию с хорошими ведущими специалистами и хорошей программой обучения. При таком раскладе вас научат программировать вне зависимости от использования платформы и научат базовым практикам корпоративной совместной разработки + быстро отучат говнокодить.
    Если попадете в мелкую - тут придется самому грызть гранит, читать много литературы, вы достигнете всего того же, но за больший период. Для начала кстати посоветовал бы почитать:
    • "PHP. Объекты, шаблоны и методики программирования" Мэт Зандстра
    • "Совершенный код" Стив Макконнелл


    И посоветую не слушать популистов и ненавистников Битрикса. Многие из них просто работали или со старой версией, или работают сейчас, но не изучают новое ядро, не следуют новым практикам, или о новом ядре знают очень мало. А многие попросту плюются на все чем не пользуются сейчас, в духе "все дураки, я один умный", доля конструктивной критики весьма мала, хотя критиковать есть за что. Если бы битрикс был таким полным говном как многие описывают - он бы не занял доминирующую позицию на рынке.
    Ответ написан
    5 комментариев
  • Почему Битрикс так популярен?

    creativeworm
    @creativeworm
    Битрикс = Маркетинг. По сути битрикс держится на внедренцах/разработчиках сайтов, которые кое-как (кто как умеет) применяет их продукт при создании сайта из-за желания заказчика и получает откат.

    Компании считают, что если купят детище Рыжикова, то в последствии будет проще найти специалиста по доработке или сопровождению сайтов. Так же множество компаний работают с 1С многие годы и продукт с такой приставкой 1С-Битрикс автоматически завоевывает доверие и западает в сердцах заказчиков.
    Ответ написан
    Комментировать
  • Как собрать данные посетителя сайта?

    copist
    @copist
    Empower people to give
    Я нашёл в этом вопросе три технологических вопроса:

    1. Про вычисление города
    Есть форма заявки с полями "номер телефона" ... добавлен на базу mysql ... адрес (город проживание клиента который нажал на кнопку)

    Если в форме нет поля для выбора страны и города, то можно вычислить приблизительное местоположение по IP адресу. Это неточная информация, ей нельзя доверять на 100%, потому что пользователь мог зайти на сайт через анонимные прокси. Желательно уточнить у него - "Вы точно из города X?".

    Для автоматического вычисления гео-данных можно воспользоваться платной базой GEO данных сервиса MaxMind или платными открытыми веб-сервисами
    Или бесплатными сервисами, которые возвращают данные с очень большой погрешностью, например вместо города возвращают страну :(
    Пример получения информации через API MaxMind для языка PHP
    <?php
    require_once 'vendor/autoload.php';
    use GeoIp2\Database\Reader;
    
    // This creates the Reader object, which should be reused across lookups.
    $reader = new Reader('/usr/local/share/GeoIP/GeoIP2-City.mmdb');
    
    // Replace "city" with the appropriate method for your database, e.g., "country".
    $record = $reader->city('128.101.101.101');
    
    print($record->country->isoCode . "\n"); // 'US'
    print($record->country->name . "\n"); // 'United States'
    print($record->country->names['zh-CN'] . "\n"); // '美国'
    
    print($record->mostSpecificSubdivision->name . "\n"); // 'Minnesota'
    print($record->mostSpecificSubdivision->isoCode . "\n"); // 'MN'
    
    print($record->city->name . "\n"); // 'Minneapolis'
    
    print($record->postal->code . "\n"); // '55455'
    
    print($record->location->latitude . "\n"); // 44.9733
    print($record->location->longitude . "\n"); // -93.2323


    Пример получения информации об IP адресе на языке PHP через открытый сервис ipinfo.io
    $ip = $_SERVER['REMOTE_ADDR'];
    $details = json_decode(file_get_contents("http://ipinfo.io/{$ip}"));
    echo $details->city; // -> "Mountain View"


    Пример запроса:
    $ curl ipinfo.io/8.8.8.8

    Пример ответа:
    {
      "ip": "8.8.8.8",
      "hostname": "google-public-dns-a.google.com",
      "loc": "37.385999999999996,-122.0838",
      "org": "AS15169 Google Inc.",
      "city": "Mountain View",
      "region": "CA",
      "country": "US",
      "phone": 650
    }


    2. Про передачу данных с веб-страницы
    Как сделать чтобы при нажатии на кнопку запрос был добавлен на базу

    Можно отправить форму на сервер методом POST, а можно передать по технологии AJAX.
    learn.javascript.ru/ajax-intro

    3. Про сохранение в базу данных
    Как сделать чтобы ... эти данные записать на БД

    Язык программирования не указан.Уточните, что именно эта информация нужна - я напишу больше.
    Общий алгоритм: извлечь номер телефона и IP адрес из запроса, вычислить город по IP адресу, записать результаты в базу данных.
    Ответ написан
    2 комментария
  • Все мои логотипы получаются не законченными. В чем дело?

    pozZzitiv
    @pozZzitiv Куратор тега Дизайн
    Дизайнер и перфекционист
    Если не знаете что не так, то читайте книги и учитесь чтобы понимать что именно не так.

    Плюс ко всему, выстраивание логотипов по каким-то строгим, математически выверенным, сеткам — фигня. Лого, в первую очередь, должен выглядеть хорошо оптически. А когда мудрят с буквами/текстом как раз такая фигня и получается. Изучайте типографику чтобы понимать как веками строились буквы и почему они именно таких размеров. Пока не станете разбираться в этом всегда будет «что-то не так».
    Ответ написан
    7 комментариев
  • Что если вся "data science" сведется к последовательности вызовов готовых функций?

    @VZVZ
    Reverse-Engineer, Software Developer, Architect
    > создается куча курсов, пишутся книги, в которых все сложные с математической точки зрения алгоритмы объясняются на пальцах
    99,(9)% уверен - вы жОстко преувеличиваете, и не все там так радужно у Data Scientistов.
    Вы сами-то пробовали те курсы и книги в деле?
    У нас реверс-инженеров в этом плане вообще печалька по определению))) но я-то не только реверс-инженер, я занимаюсь и кучей иных областей, и проблемы с документацией и высокоуровневыми средствами вижу в абсолютной любой области, даже самой-самой банальной и стандартной, типа разработки СУБД для предприятий.

    И если бы вдруг с неба упала куча сверхвысокоуровневых средств или книг с кучей готовых решений, то я бы от этого ни разу не пострадал.
    1. Насчет удобных инструментов, большинству просто синдром утенка не позволит на них перейти. А еще они платные же должны быть, иначе это вообще фантастика какая-то. Так что разброс между мною и ими - увеличился бы, а не уменьшился.
    2. Насчет книг, навыки принципиально не может давать никакая книга. Если только она волшебная, как живая вода или ковер-самолет.
    3. Ну и, как и многие другие, скажу, что если мои текущие знания и навыки окажутся не нужны, то я просто возьму и освою что-то новое.
    Могу писать программы для американских горок. Могу сверлить и резать стены. Могу перебирать ДВС и варить водопроводные трубы. Могу ремонтировать ноутбуки, смартфоны. Могу стать воздушной планетой. Могу стать воздушным асом. Берем телевизор, вставляем в Мурманский полуостров
    А еще я стану больше бизнесменом. Не меньше, а больше! Ибо больше идей, проектов, меньше технической части.
    А кто так не умеет - тот, осмелюсь сказать, вообще не особо-то и программист. И трястись над навыками и знаниями ему уж точно не стоит - у него их нет. У него нет общих навыков и знаний, иначе бы он тоже так умел.
    Вотъ.
    Ответ написан
    Комментировать
  • Вопрос по запуску Django сайта на сервере?

    syschel
    @syschel
    freelance/python/django/backend
    leha78: Я обычно окружение конкретного проекта кладу рядом с проектом, но не в саму папку проекта
    - sites
     + project_name_one
        - env (тут окружение)
        - tmp
        - logs
        - source (тут весь код)
      + project_name_two
        - env (тут окружение)
        - tmp
        - logs
        - source (тут весь код)

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

    @asd111
    Изучи как использовать grep и git.
    И ещё как подключаться по ssh,sftp, как настроить nginx для запуска python/django и всё.
    Ubuntu.
    Ответ написан
    Комментировать
  • Какой дистрибутив Linux лучше изучить?

    VladimirAndreev
    @VladimirAndreev
    php web dev
    попробуй без GUI средств на Ubuntu 14.04

    поставить и сконфигурировать веб-сервер, поставить все нужное питону, запустить свой проект, чтоб отзывался по домену project.local и нормально работали все-все фичи, включая кеширование на диск

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

    на первое время этого хватит.
    Ответ написан
    Комментировать
  • Какой дистрибутив Linux лучше изучить?

    saboteur_kiev
    @saboteur_kiev
    software engineer
    Вам нужно учить скорее всего не дистрибутив, а просто общую работу в *nix, то есть работу в командной строке. Поставьте любой дистрибутив, Ubuntu, Mint, CensOS, и освойте например:
    установку и запуск собственно скриптов на питоне
    права доступа к файлам, вообще навигацию по файловой системе
    перенаправление ввода и вывода
    подключение по ssh, можно еще и по ssh-ключам - очень пригодится
    Ответ написан
    Комментировать
  • Как задать каждому полю отдельный класс?

    Roman Kitaev дело говорит. послушайте его
    а Ваша проблема решается так

    class VacForm(forms.ModelForm):
        vac_name=forms.CharField(widget=forms.TextInput(attrs={'class':'supername'}))
        class Meta:
            model = Vacancies
            fields = ('vac_name', 'vac_req','vac_obz', 'vac_usl','vac_salary', 'vac_comp','vac_zan', 'vac_locat', 'vac_exp','vac_cat', )


    либо так
    class VacForm(forms.ModelForm):
            vac_name.widget = forms.TextInput(attrs={'size': 10, 'title': 'Search', 'class':'supername''})
    .....
    Ответ написан
    1 комментарий
  • Как задать каждому полю отдельный класс?

    @deliro
    Я пока неопытный и учусь, поэтому не судите строго.

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

    Я уже сто раз тут это писал и ещё напишу, пока будет эта жесть.
    Вот создал ты модель вакансий. Ты моделью описываешь единичную сущность, а назвал Vacancies - множественным числом.
    Дальше: вот у тебя есть модель вакансий. Зачем ты каждому полю даёшь имя, дублирующее имя модели? (Я про vac_*). Создал ты вакансию, да:
    vacancy = Vacancy.objects.create(...)
    И пошёл получать атрибуты:
    vacancy.vac_name # Красиво, п****ц, да?

    Сокращённые названия атрибутов - красота. Через полгода ты понятия не будешь иметь, что за vac_zan, vac_usl, vac_cat. А человек, который будет с тобой работать в команде или рефакторить это после тебя получит отличный набор головоломок в подарок к коду.

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

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

    Ответ на вопрос: https://pypi.python.org/pypi/django-widget-tweaks
    Ответ написан
    1 комментарий
  • Развернуть сайт Django 1.9?

    @deliro
    nginx на фронт 100% (не апач)
    WSGI сервер выбирай из uWSGI и Gunicorn

    В общем получается так:
    nginx <-> uWSGI <-> Твоё приложение
    Статику отдаёт nginx напрямую.

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

    zelsky
    @zelsky
    profile.user.last_login проверять , если пустое то в первый раз
    Ответ написан
    6 комментариев
  • Можно ли работать программистом после 9 классов?

    За 6 лет работы об образовании и "прочтенных книгах" спросил только один заказчик (5 лет назад :)). Работала с компаниями, студиями, стартапами, фрилансила и работала в паре с разработчиками. Только портфолио и своя собственная адекватнось решает. Очень важно, чтобы у вас с самим собой не было проблем из-за "недостатка образования". Если вы самостоятельно обучаетесь постоянно, читаете и развиваетесь, то не важно сколько официальных лет вы просидели в школе, техникуме, институте, не за эти качества вас на работу берут. Если вы приносите профит компании, то вас будут ценить, переманивать и всячески поощрять.
    Ответ написан
    3 комментария
  • Можно ли работать программистом после 9 классов?

    @abcyu
    Разработчик
    Кроме гос. контор, корпораций и заграничной работы (рабочую визу не дадут без вышки) - по сути никому это не надо.

    Но Яндекс и Мейл будут смотреть уже на репутацию, опыт, познания реальные, вряд ли на диплом.

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

    P.S.:
    Я помню, меня тоже пёрло, когда моя примитивная программа на принтер 2 слова вывела.
    И очень ЧСВ поднимает когда тебе все кругом в рот глядят когда ты Винду ставишь.

    Но это еще не мастер.

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

    P.S.:
    При прочих равных диплом всегда плюс. Хотя в реальности я его не показывал.
    Ответ написан
    2 комментария
  • Какие ресурсы помогут в изучении английского языка для веб-разработки?

    IonDen
    @IonDen
    JavaScript developer. IonDen.com
    Отличный способ обучения английскому - переводы. Например на хабрахабре это нормальная практика, публиковать переведенные технические статьи.

    Возьмите какой-либо дайджест (например habrahabr.ru/company/zfort/blog/275279 ), видите как много статей на английском и как мало на русском? Попробуйте внести свой вклад, переведя парочку. Поначалу будет чертовски сложно, но я вас уверяю, через какое-то время у вас прилично так повысится уровень языка, ибо это реальная практика.

    Попробуйте сосредоточиться на переводе статей про JS, раз уж хотите его учить.
    Ответ написан
    8 комментариев
  • Как правильно настроить media-root?

    neatsoft
    @neatsoft
    Life is too short for bad software
    MYSITE_URL = '<abs_path>/domains/mysite.ru'
    STATIC_ROOT = os.path.join(MYSITE_URL, 'static')
    MEDIA_ROOT = os.path.join(MYSITE_URL, 'media')

    Но для production это не подходит. Каталог static нужно раздавать с помощью nginx (предварительно скомпоновав его с помощью python manage.py collectstatic), a media выносить на отдельный домен (для предотвращения XSS уязвимостей).
    Ответ написан
    3 комментария