• Какие есть интересные блоги современных JavaScript ниндзя?

    Ronnie_Gardocki
    @Ronnie_Gardocki
    Я у мамы фронтендщик.
    Блоги не надо мониторить, надо подписаться на пачку дайджестов, и там вы найдете ссылочки на почти все достойные статьи, включая менее известных (но не менее крутых) товарищей.
    Получать 5-10 писем с кучей ссылок в неделю намного проще и эффективнее, нежели чем чекать 10+ блогов, где апдейты бывают раз в 1-6 месяцев.
    Ответ написан
    3 комментария
  • Как урезать свой перфекционизм?

    isqua
    @isqua
    Научу HTML, CSS, JS, BEM и Git
    Чтобы перестать делать лучше то, что ещё не сделано до конца, нужно понять одну простую истину: Запущенный проект лучше, чем не запущенный.

    Давайте потренируемся:
    • Что лучше: запущенный проект с несжатыми стилями или незапущенный со сжатыми?
    • Что лучше: не запущенный проект с десятью страницами или запущенный с тремя?
    • Что лучше: запущенный проект c jQuery или не запущенный без jQuery?


    Надеюсь, вы смогли выбрать! Как узнать, что пора запустить проект? (Под запуском я имею в виду «показать людям». Например, если вы решили написать библиотеку, давайте считать «проект запущенным», если вы выложили её на гитхаб) Нужно прикинуть, сколько времени вам надо на разработку и умножить на два. Если получилось больше двух недель, то стоит разбить проект на части и прикинуть так про каждую часть. Соответственно, ставите дедлайны.

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

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

    Удачи!
    Ответ написан
    4 комментария
  • Почему не работает gulp-autoprefixer?

    kudesa
    @kudesa
    Проектирую и верстаю адаптивные сайты
    Автопрефиксер отрабатывает после сохранения файлов в папку app/css
    вот пример правильного таска
    gulp.task('default', function () {
        return gulp.src('css/*.css')
            .pipe(autoprefixer({
                browsers: ['last 3 versions'],
                cascade: false
            }))
            .pipe(gulp.dest('app/css'));
    });
    Ответ написан
    5 комментариев
  • Где заработать портфолио?

    ManWithBear
    @ManWithBear
    Swift Adept, Prague
    Вы наверное не знаете. Но у вас уже есть один идеальный и не привередливый заказчик, которого вы к сожалению выпускаете из виду и обделяете вниманием. Это ВЫ САМ.
    Ответ написан
    4 комментария
  • Книги по электронике и программированию под микроконтроллеры?

    vagrantnotes
    @vagrantnotes
    Embedded-разработчик
    Сам работаю с микроконтроллерами и пару лет назад так же столкнулся с задачей поиска толковых обучающих материалов. Вот несколько советов (разумеется, субъективных) на этот счёт:

    1. Большая часть книг в стиле "Разработка встраиваемых приложений" или "Пишем на ассемблере под PIC" - пустая трата времени. Не то что бы они совсем бесполезны, но зачастую они сильно устарели, а информация в них избыточна и излишне детализирована. Я не нашёл ни единой книги, которую не захотелось бы забросить после пары десятков страниц.

    2. Я очень рекомендую цикл статей "AVR. Учебный курс" на сайте easyelectronics.ru. Там и железо, и ассемблер, и регистры - простым и доступным языком. Очень рекомендую, даже если работаешь не с AVR. Там изложены основные принципы и самих контроллеров и периферии - то, с чем каждый день сталкиваешься в реальных проектах.

    3. Без знания C в микроконтроллерах - никуда, поэтому рекомендую книгу Кернигана и Ритчи - "ANSI C". Это и учебник, и справочник под одной обложкой. Рассказывается всё просто, кратко и без лишних рассусоливаний.

    4. В качестве дальнейшего вектора развития я бы рекомендовал углубиться в железо, чтобы понимать, с чем работают твои контроллеры. Книги "Искусство схемотехники" и "Что нужно знать цифровому инженеру об аналоговой электронике" станут хорошим выбором.

    5. Не ограничивайся только книгами. Сейчас доступно множество открытых онлайн-курсов о встраиваемых системах на любой вкус. Это потрясающая форма обучения, которая совмещает в себе текстовый материал, видеолекции и практические лабораторные работы. Минус - всё это удовольствие на английском языке. Пожалуй, лучший пример, это Embedded Systems - Shape The World - встраиваемые системы - от самых азов, до ретро-игр на контроллере. В комплекте дают доступ к хорошему интерактивному учебнику C. Прекрасный курс с упором на практическую составляющую. Сессия совсем скоро завершится, но доступ к видеоматериалам ещё должен остаться.
    Ответ написан
    Комментировать
  • Какое перспективное направление в программировании для фриланса и иммиграции?

    Lucian
    @Lucian
    https://t.me/BusinessAndFreelance
    Написал большой рассказ, но случайно нажал комбинацию каких то клавиш и у меня закрылась страница, поэтому напишу очень коротко, т.к. нехочу снова тратить 20 минут на эссе.

    -Желание + интерес

    -Несколько лет программирования, знаю c++/java/python к последнему пришел год назад, к java и c++ больше не вернусь

    -Любимый язык python - скорость разработки очень важна, пишу на нем всего год

    -$2k в неделю, odesk, могу себе позволить жить в любой стране, но деньги не важны, я это понимаю только сейчас, когда ко мне пришел успех, главное в -первом и последнем пунктах

    -Уменее объяснить заказчику почему на питоне я сделаю в 3-5 раз быстрее чем на том же php/java = забираем контракты у java/c#/php программистов = нет дифицита заказов на питон

    -Желание и интерес, успех придет сам, под интересом я для себя выделяю интерес сферы разработки: web crawling/parsing/search и любимый язык питон, удачи вам найти себя! (web crawling вот вам перспективная ниша, которая будет только со временем расти, появилось много соц сетей и других сайтов, и всем заказчикам нужны с них данные, особенно стартапам)
    Ответ написан
    18 комментариев
  • Какое перспективное направление в программировании для фриланса и иммиграции?

    afanasiy_nikitin
    @afanasiy_nikitin
    путешественник туда-сюда
    Во-первых, хотел бы порекомендовать книгу Чеда Фаулера "The Passionate Programmer: Creating a Remarkable Career in Software Development" (на русском: "Программист-фанатик", Питер, февраль 2015). Несмотря на свое название, она не столько о программировании, сколько о личностном росте, саморазвитии и прагматичном стремлении к совершенству, читать рекомендуется всем и каждому.
    Во-вторых, есть масса аналитических исследований в области IT, в последне время их особенно много из-за "кризиса", например ...о стагнации, образовании и востребованных профессиях.

    Если думаете об эмиграции (а выезд заграницу на ПМЖ это именно эмиграция), то тут есть 2 нюанса.
    Первый заключается в самой сложности переезда в другую страну с другими законами, налогами, климатом, языком, культурой, и тд, а тёплых мест хватает и в России (об этом миллион статей на том же Хабре).
    Второй - переезжать в другие страны имеет смысл в том случае, если вы собираетесь работать на окладе в офисе, например в крупной европейской/азиатской компании на высокой должности на территории работодателя. Фрилансеру же реальная польза от пеерезда весьма сомнительная (опять же, налоги в России - одни из самых низких).

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

    Сейчас мир программирования равивается в двух основных полярных направлениях: низкоуровневое - ПЛИС и самодостаточные микроконтроллеры ("умная железка в каждую вещь"), и, противоположное ему - высокоуровневое проектирование и ФП. В первом случае много физики, во втором - матана, дискрета, теории категорий и всего такого.
    Лично мне ближе второй вариант, поэтому я для себя выбрал технологии, основанные на Java (почему именно Java - пояснил ниже в комментарии): Scala, Lift, ФП, функционально-ориентированное проектирование, мета-программирование, DSL, вот это всё.

    По поводу "готовых решений" лично я наблюдаю обратный процесс: люди стараются отказываться от универсальных готовых решений в пользу гибких, компактных и заточенных под конкретную бизнес-логику (опять же DSL и DDD).
    Но начать всё же рекомендую с Фаулера. Затем Р. Мартин "Clean coder" (на русском "Идеальный программист. Как стать профессионалом разработки ПО"), само собой МакКонелл, Крэг Ларман, и прочие бестселлеры.
    Да, и не забудьте книгу Грега МакКоена "Эссенциализм...", очень полезная вещь в наше время. Личностный рост и саморазвитие сейчас не менее важно (а иногда и важнее) просто "программирования".
    Ответ написан
    8 комментариев
  • Какое перспективное направление в программировании для фриланса и иммиграции?

    codingal
    @codingal
    Front end и не только
    Если основной целью ставится эмиграция, то сначала определитесь в какую страну хотите эмигрировать и каким путем: независимая эмиграция или джоб оффер.
    26 лет - это, конечно, еще немного, но следует учесть, что на становление профессионалом в какой-то области в среднем нужно 3-5 лет, поэтому много раз "метаться" не рекомендуется.
    Определетись с языком, если это Европа, осилите ли еще один в добавок к английскому?
    Вышка по идее, должна быть профильной.
    В целом, дизайн пусть даже модный UI/UX - не самое лучшее направление, в технических специалистах выше потребность практичекси везде.
    Ruby? Scala?

    учтите, что большинство проектов, куда ввозят иностранцев - это саппорт какого-то старого энтерпрайза, а руби и скала - это в стартапах. Судя по рынку, для новых стартапов последнее время все чаще выбирают питон.
    Ответ написан
    8 комментариев
  • Что изучать, на что тратить свободное время, чтобы в будущем стать востребованным программистом с нормальным заработком?

    lexxpavlov
    @lexxpavlov
    Программист, преподаватель
    Ответ на вопрос будет сильно зависеть от того, в каком направлении вы думаете развиваться.
    Будет ли это сетевое программирование? Тогда это си, в основном.
    Может быть, веб-программирование? Тогда тут могут быть php, javascript, python, ruby.
    Захотите разрабатывать программы на десктоп? Вам нужны c# или java.
    На мобильные платформы? тогда java и objective c (плюс swift).
    Или податься в разработку игр? Тогда либо c++, либо с# (для Юнити - наверное, самой популярной платформе).
    Хотите экзотики? Приглядитесь к функциональным языкам - Erlang и Haskell.
    Разработка железа и драйверов для железа? тогда си (без плюсов) и ассемблер.
    Определитесь, что вы хотите, потому что всё объять не получится. Выберите один (или два) направления и добейтесь хорошего уровня в нём. А потом вам будет уже легче двигаться дальше.

    Мой совет - попробуйте изучать C# или Java (они во многом похожи) для софта, или Javascript и php/python для веб-приложений и сайтов.

    Добавлю, что очень правильный совет дал @tsarevfs - помимо языка программирования, хороший программист должен знать несколько инструментов - и в первую очередь, это система контроля версий, например, git. Плюс юнит-тестирование (хотя это можно начать изучать позже, через годик-два). Плюс - нужно хорошо знать свою IDE, в которой работаете; не вздумайте работать в блокнотиках!

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

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

    UPD. Важное дополнение из обсуждения в комментариях (спасибо @Argentum88 @Deerenaros )
    Чтобы стать профессионалом и "востребованным программистом с нормальным заработком", нужно очень хорошо понимать внутреннее устройство тех систем (платформ, фреймворков), на которых идёт работа.
    Для этого нужно заглядывать вглубь. Изучив различные мейнстрим-инструменты, посмотреть на аналогичные менее популярные системы. Изучать исходный код используемых open-source библиотек. Написать свою подобную систему. Для web - написать свою CMS (хотя бы базовую). Для десктоп-программ - попробовать программировать без навороченных библиотек, которые делают рутинную работу за программиста. Для разработчика игр - сделать простую игру на базовом инструментарии платформы, где всё придётся делать своими руками.
    Всё это даст возможность проникнуться, почему всё делается именно так, даст понимание взаимосвязей разных частей программы.
    А потом, осознав это, выбрать один из уже готовых инструментов, и продолжать писать на нём, уже обладая более глубоким его пониманием.
    Ответ написан
    21 комментарий
  • WEB-программирование. Что выбрать и с чего начать?

    pletinsky
    @pletinsky
    На мой взгляд базисные знания следующие:

    1) Клиентская верстка и стили (html, css). Можно пробежаться глазами хотя бы по теме. Почитать про правила верстки.
    2) Клиентская логика, работа с DOM (Javascript, Jquery). Важная тема — стоит уделить ей время.
    3) Теория распределенных приложений. — Веб приложения чаще всего являются распределенными. Поэтому стоит изучить архитектурные принципы распределенных приложений. API и т.д.
    4) Базы данных (SQL, etc.) — Конечно начать стоит с классического сиквела — но стоит посмотреть и шире — например на nosql решения.

    Далее стоит выбрать технологическую платформу. С вашим бэграундом вероятно стоит посмотреть в сторону Microsoft ASP.NET MVC. Это великолепное решение и погружение в обширный мир разработки в рамках решений MS. У них сейчас самые развитые языки программирования (C# 5.0), самые развитые инструментальные среды (MS Visual Studio), одна из самых совершенных виртуальных машин (.Net).
    Решение удобнее всего для серьезных и масштабных проектов, хотя и для небольших вполне подойдет.
    Следующий кандидат — Ruby on Rails. Это развитое решение с замечательным языком программирования и отличными каркасными решениями, заточенное именно под веб. Возможно лучше подойдет для небольших приложений — но и промышленные продукты без проблем потянет.
    Он также очень распространен.
    Ну и конечно PHP. Язык программирования данной технологической платформы отстает от требований к разработке больших решений — он скорее подходит для написания скриптов. Однако существует колоссальное количество каркасных решений для данной платформы, которые позволяют реализовывать даже приличного объема продукты. Кроме того данное решение наверное самое распространенное из всех.
    И оно потихоньку подтягивается до уровня платформ для разработки промышленных продуктов.
    Существует также множество других решений. Например огромный мир Java и решения на базе серверного Javascript.

    Скоп работ будет состоять из следующих частей:

    1) Клиентская часть (html, css, javascript). Тут вам понадобятся знания по верстке как раз и жаваскрипту. Также следует использовать различные базовые решения и фреймворки. Эта как раз та часть, где слишком глубокие знания (например использование чистого некроссбраузерного javascript) могут быть вредны и лучше все базировать на готовых платформах.
    Часто эта часть в web приложениях бывает больше чем хотелось бы.

    2) Серверная часть. Тут все определяется технологической платформой описанной в предыдущем абзаце. В веб приложениях как правило немного серверной логики — почти все можно заменить на внешние библиотеки. Но у разработчиков десктопных приложений всегда есть соблазн развивать именно эту часть потому что она им знакома — не поддавайтесь. Специфическая для проекта серверная логика нужна не очень часто. Если ее много — значить кто то увлекся велосипедами. Тоже касается разработок API и систем взаимодействия с внешними сервисами.

    3) Базы данных. Конечно обязательно! стоит использовать развитые ORM системы. То есть нужно их изучить под выбранную вами технологическую платформу. Ну и конечно базовые знания баз данных тут тоже очень понадобятся — сиквел, реляционная модель и все остальное.

    Дерзайте. Я за вас болею.
    Ответ написан
    Комментировать