Программирование для гуманитариев – Telegram
Программирование для гуманитариев
6.77K subscribers
66 photos
4 videos
219 links
Личный опыт того, как скипнуть в IT с гуманитарным образованием. Что для этого делать, чего стоит бояться (спойлер: ничего!) и чего ожидать. Рассею мифы о программировании и мире IT.
Бот для вопросов об IT: @hum_it_bot
Download Telegram
#вашивопросы

Подскажи пожалуйста , я инженер в сфере электроники , в какую сферу Айти можно пойти , чтоб совместить мой прошлый опыт ?

Есть ряд профессий на стыке программирования и микроэлектроники - скажем, в разработке микроконтроллеров, встраиваемых систем, умного дома, робототехники и прочих интерфейсов между «железом» и пользователем. Обычно такие профессии идут под кодовым названием «Инженер-программист».

Я самостоятельно изучаю NLP и анализ данных на Python. Быть может, вы можете подсказать полезные ресурсы/маршрут изучения данной области.

Раз вы увлекаетесь natural language processing и анализом данных, значит вы уже стали на путь data science, и тут я могу рекомендовать развиваться дальше в этом направлении, не ограничиваясь одним только анализом данных.
- В этом посте я собрала список книг по data science для начинающих.
- А в этом - некоторые варианты платных курсов по специализации Data Scientist.
- А тут - варианты курсов по математике в необходимом для дата-саенс объёме.

Но если вы хотите ограничиться аналитикой данных, на этом направлении специализируются, в частности Skillfactory, можно рассмотреть такие варианты курсов:
- Курс по аналитике данных
- Python для анализа данных

А бесплатные курсы, как и по любым другим предметам, можно найти на coursera, stepik, edx и на других похожих онлайн-платформах.

Задать вопрос автору блога можно здесь: @hum_it_bot
#вашивопросы

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

Я по специальности врач, последние шесть лет занимаюсь анализом медицинских данных. Есть сертификат от СибГМУ по медицинской статистике. Фактически, осуществляю полный цикл анализа. Хочется развиваться дальше. Есть ли на слуху курсы, где анализ именно медицинских данных преподают? В смысле, данными банков, рекламы и т.д. я бы не хотел заниматься

С автором вопроса мы общались некоторое время назад, и тогда я советовала идти на любые курсы по анализу данных или data science. Но сейчас появился вариант в точности под такой запрос: Data Science в медицине, тоже от гикбрейнс, тут даже обещают 6 месяцев обучения в подарок.

Вы когда всякие онлайн-курсы проходили раньше, конспектировали что-то в тетрадь? или это только трата времени?

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

Что вы можете посоветовать юристу в IT? Я подумываю переехать на ПМЖ в другую страну. Работу по специальности в другой стране найти очень трудно, практически невозможно. Смотрел много роликов в Ютюб, как наши сограждане работают в ИТ сфере удаленно из других стран.

Что-то специфическое именно для юриста в голову не приходит, так что могу посоветовать изучать то же, что и всем остальным: либо программирование, либо data science, из более простых вариантов - qa (тестирование).

По поводу эмиграции и удаленки у меня есть подозрение, что с нуля искать работу сразу на удалёнке сложновато, проще сначала отучиться, потом поработать junior-ом в офисе, скажем, год, а потом уже, приобретя опыт, идти во фриланс. И устроиться джуном в офис, думаю, проще будет в России, а не за рубежом.

Задать вопрос автору блога можно здесь: @hum_it_bot
Когда сложно и непонятно

Когда я читаю статьи по новым для меня темам, например, про фондовый рынок, то бывает, в процессе посещает это чувство: «что-то сложновато». И в результате стараешься побыстрее проскочить, например, раздел про фьючерсы или опционы (это что-то слишком сложное, не хочу не буду). Но в глубине души я понимаю, что если остановиться и неспеша разобраться с этими инструментами, ничего принципиально сложного и непонятного в них не будет - просто нужно время, чтобы вникнуть и разложить в голове все по полочкам. Примерно так же это работает в любом обучении.

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

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

Будущим айтишникам нужно воспитывать в себе въедливость и внимание к деталям. Если в лекции или в учебнике слишком сложное объяснение, поищите в Интернете более простое - наверняка, где-нибудь на хабре есть статья, где этот вопрос раскладывается по полочкам, а на stackoverflow уже кто-то задавал похожий вопрос, где-нибудь есть наглядные объяснения с примерами и картинками, а может, даже с видео. Можно рисовать схемы на бумаге для себя, можно экспериментировать с кодом, дабы проработать примеры, можно, наконец, попросить знакомого разъяснить непонятный материал, или даже нанять себе репетитора.

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

Главное - вопросов и неясностей не должно оставаться. Программист - это инженер, а не волшебник из Хогвартса. Он проектирует приложения из понятных и простых блоков, а не взмахом волшебной палочки делает какую-то магию, и всё начинает работать само, и непонятно как…
#вашивопросы

Зачем программисту работать фиксированные часы в день? Сказывается ли фиксированный график на качестве?

В целом, фиксированный график не у всех, кто-то, особенно на фрилансе, может работать хоть по ночам.

Но смысл работать в определенные часы тоже есть.

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

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

Второе - это коммуникации. Сейчас популярна идеология Agile, и вопросы разработки всё больше принимаются в процессе обсуждений, а не в виде указов на бумаге. Обсуждения, естественно, происходят днём - попробуйте уговорите менеджеров (особенно топ-менеджеров компании), аналитиков, маркетологов, да и остальных разработчиков собраться в zoom в три часа ночи? Многие ли из них согласятся?

Существует подход, при котором программист просто получает ТЗ и уходит его реализовывать - хоть ночью, хоть днём. Но это звучит как-то очень идеалистично, программист как будто просто автомат, в который можно засунуть бумажку с ТЗ и на выходе получить продукт. Полностью детализированные задачи получают в основном junior-разработчики, и то не всегда. Чем вы выше по статусу, тем большего вклада от вас ждут в продумывание проекта, а не только в его реализацию по готовому «рецепту».

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

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

Задать вопрос автору блога можно здесь: @hum_it_bot
#вашивопросы

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

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

Добрый день, мне 50 лет,так, к разговору,подскажите, что можно изучить в lt сфере, возможно для подработки, для начала

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

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

Основные направления для развития именно в сфере IT (по ссылкам примеры курсов по этим направлениям):

- Программирование (например, можно научиться делать веб-сайты)
- Аналитика данных

Также есть профессии на стыке IT и маркетинга, например:
- Продуктовая аналитика
- Веб-аналитика
- UX-аналитика и другие

В IT также востребованы дизайнеры:
- Веб-дизайнеры
- Дизайнеры интерфейсов

Также есть менеджерские профессии и ещё много разного.

Задать вопрос автору блога можно здесь: @hum_it_bot
Code review

Первые пару лет моей работы в IT никто, кроме меня самой, не читал мой код. Это не самая лучшая ситуация для новичка, так как без обратной связи эволюционируешь гораздо медленнее и не всегда в лучших направлениях. Закрепляются какие-то свои привычки по написанию кода - не всегда это хорошие привычки. Привыкаешь использовать какие-то спорные приёмы, от которых хорошо бы было избавиться еще на самом старте. И главное - никогда не знаешь, то, что ты пишешь - это нормальный код, или совсем говнокод. Работает - и ладно.

Поэтому во многих компаниях существует практика code review - когда коллеги читают код друг друга и дают рекомендации - что в нём лучше поправить (а что и вовсе удалить или переписать). Без одобрения ревьюеров код считается незаконченным и его нельзя использовать в продакшене. Эта практика нужна не только новичкам, но и опытным разработчикам тоже - взгляд со стороны всегда полезен, и другие коллеги могут найти недочёты, которые сам автор кода не заметил.

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

На бесплатных курсах если есть code review - то он заключается в том, что ваш код читают другие студенты курса. Это лучше, чем ничего, но не настолько полезно - они такие же новички, и откуда им знать, как должен выглядеть хороший код? Я проходила один такой курс по играм на Python на курсере - и там ревьюеры обычно просто ставили «ок» и писали что-то в духе «ты молодец». Но часто даже такого на курсах нет - есть только автоматизированная платформа, куда вы загружаете свой код, и она его проверяет на корректность работы. А то, что код выполняет свою задачу еще не значит, что он хорошо написан.
#вашивопросы

Я начинающий программист. Знаю +/- немного C#, python, а сейчас вообще изучаю разработку сайтов с хостингами, https, базой данных потянуло. Вопрос: как я могу получить свой первый доллар на программировании в интернете, без фриланса? Неужели единственный выход - монетизированная игра на unity?

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

Почему считается большой ошибкой "перескакивать" с одного языка, на другой? Почему нельзя себя попробовать и в Front-end'е(html), и в Gamedev'е в Unity(C#)?

А кем считается? Я не считаю это ошибкой, по крайней мере на стадии обучения. Я сама проходила курсы по всему подряд без разбора - Python, C, C++, Java, даже всякую экзотику вродe Ruby, Haskell и ряда Lisp-подобных языков. Пробовала android-разработку, но как-то не пошло, и я её забросила. Ни о чём из этого не жалею - это помогает шарить в разных языках и подходах, в частности в функциональном программировании, а не только в ООП. Так что имхо пока учитесь - пробуйте всё подряд, почему бы и нет?

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

Но это совсем не значит, что вам нужно всю жизнь заниматься только чем-то одним. Через условно 3-5 лет вполне можно сменить направление, если появится такое желание. А вот переключаться на что-то новое каждый месяц-полгода непродуктивно.

А у вас есть примеры того, когда человек устраивался на работу в it сферу после прохождения курса?
И если есть, то на каких платформах?


Есть такой пример - это я. Училась я лет 7 назад на всевозможных курсах, которые попадались под руку - coursera, edx, stepik, mit online, stanford online и так далее. Это сейчас появилось много онлайн-курсов, которые предлагают программу на год-полтора, включая ментора, работу в группах, разработку проектов, приближенных к жизни - а тогда их практически не было, поэтому я просто проходила всё подряд.

Задать вопрос автору блога можно здесь: @hum_it_bot
Мне тут несколько раз жаловались на очень токсичную среду в комментариях на Хабре. Что тут нужно понимать. Некоторые люди тратят своё время на обучение, саморазвитие, приятные хобби, общение с друзьями и семьёй. Кто-то посвящает свое время тому, чтобы упорядочить свой опыт и поделиться им с другими людьми (как авторы хороших статей на том же Хабре). А кто-то тратит своё время на срачи в комментариях и хаяние других точек зрения, наверно это как-то помогает им поднять чувство собственной значимости. Каждому своё. Так что ищите полезную информацию, и игнорируйте бесполезный негатив. 🙂
Хейтеры курсов

Я скептически отношусь к видеороликам и статьям в духе «все курсы по программированию - говно, развод на деньги и кидалово для лохов». Ну и мол, никуда вас не возьмут на работу после их окончания, это чисто выкачивание денег. Речь идёт о статьях за авторством людей, которые сами на этих курсах не учились, а не о реальных отзывах студентов.

Ну что значит «кидалово»? Возьмём какие-нибудь курсы, которые длятся полтора года. В чём там кидалово? Вместо настоящего преподавателя там будет кассир из пятёрочки? За полтора года никого ничему не будут учить? А чем там люди вообще тогда занимаются полтора года - строят финансовые пирамиды и вкладываются в МММ? Слушают мотивационные речи в духе Тони Роббинсона? Мантры поют?

Разумеется, нет никакой гарантии, что вам понравится преподаватель, или программа, или задания - с выбором курса может банально не повезти. Не все курсы хорошо и добросовестно составлены, это факт. Но не очень хороший курс - это еще далеко не лохотрон. Даже в лучших ВУЗах есть бестолковые предметы и плохие преподаватели - и никто не называет это лохотроном.

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

Особый момент - гарантия трудоустройства. Во-первых, почитайте внимательно, речь идет именно о гарантии? Некоторые курсы заточены именно на трудоустройство выпускников - но тогда там должен присутствовать и отсев неуспевающих в процессе обучения - иначе как можно гарантированно трудоустроить 100% поступивших на курсы?
А другие курсы лишь содействуют в трудоустройстве - помогают составить резюме и организуют собеседования.

В любом случае любые гарантии - это очень смело, и нужно внимательно читать, что за ними стоит. Гарантии успеха не могут дать ни одни курсы, и ни один университет в мире. Всегда есть люди, которые бросают учёбу или попросту на неё забивает (вспомните свои школьные или студенческие годы). Всегда есть люди, которые получают какую-то специальность, но в итоге по ней не работают. Даже обучение в автошколе никому не гарантирует, что он сдаст экзамен в ГАИ (легально).

Но я не верю, что курсы могут быть совершенно бесполезны. Даже в плохих вузах всегда есть хорошие студенты, а в отличных вузах - плохие. Есть люди, которые учатся по старым и очень плохим учебникам самостоятельно - и в итоге становятся хорошими разработчиками (знаю таких).
Есть люди, которые учились по онлайн-лекциям и заданиям к ним (вроде курсеры) - это я про себя. Так вот - если можно найти работу после курсов на курсере и обучения по книжкам, то с чего вдруг после обучения в онлайн-школах нельзя?

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

Думаю, вопрос тут упирается в деньги - большая цена создаёт завышенные ожидания. Поэтому, ещё раз - никого не призываю идти и тратить деньги - сначала подумайте и оцените риски. И смотрите на курсы реалистично - это обучение. Обучение требует в первую очередь самостоятельных усилий. Курсы призваны облегчить ваше обучение и оптимизировать его. Это не значит, что весь материал можно просто «записать» в вашу голову без усилий с вашей стороны, как это было в фильме «Матрица». Успех в итоге зависит только от вас.
Дебаггинг

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

Для решения этой задачи требовался цикл примерно вот такого вида (неважно, на каком языке)

for (int i = 0; i < l; i++)
{
// Здесь код с проверкой, что каждый символ строки s (s[i]) соответствует нужной раскладке
}


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

Знакомая ситуация?

Что в таких случаях НЕ надо делать: не надо вносить в код беспорядочные изменения, надеясь, что «а может так заработает?», «а если так?», «а если эти строчки местами поменять?».

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

Один из самых простых и распространённых способов дебажить - это вывести на экран по ходу выполнения программы информацию о том, что с ней происходит, функциями print или log (в зависимости от языка). Например, в нашем случае можно в цикле на каждой итерации проверять значения каждой переменной вот так:

for (int i = 0; i < l; i++)
{
log(«loop iteration start»);
log(i);
log(l);
log(s);
log(s[i]);
// и так далее

log(«end of iteration»);
}


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

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

Из хардовых утилит - есть консольная gdb, используется для C, C++ и некоторых других языков. Для других языков программирования есть свои аналоги.

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

Так что не игнорируйте ошибки, а учитесь их отлавливать и исправлять.
#вашивопросы

А изучали ли Вы , и пригодилось ли Вам такие темы как, числа Фибоначчи, факториалы, и двоичная система (вроде не сложная тема для гуманитариев)?

«Не сложная тема для гуманитариев» звучит как будто гуманитарии - это что-то вроде умственно отсталых, и для них нужно выбирать максимально «щадящие» и адаптированные темы, что-то вроде «Библии для детей». 🙂 Но ладно, перейдём к сути.

В этом вопросе мне не совсем понятно, что значит «изучали» - если речь идёт об углублённом изучении математических тонкостей, связанных, скажем, с числами Фибоначчи или факториалами - то нет, не изучала. А если речь о понимании определения - то да (а что там, собственно, изучать?).

Числа Фибоначчи - это последовательность чисел, в которой каждое последующее число равно сумме двух предыдущих: 0, 1, 1, 2, 3, 5, 8, 13 и так далее. На вычисление чисел Фибоначчи (в том числе на разработку более эффективных алгоритмов для ее решения) любят давать учебные задания по программированию - я такие решала.

Факториал какого-либо числа - это произведение всех чисел от 1 до самого числа, включительно. Например, факториал числа 6 (записывается 6!) равен 1 * 2 * 3 * 4 * 5 * 6 = 720. На факториалы тоже иногда дают задания по программированию, например, я как-то писала реализацию факториала на ассемблере. И второе, где встречаются факториалы - это в анализе алгоритмов - там важно понимать, что факториал от n - это ОЧЕНЬ большое число и алгоритм, у которого сложность выполнения приближена к факториалу от n - это очень-очень медленный и неэффективный алгоритм, на больших числах он будет вычисляться, скажем, сотни лет или дольше.

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

Что же касается двоичной системы - её понимать нужно, так как все вычисления и все данные в конеченом итоге хранятся именно в двоичной системе - то есть, в последовательности ноликов и единиц. Отличие двоичной системы от всем привычной десятичной в том, что в ней меньше цифр (всего две: 1 и 0), а устроена она так же, как и десятичная. Также имеет смысл разобраться с восьмеричной системой (oct) и с шестнадцатеричной (hex) - на самом деле они все строятся одинаково, просто в двоичной системе всего 2 цифры, в восьмеричной их уже 8 (от 0 до 7), в нашей основной десятичной 10 (0-9), а в шестнадцатеричной - 16 (0-9, a, b, c, d, e, f) - a - это число 10, b - 11, c - 12 итд. Например, ff - это число 255 в шестнадцатеричной системе счисления, а не бессмысленный набор букв)

Поэтому разобраться с тем, как преобразовывать числа из десятичной системы в двоичную и обратно - обязательно нужно на каком-то этапе. Так что если вы пока ещё не в теме, научитесь преобразовать числа от 1 до 10 в двоичную систему. А затем - двоичные числа (например, 10, 11, 101, 110, 111 итд) - обратно в десятеричную систему. Чтобы нолики и единицы не выглядели для вас как какой-то непонятный шифр.

Задать вопрос автору блога можно здесь: @hum_it_bot
Вот поэтому я и советую всем начинать с чего-то более сложного, а потом переходить на простое. Python по большому счету после более сложных языков и учить специально не придётся - можно сразу начинать на нём писать, сам выучится. )
Друзья! Если вы присылали свой вопрос мне, а ответ не получили - ни в канале, ни лично - вероятно, ваш вопрос затерялся среди множества других. В таком случае не стесняйтесь, присылайте ваши вопросы еще раз, чтобы уж наверняка: @hum_it_bot
«Для того, чтобы стать старшим разработчиком нужно 3 года опыта, или соврать в резюме». Правда ли это?

Нет, это чьи-то влажные фантазии. В IT в конечном счёте котируются только скиллы, а не умение врать.

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

Во-вторых: «звание» в резюме еще ничего не значит. Сам человек может сколько угодно называть себя «старшим», «ведущим», «senior» и так далее, а в ходе собеседования все придут к выводу, что ваш реальный уровень, к примеру, middle. И в итоге предложат вам работу в качестве middle-разработчика, а не senior. Или не предложат, смотря какие вакансии есть в компании.

В-третьих, чисто гипотетически предположим, вы прекрасный актёр и лжец и у вас очень хорошо продуманная легенда и каким-то образом вам удалось навешать всем лапши на уши, вас берут на должность senior-разработчика. И как вы будете работать с этим? От вас ожидают, например, что вы будете обучать junior-разработчиков - а чему вы их сможете обучить, если сами не сильно от них отличаетесь? Или, например, вас попросят спроектировать архитектуру какого-нибудь сложного проекта - и что вы там напроектируете, если опыта в этом кот наплакал? Или, предположим, вам скажут руководить командой middle-разработчиков, а в итоге окажется, что эти миддл-разработчики гораздо опытнее, чем вы, и это кому-то из них надо бы руководить вами, а не наоборот.

В общем, сказки это всё - в хорошую профессиональную команду старшим разработчиком кого попало не возьмут - разве что по какому-то досадному недоразумению. Да, если речь идёт о сельской библиотеке или об онлайн-магазине, в котором работают ровно 3 сотрудника - там возможно всякое, людей мало, разбираться в тонкостях некому и некогда, поэтому там могут довериться и начинающему специалисту (для вас это может и плюс - наберётесь опыта, а для самой конторы - такое себе).
Товарищи, мои подписчики нашли ещё одну версию курса CS50 в переводе на русский язык.
Для тех, кто тут недавно и ещё не в курсе - это бесплатный гарвардский курс по введению в Computer Science, с которого я всем советую начинать знакомство с IT и программированием. Ниже привожу все ссылки с ним:

1. https://online-learning.harvard.edu/course/cs50-introduction-computer-science?delta=0 - тут оригинал курса, лучше всего проходить его, но если ваш уровень английского не позволяет, тогда можно рассмотреть варианты в переводе на русский

2. https://javarush.ru/quests/QUEST_HARVARD_CS50 - тут перевод этого курса от javarush

3. https://www.youtube.com/c/OnlineUniver - а эту ссылку прислали мне вчера, говорят, там есть перевод не только лекций cs50, но и всех дополнительных коротких видео.

И не забывайте - важно не только посмотреть учебные видео, но и сделать задания по программированию - так что есть смысл записаться на основной курс на платформе edx, чтобы там выполнять задания, а видеозаписи лекций и семинаров смотреть в переводе на русский в других местах. (Вроде на javarush тоде можно выполнять задания к курсу, но я не проверяла)
#вашивопросы

Ассемблер простой язык или сложный? Стоит ли входить в программирование с него? Что б сразу было понимание зачем это всё высокоуровневое и фреймворки.

Про ассемблеры скажу так: сами по себе они несложные языки, в них не так много команд и операций. Но писать на них сложнее, чем на высокоуровневых языках. Собственно, потому и придуманы высокоуровневые языки - как удобный интерфейс над низкоуровневым миром. Когда мы пишем, например, веб-сайт, мы даже не вспоминаем, как всё это работает внутри - какие там метаморфозы происходят с регистрами внутри процессора компьютера, где и как записываются нолики и единицы. Мы просто используем команды вида «показать пользователю текст».

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

Недавно наткнулся в просторах сети на одно видео. Если кратко, то в нем автор говорит о том, что рынок веб-разработки (в Москве, как я понял) уже перегрет и далее будет только увеличиваться конкуренция, а зарплата уже падает или начинает падать. И то, что имеет смысл сейчас идти только в Data Science. Насколько это соответствует реальной картине на рынке веб-разработки (фронтенда, в частности)? Просто не хочется через пару лет оказаться за бортом

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

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

Вообще я очень скептически отношусь к любым предсказаниям в Интернете - люди часто берут на себя роль экспертов, а то и экстрасенсов без всяких на то оснований. Куда ни плюнь - везде какие-то прогнозы - «завтра доллар будет стоит вот столько», «завтра курьеров заменят роботы», «завтра правительство уйдёт в отставку», «завтра программисты не будут нужны». Это всё сродни гаданиям по кофейной гуще - причём ошибаются даже очень грамотные чуваки, которые всерьёз изучали рынок, разную статистику и научные данные, что уж говориить о людях, которые выдают своё субъективное мнение за экспертную оценку. А предсказывать будущее всё ещё не умеет никто (если вы, конечно, не верите в гадалок).

Задать вопрос автору блога можно здесь: @hum_it_bot
P.S. К предыдущему посту.

На счёт Data Science - да, это сейчас модно и востребованно. Но дата-саентисты не могут существовать без программистов. Так что чем больше на рынке дата-саентистов, тем больше нужно инженеров (в значении Software Engineer) и DevOps инженеров.

Проблема в том, что дата-саентисты часто - специалисты достаточно узкого профиля - они понимают матан, на его основе создают модельки и нейросети. Но как правило у них не хватает квалификации в программировании и DevOps навыков, чтобы сделать полноценный продукт из своих моделек.

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

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

Есть ли какие-то школы, которые предоставляют именно услугу менторства в программировании? Дело в том, что я самостоятельно прошла несколько курсов и более менее умею гуглить, и могу написать небольшую программу, которая, например, будет стандартные таски к story в Джире создавать, но иногда возникает необходимость задать вопрос в духе "как к такой задаче подступиться?" или "что почитать?" или "где у меня пробелы?", что бы ту же книгу, курс, статьи выбирать основываясь на том чего не хватает.

Насколько я знаю, наличие ментора/наставника - это одна из фишек почти всех так называемых онлайн-университетов. Например, тех же geekbrains. Если почитать описания программ, там обычно написано про наличие наставника.

Имеет ли смысл учить сразу Vue вместо React? Так как по слухам Vue становится все более популярной опцией для фронтенда.

Какой фреймворк вам в итоге пригодится, зависит только от вашего будущего работодателя. Скажем, устроитесь вы в компанию, где всё на реакте - значит пригодится реакт. А где-то наоборот пригодится vue. На какую «лошадку» делать ставку, я вам не подскажу - так что как вариант - изучайте и то, и другое.

Мое образование и текущая работа связана с профессиональным владением английским языком. Может ли хорошее знание английского языка дать хотя бы небольшое преимущество для прохождения «джуновской мясорубки» при трудоустройстве?

Английский язык вам облегчит жизнь в некотором плане: будет легче прочитать и понять документацию по нужным вам темам (чаще всего она на английском языке), то же касается статей в Интернете, и вопросов-ответов на Stackoverflow. Гуглить тоже удобнее и результативнее на английском языке. Также для вас доступны всевозможные онлайн-курсы с видеозаписями на английском языке. В общем, язык - инструмент полезный для поиска информации и обучения. На собеседовании этот навык можно упомянуть, но там всё-таки в первую очередь обратят внимание на технические скиллы.

Задать вопрос автору блога можно здесь: @hum_it_bot
#offtop

Друзья, чуть-чуть в сторону от IT-тематики: хочу пригласить вас в канал, в который мы с админами дружеских блогов будем скидывать честные обзоры на всё подряд - книги, курсы, технику, косметику, товары с Алика, сервисы доставки еды, всевозможные приложения и тому подобное. Прежде чем что-то покупать, всегда полезно почитать отзывы. Заходите: https://news.1rj.ru/str/bloggers_try
#вашивопросы

Я учусь на предпоследнем курсе в медицинском вузе и заинтересовалась программированием. Сейчас прохожу онлайн курсы. В будущем врачом себя не вижу. Стоит ли мне продолжать учиться в медицинском и закончить его и параллельно изучать программирование,или сейчас уже бросить вуз и полностью вкатиться в айти?
И есть ли какое-то преимущество для программистов с медицинским образованием?


Я не могу принимать за вас такие серьёзные решения, поэтому отнеситесь, пожалуйста, к моим словам просто как к мнению, а не как к совету.

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

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

Что же касается синтеза медицины и IT, это вполне возможно.

Первое, что приходит в голову - это исследования в области медицины с помощью Data Science. Тут больше анализа данных, чем чистого программирования, но направление очень актуальное. Недавно у Geekbrains даже появился целый курс, посвященный Data Science в медицине.

Если же душа лежит не столько к анализу данных, сколько к программированию и software engineering, то можно работать программистом в какой-нибудь компании, связанной с медициной или фармакологией. Или, к примеру, участвовать в разработке софта для медицинского оборудования.

Думаю, человек, который одновременно и врач и айтишник - это очень сильный специалист, практически единичный экземпляр, а и IT, и медицинские исследования/технологии - это очень передовые области с высоким потенциалом. Возможно, в дальнейшем будет разумно рассмотреть варианты с трудоустройством за рубежом, там должно быть больше вариантов.

Задать вопрос автору блога можно здесь: @hum_it_bot