• Как получить опыт для устройства на работу 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 комментариев
  • Что можно реализовать на разных языках программирования? С++ Java Python на какие ОС?

    @crackhd
    Начинайте с C++ только в случае, если чувствуете тягу к очень сложным задачам. Сам язык ничуть не сложнее (местами логичнее и свободнее ВСЕХ, лишен ненужных сомнительных синтаксических дополнений), но занимает дольше времени и требует больше "опыта" перед адекватными релизами - так как он нативен (в отличае от всех остальных), на нем не очень просто что-то сделать с нуля и быстро, однако для каждой отдельной задачи 100% существует какой-нибудь проект в сети или решение. Реально - нужна любовь к ремеслу. Я так это называю.

    Все остальные языки это как стероиды. Но это не минус. Я пишу на C++, C#, подумываю о Java. Но я никогда не пойду к пайтону.
    Прежде чем выбирать язык надо знать, что смотреть на самые популярные и продвигаемые не для всех норма. Есть языки, которые просто не достаточно продвигались, в отличае, от, например C# и платформы .net, и Java, которых очень серьезно коммерчески продвигают крупные компании. Языки C/C++ популярны именно из-за своего технического совершенства, это сделало их решениями во многих областях автоматически.
    Есть языки, не буду утверждать какие, которые популярны именно благодаря стремлению к "великому святому свободному open-source", и тут тоже не без помощи спонсоров.

    p.s. Герберт Шилдт - очень тольковый автор. Еще совет, не тратьте время на то, что вам не нужно, времени понадобится много, например не надо одновременно лезть в десктоп, в веб, в линукс (как примеры). Но всегда полезно знать базис разных технологий.

    C/C++ - Кроссплатформенность, но разные компиляторы, для разных ОС (то есть проще говоря разные фреймворки для каждой платформы). Тяжесть языка, если взвешивать на равне с другими любыми. (Я считаю этот язык должен насильно впариваться перед любыми другими, но не шариат же у нас.=))
    Oracle Java - кроссплатформенность(включая ОС Google Android)
    Microsoft .NET (VB, C#, F# и др.) - неофициальная кроссплатформенность (с тормозами и без WPF - Mono)
    Apple Objective-C - язык используемый Apple в своих ОС.
    Определитесь, хотите ли вы быстро создавать, или хотите действительно знать. Возможно задачи совместимы.

    Возможно вам действительно стоит пойти в сторону Java, но никак не Python (ИМХо).
    Если хотите идти в сторону веба начинайте с абстрактного понимания HTML, CSS, PHP, а затем уже думайте что вам надо, Flash, Java, или припрет работать на стороне сервера.=)
    Ответ написан
    1 комментарий
  • Доменная зона .io — что я пропустил?

    Один из омонимичных доменов:

    .am — национальный домен Республики Армения, созвучен с диапазоном радиостанций AM или как зона AMerica.
    .cd — национальный домен Демократической республики Конго (иначе — Заира), совпадает с сокращением для компакт-диска.
    .dj — национальный домен Джибути, совпадает с сокращением «диджей».
    .fm — национальный домен Федеративных Штатов Микронезии, созвучен с диапазоном радиостанций FM. Пример: last.fm.
    .im — национальный домен Острова Мэн. Совпадает с сокращением Instant Messaging («мгновенные сообщения»).
    .io — национальный домен Британских территорий в Индийском океане. Совпадает с сокращением Input Output («ввод/вывод»).
    .is — национальный домен Исландии. Совпадает со словом is, формой третьего лица единственного числа английского глагола to be. Пример: who.is
    .it — национальный домен Италии. Совпадает с сокращением IT (информационные технологии), а также с английским местоимением it («это»). Пример: ok.undo.it
    .md — национальный домен Молдавии. Совпадает с сокращением аудионосителя MiniDisc и с сокращением Must Die. Также совпадает с сокращением от англ. medical doctor, используемым повсеместно в англоязычных странах. Например, известный американский сериал «Доктор Хаус» в оригинале называется House, MD.
    .me — национальный домен Черногории. Совпадает с местоимением «меня», «мне» в английском и других европейских языках.
    .net — общий домен верхнего уровня, совпадает с русским словом «нет», из-за чего обрёл в России (и не только) дополнительную популярность. Часто используется с доменными именами в виде транслитерированных русских слов. Примеры: mozga.net, lishnih.net.
    .nu — национальный домен острова Ниуэ, созвучно со словом ню.
    .tm — национальный домен Туркменистана, совпадает с аббревиатурой «™» (англ. trade mark — торговая марка).
    .tv — национальный домен Тувалу, совпадает с аббревиатурой «Телевидение».
    .ws — национальный домен Западного Самоа, совпадает с аббревиатурой Web Site.
    .in — национальный домен Индии, с английского языка переводится как предлог «в».
    .li — национальный домен Лихтенштейна. Совпадает с окончанием глаголов и имён существительных в русском языке. Используется с доменными именами в виде транслитерированных русских слов. Примеры: zadolba.li, zastuka.li, vaf.li, gus.li, yas.li.
    .pro - общий домен верхнего уровня для профессионалов в своей области.
    Ответ написан
    3 комментария
  • Как оценить свои способности в проектировании пользовательских интерфейсов?

    Matoke
    @Matoke

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

    Ответ написан
    Комментировать
  • С чего начать и как изучить веб-дизайн, дизайн интерфейсов в целом?

    nvkzNemo
    @nvkzNemo
    Что бы не совершать кучи ошибок допускающихся художниками и полиграфистами пришедшими в веб, а так же понять в чём заключается веб-дизайн, а так же дизайн интерфейсов, рекомендую нижеприведенные книжки, в том порядке, в котором читал их я. Я перечитал кучу литературы, но эти самые стоящие.
    1. Стив Круг «Веб-дизайн или Не заставляйте меня думать»
    2. Якоб Нильсен «Веб-дизайн»
    3. Дональд Норман «Дизайн привычных вещей»
    4. Джеф Раскин «Интерфейс»
    5. Алан Купер «Психбольница в руках пациентов»

    Ну и конечно же не забывать про Ководство и периодически заглядывать в Советы.

    Нормального самоучителя по созданию макета от А до Я мне не встречалось. Иногда проскакивают статьи на сайтах вроде Smashing Magazine, или на Техдизайнере.

    Ну а что бы быть «в тренде» — могу посоветовать, для тренировки, отрисовать один-в-один несколько сайтов именитых веб-дизайнеров (нарпимер с Ревижена, только не вздумайте их в портфолио ложить себе потом), прочитать всё что найдёте про модульные сетки (1, 2 и т.д.) и регулярно посещать Dribbble.
    Ответ написан
    2 комментария
  • CMS своими руками

    ajaxtelamonid
    @ajaxtelamonid
    Laravel
    Все просто.
    1. Изучить какой-нить фреймворк типа Symfony 2 (посложнее) или Kohana (попроще).
    2. Дальше узнать про Nested Sets для оперирования древовидными структурами (статьи в категориях, комменты).
    3. Сделать CMS.
    Ответ написан
    Комментировать
  • CMS своими руками

    Для начала можно взять какие-нибудь лёгкие движки, в которых минимальный функционал, посмотреть, как реализовано, после взять ещё один, его ковырнуть, в итоге начнёшь понимать саму структуру (это, кстати, очень важный пункт). Книги по сути не нужны, с ними будет сложнее, я, когда дописывал двиг, не читал ничего, кроме описаний функций. Да, я сидел над одной функцией 2 часа, зато сейчас я прекрасно понимаю, как это работает и на реализацию у меня уйдёт не более 10 минут. Главное желание чтобы было завершить начатое)
    Ответ написан
    Комментировать
  • CMS своими руками

    @egorinsk
    Автор, а что гуглить. Есть минимум 3 способа: расковырять простую Open-Source CMS (проблема: найти CMS с хорошей архитектурой и аккуратным кодом), устроиться в компанию, у которой есть своя CMS (а она есть почти у каждой студии), и наконец, написать самому правильно.

    Маны нужны не по написанию CMS, а по используемым продуктам и технологиям.

    Сначала надо определиться с задачей. Установите и попользуйтесь несколькими CMS, просто чтобы увидеть особенности их работы. (если вы не можете это сделать — вам надо изучать основы установки и настройки apache/mysql/whatever, а не CMS писать. Уходите практиковать эти навыки). Также, есть хороший сайт, где установлены демки десятков CMS и можно их посмотреть, не устанавливая.

    Запишите, что вы хотите получить, сделайте наброски страниц. Определитесь с требованиями к вашей CMS. Какие в ней будут модули, как ими можно управлять.

    CMS обычно состоит из 2 частей — т.н. «админки» (запароленный раздел, где меняется конфигурация сайта, добавляются материалы) и публичной части сайта, которую видят пользователи.

    Если вы еще не бросили эту затею, перейдем к следующему пункту. Проектирование архитектуры и написание CMS. Чтобы хорошо писать сложную CMS, нужен опыт и понимание того, как вообще писать сложные программы. Нужно глубокое знание HTTP/HTML/CSS/JS/SQL. А именно:

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

    Что еще надо знать. Во-первых, надо иметь представление что значит MVC или 3-звенная архитектура.

    M в MVC — это Model. CMS скорее всего будет хранить данные в БД — надо знать, что такое и как пишется DBAL (гуглите: PDO), плейсхолдеры в запросах, возможно, Table Gateway, ознакомиться с тем, что такое ORM, и почему PHP-ные ORM так тормозят. Если будете делать модельки, не храните значения полей в публичных свойствах — это неудобно и нарушает инкапсуляцию. Храните их в приватном массиве $attributes.

    V is for View. Надо знать, что такое шаблонизаторы (прочтите мануал по Smarty, Django Templates, HAML и XSLT, чтобы иметь общее представление, какие они бывают). Для PHP хорошие варианты — использовать чистый PHP или XSLT, если осилите. Smarty — устаревший тормозной хлам, Twig тоже имеет недостатки. И не стоит ставить шаблонизатор, только, чтобы писать {$a} вместо [?= $a =].

    Не смешивайте логику (сложные вычисления, обращение к БД) и шаблонизацию. Лучше сделайте 2 файла: один с кодом, другой с шаблоном. В идеале, шаблонизатор получает от контроллера значения переменных и, кроме хелперов, никакого другого кода не вызывает.

    C — контроллеры. Но это самая простая часть, контроллер — это просто класс с методами типа viewAction(), editAction() и роутер, который смотрит на УРЛ и вызывает нужный контроллер. Посмотрите, как устроен Zend_Controller и Zend_Front_Contriller, и сделайте так же, но попроще. выкинув 90% функционала — он вам не понадобится.

    Нужно как-то сделать систему компонентной без сильных связей: чтобы ядро могло работать и без модулей, а добавление модуля не требовало дописывания кода в ядро. Почитайте про Dependency Injection, а также Observer (observer — это когда мы делаем функцию addEventListener()).

    Не используйте хуки, как в Друпал. Это дурной и порочный путь, взятый видимо из древных времен и программирования на Си.

    Что еще. Освоив все эти понятия, у вас в принципе не будет сложностей написать CMS, но почитайте еще мои советы по тому, как писать правильный код с исп. ООП: habrahabr.ru/qa/17158/#answer_70869

    Написание своих велосипедов, в общем, полезно и способствует расширению кругозора разработчика, заставляет его изучать разные подходы к написанию кода.

    Ну что еще. Если (в чем я сильно сомневаюсь) благодаря моему скромного совету вы все же сможете пройти этот нелегкий путь и станете успешным разработчиком, можете заплатить мне денег. Я не против.
    Ответ написан
    Комментировать
  • CMS своими руками

    Stdit
    @Stdit
    Написание CMS — это огромная работа. Ничего плохого нет в том, чтобы попробовать самому написать CMS в образовательных целях, это лучший способ изучить на практике проектирование и получить опыт, который поможет в дальнейшем понимать готовые CMS и писать на них нормальный код. Прежде чем писать CMS, нужно написать Framework для неё. Можно начать с изучения готовых решений, например Symfony2. Перед практикой обязательно изучение теории, паттернов проектирования, способов оптимизации и т.д. Не стоит рисковать применять свою CMS на боевых сайтах и серверах, потому что почти наверняка в ней будут уязвимости и архитектурные ошибки, которые в дальнейшем создадут вам или коллегам немало проблем.
    Ответ написан
    2 комментария
  • CMS своими руками

    Tsyganov_Ivan
    @Tsyganov_Ivan
    Конкретное руководство «Пишем CMS. Для начинающих.» вы вряд ли найдете.
    Пишите различные веб-приложения. Наращивайте их функционал. Постепенно вы заметите, какие недостатки есть в ваших разработках, а какие моменты получились удачно. Просто сесть и написать хорошую CMS с нуля практически невозможно.
    CMS это сложное веб-приложение. Важно задолго до начала разработки продумать архитектуру всей системы.
    Решите, чего вы хотите от собственной CMS, чего вам не хватает в существующих. Сравните готовые решения. Попробуйте разрабатывать модули для существующих CMS, это позволит глубже разобраться в их архитектуре.
    Ответ написан
    Комментировать
  • CMS своими руками

    Sky4eg
    @Sky4eg
    Web разработчик
    Скорее всего ваши велосипед будет с квадратными колесами, без седушки и прочее. Но практически каждому программисту на php хочется написать такое на первых парах. Маны по написанию cms встречал неоднократно, однако лучше их не читать. Познакомьтесь лучше с паттернами программирования, почитайте 37signals чтобы не ездить на бульдозере за хлебом. Обязательно поймите что такое MVC, иначе у вас будет каша в коде. Попытайтесь разобраться в коде фреймворков или готовых цмс. А еще лучше забейте на эту идею и если всетаки вас так тяянет к цмсстроению, то найдите готовую цмс, разберитесь в ней и помогайте совершенствовать ее, писать плагины и прочее.
    Ответ написан
    2 комментария
  • MVC в PHP??????

    @egorinsk
    Что значит аналоги MVC? Есть модификации MVC типа MVVM или MVP (по сути, примерно то же), есть 3-tier архитектура (но вряд ли вы захотите ее делать на PHP).

    Я осваивал MVC на примере CakePHP (хотя сам фреймворк мне не нравится, он тупой, но как учебный пример годится). Просто прочтите прилагаемый к нему мануал, где приведен пример, как сделать блог с использованием подхода MVC.

    Паттерны вам пока не нужны. Все паттерны описаны в какой-то книге Мартина Фаулера (вот список: martinfowler.com/eaaCatalog/, там есть перевод на русский, но он плохой ), но, чтобы их понять, надо сначала иметь определенный опыт написания кода и разбора чужого кода. Если его у вас нет, для вас эти паттерны будут чем-то чужеродным и непонятным (много умных слов, а зачем это нужно, если можно по-простому написать).

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

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

    — KISS (делай как можно проще) — выбирай самый простой способ реализации, если есть несколько вариантов, и если это не грозит проблемами в будущем.

    — не ориентируйся и не используй фичи из PHP4. Он умер.

    — не полагайся только на HTML5/CSS3. Еще не у всех есть айпады с маками, и живы ИЕ8, ИЕ7 и ИЕ6.

    — пиши свой код, так, как будто после тебя его будет поддерживать псих-маньяк, который знает, где ты живешь. То есть, не пиши такие вещи, которые трудно/невозможно понять другому человеку. Думай о том, кто будет читать твой код. Изредка в сложных местах ставь комментарии. Не раскидывай логику выполнения действия по 10 файлам. Не делай файлы больше 500-1000 строк.

    — давай правильные названия классам, функциям, константам и переменным. Не используй транслит ($chisloPokupatelei). Не знаешь английский — вооружись Яндекс.Словарями/Гуглотранслейтом. Выбери и следуй стандарту кодирования (рекомендую Zend Coding Standard).

    — код на функциях можно легко превратить в ООП-код путем превращения функций в статические методы и объединения в классы.
    Ответ написан
    6 комментариев
  • Хорошие учебники по информатике

    Bright
    @Bright
    Не совсем учебник, но книжка мне очень нравится: «Код. Тайный язык информатики», Чарльза Петцольда
    Я даже писал о ней на хабре: habrahabr.ru/blogs/books/68365/
    Ответ написан
    1 комментарий
  • Какие есть популярные движки для создания 3D игр?

    Rigo
    @Rigo
    habrahabr.ru/qa/2635/

    И повторюсь:
    Для начала посоветую посмотреть доклад Дмитрия Девишева (Mail.ru) с КРИ-2010. Дмитрий рассказывает о трудностях разработки игровых онлайн проектов.
    Из оффлайна в онлайн (6 частей):
    www.youtube.com/watch?v=KteOkdvPmdA
    www.youtube.com/watch?v=_Tl1ymSmsQY
    www.youtube.com/watch?v=ekmXj9L5bmo
    www.youtube.com/watch?v=9mD3AmzUl4g
    www.youtube.com/watch?v=wjer9nPMVYI
    www.youtube.com/watch?v=04MlZt58lio
    Ответ написан
    Комментировать