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

Добрый день! Выбираю между магистратурой по IT в МИФИ и курсами в Skillbox или Яндекс.Практикуме. Что посоветуете?

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

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

Добрый день. Мне 26 лет, покупаю курсы у html Academy на профессию фрондент-разработчика, курсы стоят 83к. Отсюда вытекает вопрос, реально ли самостоятельно обучиться бесплатно на данную профессию? Или лучше не стоит себя мучать, и довериться профессионалам?
И в целом за какое время можно получить статус джуниора, и уже метаться на стажировки?


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

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

Готовы ли вы потратить такую сумму денег на курсы - решать вам, я не знаю вашего бюджета и финансовых возможностей. В любом случае, успех зависит от добросовестного отношения и готовности уйти в тему «с головой», не халтуря. Думаю, минимум времени чтобы стать джуном - это 6 месяцев. Более реалистично - 1 год или дольше.

Бот для ваших вопросов: @hum_it_bot
#вашивопросы

Добрый день! Начала курс по Python, а там все задачи по математике. Очень часто говорят, что для программирования математика не нужна. Тогда почему все примеры для изучения Python по математике? Когда проходила курс html/css, такого не было, и примеры были жизненные по созданию страницы сайта. Почему же тогда при изучении Python примеры по математике, если верить, что она не нужна?

Скажем так, математика на продвинутом уровне не нужна для многих областей программирования - например, для той же веб-разработки.
Но есть области, где без неё никак - data science, компьютерная графика, криптография, анализ алгоритмов и другие.

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

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

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

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

Начните с любого курса по Python для начинающих - можно из числа бесплатных. Дальше, чтобы использовать Python, скажем, для финансового анализа, ваша траектория развития - это Data Science и инструменты в питоне, связанные с анализом данных (библиотеки pandas, matplotlib и другие). Возможно, также машинное обучение. Вот, например, статья про пайтон в финансах: https://python.ivan-shamaev.ru/python-for-finance-algorithmic-trading/. В итоге с помощью питона и математических моделей можно будет спроектировать, например, бота для автоматизированной торговли на бирже. Или другие полезные инструменты для анализа рынка.

Бот для ваших вопросов: @hum_it_bot
#вашивопросы

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

Такого быть не должно. Понимаете в чем дело, вечные джуны никому не нужны. Джун - это как маленький ребенок в мире разработки, за ним нужен глаз да глаз, и берут их обычно с расчетом, что они вырастут, станут самостоятельными, и им не нужно будет уделять столько времени более опытных коллег. А кто захочет много лет подряд возиться с грудничком?

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

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

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

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

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

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

Много ли я знаю лидов и «сеньоров» с гуманитарным бэкграундом? Я вообще знаю мало разработчиков с гуманитарным бэкграундом. Себя, например. Тимлидом я была на предыдущем месте работы. Произошло это как-то автоматически - через пару лет стала самым опытным разработчиком на своем проекте (это не сложно, так как кроме меня проектом не занимался никто) - с расширением штата мне подкинули парочку джунов и готово, я - руководитель. Только менеджерскую работу я не особенно люблю и в итоге я ушла в другую компанию на должность разработчика. Да, ведущего разработчика - но уверяю вас, это всего лишь слова, понимание которых разнится в зависимости от компании. В резюме можно обозвать себя «старшим разработчиком», скажем, после 3х лет работы в разработке.

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

Бот для ваших вопросов: @hum_it_bot
А если на курсы по программированию нет денег?

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

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

Может ли фронтенд разработчик рассчитывать на з.п. от 100 000 на руки после 1-2 лет опыта работы? (Сразу оговорюсь, что профессия программиста привлекает далеко не только благодаря возможности получать хорошую з.п. с ростом опыта работы)?

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

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

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

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

Бот для ваших вопросов: @hum_it_bot
Прокрастинация

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

Так что вот моя тактика работы с прокрастинацией:

1. Смириться с тем, что сегодня я не сделаю всё, что запланировано. Прокрастинация - симптом низкой работоспособности и, возможно, некоторой степени выгорания. В таком состоянии не стоит требовать от себя немыслимых подвигов, иначе закончится это только разочарованием. То, что не сделано сегодня, можно сделать завтра, на следующей неделе или никогда - и надо смириться с этим фактом. Бывают дни, когда не удается сделать вообще ничего полезного - и это нормально. Если получилось сделать хоть 5% от задуманного - это уже отлично, я молодец. Отодвинутые дедлайны, нарушенные планы - это еще не конец света.

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

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

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

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

6. В конце дня не сожалеть о не сделанном, а радоваться сделанному. Даже если сделанное - это всего лишь ответ на email или помытая тарелка. Если сделанного ничего нет - остается похвалить себя за день отдыха. Значит мозгу он был нужен. Мы не вечные двигатели, а чувство вины очень плохой мотиватор.
Бывают моменты демотивации, когда решать задачки не выходит, теряется фокус в изучении, нету четкого структурированного понимания, что и как работает, нету знакомых в этом направлении, только ты и интернет. Каким образом можно поставить себя на ноги, поделись опытом, процессом обучения, своей мотивацией, спасибо!)

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

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

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

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

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

Бот для ваших вопросов: @hum_it_bot
Добрый день! Сталкивались ли вы с синдромом самозванца после того, как скипнули в айти, и если да, то как смогли его преодолеть?

Конечно, сталкивалась, сталкиваюсь и буду сталкиваться.

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

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

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

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

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

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

Так что не беспокойтесь о синдроме самозванца, главное - относитесь добросовестно к своим обязанностям и работайте над прогрессом - стремитесь углублять знания, закрывайте «белые пятна». И неуверенность в себе будет постепенно уменьшаться (пусть и с периодическими рецидивами).

Бот для ваших вопросов: @hum_it_bot
Вы говорили как-то, что участвуете в собесах на стороне работодателя и порой ощущаете превосходство над кандидатами, что поднимает самооценку. Не замечали за собой желания "утопить" некомпетентных соискателей, чтобы в собственных глазах быть круче?
Насколько вообще характерно для тех, кто сумел выбиться в ИТ с неайтишным бэкграундом, желание самоутвердиться? Или это всеобщий бич?
Спасибо за канал!


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

Цель собеседования - за ограниченное время понять, что за человек перед нами и справится ли он с задачами в рамках наших проектов. Кандидату могут отказать даже при наличии блестящих знаний - например, потому что он не производит впечатление доброжелательного и адекватного человека. То есть, будет негативно влиять на атмосферу общения в коллективе, а то и вовсе начнет агриться и конфликтовать со всеми подряд.

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

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

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

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

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

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

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

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

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

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

Здравствуйте. А если интересно работать с роботами, автоматизацией, умным домом. То что нужно изучать из языков программирования? И не подскажете какое направление выбрать в вузе:)

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

Собственно у меня вопрос: есть ли смысл и целесообразность идти в ДАТА специальности, будучи полным нулем в математике?

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

Где набрать практического опыта начинающему? Например, я знаю Си, учу Java. Мне стоит самой придумывать себе задачи, например, нейронку для блокировки определенных изображений на java? Есть ресурсы с практическими задачами, которые можно положить на гитлаб или есть компании, которые набирают стажеров бесплатно?

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

Добрый день! Я сейчас закончила первый курс бакалавриата, направление Computer Science. Многие мои одногруппники изначально имели хороший бекграунд и с середины года уже попали на стажировки в Гуглы и Яндексы, а я весь год только изучала то, что они уже знали, и со стажировками как-то осталась за бортом. Хочется теперь использовать лето хотя бы для самообразования, но не знаю, во что податься. Я уже знаю какие-то основы, наверное, не хватает практики. Но за что мне тогда стоит взяться, чтобы это было хоть близко так же полезно, как стажировка? В общем, буду рада любому совету, спасибо! :)

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

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

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

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

Где новичку andorid dev искать идеи для мобильных приложений для портфолио? Нужно ли стараться, чтобы интерфейс выглядел симпатично?

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

P.S: Бот для вопросов сломался, и сообщения оттуда пропадают, но вы можете задать свой вопрос в личку.
Подскажите, где можно онлайн обучиться профессии data scientist?

Ресурсов в Интернете для этого масса.

Если вы настроены серьезно, готовы потратить ближайшие полтора года на обучение в плотном графике, и финансовые возможности позволяют платить от 9000 рублей в месяц - то поступайте на курсы при крупных IT-компаниях, например на факультет искусственного интеллекта в GeekBrains от mail.ru. Тут дают профессию с нуля и «под ключ», и в конце выдают диплом гособразца о профпереподготовке.

Если же возможности пока не позволяют - нет такого бюджета, или пока нет уверенности, что готовы пройти полуторагодовой курс, можно начать с малого - в Интернете можно найти много коротких курсов за небольшую цену (или даже бесплатных), например, на онлайн-платформе Udemy (UPD 2022 - cейчас из-за санкций оплатить курсы студентам из России там нельзя), сейчас там много вариантов по цене менее 1000 рублей за курс. Можно для ознакомления пройти несколько таких коротких курсов и дальше определяться - готовы ли вы с головой погружаться в эту профессию, или нет.

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

Бот для ваших вопросов, похоже, починили: @hum_it_bot
Посоветуйте платный курс по изучению С# с нуля

Язык C# чаще всего используется для двух целей:
1) В платформе .Net, чаще всего речь идет о разработке программ под Windows, всем вам хорошо известной ОС.
2) Разработка игр на платформе Unity.

Поскольку я не знаю ваших целей, то начнем с этих двух.

Начнем с самых дорогих комплексных курсов, дающих профессию «под ключ» по одному из этих направлений:

1) Если в ваших планах разработка в рамках .Net, тогда, к примеру, вам подойдёт: Разработчик C# от GeekBrains. Длительность курса - 12 месяцев.

2) Если вы хотите заниматься играми на платформе Unity, тогда вам подойдет специализация Разработчик игр на Unity там же

Если вам интересны платные, но при этом менее дорогие варианты, то предлагаю выбирать по рейтингу и отзывам на одном из сайтов образовательных онлайн-платформ, например:
тут есть целый раздел, посвященный C#. Тут есть и .Net, и Unity и просто язык C# без привязки к ним.

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

Бот для ваших вопросов: @hum_it_bot
#вашивопросы

Отличается ли атмосфера, взаимоотношений в рабочих коллективах IT сферы от коллективов других сфер? Т.е. можно ли выделить какие-то особенности и если да, то в чем они заключаются?

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

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

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

Тут редко встречаются люди, которые понтуются материальным достатком - машиной/квартирой/шмотками. Если кто-то понтуется, то чаще своими интеллектуальными достижениями (иногда - спорными).

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

Бот для ваших вопросов: @hum_it_bot
#вашивопросы

Какую литературу посоветуете почитать начинающему data scientist?

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

1) Аналитика и Data Science. Для не-аналитиков и даже 100% гуманитариев - книга, похоже, не очень известная, но отзывы у неё хорошие - я бы взяла.

2) Data Science. Наука о данных с нуля - книга для начинающих, включает в себя курс по Python.

3) Python и анализ данных - книга от создателя библиотеки pandas под питон - одного из самых используемых инструментов дата-саентиста.

4) Python для сложных задач. Наука о данных и машинное обучение - для чуть более продвинутых новичков.

Бот для ваших вопросов: @hum_it_bot
Подготовиться к тесту, сдать экзамен

В последнее время подписчики достаточно часто просят подготовить их к экзаменам или тестам. Бывают и менее этичные запросы - сдать экзамен или тест вместо них, или быть на связи во время экзамена.

Но я в деле подготовки к экзаменам не специалист. Я сама не училась очно в технических ВУЗах, не сдавала ни ЕГЭ по информатике, ни госэкзаменов или зачетов в ВУЗе. Училась я исключительно на онлайн-курсах, а потом сразу пошла работать в IT. Я знаю кое-что про собеседования на работу, но никак не про требования на экзаменах. Я даже не знаю, смогу ли сама сдать ЕГЭ.

Чтобы подготовиться к экзаменам, вам нужен репетитор, специализирующийся именно на том, что вы собираетесь сдавать - ЕГЭ/ОГЭ, экзамены в ВУЗе, или какие-то еще тесты. А найти репетитора в современном мире вообще не проблема - для этого есть специальные платформы, например, вот раздел для подбора репетитора по информатике на profi.ru. Эта платформа мне хорошо знакома, я сама подрабатывала у них репетитором в студенческие годы, тогда она, правда, называлась repetitors info. Там можно сформировать запрос любого содержания - менеджеры подберут подходящего специалиста по любому предмету и для школьника, и для взрослого. Можно также выбрать преподавателя самому по анкете и отзывам.

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


Бот для ваших вопросов: @hum_it_bot
#вашивопросы

Не могу определиться как развиваться дальше. С одной стороны тянет во фронтенд и всё что с ним связано. Но с другой стороны тянет в бизнес/системный анализ, + по работе есть опыт сбора и написания требований, ТЗ, также есть опыт тестировки. Во фронтенде классно, но когда смотришь на количество знаний, которое нужно даже для старта, становится не по себе. Как определиться, что тебе подходит лучше?

Во-первых, не бойтесь объема информации, который нужно усвоить. Всё это реализуемо, всё сложное раскладывается на более простые кирпичики. Постепенно разберетесь и объем знаний уже не будет казаться таким неподъемным.

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

P.S. Друзья, если вы задавали вопрос в бота, но ответа так и не дождались - возможно, вопрос потерялся среди кучи других. Присылайте его в таком случае еще раз, не стесняйтесь.
Бот для ваших вопросов: @hum_it_bot
#вашивопросы

В будущем планирую эмиграцию по IT сфере, изучаю языки программирования. В связи с этим задумываюсь о получении высшего образования за рубежом(магистратура) в сфере IT.
Может быть знаешь, в каких странах лучше получить его? Где полученное образование будет востребованным?


В вопросе не уточняется, какие страны человек готов рассматривать и каким бюджетом он располагает. Так что я буду отталкиваться от самого нереалистичного сценария - человек может позволить себе переехать в любую страну на земном шаре и у него неограниченное количество денег. Будь я таким человеком, я бы, наверное, выбрала США - там есть Гарвард, Стэнфорд, МИТ, Карнеги-Меллон и другие колледжи с мировым именем. США - колыбель IT-гигантов, там находятся Силиконовая долина и Boston Dynamics.

Помимо США хороших вариантов масса: Великобритания, Германия, Сингапур, Канада или Австралия и другие. Но в вопросе не уточняется, есть ли у человека какие-то предпочтения.

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

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

Хотелось бы узнать, как программирование повлияло на общую интеллектуальную составляющую в жизни и как, по вашему мнению, программирование развивает интеллект или интеллект требует заниматься такими видами деятельности как программирование?

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

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

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

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

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

Бот для ваших вопросов: @hum_it_bot
Как НЕ стать программистом

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

1. Много времени тратить на чтение Хабра или других статей в Интернете. Казалось бы - а что тут плохого, статьи по теме, это же интересно и полезно? В чтении статей, конечно, нет ничего плохого. Но время - ограниченный ресурс, и вместо того, чтобы распыляться и читать обо всём подряд - лучше углубиться в изучение конкретных предметов - в ваш язык программирования, например. На хабре действительно много полезного, но часто там статьи посвящены узким темам, которые нужны только тем разработчикам, которые именно с этими технологиями работают. Например, зачем вам читать про докер, если вы еще в линуксе не разобрались? Зачем вам читать про миграцию с MySQL на Oracle, если вы ни с одной из этих субд незнакомы? Когда вам понадобится эта информация - тогда и почитаете. Пункт, казалось бы, очевидный, но я встречала новичков, которые читали на хабре все подряд, вместо того чтобы пойти и научиться хоть чему-то конкретному, и прогресса это не приносило.

2. Никогда не искать работу. Человек уже отучился год или больше, что-то знает, сделал какие-то свои домашние проекты - но он считает, что ещё не готов к собеседованиям. Загвоздка в том, что ощущение, что «ты готов» не настанет никогда, и так можно превратиться в вечного студента. Лучше провалить собеседование, чем никогда на него не приходить. А если с собеседованием не повезло - используйте возможность и спросите собеседующих, каких знаний вам не хватает на их взгляд, и какие темы нужно подтянуть. Закроете пробелы и вернетесь через пару месяцев (или попытаете удачу в другом месте).

3. Крайне низкая планка. Человек ставит себе очень минималистическую цель - мол, стану каким-нибудь захудалым плохеньким разработчиком, на большее моих способностей/времени не хватит. То есть человек на старте, с нулевыми знаниями планирует примерно в таком же нуле и остаться, выучить самый минимальный минимум, и попытаться его монетизировать… Нет, друзья, ставьте себе высокие стандарты и будьте жадными до знаний. Научиться программировать - это не так уж сложно и долго, это не на врача 10 лет учиться, так что не надо прибедняться. Что это за цель такая - стать плохим специалистом?

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

5. Отсутствие реальных проектов. В учебных курсах задания часто бывают очень маленькими и не очень трудозатратными, и они не всегда строятся по принципу реальных проектов. Не ограничивайтесь учебными задачками - делайте реальные проекты - для себя, для друга, для мамы. Если вы изучаете веб-разработку - напишите для себя или для кого сайт с нуля и доведите его до работающего состояния. Потом пишите следующий. Учитесь играм - пишите простенькие игры «в стол» (или не в стол). Изучаете андроид или IOS приложения? Ну вы поняли. На работе вам никто не будет платить зарплату за то, чтобы вы написали функцию, которая вычисляет числа Фибоначчи.