• Какие ЯП не требуют кучу прикладнухи для устройства на работу?

    @MarkusD Куратор тега C++
    все время мелю чепуху :)
    LUA скриптер может знать только LUA и работать без затруднений.
    Python скриптер может знать только свой ЯП и спокойно работать.

    Уяснить тебе стоит одну очень важную вещь. Один лишь нужный ЯП знать для работы может только скриптер.
    Для разработчика-же крайне важны знания как можно более широкой информационной периферии своей области.
    Ищи игровые студии/компании которым нужны LUA/Python скриптеры. Но запомнить надо еще одну вещь - для очень многих людей это дорога без возврата.
    Ответ написан
    1 комментарий
  • Какие ЯП не требуют кучу прикладнухи для устройства на работу?

    Я постараюсь подключить философию, примеры и "как если бы я говорил в баре с вами".

    ЯП - это инструмент. Инструмент всегда взаимодействует с объектом и со средой. Соответственно, вам точно нужно что-то знать про объект и уметь пользоваться инструментом внутри среды, а это потащит дополнительные знания, назовем их "естественными" зависимостями. Насколько глубоко их нужно знать? Тут ответа не бывает: настолько, насколько нужно и хочется. Тут важен баланс и акцент. Если нет строгих параметров на уровне разума, нужно верить интуиции, потому что больше нечему. Для JS-программиста JSON/jQuery/AJAX - это естественные зависимости, их в любом случае не получится обойти. Даю зуб, что вам хватит вечера и немного гугла, чтобы стать чуть ли не LIKE A PRO в этом. Это все форматы хранения данных, либы, парадигмы. Это примерно как прочитать состав у шоколадки по сложности и входному порогу. Скорее всего, вас пугают сложные слова. Примерно как сказать "НАПРАВЛЕННЫЙ АЦИКЛИЧЕСКИЙ ГРАФ", и вы сразу знаете теорию графов, хотя с практической точки зрения суть настолько элементарна, что аж страшно, а вы будете долго прокрастинировать и искать что попроще.

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

    Вы можете просто верстать (html/css) и игнорировать программирование в целом. Но естественная среда противится: вы уже (!) пишете на декларативном языке, неплохо было бы узнать об этом подробнее (о языках или даже о типизации), тем более, что крайне близко к вам находится интереснейший язык js, а там моментально вылезут проблемы связывания html и js, разные подходы к этому, целые парадигмы и фреймворки; и вот вам выпадает интересная задача по анимированию svg, вы курите мануал по нужной либе, читаете что-то про reflow/repaint, внезапно узнаете что-нибудь про селекторы. И через какое-то время, будучи все тем же верстальщиком, вы видите архитектурный косяк дизайна, который очень неудобно укладывается в используемые технологии, предлагаете его пофиксить и спасаете команду от факапа через месяц, когда какой-нибудь транзишн наложится на какой-нибудь position: fixed и еще и в Safari упадет анимация и только там, а тут и новая тудушка: "Переделать, нафиг, всю шапку, чтобы ок было". Что-то изменилось в мышлении и картина стала полнее. ВНЕЗАПНО вы уже и инженер, можно сказать, ЗП растет, все дела, рутины меньше стало.

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

    Подведу тут черту: естественные зависимости - это норма, а суть в инжиниринге. Можно двигаться по зависимостям дальше. У вас есть интервал, где есть минимальный порог, ниже которого нельзя, и максимальный, где вы "мастер на все руки", что тоже плохо. Между минимальным и максимальным порогом можно двигаться. Взять те же сети: разворачиваете приложение, видите линуху, настраиваете сеть. Можно немного заморочиться и прочитать про основы маршрутизации, буквально 2 вечера, можно еще про сетевой стек в линукс, еще 2 вечера, и уже будет во много раз проще. Кроме того, возрастет культура в целом и если вы программист на бэке, то вам будет проще взаимодействовать с админами. Про OSPF, очевидно, читать не надо, важен баланс. Баланс - это понимание того, на что у вас акцент (вы программист? какой? фронт/бэк? насколько важны сети/ос? проектируете бд? верстаете? интересен ли прикладной кодинг под какую-то ос и так далее...) и насколько интересны естественные далекие зависимости выбранной области.

    Так вот, теперь у нас есть естественные зависимости, инжиниринг и баланс между порогами. А не php/jquery/html/css.

    Важно также отметить, что все очень быстро развивается сейчас, а это еще один аргумент, что привязываться к инструменту не стоит. Кто-то может сказать, мол, взять тот же js, программирование на нем - это целая парадигма, иной подход, свои фичи. Это так, но дело тут не в js, а в целом в динамичных/интерпретируемых языках.

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

    А теперь, собственно, выводы:

    1) Вакансий крутых много, надо пробовать. Нужно только отличать близкие и необходимые естественные зависимости от мастера на все руки. Я считаю, что мастером на все руки нужно поработать хоть однажды, чтобы просто понять, почему это плохо. Но зависимости будут всегда, и это норма. Вы перечислили слишком радикально, конечно.
    2) Себя пилить под вакансию не нужно. Нужно просто идти туда, где интересно, всегда стараться быть инженером и не убить в себе искусство (то есть не бояться делать так, как кажется правильно, чтобы либо убедиться в правоте, либо ошибиться и стать круче).
    3) Не нужно думать в стиле "а что если завтра рубионреилс развалится, комьюнити разойдется, вакансий не будет, что я буду делать". Вы же инженер. У вас опыт в проектировании IT-систем, перейти на что-то смежное, если будет понятно, что технология умирает, не составит труда.
    4) По естественным зависимостям нужно двигаться по мере интереса, вы станете от этого только лучше.

    Это, конечно, если вам действительно все это интересно. Все это области, очень близкие к искусству, и тут надо любить все это делать.
    Ответ написан
    8 комментариев
  • Где водятся специалисты JavaScript?

    index0h
    @index0h
    PHP, Golang. https://github.com/index0h
    > ... который мог бы совмещать качественных фронт и бэкэнд на node.
    Не ищите 8-мирукого Шиву. Backend и Frontend отличаются очень сильно.
    Хороший фронтендщик должен уметь верстку, уметь браузерные фреймворки и знать нюансы работы каждого из поддерживаемых браузеров + фотошоп и т.д.
    Хороший бэкнедщик (nodejs) должен знать как минимум несколько бэкенд фреймворков, как минимум одну СУБД, уметь в линукс (если проды под ним), знать k-v базы данных и т.д.

    Это при том, что оба должны знать JavaScript.

    Обратите внимание, какие вопросы задаются на собеседовании. Очень много зависит от интервьюера. Бывали довольно забавные случаи:
    1. Ок, про горизонтальное расширение поговорили, про индексы бд поговорили, про системы кэширования поговорили, а теперь практика: что произойдет (показывает код) $a = 5 + '5abc' + 'abc5';. Я: Вообще говоря 10, но на самом деле - постараюсь поговорить с автором с целью понять, что такое ужасное может произойти в жизни, что бы он позволил себе такое написать. (сразу после этого вопроса желание идти в эту компанию поубавилось)
    2. Назовите хотя бы 5 плейсхолдеров sprintf. Я: я ее не использовал. Но как же, все ее используют! Я: вы помните все плейсхолдеры функции date, помимо стандартных Y,m,d,H,i,s ? ....

    > Сергей
    > который знает js, а Node.js, это библиотека.
    Очень спорно)), браузерный и серверный js довольно сильно отличаются. Если программист знает nodejs - он знает js, в противном случае - велика вероятность, что он просто знает jquery, такое сплошь и рядом.

    UPD

    > Тимофей
    > Нельзя "знать node.js". Это как сказать, что я знаю не Java, а JVM или не C#, а .NET.
    Вы мой комментарий прочитайте еще раз.
    > Если программист знает nodejs - он знает js
    В браузерном JS чуть-что всегда можно перезагрузить страничку. Проблема утечек памяти в там в принципе возникает, если пишется SPA, или его производные. В то же время на серверной части - это критично.
    Я лично, когда собеседовал соискателей задавал вопрос: как на существующем сайте (там jquery не установлен), с помощью jquery нажать на кнопку? Единицы отвечали что-то в стиле "создать DOM элемент script под jquery, а дальше нажать через click", в большинствен случае было что-то невнятное в стиле "ыыы....", или "никак".

    Смысл тут в том, что nodejs разработчик обязан знать native js, от фронтендщика это требуется меньше, как следствие существует куча человеков, считающих себя тру-синьйорами, а на деле знаю только jquery.
    Ответ написан
    2 комментария
  • Как вы относитесь к возможности сортировки вопросов Тостера по степени их сложности?

    VitalySorokin
    @VitalySorokin
    тружусь во благо «ТМ»
    В ближайшем будущем постараемся ввести систему рейтинга и оценки сложности вопроса, уже не раз обсуждали возможность фильтровать ленту вопросов ползователя по категории сложности.
    Остается придумать как мотивировать «продвинутых» пользователей помогать тем, кто только начинает учиться, так как от них поступает большая часть вопросов, и они нуждаются в «быстрых» и полных ответах, не менее других.
    Ответ написан
    21 комментарий
  • Какие ЯП не требуют кучу прикладнухи для устройства на работу?

    barmaley_exe
    @barmaley_exe
    Никакие.

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

    Вообще, в области server / desktop / mobile очень сложно уйти далеко без, как минимум, следующего:
    • Объектно-ориентированное программирование и проектирование — ведь код не должен быть говном
    • Параллельное программирование — ведь делать нужно много и быстро, а у нас уже 10 лет как многоядерные машины есть
    • Сети — ведь нельзя жить без интернета
    • Базы данных — ведь данные надо где-то хранить, и хранить надёжно


    hardware не комментирую, но там ещё хардкорнее.

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

    gadfi
    @gadfi
    https://gamega.org
    кофе носить ...
    А если серьезно то когда деревья были зеленее, небо синее, мои глаза не имели нежнорозовго оттенка и под ними не было мешков, а фраза hello world значила для меня привет мир на буржуйском языке, никак не ассоциируясь с первой программой любого программиста ─ уже тогда просто знания языков было не достаточно.
    Возможно если вы классно знаете с++ вам этого хватит, но как вы можете классно знать с++ не зная как работать к примеру с сетью или портами ? И так всюду, чуть глубже копнуть и уже оказывается нужны дополнительные знания.
    php без базового знания html ─ что вы с ним делать то без него будете ? окей это реально, встречал удачные архитектурные решения когда бэкэнд хорошо продуманный rest сервер, которому не принцыпиально кому он отдает данные, веб клиенту написанному на js(да да с использованием знания html, css..) или мобильному клиенту. Только для написания такого сервера нужно знать что такое rest и с чем его едят, базы данных и многое другое и да json/xml в том числе ) вас как джуна самостоятельно никто на такое не поставит
    Вы выделили JSON отдельным пунктом, что немного странно, хотя многие компании действительно часто пишут в вакансиях знания json/xml ... бред честно говоря, времена когда приложения варились в собственном соку прошли, мне трудно представить области(хотя они конечно есть, но там хватает других очень специфичных знаний) где обходятся без них, даже контролеры сейчас все чаще работают с сетью ...
    Для джуна требуется не так уж много, но знания одного языка как правило маловато
    Ответ написан
    Комментировать
  • Какую литературу по Python и Django порекомендуете?

    Atanvar
    @Atanvar
    Frontend developer
    Python - Лутц "Изучаем питон"
    Django - djbook.ru/rel1.7
    Ответ написан
    Комментировать
  • Как объединить два похожих проекта в один?

    Я не работал с Flask и не знаю деталей реализации конкретно ваших приложений, так что в моем ответе скорее общие размышления по теме, чем конкретные рекомендации.
    Есть замечательный принцип DRY (Don’t repeat yourself).
    В соответствии с ним я бы выделил общие или минимально различающиеся части ваших проектов в одно отдельное приложение, например base_crm и подключал бы его в каждом из проектов.
    А уже в самих проектах дописывал, наследовал и переопределял только специфичные для конкретного проекта части.

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

    bobrovskyserg
    @bobrovskyserg
    Сложно:
    Вынести общий код в отдельный проект и произвести дочерние crm-ки
    Геморно/тупиково:
    Слить проекты в один с "условной компиляцией" - включением той или иной функциональности по флагу
    Правильно:
    Оставить как есть: иногда - это ведь не всё время, работает - не трогай.
    Съэкономленное время потратить с пользой ))))
    Ответ написан
    Комментировать
  • Где можно научиться Python для веб-разработки?

    @LLlAMuJIb
    О боги! Ребята, почему вы так делаете? Это все уже по нескольку десятков раз спрашивалось и отвечалось тут.
    Арендуй сервак, разверни на нем питон, напиши агента, который найдет все страницы с подобными вопросами на тостере и агрегирует полученные ответы, можешь выявить частоту вхождения каждого ресурса, предлагаемого пользователями.
    Так сразу двух зайцев убьешь, и вебу подучишься и поиск освоишь.
    Все решается конкретными задачами и поиску ответов на них, придумай себе их и ты будешь молодцом
    Ответ написан
    Комментировать
  • Как сделать дополнительные страницы в админке Django?

    un1t
    @un1t
    Добавляешь в urls.py адрес виде admin/mypage
    и делаешь обычную вьюху в любом своем приложении.
    Шаблон понаследуй от базового админковского admin/base_site.html

    Вобщем точно также как и не в админке.
    Ответ написан
    Комментировать
  • Что можно написать на Node.js?

    MarcusAurelius
    @MarcusAurelius Куратор тега Node.js
    автор Impress Application Server для Node.js

    Часто применяется для:

    1. Локальные приложения и утилиты командной строки
    • Сборщики и трансляторы
    • Пакетная обработка и сценарии отложенной обработки
    • Скрипты, CLI (интерфейсы командной строки)
    • Генерация документации, отложенное формирование отчетов
    • Сценарии тестирования для других систем

    2. Серверы
    • Серверы веб-приложений и SPA
    • Серверы и API для мобильных приложений
    • Любые другие веб-API (RPC, JSON, REST)
    • Серверы сообщений и трансляция событий (чаты, игры, интерактив)
    • Заплаты на уже готовые системы, написанные на других языках, для реализации вебсокетов, SSE, лонг-пулинга и т.д., т.е. для затыкания дыр, для решения проблем в узких местах уже работающих систем.

    3. Клиенты
    • Оконные приложения (nw.js, node-webkit)
    • Кравлеры, парсеры и сбор данных

    4. Железо
    • Программирование микроконтроллеров (arduino, espruino, tessel)
    • Промышленная автоматизация

    Редко применяется (но подходит) для:
    • CMS, публикация контента (просто ниша уже занята и в этой задаче нода не дает чего-то принципиально нового или сверх соблазнительного).
    • Массовая электронная коммерция и торговля (не применяется для массовых движков магазинов, но используется отдельными крупными компаниями для торговых и платежных задач в качестве дополнительного средства к уже имеющемуся ПО, по сути закрывает узкие места).

    И плохо подходит:
    • Вычисления и моделирование, со скоростью математических операций нода и JS, как не типизированный язык, не дают хороших показателей
    • Научные приложения (по тем же причинам)
    Ответ написан
    10 комментариев
  • Какой php-фреймворк выбрать после Django?

    un1t
    @un1t
    Фреймворков хватает (Symfony, Yii, Laravel, CakePHP), но неужели труд по изучению нового фреймворка стоит дешевле хостинга?
    Домен можно перенести куда угодно, проблем быть не должно.
    Ответ написан
    2 комментария
  • Насколько хорош Python для веб-приложений?

    ArthurG
    @ArthurG
    Использую python + google app engine + webapp2 + jinja2, чувствую себя комфортно.
    Ответ написан
    Комментировать
  • Так ли хорош Python в сравнении с R для data mining?

    @polyhedron
    Data Analyst | Data Scientist
    Я использую оба языка, и, признаться, R мне нравится больше. И вы правы, что там есть пакеты абсолютно для всего. Но Python обладает рядом преимуществ, главным из которых является развитая экосистема языка. Преимущества Python очень хорошо описаны тут. Вообще, в этом блоге есть много интересных статей как по Python, так и по R. Что касается deep learning, то для Python есть замечательная библиотека Theano.
    Я бы порекомендовал сосредоточиться на Python, но R также не забывать на случай если понадобятся методы, не реализованные в Python, или будете работать с людьми, знающими только R.
    Ответ написан
    Комментировать
  • Обязательно ли использование моделей при разработке в CodeIgniter?

    Можно расширить штатную модель и предусмотреть в ней методы get($id), save($data), update($id, $data), delete($id). Упрощает и ускоряет работу над проектом. Как расширить есть в доках.
    Ответ написан
    Комментировать
  • Насколько хорош Python для веб-приложений?

    kivsiak
    @kivsiak
    software engineer
    Не стоит. Питон ужасен. Необходимо разобраться с такими вещами как uwsgi, какие-то там фреймворки шаблонизаторы. Все эти django и flask c pyramid. Они смешно подумать даже тянут ущербный вебсервер который только для разработки и можно использовать. Куча разных замудренных асинхронных gevent, tornado, с twisted не будь к ночи он помянут. Нужно знать mvc и шаблонизаторы, понимать и неймспесы с импортами. Вместо того чтобы хуячить смесь html и кода и валить все в глобальное пространство чтобы было под рукой. Какие-то странные метаклассы и декораторы придуманны чисто чтобы людей запутать. Приходится разбираться с пакетами с четко указанными версиями и зависимостями. Всякие сложности с конфигурированием окружения под конкретный проект через виртуальное окружение и четко сформированный список зависимостей.
    А уже эта фигня с отступами они все никак не договорятся что использовать пробелы или табы но все требуют отбивать отступами вместо того чтобы каждый мог писать код как ему вздумается... Всячески гнобят личное творчество.

    Лучше уже писать на PHP - дешево надежно и практично.
    Ответ написан
    7 комментариев
  • На чем разработать агрегатор соцсетей?

    mututunus
    @mututunus
    Backend developer (Python, Golang)
    Python + aiohttp
    Ответ написан
    Комментировать
  • Как прeодолеть зону комфорта, стать фрилансером не обанкротившись?

    uvelichitel
    @uvelichitel
    habrahabr.ru/users/uvelichitel
    Я думаю на ресурсе полно действующих фрилансеров желающих получать >3К евро работая в сильной команде над интересными проектами. Иметь оплачиваемый отпуск, пенсионный стаж, мед. страховку, кофе печеньки и уборщицу в комфортабельном офисе, участие в профильных конференциях, хорошую запись в резюме и при этом время на семью. Рискну предположить, что это смахивает на мечту любого(ну почти любого) российского фрилансера. Есть еще хозяева дворовых веб студий, клепающих как семечки мусорные landing page и конвейерные your very own and truly original web site из пяти шаблонов. Для последней категории мечта неосуществима ввиду слабого профессионального уровня. Работу, которая у вас есть(если не лукавите) я бы стал менять только на лучшую или на собственный instagram, telegram, moneygram etc. Фриланс в вашем случае на мой взгляд просто шаг назад. Работа на дядю (даже паскудного) не такая уж трагедия.
    Ответ написан
    2 комментария
  • Совет начинающему программисту. Как следует подходить к приобритению навыка OOP?

    leahch
    @leahch
    3D специалист. Dолго, Dорого, Dерьмово.
    Ну, для начала почитать паттерны проектирования, они изначально были следаны для явы, некоторые к питону прямо не относятся (в силу того, что на питоне можно вообще без классов, и можно вообще в стиле функционального программирования), но дают хорошую базу именно в ООП. С другой стороны, если в яве дизайн именно ООП, то на питоне иной раз не хочется и класс заводить, а пишешь в стиле функциональщины.
    Наверное первое что нужно сделать, изучить области видимости и помечтать как они могут пригодиться...
    Ответ написан
    2 комментария