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


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

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

Добрый день. Бытует мнение, что людей после курсов работодатели не особо то ждут, а некоторые прямо в объявлении указывают, что им такик не нужны. Действительно ли в IT-сообществе к людям после курсов относятся как к второсортным специалистам?

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

Здравствуйте! Хочу искать первую работу в разработке на удаленку. Как Вы считаете стоит ли новичку сначала работать в офисе или же нет разницы?

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

Задать вопрос автору блога можно здесь: @hum_it_bot
СТАТЬ ПРОГРАММИСТОМ

@tobeprog - авторский канал разработчика о том, как стать программистом. Основная задача канала - полностью разобрать путь становления разработчика, провести по нему читателя и сделать это наиболее эффективно: 

Что полезного тут можно найти:
Python, основы | что читать/смотреть | как правильно использовать уч.материалы
- Что значит программировать, почему многие не понимают этот процесс и как эту проблему решить
- О том, как превратить скучные проекты в интересные

Также подробный план изучения программирования с конкретными шагами, разборы идей для проектов, обзоры на учебные материалы и библиотеки. Если ищете канал, заточенный под активный процесс изучения программирования и без лишней воды, welcome @tobeprog
#вашивопросы

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

У меня нет мнения на этот счет, я сама не работала во фрилансе. У меня на слуху больше всего kwork, но, возможно, это потому что его чаще рекламируют. Также слышала упоминания таких сервисов как work-zilla.com, freelance.habr.com, freten.ru, freelancer.com.ru. В общем, я тут не умнее гугла.

Где искать работу для начинающего веб разработчика?

Я все свои работы находила только в двух местах - hh.ru и Linkedin. Про другие места ничего не знаю, мне и этих всегда хватало.

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

Обычно так рассуждают люди из среды, далёкой от IT.

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

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

А искусственный интеллект хоть приблизительно равный человеческому пока что изобрели только в научно-фантастических фильмах.


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

Добрый день, хотел бы поступить в колледж на специальность ...Программное обеспечение информационных технологий... . Но теперь стоит вопрос, есть два направления, это Компьютерная графика и Программное обеспечение обработки экономической и деловой информации и какое лучше направление выбрать я не знаю, так как мнений очень много. Люди говорят как и плюсы, так и минусы.
Я оставлю две ссылки, если будет у вас желание посмотреть на два колледжа:
http://www.mcb.by/specialnosti
http://www.vgpt.vitebsk.by/specialty/it.html Также есть вопрос, после освоения одной из специальности, на какую работу я мог бы претендовать?

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

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

Что касается компьютерной графики - тут хотя бы понятно, чему там обучают - компьютерной графике, очевидно.

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

Но если есть возможность, лучше после колледжа поступить в ВУЗ.

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

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


- Skillfactory предлагает скидку 45% на все курсы по промокоду PARTNER. Школа специализируется на курсах по программированию, Data Science и не только

- Product LIVE - смежный проект, обучает на продакт- и проджект- менеджеров, тот же промокод PARTNER, та же скидка 45% на большинство направлений

- Contented - онлайн-школа дизайна, тот же промокод PARTNER, та же скидка 45%

- Нетология - до 9 сентября (в другом месте написано до 5 сентября, так что возможны разночтения) - скидка до 50% на разнообразные курсы. Промокод не нужен, все скидки уже активны на сайте. В меню представлены курсы по программированию и Data Science, маркетингу, дизайну, аналитике, бизнесу и управлению.

- Skillbox пишут о скидках до 50% в сентябре

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

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


@@@

Кто так же решил подтянуть английский по случаю начала учебного года:

- Skyeng предлагает 2 бесплатных урока в подарок к заказу по промокоду SKYFREE

- Lingualeo даёт скидку 50% на курс изучения языка Lingualeo Premium на 12 месяцев

- EnglishDom дарит до 6 уроков при первой оплате
#вашивопросы


Вопрос не совсем по теме IT. Я обучаюсь на одной из интернет платформ. Моя актуальная специальность ни как не связана с IT, я один из так называемых "свитчеров"(потенциальных).

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

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

Ну смотрите, активно общаться в каких-то соцсетях совершенно необязательно, это вопрос желания.

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

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

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

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

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

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

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

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

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

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

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

Отказывать себе в отдыхе и развлечениях - непродуктивно. Они нужны не меньше, чем работа. Но на них лучше выделять отдельные от работы интервалы времени. Например, используя «метод помидора» - ставите таймер на 20-30-40 минут, и этот интервал посвящаете строго работе. После окончания интервала обязательный перерыв 5-10-15 минут - посвящаем исключительно отдыху. Потом снова интервал работы. Таким образом рабочие задачи не перемешиваются с развлечениями и тайм-киллерами.

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

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

Здравствуйте, как научить себя учиться?

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

Сама, честно говоря, в эту тему не углублялась, и методик не знаю.

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

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

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


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

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

Поэтому будем отталкиваться от общих законов, царящих на рынке труда.

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

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

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

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

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

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

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

Задать вопрос автору блога можно здесь: @hum_it_bot
Почему курсы могут «не сработать»

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

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

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

Ниже опишу несколько причин, которые по моему мнению, могут быть основными:

1. Неправильная мотивация. Вы хотите в IT почему? Чтобы что? Да, эти профессии востребованы на рынке, и там зарплата выше рыночной - но это само по себе недостаточная мотивация.

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

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

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

2. Завышенные ожидания о результате. Разработка и IT - это не совсем то ремесло, которому можно научиться чисто механически, и без особых усилий, и потом выйти на работу и бесконечно повторять одно и то же несложное действие, которому вас научили ‌в‌ ‌П‌Т‌У‌ на курсах. Большинство вакансий в IT требуют готовности экспериментировать, придумывать свои решения, пробовать новое, работать с до того незнакомыми технологиями. Это интересно, но этому не научишься заранее, учатся уже «в бою». А если у вас настрой «научите меня печь пирожки, и я буду всю жизнь их печь одинаково» - это, вероятно, не сработает.

Как пофиксить: вашей целью должно быть не просто выполнение всех «домашних заданий» и получение какого-то сертификата на выходе. Поставьте себе цель - научиться самостоятельной работе над проектами. Чтобы преуспеть, вы должны уметь сделать нечто работающее «с нуля» и без подсказок (гугление не в счет). Если речь идет о веб-разработке - то, очевидно, это должен быть свой сайт (лучше много сайтов). Если о гейм-деве - то игра, и так далее, и тому подобное. А к курсам лучше относиться как к знакомству с инструментами - вот есть отвертка, она нужна для этого и этого, вот молоток - он для другого. Ваша же задача - набить себе руку, и научиться делать что-то полезное с помощью отвертки и молотка.
​​Если вы уже знакомы с основами программирования и системного администрирования, но хотите освоить смежную высокооплачиваемую профессию и повысить свою квалификацию, то этот курс для вас!
Вы узнаете:
⚡️что такое CI/CD и зачем они нужны;
⚡️как работать с Git из консоли;
⚡️зачем нужна виртуализация и контейнеризация;
⚡️как установить Prometheus и Grafana;
⚡️основы управления инфраструктурой и конфигурацией и много другое.

👉Переходите по ссылке и регистрируйтесь. Первые 3 месяца обучения бесплатно!▶️ https://clc.to/nVNfbQ.
Программирование для гуманитариев
Подборка скидок и промокодов к началу учебного года Вот наступил новый учебный год, а сентябрь, как вы могли заметить - излюбенное время для онлайн-школ - это месяц, когда почти все предлагают различные скидки, промокоды и спецпредложения. Посему я составила…
Для тех, кто спрашивал про скидки у Гикбрейнс, сейчас у них наконец появились сентябрьские скидки, запоздало, но лучше поздно, чем никогда.

На что действуют акции:
- 10% на факультет и профессию «Геймдизайн» и факультет «Разработка игр на Unreal Engine»
- 20% на факультет «Разработка на С++», «Разработка игр на Unity», «2D-художник игр»
- 30% на факультет «Игровая аналитика»
- До 30% Разработка на Python, Тестирование ПО, Веб-разработка и другие факультеты, а также на курсы по аналитике
- 30% на факультет «Управление персоналом»
- 20% на факультеты «Проджект-менеджмент» и «Продакт-менеджмент»
- 10% на факультет «Руководитель проектов в строительстве» (не знала, что у них даже такое есть).

По официальным условиям, акции действуют до 30 сентября. Будут ли они продлевать скидки на октябрь, пока не знаю.
Как чтение может принести вред

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

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

Казалось бы, что с этим не так? Разве может любознательность навредить?

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

Особенно в этом смысле удивляют телеграм-каналы в духе «случайные факты обо всём подряд». В первом посте будет написано про какую-то особенность JavaScript, во втором - про веб-фреймворк к Java, в третьем - как настраивать MongoDB.

Вот прочитаете вы эти три статьи - и они вам как помогут, если вы никогда не работали и в ближайшее время не планируете работать ни с JS, ни с Java, ни c MongoDB? Отвечу за вас - никак они вам не помогут. Попытка нахвататься случайных фактов обо всём подряд, максимум - заполнит вашу кратковременную память, и вскоре вся информация оттуда улетучится.

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

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

Привет! Прохожу сейчас cs50 (огромное спасибо за рекомендацию!). Возник такой вопрос: сколько времени у вас уходило на один раздел, такой, как week 2, к примеру? Требовалось ли просмотреть/прочитать лекцию несколько раз, подождать, чтобы она "уселась" в голове? Поэкспериментировать с элементарными вещами, посоздавать arrays, посмотреть как они себя ведут — прежде, чем переходить к лабам и задачам?

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

Кстати, советую попробовать слушать лекции и прочие учебные видео в любых курсах не на изначальной скорости, а чуть быстрее - x1.5, x2, x3 - чем медленнее речь лектора, тем быстрее можно ставить скорость. Это для кого-то может прозвучать непривычно, но на более высокой скорости информация может усваиваться гораздо лучше, на эту тему даже были какие-то исследования. А медленная речь наоборот - ухудшает концертрацию слушателей. Главное - найти комфортный для вас темп.

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

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

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


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

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

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

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

Насколько я понимаю, речь идёт о каком-то небольшом курсе по Python, и больше вы ничего не изучали, к примеру, базы данных, сети, ОС Linux итд? Если это так, то на данном этапе у вас может быть представление о Python примерно как об умном калькуляторе для обработки чисел и текста. При этом более широкого представления о Computer Science и о том, как там что работает может и не быть. Если это так, я бы рекомендовала курс для углубления в тему - например, для этих целей я всем советую CS50 (можно набрать в поиске по постам в канале).

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

Как вам работается в случае недосыпа? Лично я заметил, что если не высплюсь, не в состоянии решать сложные задачи, можно даже не пытаться, ибо получится пустая трата времени. Известны ли кодерам какие-нибудь способы заставить мозг работать в состоянии недосыпа?

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

Так что лучше всего найти время и поспать днём минут 20-30. Это поможет повысить работоспособность. Но дольше 30-40 минут днем специалисты спать не советуют.

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

Проходили ли вы CS50 и курс по питону одновременно, или сначала закончили один, а потом начали другой? Если одновременно, не приходилось ли бороться с путаницей в голове из-за разницы между C и питоном?

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

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

Если у вас возникает путаница в голове, то попробуйте больше сравнивать 2 языка друг с другом и, возможно, даже выполнять одни и те же задания на обоих языках по очереди. У Python тоже Си-подобный синтаксис, просто нужно запомнить, какие конструкции в Си обозначаются по-другому в Python. Например, там где в Си используются фигурные скобки { }, в Python чаще всего идёт двоеточие : и отступы на следующей строке.

И второй момент, о котором стоит себе напоминать - язык Python фактически написан на Си (точнее, на си написан самый распространенный интерпретатор для Python, CPython, но в этом контексте это уточнение не так важно).

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

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

Задать вопрос автору блога можно здесь: @hum_it_bot
Программирование для гуманитариев
Сложности работы «на удалёнке» Мне тут пришла идея делиться с вами не только своим личным опытом, но и рекомендациями, которые я слышала от моих коллег, мнению которых я доверяю. Сегодня как раз такой случай. Речь пойдёт о работе на удалёнке. В нашей компании…
Наконец, дошли руки прочитать книгу Remote, про работу на удалёнке.

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

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

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

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

- 8-9 часовой рабочий день в офисе превращается в 12, а то и 16-часовой дома - бывает, ты за компом и с утра, и поздно ночью, и практически всегда. Утром написал коллега, что-то спросить - ты уже за компом. Вечером спешить некуда, на электричку домой не опоздаешь, и кажется, что сейчас еще чуть-чуть закончишь с той задачей, там немного осталось, и вот уже час ночи. В итоге work-life balance превращается в work-work balance. Работаешь практически круглосуточно

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

- Из дома практически не выходишь, шагов за день делаешь не 10000, а примерно 100, физическая активность околонулевая. За год прибавляешь килограм 10. И на здоровье это всё тоже сказывается

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

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


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

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

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

Вторая рекомендация - следить за физической активностью. Гулять, заниматься физкультурой, в фитнес-клуб, я не знаю, записаться. Авторы книги советуют всем работодателям оплачивать своим сотрудникам фитнес (в идеальном мире люди живут). Иначе, сами знаете, +10 кг, а со временем и проблемы со здоровьем

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

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

@Local_Area_Network
TDD или зачем писать тесты

TDD расшифровывается как test driven development, разработка через тестирование. Что это такое расскажу ниже, для начала пара вводных слов о самих тестах.

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

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

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

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

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

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

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

Начнём с элементарного теста для этой функции. Если товар стоит 100 рублей номинально, мы его будем продавать за 200. Если он стоит 0, то и цена будет бесплатной:

def test_calculate_price():
assert calculate_price(100) == 200

assert calculate_price(0) == 0

После этого напишем саму функцию. В целях демонстрации она будет максимально простой:
def calculate_price(nominal):
return nominal * 2


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

Внесение изменения

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

Обнаружен баг

Один покупатель в нашем Интернет-магазине оформлял заказ, и увидел, что товар стоит -200 рублей. Так мы узнаём, что наша функция может возвращать отрицательные значения. С чего мы начнем исправлять эту ошибку? Поменяем функцию calculate_price ? Нет, первым делом нужно доработать тесты. Раз в программе есть баг, значит тесты должны его отлавливать. Предположим, мы хотим, чтобы наша функция возвращала None, если мы передаём ей отрицательную номинальную цену. Добавим в наш тест проверку на работу с отрицательными числами:

def test_calculate_price():
assert calculate_price(
-100) is None

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

Изменение логики функции

Предположим, цены в нашем магазине изменились, и теперь все товары стоят в 2 раза больше номинальной стоимости + наценка 20% от номинальной стоимости. Что мы поменяем первым делом, чтобы реализовать эту логику? Правильно, тест.

def test_calculate_price():
assert calculate_price(100) == 220
# и так далее


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

Вот так примерно выглядит разработка по методике TDD.