Рубрики
Обучение Преподавание

Строки в программировании — невнимательность и кодировки

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

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

Поэтому здесь будет лишь краткое вступление.

Вступление

Кто-то знает, а кто-то нет, что я работаю преподавателем уже около 20 лет. Но в институте я преподаю право. Что слабо соотносится с тем, о чем пойдет речь ниже. Однако с 2019 года я создаю и поддерживаю различные курсы на Степике, в том числе, с осени 2020 года и курсы по программированию. За прошедшие годы накопилось много интересного опыта, собралось много наблюдений, было исправлено множество часто однообразных ошибок учащихся. На что-то можно было указать прямо в теории курсов, на что-то я писал развернутые комментарии под тем или иным шагом. Но многое остается у меня в голове и в тех решениях, которые никто не видит. Я долго шел к тому, чтобы попробовать все это проанализировать и как-то преобразовать во что-то полезное. Например, в заметки на этом сайте. Хочется верить, что эта заметка окажется первой ласточкой и дальше будет больше и интереснее.

С и C — это разные буквы для компьютера

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

Учащиеся очень часто путают буквы кириллицы и латиницы. Человеку кажется, что они одинаковы и видит он их тоже одинаково. Но компьютер буквы (символы) воспринимает совсем иначе. И для него они могут отличаться.

Например, у нас есть два слова:

cop
сор

Визуально вам может показаться, что это одно и тоже слово. Однако для компьютера эти слова состоят из совершенно разных символов — верхнее написано на латинице, а нижнее на кириллице. А вот как их «видит» компьютер:

99 111 112
1089 1086 1088

Можете сами проверить.

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

Если же вы уже прошли этап «перепутать с и c», то можете взглянуть на статью Абсолютный минимум об Unicode на 2023 год, чтобы понять, насколько глубока кроличья нора строк и кодировок. Беременным и людям со слабым сердцем по ссылке лучше не переходить и не пытаться во все это вникать) Я предупредил.

Рубрики
Обучение Онлайн курсы

Новогодний курс на Степике (декабрь 2023)

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

Осенью 2020 года, после череды созданных на Степике курсов, у меня появилась мысль о создании особого, новогоднего, курса. Праздничного, доброго и веселого. Который бы дарил хорошее новогоднее настроение. Идей о чем может быть такой курс было много. У меня так всегда — идей много, но проблемы с их дозреванием и превращением в полноценные курсы. По разным причинам. Так и тогда. Появилось несколько заготовок. Один курс был наполовину сделан, когда я передумал и начал делать другой. Наполовину его сделал, но решил радикально сменить концепцию. В итоге переделал и он превратился в курс Крылатые выражения — великие и не очень. Кратко о процессе его создания и о том, что получилось в итоге, я уже писал на сайте — Курс, который взлетел.

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

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

Рубрики
Обучение Онлайн курсы

Курсы по закреплению лексики китайского языка

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

Увлечение востоком

Еще со времен моих занятий единоборствами мне был интересен Восток. Его культура, философия, история.

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

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

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

Рубрики
Обучение Онлайн курсы

Что для меня значит Stepik

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

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

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

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

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

Рубрики
Обучение Онлайн курсы

Python-скрипт для парсинга курсов Степика (Stepik)

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

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

Парсер написан на python и выложен на github`е. Там еще есть что доделать и переделать. Однако им можно пользоваться. Думаю особо полезен он может быть для тех, кто активно учится на Степике.

Так или иначе, скачать (или посмотреть ужасный исходный код) его можно здесь:
https://github.com/IgorLutiy/stepik_title_parser

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

Рубрики
Обучение Онлайн курсы

Анализ безопасности веб-проектов

Где-то и когда-то я уже писал о том, как попал на Степик в начале 2017 года. Однако в той статье я не упомянул, что именно я тогда искал и почему оказался на Степике. Который еще только начинал набирать обороты.

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

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

И это был (и есть) отличный курс. Да, там не разжевывали мелочи, но мне это уже не настолько было нужно. Зато там была пробежка по разным темам, интересные и полезные короткие видео, а главное — для закрепления всего этого были отличные практические задачи. При этом во многом заметно интереснее большинства стандартных CTF`ов.

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

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

Рубрики
Обучение Онлайн курсы

Китайский язык. С чего начать на Степике?

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

При всем этом вы еще и активный учащийся платформы Stepik. В таком случае мне есть что вам сказать. Об этом и будет данная небольшая заметка.

На Степике есть где-то около 5 курсов по изучению китайского языка для начинающих (естественно, я пробовал все — хотя не все успешно). Но среди них один выделяется особо. Мне он понравился больше других. Понравился своей простотой, качеством и тем, что реально дал заметный толчок в обучении. Это курс КИТАЙСКИЙ ЯЗЫК. Уровень 1.

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

Начну наверное с самого главного — с благодарности автору курса. Проделана большая работа и это отличный курс для начинающих.

И немного подробнее.

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

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

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

Еще раз спасибо автору за отличный курс!

При этом у автора есть продолжение, КИТАЙСКИЙ ЯЗЫК. Уровень 2. которое несколько сложнее (и я его еще не прошел), но это и понятно. Язык в принципе не самый простой. Однако при наличии подобных курсов — изучение даже сложных вещей может приносить истинное удовольствие. Как говорится — много маленьких шагов приведет нас к одной большой цели.

Учите китайский, учите на Степике и учите на курсе, про который я рассказал выше. Это круто и интересно.

За сим — 再见

Рубрики
Обучение Онлайн курсы

Курс, который взлетел

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

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

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

Рубрики
Обучение Онлайн курсы

Ruby — первое знакомство

Открылся мой очередной курс на Степике:
Ruby — первое знакомство

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

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

Рубрики
Обучение Онлайн курсы

Познакомимся с PHP

Очередная заметка в честь очередного запущенного на Степике курса:
PHP — первое знакомство

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

В сторону PHP я смотрел уже давно. Курсов на Степике раз, два… и обчелся. В самом прямом смысле. Нет больше ничего. Да, я всё понимаю. 2020 год, PHP, все дела (с трудом уворачиваюсь от летящего в меня помидора). Но ниша пуста, а мне интересно (мне вообще ну очень много всего интересно), поэтому почему бы и нет?