Основные возможности платформы Hexlet не доступны в вашем браузере. Пожалуйста, обновитесь.
,

КарьераБыть многопрофильным специалистом, но рекламировать себя как специалиста в одной области

Одно из решений, которое вам нужно принять в строительстве карьеры разработчика - это выбор между:

  1. Специалистом, экспертом в определённой области.
  2. Многопрофильным работником, способным выполнять крупный спектр различных работ.

Микель Белтран считает, что правильный выбор — специализация:

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

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

Читать дальше →
,

Истории успехаPair is not a function: от радиоинженера до fullstack-разработчика

Всем привет, меня зовут Илья. Я расскажу, как я нашел работу fullstack-разработчиком за примерно полгода по-настоящему интенсивного обучения.

Я закончил МИРЭА по радиотехнической специальности, два года проработал в отрасли инженером, впоследствии понял, что ловить там нечего и решил кардинально менять сферу своих профессиональных интересов. Взгляд упал на веб-программирование, так как перед глазами была саксесс-стори друга, который во времена руби-хайпа самостоятельно разобрался с языком и основным фреймворком (неожиданно RoR) и нашел работу в каком-то берлинском стартапе. Привлекло то, что можно без проблем самостоятельно освоить нужные технологии, и найти работу без жестких требований к образованию.

Читать дальше →
,

РазработкаОписание современного JavaScript для динозавров

Изучать современный JavaScript — болезненно, если вы не знакомы с ним с самого его рождения. Экосистема разрастается и меняется с такой скоростью, что сложно разобраться с тем, какие проблемы пытаются решить разные инструменты. Я начал программировать в 1998 году, но к серьёзному изучению JavaScript приступил только в 2014. В то время я помню как анализировал Browserify и изумлённо смотрел на его слоган:

Browserify позволяет запрашивать (require) модули в браузере, объединяя все зависимости.

Можно сказать, я не понимал ни слова в этом предложении, и с трудом осознавал, насколько это может быть полезно мне, как разработчику.

Цель этой статьи — показать исторический контекст развития инструментов JavaScript до их уровня в 2017. Начнём с самых первых моментов и построим шаблон веб-сайта, как бы это сделали динозавры — без инструментов, чистый HTML и JavaScript. Затем мы будем пошагово вводить различные инструменты, чтобы на практике видеть, какие задачи они решают — поочерёдно. Благодаря историческому контексту у вас будет больше возможностей изучить и лучше адаптироваться к бесконечно меняющемуся JavaScript. Давайте начнём!

Читать дальше →
,

РазвитиеКак участвовать в open source проектах

github

Я написал это руководство, чтобы помочь любому присоединяться или выкладывать свои (contributing) open source проекты на GitHub. Одна из причин крутости open source — в желании людей помогать друг другу.

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

Читать дальше →
,

Истории успехаСо способностями не повезло, но упорства оказалось достаточно

Чем больше я зарывался в изучения JavaScript, тем всё ближе ко мне подкрадывалось отчаяние: я мог разобрать ещё одну новую тему, но весь паззл упорно не складывался в целую картину, ранее изученное то и дело выветривалось из головы, не находя дальнейшего применения. Глядя на примеры чужого кода, я не верил что смогу когда-нибудь додуматься до подобного. Всё это казалось какой-то бездной информации, и постоянно присутствовало ощущение, что либо я не способен всё это постигнуть, и это просто не моё либо, я что-то делаю не так...

Время от времени я натыкался сети на интересные посты от Hexlet и вебинары от Рахима и Кирилла, и решил снова пройтись по ранее пройденным курсам а затем оформить подписку. В процессе прохождения, становилось понятно, что тут я научусь именно тому, чего мне всё это время не хватало – именно программированию – сдвинуть мышление и начать думать в правильном направлении при решении задач и построении программы. Я вдруг понял, что до сих пор у меня вообще не было понимания такой вещи как абстракция...

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

Поиск работы в Москве занял у меня всего неделю. Успешно пройдя собеседование, я был приглашён на работу мечты с отличными условиями и перспективами поработать с разными технологиями и языками, как на фронтенде так и на бекенде.

Читать дальше →
,

Истории успехаСтать программистом

Интернет, особенно в последнее время, полнится историями о том как бывший <профессия> стал программистом. Примеры очень разные, там и хирург, и системный администратор, и даже бездомный. Как ни странно, поисковик выдает даже примеры того, как кто-то программистом не стал. Вот еще одна история, на этот раз менеджера. В российском понимании этого слова.

Читать дальше →
,

РазработкаВосхождение по бесконечной лестнице абстракций

Это перевод статьи Climbing the infinite ladder of abstraction от Алексис Кинг.

Я начала программировать ещё в начальной школе.

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

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

Кирпичная стена невыразительности

Когда только начала программировать, я в основном забавлялась с ActionScript и Java, просто ковыряясь в разных возможностях и пытаясь увидеть, что из этого получится. Это было очень увлекательно, я получала удовольствие от решения задач: зацепило меня почти мгновенно, но я также довольно быстро столкнулась с разочарованиями. Если говорить точнее, я начала писать много кода, который выглядел примерно так:

public String getName() {
  return this.name;
}

public void setName(String name) {
  this.name = name;
}
Читать дальше →
,

Развитие7 способов усовершенствовать навыки чтения кода

Это перевод статьи 7 Ways to Improve Your Code Reading Skills от A. N. M. Bazlur Rahman.

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

Чтение чужого кода — в описании должности инженера-разработчика. Однако, это не всегда самая приятная задача. Не каждому нравится читать чей-то код. Иногда это просто скучно, а иногда чужой код просто вызывает желание пойти напиться. Иногда у вас появляются неприятные ощущения от того, что вы не можете его понять или от того, что он просто недостаточно хорошо написан. Большинство разработчиков предпочитает писать код, а не читать, не осознавая того, что чтение — тоже важный навык.

Чтение исходного кода даёт множество преимуществ. И эти преимущества очень выразительные. Код можно сравнить с литературой. Большинство писателей фокусируется на чтении литературных шедевров в процессе работы над чем-то своим. Причина в том, что невозможно создать что-то из вакуума. Нужно впитывать разные штуки из различных источников и работать с ними, создавая свой шедевр. Писать код — очень похожий процесс.

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

Если сказать проще — навыки чтения кода совершенствуют навыки написания кода.

Читать дальше →
,

Подкаст16: Q&A — специализация vs. распыление, книжные рекомендации и софт

В сегодняшнем выпуске отвечаю на вопросы слушателей.

1. Специализация vs. распыление

Всегда с энтузиазмом начинаю заниматься чем-то новым, но когда улавливаю суть, становится неинтересно. Понятно, что можно изучать любую тему до бесконечности и углубляться в детали, но когда не остается ничего принципиально нового, хочется заняться другим. В итоге становлюсь специалистом по всем вопросам, по-настоящему глубоко не зная ни одного. И непонятно: я просто не нашел еще то, что по настоящему интересно, то что прямо мое? Или я просто не могу ничего доделать до конца и нужно выбрать уже что-то и там остановиться? / Артем Пугачев

2. Книжные рекомендации

Посоветуй хороших книг по программированию и информатике, а также по математике, логике и философии в контексте информатики :D / Stepan Kuzmin‏

3. Софт и инструменты

Как ты работаешь за компом: программы, мышка, расположение окон, док скрывается или нет, какие в доке программы... вот это все. Про твой рюкзак еще интересно узнать. И что ты в нем носишь. / Андрей Морковин‏

Выпуск также можно послушать на ютубе.

Книги

Программирование и ОС

Архитектура компьютера

Жизнь

Математика

  • Fermat's enigma (Simon Singh)
  • The Simpsons and Their Mathematical Secrets (Simon Singh)
  • Flatland (edwin abbott)

Алгоритмы

Дизайн

Другое


Компьютер и софт

Mac Mini 2012, 2.6 i7 16 GB, Dell u2515h, magic keyboard, Logitech mx master

Рабочее место:

Типичный рабочий стол (снято сразу после записи):

Вы можете поддержать подкаст на Patreon → patreon.com/freetonik. Вы будете получать выпуски на несколько дней раньше остальных + вам станут доступны бонусные посты, конспекты, заметки и другие материалы.

Предыдущие выпуски:

Читать дальше →
,

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

Специалисты Facebook обнаружили, что их боты общаются на новом языке. И остановили их.

Боб: “I can can I I everything else.”

Элис: “Balls have zero to me to me to me to me to me to me to me to me to.”

Для всех нас этот диалог выглядит как бред. Но что, если я скажу вам, что этот бред — общение, возможно, самого технически сложного коммуникативного софта на всей планете? Коммуникативный софт, который обучался и развивался, чтобы достичь лучшего результата с большей скоростью и производительностью, на которые я или вы когда либо были способны, и возможно, со скрытыми способностями? И это правда.

Этот разговор произошел между двумя агентами искусственного интеллекта (ИИ), разработанными компанией Facebook. Изначально они переговаривались друг с другом на английском. Но позже инженеры поняли, что ошиблись, программируя их.

«Не было никакого смысла придерживаться английского», — говорит Дхрув Батра, инженер Georgia Tech из Facebook AI Research (FAIR). Учитывая то, что эти два агента конкурировали за лучший результат — это такая высокоэффективная схватка ИИ против ИИ — инженеры модифицировали «генеративно-состязательную сеть», и ни у одного из ботов не стало стимула общаться как люди. Поэтому они стали отклоняться от нормы и смешивать реальные слова в кажущиеся бессмысленными предложения.

«Агенты будут отклоняться от понятного языка и изобретать кодовые слова для себя», — говорит Батра, высказываясь в пользу уже предсказуемого явления, которое встречается тут, тут, и тут. «Как если бы я сказал «оно» пять раз, а вы бы поняли, что мне нужны пять копий определённого предмета. Это не сильно отличается от того, как сообщества людей придумывают сокращённые понятия».

Читать дальше →
Мы учим программированию с нуля до стажировки и работы. Попробуйте наш бесплатный курс «Введение в программирование» или полные программы обучения по Node, PHP и Java. Хекслет

Подробнее о том, почему наше обучение работает →