Как стать автором
Обновить
960.28

Программирование *

Искусство создания компьютерных программ

Сначала показывать
Порог рейтинга

Люди часто спрашивают меня, как попасть на работу в ИТ.

Говорят, у вас, айтишников, работа не пыльная и зарплаты высокие. Спрашивают, как быстрее войти в профессию? С чего начать? Может, какие курсы посоветуете?

Мне всегда хочется начать свой ответ словами из песни: «Видишь там на горе возвышается крест, повиси-ка на нём…»

Чтобы быть айтишником, у вас должно быть самое главное качество — вы должны получать удовольствие от работы за компьютером. Удовольствие от программирования или настройки программ. Если вы никогда в жизни не ловили себя на том, что уже 2 часа ночи, а вы не можете оторваться от решения поставленной задачи, то у меня для вас плохие новости — скорее всего, вы не сможете работать в ИТ.

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

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

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

Теги:
+9
Комментарии11

Never gonna give Differential Calculus up или решаем уравнение Лапласа на теле Рика Эстли в пару строчек 🕺🏼

Пример создания и использования граничной сетки для решения уравнений на её основе в WLJS Notebook

Улыбочку! 📸

img = (* Drag n drop фотографию Рика *);  

Применяем фильтр, чтобы оставить только силуэт

MeanShiftFilter[%, 5, 1] // Binarize // ColorNegate

Делаем сетку для решения уравнения из ч/б изображения

ξ = ImageMesh[%]

Ищем собственные значения и векторы (первые 6) оператора Лапласа aka решаем волновое уравнение

{vals, funs} = NDEigensystem[ {
  -Laplacian[u[x, y], {x, y}], 
  DirichletCondition[u[x, y] == 0, True]
}, 
u[x, y], Element[{x, y}, ξ], 6];

Рисуем первые 6 решений и их "энергии"

Grid@
 Partition[
  Table[ContourPlot[
    funs[[i]], Element[{x, y}, ξ], 
    PlotRange -> All, ImageSize->300, 
    PerformanceGoal->"Speed", PlotLabel -> vals[[i]] 
  ], {i, Length[vals]}], 3]

Результат

Never Give up on Differential Calculus
Never Give up on Differential Calculus

Теги:
+4
Комментарии1

Не время менять работу, AI специалисты всё ещё на коне.

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

Агенство прогнозирует что ИИ специалисты по прежнему будут занимать лидирующие позиции по востребованности и уровню зарплат. 

Так же представлены в алфавитном порядке 12 самых востребованных профессий на 2025 год. Из неинтересного там появилась новая профессия - Специалист по этике ИИ. 

А из интересного то что в список попали ИТ Бизнес-аналитики. 

Это подтверждает мои догадки о том что 2025 год будет годом в котором косты на Data Science будут срезать.

Список из 12 самых оплачиваемых ИТ профессий в США:

1. AI ethicist

2. AI product manager

3. Business analyst

4. Cybersecurity engineer

5. Data engineer

6. Database administrator

7. ERP integration manager

8. Machine learning engineer

9. Network engineer

10. IT Project manager

11. QA analyst 

12. Software engineer

Источник: https://www.roberthalf.com/us/en/insights/career-development/highest-paying-it-jobs

Теги:
0
Комментарии0

Как не умереть от голода работая в ИТ

Я наткнулся на вакансию от компании "Первый Бит" в Москве. Условия оплаты указаны в описании: сдельная зарплата начинается от 25 тысяч рублей на испытательном сроке, увеличивается до 70-90 т.рублей через 6-9 месяцев и превышает 100 т.рублей через год.

https://hh.ru/vacancy/105297559

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

Предлагаемая зарплата явно недостаточна для покрытия аренды жилья и транспортных расходов. В Новой Москве студия за пределами МКАД стоит от 30 тысяч рублей в месяц. Даже если делить аренду с кем-то, это будет около 15 тысяч рублей с человека, не считая коммунальных услуг. Транспортные расходы на поездки из таких районов также составят значительную сумму — около 5-7 тысяч рублей.

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

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

Теги:
+2
Комментарии6

Из рабочего чата, залипательное — хороша почти каждая строчка, даже мелкий текст по периметру :)

Максимальное качество, в котором нашёл — ссылка
Максимальное качество, в котором нашёл — ссылка

Теги:
+53
Комментарии5

Готовы вывести свои веб-приложения на новый уровень? 💻

Тогда новый бесплатный курс «Веб-разработка на практике» — для вас!

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

В рамках курса

🔹Разрабатываем и разворачиваем приложение на FastAPI . 

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

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

Переходите в Академию Selectel, чтобы ознакомиться со всеми материалами! 

Теги:
+9
Комментарии0

Как обрабатывать 5 млн изменяющихся форм в минуту с SLI 99.99% — Кирилл Грищук

Опубликовали запись доклада секции «Разработка» с Ural Digital Weekend 2024.

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

Ссылка на запись доклада в ВКонтакте.

Ссылка на презентацию: https://goo.su/qHW9

Теги:
0
Комментарии1

Почему умирает OpenHarmony

Если вы откроете проект на gitee.com вы увидите что проект включает в себя больше 700 (семисот!) репозиториев. Секрет в том что ни один из этих проектов в отдельном репозитории не компилируется независимо! Один знакомый разработчик, который работает с этим богатством, рассказал мне, что чтобы скомпилировать какой либо из проектов составляющих OpenHarmony вы должны скачать и скомпилировать минимум 450 репозиториев! Дело в том что даже отдельные приложения такие как mailBox, storage с СМС-ками, с контактами, видео плеер, ... которые, казалось бы, должны быть отдельными приложениями таковыми не являются. Они все компилируются как части одной монолитной прошивки смартфона (как части операционной системы) и вы не можете скомпилировать их без компиляции всей системы, такая опция просто не предусмотрена.

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

Каждый новый добавленный в OpenHarmony репозиторий приближает видимый крах проекта.

Интересно как обстоят дела у Андроида в этом смысле.

Теги:
+6
Комментарии1

Реализация FABRIK на WL в пару строк

Текущая реализация далека от оптимальной, но она хорошо подходит для демонстрации работы алгоритма. Среда исполнения используется WLJS Notebook aka Jupyter + Observable для WL

Виджет с работающим алгоритмом
Виджет с работающим алгоритмом

Мы создадим цепочку из точек и свяжем их в сегментированную линию фиксированной длины

chain = Table[Exp[-ϕ]{-Cos[ϕ], Sin[ϕ]}, {ϕ, 0, π - π/7, π/7.0}];
Graphics[{
    Line[chain // Offload], Black, 
    PointSize[0.04], Point[chain // Offload], Red,
    EventHandler[Graphics`Canvas[], {
      "mousemove" -> handler
    }]
  },
  Axes->True, PlotRange->{{-1,0.2}, {0,0.4}}, ImageSize->400
]

Вы увидите окно с цепью, но цепь не будет реагировать на движение мыши. Нужен сам "решатель". Оригинальная статья опубликована в 2010 году, и алгоритм можно реализовать буквально влоб

handler = Function[target,
  Module[{
    buffer = chain, 
    origin = {-1,0}, 
    prev = chain, 
    lengths = Norm /@ (chain // Reverse // Differences) // Reverse
  },
    buffer = Table[With[{p = chain[[-i]]},
      If[i === 1,
        prev = target;
        target
      ,
    
        prev = prev - Normalize[(prev - p)] lengths[[1-i]];
        prev 
      ]
    ]   
    , {i, chain // Length}] // Reverse;

    buffer = Table[With[{p = buffer[[i]]},
      If[i === 1,
        prev = origin;
        origin
      ,
    
        prev = prev - Normalize[(prev - p)] lengths[[i-1]];
        prev 
      ]
    ]
    , {i, chain // Length}];

    chain = buffer;
   ]
];

После выполнения этой ячейки цепь оживет

Теги:
+1
Комментарии0

Одна линия, чтобы рассказать историю или Bad Apple на графике WL

Сначала получаем видеофайл анимации Bad Apple каким-либо образом и загружаем его в любую ячейку ввода. Извлечем один кадр

video = Import[FileNameJoin[{"attachments", "Touhou - Bad Apple.mp4"}], 
{"ImageList", All}];
img = video[[500]] // Thumbnail

Кстати, удобно, что Bad Apple выполнена в стиле теневой анимации, поэтому мы можем легко преобразовать любое изображение в сетку из 1 и 0. Если знать положение каждого темного пикселя, то не составит труда обойти их всех одной линией

img = img // ImageAdjust // Binarize;
pos = PixelValuePositions[img, 0];
{length, path} = FindShortestTour[pos];

Здесь нам не нужна длина, а только сам путь, который содержит индексы точек из pos, соединённых в нужном порядке для формирования кратчайшего маршрута через все тёмные пиксели

ListLinePlot[pos[[path]]]

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

ListLinePlot[MovingAverage[pos[[path]], 5]]

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

Код полной анимации приведен в этой статье (EN).

Теги:
+5
Комментарии2

Полезные ссылки и новости в дайджесте за сентябрь⛅

🦾 Анонсировали GoCloud Tech 2024 — IT-конференцию про облачные решения и русский AI, которая пройдет 24 октября онлайн и офлайн в Москве. Приходите послушать хардкорные доклады про облака, AI и изнанку наших сервисов, обменяться опытом и обсудить интересующие темы в неформальной обстановке: зарегистрироваться.

🎓 Запустили новый бесплатный курс Cloud.ru Cloud Fundamentals — про основы использования и внедрения облачных технологий, а еще сертификацию, чтобы вы могли официально подтвердить свои знания и навыки.

🔥 Предлагаем Evolution Managed Kubernetes по специальной цене — подключите сервис до 30 ноября 2024 года и используйте со скидкой 60% до конца 2025 года.

📺 Провели два вебинара:

И приглашаем на вебинары в октябре:

🦾 Поделились обновлениями наших облачных платформ в дайджесте на сайте. Например, теперь в общем доступе сервисы Evolution Bare Metal и Evolution Artifact Registry — подключайте! 

📄 Опубликовали заметки с саммита по вычислениям, памяти и хранению данных 2024 в статье Что нового слышно о шине CXL

🎧 Обсудили с лидером продукта Романом Тимониным, какие навыки станут ключевыми с приходом ChatGPT и почему важно доводить проекты до конца. Подкаст смотрите на YouTube, на RuTube или в VK.

До встречи в ноябре!

Теги:
+4
Комментарии0

Тестировал всякое для ATARI XL/XE и написал небольшую демку в 106 Байт.

Чтобы понимать куда именно смотреть - тут экран 48х24, то есть 1152 байта, но в ОЗУ весь экран представлен всего 48 байтами, еще 78 байт (кто захочет посчитать 48+78=126, тут просто кодом реализованы однотипные строки) для программирования видеочипа, которому объяснено, что каждая строка на экране смотрит на одну и ту же часть ОЗУ, так мы заполняем весь экран. Для получения нестандартного узора используется 8 байт и перепрограммирование таблицы символов. Рисунок изначально подбирается так чтобы формировался равномерный узор. Для плавности движения используется VSYNC, анимация реализована битовым сдвигом.

.include "atari.asm"
    *= $3000
	lda #48
?copy
	sta screen-1, y
	dey
	bpl ?copy
;	ldy #$00
	iny
?copydl
	lda #$42
	sta dlist2, y
	iny
	lda #<screen
	sta dlist2, y
	iny
	lda #>screen
	sta dlist2, y
	iny
	cpy #72
	bne ?copydl
	lda #>font_data
	sta CHBAS
	lda #$23
	sta SDMCTL
	lda #<dlist
	sta SDLSTL
	lda #>dlist
	sta SDLSTL+1
?main
	ldx #1
?start
	lda RTCLOK+2
?wait
	cmp RTCLOK+2
	beq ?wait
	dex
	bpl ?start
?ring
    lda font_data, x
	asl
	adc #00
	sta font_data, x
	inx
	cpx #08
	bne ?ring
	beq ?main
dlist
	.byte $70, $70, $70
dlist2
	*= dlist2+72
	.byte $41, <dlist, >dlist
screen
	*= $7400
font_data
	.byte ~11000011
	.byte ~10011001
	.byte ~00100100
	.byte ~01000010
	.byte ~01000010
	.byte ~00100100
	.byte ~10011001
	.byte ~11000011

upd: -1 байт от @vadimr

upd: -1

Теги:
+15
Комментарии1

Я вот не понимаю, почему Го преподносится как  post-OOP язык, в то время как это явно пре-ООП язык, чисто императивный. Как Бейсик (который не Вижуал) или Паскаль.

И это явно не прогресс, а регресс в подходе к методологии.

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

Теги:
+2
Комментарии44

Ближайшие события

7 – 8 ноября
Конференция byteoilgas_conf 2024
МоскваОнлайн
7 – 8 ноября
Конференция «Матемаркетинг»
МоскваОнлайн
15 – 16 ноября
IT-конференция Merge Skolkovo
Москва
22 – 24 ноября
Хакатон «AgroCode Hack Genetics'24»
Онлайн
28 ноября
Конференция «TechRec: ITHR CAMPUS»
МоскваОнлайн
25 – 26 апреля
IT-конференция Merge Tatarstan 2025
Казань

«Мидл Java‑разработчик» — до мидла за 6 месяцев

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

Это курс для самостоятельного обучения. График гибкий: вы можете учиться в любое время, главное, закончить модуль в нужный срок и выполнить проект. Всего модулей 3, каждый из них длится 8 недель. Чтобы всё успевать, рекомендуем уделять учёбе 15—20 часов в неделю.

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

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

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

→ Узнать о курсе подробнее

Теги:
+4
Комментарии0

Держите задачу на Python от Кирилла Быкова, наставника на курсе «Python-разработчик».

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

Размер последовательности: 1 <= N <= 10^6

Число k: 0 <= k <= N

Индекс элемента: 0 <= index < N

Примеры:

[1, 3, 4, 7, 9, 12] k = 5
Ответ: 2 (число 4)
[1, 3, 4, 12, 15, 15, 18] k = 14
Ответ: 4 (первое число 15)

Решение не должно превышать по временно́й асимптотике O(log(N)), где N — длина массива. Если задача кажется легкой, попробуйте выполнить её без bisect.

Ждём ваших ответов в комментариях к посту.

Теги:
+3
Комментарии9

Как бы выглядел Хабр в 1993 году.

Приветствую хабравчане, сидел я вечером за ПК, пил кофе и пришла ко мне идея, как бы Хабр выглядел в 1993 году на html 1.0.

Нашел старые сайты тех лет и попытался в простом варианте воспроизвести Хабр. Вот, что получилось. Довольно забавно:)

<HEADER>
<TITLE>Хабр</TITLE>
</HEADER>
<BODY>
<H1>Хабр</H1>

 <dt>Пришли статью, стань автором! <A NAME=69 HREF="">habr.mail.ru</A></dt>
<A NAME=69 HREF="">Моя лента</A>
<A NAME=69 HREF="">Все потоки</A>
<A NAME=69 HREF="">Разработка</A>
<A NAME=69 HREF="">Администрирование</A>
<A NAME=69 HREF="">Дизайн</A>
<A NAME=69 HREF="">Менеджмент</A>
<A NAME=69 HREF="">Маркетинг</A>
<A NAME=69 HREF="">Научпоп</A>


 <dl>
  <dt><H3>Вышел Linux версии 0.2</H3></dt>
  <dd>
Привет, Хабр!
Ядро Linux набирает обороты. Я расскажу как устроено ядро и почему многие энтузиасты выбирают Linux.
   </dd>
   <dd>
   <A NAME=69 HREF="">Читать</A>
    </dd>
 </dl>

 <dl>
  <dt><H3>Ричард Столман хоронит Windows</H3></dt>
  <dd>
В данной статье я приведу 10 причин, почему windows 3.1 и последующие её версии не будут иметь успеха.
   </dd>
   <dd>
   <A NAME=69 HREF="">Читать</A>
    </dd>
 </dl>

 <dl>
  <dt><H3>В программном обеспечении всё плохо</H3></dt>
  <dd>
 Программы тормозят, новые версии требуют всё более мощного железа им уже не хватает 386 процессора на целых 20mhz.

   </dd>
   <dd>
   <A NAME=69 HREF="">Читать</A>
    </dd>
 </dl>

  <dl>
  <dt><H3>Почему С самый лучшмй языка программирования</H3></dt>
  <dd>
Всем приве

Теги:
+12
Комментарии15

О видах оптимизации при разработке бизнес-приложений

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

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

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

  • Третье - это получение оптимального ИТ-решения с точки зрения, собственно, самих ИТ-ресурсов - насколько оно лаконично с точки зрения хранения данных и бизнес-логики, оптимально с плане UI/UX и интеграций, как оно использует ресурсы ИТ-инфраструктуры. То есть - не получился ли в итоге "монстр" пожирающий память, процессорное время и сетевой трафик, а также дорогой с точки зрения лицензирования, обслуживания и т.д.?

  • Уверен, что оптимальность во всех трех измерениях достижима.

Теги:
+3
Комментарии0

«Мидл Android-разработчик» — новый курс Яндекс Практикума

Курс «Мидл Android-разработчик» — это углубленная 5-месячная программа, предназначенная для Android-разработчиков с опытом. Курс ориентирован на максимальное расширение прикладного кругозора разработчика. 

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

Вы научитесь тому, что отличает опытного разработчика от новичка:

  • Освоите современные архитектурные паттерны: научитесь применять принципы SOLID, Clean Architecture, а также работать с современными архитектурами UI, такими как TEA и MVI;

  • Сможете создавать сложные компоненты Jetpack Compose с анимациями, чтобы разрабатывать современные и эффективные пользовательские интерфейсы;

  • Изучите технологии, которые помогут решать разные задачи при разработке: интегрировать в приложения аудио и видео, разрабатывать функции с использованием геолокации;

  • Поймёте, как обеспечить стабильную работу приложения и оптимизировать его: освоите UI- и юнит‑тесты, научитесь настраивать CI/CD и оптимизировать приложение перед публикацией в Google Play.

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

Узнать о курсе подробнее

Теги:
+5
Комментарии0

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

На картинке можно увидеть зоны хода луча, когда он выключен, это Horizontal Retrace и Vertical Retrace, соответственно интервал между строками и между следующими кадрами. В эти интервалы можно выполнять код, который будет делать что-то интересное для нас. Тут будем переключать таблицы символов. Зачем это нужно? Есть текстовый режим графики 40х24 с пятью цветами, который можно использовать для игр, но мы сильно ограничены в рисовании контента динамически, так как это по сути спрайты ориентированные по знакоместам. Символы в XL/XE представлены таблицей в 128 штук (1024 байт) и мы можем рисовать изображение внутри кодовой таблицы, а потом выводить символы в виде текста. Кажется, что 128 символов не хватит чтобы заполнить экран в 40х24=960 байт, вот тут мы и получаем профит.

Новый экран будет (условно) выглядеть так:

ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890!@#$

И так 24 раза. После каждых 8 строк сканирования (1 знакоместо) мы сдвигаем кодовую таблицу на 40*8 байт, где уже готово изображение для второй порции строк и т.д. То есть рисуем в памяти где участок для кодовой таблицы, а видеочип рисует их как символы. Мы получаем динамическую генерацию экрана и 5 цветов.

Когда я такое придумал, то думал, что это изобретение века, но потом нашёл информацию о таком способе: Источник 1, источник 2.

Теги:
+3
Комментарии0

Проблемы обучения программизьму — Тогда и Сейчас. В том числе про Python.

Наткнулся на огромную статью о том как полезно учить детей программированию на Python. А у меня есть парочка наблюдений — во многом по работе новичков с Питоном на CodeAbbey (мой бесплатный и опенсорсный сайт — задачи там идут с оооочень плавным нарастанием сложности — аж скучно порой).

Обращение и Вращение Строки

Развернуть строку или сдвинуть её на K символов. Сложность эти задачи представляют только в языке вроде Pascal / C — т.к. операцию нужно осуществить «на месте» — в «мутабельной» строке. А на Питоне строки иммутабельны и «решение» сводится к конструированию новой строки. В жизни такие операции редко нужны — но детям‑то важно логику в голове развивать!

Округление

А здесь наоборот. Питон — язык профессиональный и операция round ведёт себя статистически корректно, но не так как учат в школе: round(1.5) = 2, round(2.5) = 2, round(3.5) = 4 — это настраивается — но новички не читают доки — и могут биться над задачей часами.

Бесконечные целые

Цель задачки «Modular Calculator» — показать принцип модульной арифметики. В обычных языках пока этот принцип не уяснишь — задача не решается из‑за переполнения целых. На Питоне же её пишут «втупую» даже не поняв в чем задача‑то. Пришлось добавить «продвинутую» версию — там «втупую» не дождёшься окончания расчета.

Какие же выводы?

  1. Идеального языка для обучения пока нет. Быть может стоит изучать парочку разных!

  2. Курсы стремятся показать результат а не развивать мышление.

Теги:
+5
Комментарии7
1
23 ...

Вклад авторов