Как НЕ надо начинать изучать программирование

Приветствую, Хабровцы!

Решил поделиться своим опытом «успешного» изучения языка(ов) программирования.

Не сказать, что в IT-индустрии я полный профан, однако мой план обучения «стать IT developer-ом» — с треском пошел по швам.

Немного предыстории.

Сразу скажу, что целенаправленного обучения по компьютерным наукам я не проходил. Да и специализация в образовании у меня далеко не техническая. Работал с 2005г. по 2012г. в различных компаниях, и мелких и крупных, непосредственно связанных с IT-индустрией. Научился всему понемногу: сис. администрированию Windows (даже MCP, MCSA успел получить), немного поюзал VMware (VCP тоже в копилке), дополнительно изучил разную кучу программ, которые сис. админы как правило используют в своей ежедневной работе.
Попробовал себя в корпоративных продажах, кстати, неплохо получалось. Успел поработать немного и у дистрибьютора ПО, а также в компаниях-интеграторах, неплохо разобрался в политиках лицензирования ПО. Планировал стать Project manager-ом, даже начал изучать PMBOK, тайм-менеджмент, различные международные стандарты, типа ISO, Tier, и даже замахнулся на PCI DSS.

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

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

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

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

Теперь сама история, поехали…

Так вот, спустя 8 лет отдыха от IT в целом, принялся изучать заокеанский рынок труда и решил для начала специализироваться в мобильной разработке. Погуглив языки программирования для мобильных приложений и вдохновившись, что Google официально анонсировала язык Kotlin как приоритетный язык для android-приложении, твердо решил максимум за 1 год самостоятельно выучить Kotlin и строить планы по иммиграции на ПМЖ в США.

Пару недель просмотра тренингов и чтения мануалов мне хватило, чтобы убедиться, что без знаний Java в Kotlin делать нечего. Хотя на просторах интернета многие твердят что можно выучить с нуля. А после регистрации на GitHub-е, установки IntelliJ IDEA, JDK и попытки разобраться в коде я уже начал осознавать что придется учиться очень-очень долго и упорно.
Было принято решение отложить Kotlin пока что в сторону, и углубиться в язык java. Так и сделал. Эх, помнится в мое время java был еще SUN-овским детищем.

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

Так вот скажу вам честно, она нисколько не для новичков.

Пробовал не обращать на это внимания и читать дальше, усвояемость около 20-25%, понял что так дело не пойдет. Придется разбираться и в С языке, да еще и в книге регулярно черным по белому пишут, что материал рассчитан на читателей со знанием основ С языка.

Что-ж, выбора нет. Опять читаю кучу информации, сотни просмотров видео разной тематики о языке С. Качаю книгу Кернигана и Ричи «Язык С», приступаю к изучению, усвояемость уже получше чем в Java, так сказать около 50-60%, что вовсе не радует меня.

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

Однако такие заголовки в книге как:
«Настоящая книга не является вводным курсом в программирование; она предполагает определенное знакомство с основными понятиями программирования такими как переменные, операторы присваивания, циклы, функции»
или:
«предполагается рабочее владение основными элементами программирования; здесь не объясняется, что такое ЭВМ или компилятор, не поясняется смысл выражений типа N=N+1»
а также такие фразы как:
Символические константы.
и т.д.
постепенно подводили меня к тому, что без изучения Computer Science мне не обойтись.
Параллельно начинаю вникать в Computer Sciense, качаю опять-таки тонны книг. Регистрируюсь на Гарвардский курс CS50, приступаю к изучению основ программирования, внимательно читаю книгу Владстона Феррейра Фило «Теоретический минимум по Computer Science».

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

И если в двоичном коде, переменных, функциях, циклах, компиляторе, интерпретаторе, простых уравнениях и т.д. я еще более менее разобрался, то выражение типа N=N+1 и более сложные уравнения меня загоняли в легкий ступор.

Я долго вникал почему 0 в степени 0 равен 1, и у меня ощущение что я до конца так и не понял всей сути.

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



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

Решение то получил, однако понять, как преподаватель решила не смог:





На мой вопрос: «как решаются такие уравнения?», ответ был очень прост:
«учи исследование функции, начало анализа и задачи на оптимизацию. Алгебра 10-11 класс».
Ну думаю, ок, посмотрю пару видео-примеров для школьников в youtube, пойму как решать их, и дальше буду «глокать» изучение по CS.

И вот после просмотра подобных роликов по алгебре меня осенило…

www.youtube.com/watch?v=RbX_QHxu7Lg
www.youtube.com/watch?v=FVSG7Neopuo

Я не то что не помню, как решаются такие задачи, — я элементарно, как выяснилось, попросту не знаю Алгебру за 10-11 класс!

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

Наверное, мои познания математики остались на уровне уроков математики 5-6 классов.

Начинаю осознавать, что для полной картины понимания Computer Science, мне необходимо будет заново учить алгебру, а затем и ВысшМат. Не исключаю, что походу скорее всего, появится необходимость и повторения уроков физики и еще чего-то из школьной программы. И до реального изучения Java и JS мне понадобится лет 5 изучения алгебры и высшей математики.
До Марса и обратно быстрее долететь, всего то 1,5 года, как утверждают ученные…

Так вот, проанализировав прошедший месяц-полтора самостоятельного обучения, для меня стало очевидно, что я как «хомяк в колесе», вроде как бы и бегу (учусь), а по факту стою на месте. Знаний в программировании не прибавилось, разве что программку на С языке («Hello, world») смогу запустить.
Да еще и после свалившейся тонны новой информации в мой маленький мозг, он кажется вообще ушел «shut down», и категорически отказывается воспринимать новую информацию.
Алгоритм, построенный мной для изучения программирования, дал сбой практически в самом начале.
Стало понятно что надо пересмотреть свой план обучения и подход к нему.
Однако пока не до конца ясно представляю себе картину, и с какой стороны вообще теперь подходить к обретению профессии «Java-developer», ибо стандартный пусть обучения, с основ алгебры и высшмата, будет очень долгим и не подходит в моем случае.

И вот тут-то мне стало уже совсем как-то грустно.

Неужели чтобы стать программистом без технической базы, требуется так много времени?
Меня конечно вдохновляют статьи в интернете, где люди пишут, что за 1,5 года стали Java developer-ом и уехали в Германию, Канаду, США, однако оценивая свои печальный опыт я не уверен что такое возможно.

Или все-таки это не моё? И профессия «разработчик» — это для элиты, «касты особенных людей»?

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

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

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

Заранее благодарю!
AdBlock похитил этот баннер, но баннеры не зубы — отрастут

Подробнее
Реклама

Комментарии 234

    +6
    В список самых высокооплачиваемых профессий, для тех кто не любит математику, программирование не входит:
    www.businessinsider.com/high-paying-jobs-for-people-who-hate-math-2014-11
      +18
      Чтоб формошлёпить на мобилках последнее что нужно — это математика. Автор слишком увлёкся археологией.
        +1

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

          +8

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


          выражение типа N=N+1 и более сложные уравнения меня загоняли в легкий ступор

          Это не уравнение. Это команда машине увеличить переменную N на единицу. То есть конкретно этот пример может работать как счетчик.


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

            0
            зачем ему бейсик и паскаль?
            нужно решать задачки на java или котлин, хотя котлин без java все же сложноват. Математику(leetcode) можно делать после освоения языка. Язык осваивается в виде сделаных 5-10 проектов. В большинстве случаев достаточно изучения web сервисов. Ну либо смотреть проекты на андроиде. Для начала написать hello world, потом добавить логику потом бд дальше сходить на собеседование(устроитья не цель, но если возьмут это круто) — узнать что спрашивают и двигаться в этом направлении.
            Не плохой вариант javarush как-раз чтобы голова не болела, что делать. Но полностью к собеседованию не готовит. Как варик можно курсы от jetbrains, правда только присматривался, вроде не плохие, но лично не пробовал.
          +3
          Даже «формошлепить» математика нужна будет. Иногда весьма интесивная… И статистика и методы оптимизации и алгебра всяческая. А ещё неплохо бы изучить физиологию восприятия и промышленный дизайн(для качественного формошлепства). Конечно дорогу осилит идущий и полюбить можно и после свадьбы, но лучше все таки по любви.

            +5
            Конечно дорогу осилит идущий и полюбить можно после свадьбы...

            — Знаешь, как называется любовь за деньги?
            — Продакшен, как же ещё! :)

              +3
              Интенсивная, но не вся. Стереометрия вам не понадобится пока вы не займётесь 3D. Интегралы/Дифференциалы же я живьём в рабочих проектах не видел.
                0
                Ну а мне встречались. И всем кто занимается графикой тоже. Ну например:
                en.m.wikipedia.org/wiki/Summed-area_table
                Фильтры всякие, антиалиасинг…
                Всегда можно обойтись без чего либо или выучить когда понадобится, но лучше все таки знать, чтобы хорошо делать работу
                  0
                  К слову, summed area table не содержит Интегралов/Дифференциалов нигде, кроме 2го названия: «Integral Image»
                    0
                    К слову это дискретный аналог интеграла или просто — дискретный интеграл.
                    И допускает обратную операцию дифференцирования. А еще у него есть много интересных свойств:

                    www.sfu.ca/math-coursenotes/Math%20158%20Course%20Notes/sec_VolumeAvgHeight.html
                    Добавлю еще. Метод позволяет быстро посчитать среднее значение на интервалах, что равносильно свертке с прямоугольной функцией, которая в свою очередь позволяет быстро найти приближение к свертке с гауссианом любой ширины(согласно предельной теореме) :)
                  +1
                  как примеры:
                  Smoothed particles hydrodynamics- гидродинамика сглаженных частиц. применяется в GameDev-е для визуализации потоков жидкости и физики. Там диф-уры в частных производных в интегральной форме записи решаются.
                  Твердотельное моделирование (Компас-3D, SolidWorks, T-Flex etc.)- всякие огибающие и поиск точек касания- дифференциалов хоть отбавляй.
                  ЧПУ- если управлять «рукой» типа Куки- то там тоже дифференциальной геометрии с полярными координатами по самые помидоры. Гексапод без этой ерунды тоже ногами ровно дергать не сможет.
                    +9
                    Не все разработчики работают с 3D (по-моему, вообще — меньшая часть). Я, как iOS разработчик, и из чистой математики за пределами алгебры ничего не встречал. Самый же полезный навык — понимание алгоритмической сложности.

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

                    В общем не хотите учить математику — идите в iOS разработку, тут вам ничего кроме геометрии не понадобится…
                  0
                  Угу и всего этого не знает почти никто судя по интерфейсам и рынку труда.
                    0

                    А где там статистика может быть нужна?

                    +5

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

                      0
                      Несмотря на все наши попытки понять что такое массив и как его обрабатывать не получилось.

                      Вариант для школьника: обычный двумерный массив — это морской бой.
                      Обработайте несколько матриц — одна твоя, другая противника.
                  +14
                  >Неужели чтобы стать программистом без технической базы, требуется так много времени?

                  Да уж. Когда въедливость и желание разобраться до сути во зло. Всё что требуется на начальном этапе — понять тот уровень абстракции, где надо просто верить в магию нижних уровней и жить с ней и продолжать разбираться с верхним уровнем.
                    +2

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

                      +2
                      а потом уже потихоньку начинаешь понимать почему на ноль делить нельзя.

                      А потом тебе говорят что можно.
                      А иногда даже и нужно.
                      И ты понимаешь, что тебе несколько лет врали :))
                        0

                        До сих пор жил с уверенностью что нельзя, вот это поворот.

                          0
                          «А теперь забудьте всё, чему вас там в этом вашем учебном заведении учили. Добро пожаловать в реальную жизнь на производство!» © не помню кто из начальства цеха, нам, свежевыпущенным синемордым краснодипломникам.
                            0
                            Да, корень из отрицательных чисел тоже можно брать
                              –1
                              Ну на 0 можно делить только 0.
                              Неопределенности вида «0 делить на 0» учат разрешать в стандартном курсе анализа.
                              0

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


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

                                0
                                А кое у кого очень даже пересекаются


                                А у кого-то их даже нет. Зависит, с какой стороны глобуса живёшь :)
                              0
                              А кстати, про приведённую задачу. Геометрия учит нас, что наилучшее соотношение площадь\периметр имеет квадрат, после круга, естественно. А я там квадратов пока не просматриваю.
                            +4
                            для полной картины понимания Computer Science, мне необходимо будет заново учить алгебру, а затем и ВысшМат

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

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

                            PS: Я вот занимаюсь ИИ, так мне пришлось осваивать психологию и лингвистику. Тоже не фунт изюму…
                              0

                              Не вижу связи между современным ИИ и психологией

                              0
                              Неужели чтобы стать программистом без технической базы, требуется так много времени?
                              Меня конечно вдохновляют статьи в интернете, где люди пишут, что за 1,5 года стали Java developer-ом и уехали в Германию, Канаду, США, однако оценивая свои печальный опыт я не уверен что такое возможно.


                              Ну, без описания начального уровня тут особо говорить не о чем. У меня был коллега, который имел опыта java разработки меньше, чем вы описываете (только курсы, де факто). Но придя на наш проект, он вполне вписался в работу, и примерно год вполне справлялся, в том числе писал например на скале. Но при этом у него, надо заметить, было примерно 10 лет опыта в другой области — 1С, т.е. скажем базы данных и SQL он знал вполне прилично. То есть, отсутствие опыта в самой разработке и языке/инструменте должно чем-то компенсироваться, как правило. Отсутствие знания математики — обычно тоже.

                              Германия тут кстати может упрощать дело — потому что дефицит программистов там вполне может быть больше, чем где-то в глубинке России, например, и если вы по остальным показателям проходите…
                                +6
                                Такие выражения как: пределы, математическое мышление, экстремум, производные, многочлены и т.д. для меня оказались как речь на языке племени Майя.

                                Для 99% программ это не нужно.
                                Я сам не люблю и слабо понимаю математику, хотя и занимаюсь 3D графикой =)

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

                                А вот эта задача меня вообще заставила остановиться на чтении книги по CS
                                Какое отношение эта задача имеет к программированию? Никакого.

                                Качаю книгу Кернигана и Ричи «Язык С»
                                Вместо всяких курсов по CS и древних книг лучше обратите внимание на такую серию:
                                stolyarov.info/books/programming_intro

                                У меня, и многих моих коллег был путь снизу-вверх: от электроники к программированию.
                                Когда знаешь как работает железо, просто не может быть проблем с пониманием всех нюансов использования переменных/циклов/указателей.
                                  +2
                                  И как Вы учили электронику без математики???
                                  .Для 99% программ это не нужно.

                                  И вот на оставшийся процент и придется потратить 99% времени
                                    +1
                                    Чтобы собирать любительские схемы из книжек и проектировать свои из готовых блоков и по готовым шаблонам расчётов, никакой особой математики не нужно. Нужен калькулятор.
                                      0
                                      Ну да, у меня был как раз. Б3-34. (1983 год) Первое что я на нем написал — это численное интегрирование дифф. уравнения методом рунге кутта 4 порядка. По странному совпадению как раз для расчета схемы.
                                      Ни в одном учебном заведении электронику без математики не преподают.
                                      Сначала просто математика. А потом уже электроника.
                                    –3
                                    Извините, но Паскаль в 2020 году это за гранью разумного.

                                    Керниган-Ритчи — великолепны. Не знаю как для взрослых, а для школьников отлично заходит для обучения азам.
                                      +5
                                      .Паскаль в 2020 году это за гранью разумного

                                      Почему? Вполне симпатичный язык для обучения. И полный по Тьюрингу естественно.
                                        –8
                                        Почему? Вполне симпатичный язык для обучения.

                                        Он депрекейтед.
                                        У него плохой синтаксис.
                                        Мы же не хотим чтобы школьники считали что их учат языку динозавров? Да и просто новичков не хотим учить вымершему языку.

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

                                        И полный по Тьюрингу естественно.

                                        Баш тоже Тьюринг полный. Но это же не повод его изучать первым?
                                        Да и CSS Тьюринг полный. Это же не повод на нем писать программы?

                                          +3
                                          Не знаю, мне нравится
                                          en.m.wikipedia.org/wiki/Free_Pascal
                                          Stable release 2 months ago
                                          У него компактный компилятор, который легко спортировать на маленькую платформу
                                            –4
                                            Не знаю, мне нравится
                                            github.com/Clozure/ccl/releases
                                            released this on 20 Apr
                                            У него компактный компилятор, который легко спортировать на маленькую платформу

                                            PS: Дельфисты атакуют. Вы хотя бы пишите что не так. Чем вам Керниган-Ритчи и Си как первый язык для обучения основам не угодил. Уже минимум пара поколений разрабочиков на них выросли.
                                              +8
                                              Да меня вполне язык С устраивает, на нем и пишу, он хороший и удобный.Но Паскаль специально был написан для обучения, в нем есть некое изящество. Лично я начинал с Алгола, Фортран, APL потом Паскаль, Пролог, Лисп.
                                              Переход с Паскаля на Си без проблем, они весьма близки идеологически. Бейсик, тот да, ужасен. Сейчас я развлекаюсь с разным ретро, вот там Паскаль иногда заходит удобнее чем Си.
                                              Ну а на работе конечно с++ only.
                                              PS Паскаль это эпоха, это священная корова, наезжать на неё нельзя
                                                0
                                                Ну да был написан для обучения. В итоге оказалось что когда теоретик делает язык для обучения получается не очень.

                                                Учить второй очень похожий язык вторым это потеря времени. Это для нас пара недель с синтаксисом ознакомится и можно писать. Все же одинаковое у них. Для начинающих это все сложно и требует кучу времени. Я бы вторым предложил учить Питон. И уже на нем преподавать весь остальной cs.
                                                Так совсем хорошо выйдет и с парой Си/Питон уже любой язык будет знаком и похож на что-то уже выученное. (Любители Идриса проходите мимо, не про вас речь)

                                                с я развлекаюсь с разным ретро, вот там Паскаль

                                                Ключевое слово ретро. Не надо ретро учить первым. Потом как хобби да не вопрос. Но первым что-то живое нужно.
                                                  +4
                                                  Все таки Си не очень хорош как первый язык. Он слишком свободный и имеет много вариантов и стиля и собственно самого языка. Легко написать нечитаемую кашу. До сих пор нет единогласия о хорошем стиле программ на Си.
                                                  Более опытным программистам он очевидно удобней Паскаля, как минимум меньше букв в программе, но это достоинство на момент написания. Во многих областях до сих пор предпочитают весьма многословную АДА(у)
                                                    +1
                                                    Да какие варианты? Я про классику, совсем классику. И совсем азы.
                                                    Переменные, циклы, структуры, указатели как самое сложное. И алгоритмы того же уровня. Пузырек и около того. 100 строк — предельный размер для программы. Их с любым стилем понять просто.

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

                                                    Стиль это все потом. Тут что IDE сделает то и хорошо. Какой-нибудь MSVC вполне прилично все делает.
                                                      +4
                                                      Извинит, но Си в качестве первого языка — это как учится кататься на велосипеде, используя для этого его одноколёсный вариант.

                                                      Для чего нужен первый язык — для связи бумажной алгоритмики с реальным программированием. В первом языке не должно быть свободы — он ДОЛЖЕН быть дубовым. Чтобы не отвлекаться на синтаксис, а заниматься непосредственно творчеством.

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

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

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

                                                        Вы тех же Керниган-Ритчи читали? Сначала рассказывается про один способ. Лабы, практика, вперед.
                                                        Все остальное в разделе указатели. Понимание что такое указатель приходит очень долго и очень тяжело. И чем больше примеров и того что можно пощупать в этом месте тем лучше.
                                                          +1
                                                          С Сями можно потратить полчасика на рассказ про git

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

                                                            +1
                                                            Ветки, пуш, пулл, мердж в полчаса укладываются. Если что не так действуем по инструкции.
                                                            image

                                                            Тут важно что это Си. Живой, массовый и сложный проект. Учим не мертвому языку дедов, а живому на котором пишут живые проекты.
                                                              0
                                                              На уроке сначала рассказываете про гит/свн, а потом даёте групповой проект на семестр. Тут хочешь — не хочешь разберешься, это при сольной разработке можно себя убедить, что контроль версий не нужен.
                                                                0

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

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

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

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

                                                              Поясню на примере: чего может быть проще перебрать массив от большего индекса к меньшему. Это если счетчик в цикле может уменьшатся. А если нет, только расти? Это для вас это проще чем элементарно, а для начинающего — интеллектуальный оргазм. Или выбрать каждый третий элемент, а приращение в цикле возможно только на единицу.
                                                              Или узнать величину файла не через запрос к системе, а через посимвольное считывание до достижения конца файла.

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

                                                                0
                                                                Тогда лучший язык для обучения — Brainfuck.
                                                                Впрочем, машина Тьюринга тоже сойдет.
                                                        +1
                                                        Так совсем хорошо выйдет и с парой Си/Питон уже любой язык будет знаком и похож на что-то уже выученное.

                                                        Да они ведь во многом похожи как языки, на базовом уровне. Те же переменные, if/for/etc, функции, etc — разница в чуть другом стиле синтаксиса и явном указании типа в Си. Паскаль и иже с ним туда же.


                                                        Если говорить о разнообразии, то есть множество используемых языков, которые намного сильнее отличаются — из относительно популярных например скала/f#/лиспы/хаскель.


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

                                                          +2
                                                          Да они же во многом похожи как языки, на базовом уровне. Те же переменные, if/for/etc, функции, etc — разница в чуть другом стиле синтаксиса и явном указании типа в Си. Паскаль и иже с ним туда же.

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

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

                                                          из относительно популярных например скала/f#/лиспы/хаскель.

                                                          Хотя бы полгода Коммон Лиспа курсе на четвертом это хорошо и полезно. Но не раньше. Человек перед изучение должен уметь код писать. Обычный и простой код.

                                                          Мы тут про азы. На чем рассказывать про циклы с переменными и на чем первый пузырек писать.
                                                            +1
                                                            Хотя бы полгода Коммон Лиспа курсе на четвертом это хорошо и полезно. Но не раньше. Человек перед изучение должен уметь код писать. Обычный и простой код.

                                                            Мы тут про азы. На чем рассказывать про циклы с переменными и на чем первый пузырек писать.

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

                                                              +2
                                                              Я бы с радостью посмотрел за таким А/Б экспериментом.
                                                              Берем 2 группы студентов технарей.
                                                              Считаем что они обучены простейшим вещам и ничего кроме них. Одну группу учим Хаскелю и cs на нем. Вторую Питону и cs на нем. Через год и через два года подбиваем результаты.
                                                              Вылетел 1 балл.
                                                              Попытка самоубийства 100 баллов.
                                                                +1
                                                                Ну а как вы себе это представляете? Берём студентов и начинаем экспериментировать с их жизнью, а если провал — ну ничего, новые через год придут?

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

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

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

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

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

                                                                      хм, я бы говорил не про «проще для изучения», а про «лучше для обучения».


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

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

                                                                        0
                                                                        про «лучше для обучения».

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

                                                                        Я тоже. К сожалению, они по факту все вымерли, ну вот разве что Scratch есть, но это всё-таки немного другая лига.
                                                                          0
                                                                          Осталось выяснить, как понять, какой же лучше.
                                                                          Если брать «программирование вообще», то максимально отвязанный от железа: лисп, тикль, питон или ещё что-то выразительное, но очень медленное.
                                                                            +1
                                                                            Ну вот я лично думаю, что Питон, потому что он объективно ненамного хуже «любого другого языка», и при этом очень популярен на практике. Т.е. ценой небольших гипотетических неудобств по сравнению с «языком X» студент получает бонусом готовый практический навык для работы.

                                                                            Вот условно 30 лет назад такой опции не было: либо чисто учебный Бейсик, либо «туда-сюда» Паскаль, либо уже по хардкору с головой в C/С++ и иже с ними.
                                                                              0
                                                                              ненамного хуже «любого другого языка», и при этом очень популярен на практике.
                                                                              Это да. Но именно как учебный мне больше нравится лисп, просто потому, что на нём в силу единства данных и кода можно сделать вообще всё, и это будет достаточно лаконично. Своя система типов? Своё ООП с плюшками? ФП? Рекомендательные системы? Логическое программирование? Всё это можно реализовать в сотни-тысячи строк поверх ванильного лиспа. Тикль, внебрачный сын плюсов и лиспа, кстати, всё это же поддерживает, просто там синтаксис ещё более мутный. А вот как в питоне, например, перейти от ООП на классах к ООП на прототипах я вообще не пойму.

                                                                              EDIT Правда, если учить студентов ближе к индустрии, то принцип «Если на текущем ЯП тебе приходится вывихивать мозг над задачей, а на другом ЯП это три строчки, пиши на другом плюс биндинг» придётся внушать. Питон изначально разрабатывался как язык — универсальный клей, так что тут он в самую тему.
                                                                          0
                                                                          читать дети тоже не по «Войне и миру» учатся, для этого придумали азбуки и красочные книжки с минимумом текста.
                                                                          Но читать дети учатся все-таки сразу именно на реальном языке, а не придумывают для этого специально искусственный. А азбуки и красочные книжки — это аналог «Hello World» и подобных простых учебных программ, но не другого языка.
                                                                      +1
                                                                      Ну а как вы себе это представляете? Берём студентов и начинаем экспериментировать с их жизнью, а если провал — ну ничего, новые через год придут?

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


                                                                      Просто начинают с относительно небольшой группы и пытаются по ней оценивать, стоит ли расширять эксперимент… (в лучшем случае)

                                                                        0
                                                                        Ну так интересантов нет. Представьте, что вы, условно, декан в университете. Зачем вам такое экспериментаторство? Смотрите, что преподаётся в хороших вузах, по каким языкам есть учебники и преподаватели (у вас), вот и утверждаете их. А если вы, условно, флагман типа MIT, там можно попытаться, но тоже не знаю, кому там подобные телодвижения интересны. Люди туда работать идут не ради того, чтобы выяснять, первокурсник лучше освоит лисп или питон.
                                                                          0
                                                                          А если вы, условно, флагман типа MIT, там можно попытаться, но тоже не знаю, кому там подобные телодвижения интересны

                                                                          хорошо, что не все рассуждают так, как вы


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

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

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

                                                                              А она и будет составлять 1% от того, что делается в нормальном университете — но она должна выполняться, иначе там так и будут преподавать Паскаль вместе с программированием для ЕС ЭВМ на перфолентах.

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

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

                                                                              0
                                                                              Ну я не знаю, вы как налогоплательщик считаете, что тратить деньги общества на выяснение «что лучше для университета — Питон или Лисп» — это хорошее расходование средств? Притом что классики типа Брукса (или может, не он это сказал, а Перлис или Парнас, не помню) давно заметили, что если бы какой-то язык давал прирост производительности труда по сравнению с другим хотя бы на 5%, все на нём бы сидели. Я не против такого исследования, конечно, с чего бы мне быть против. Но навскидку мне не кажется, что это сверхинтересная работа, потому что с практической точки зрения если даже студенты полгода посидят на Лиспе, всё равно ради реальной жизни через полгода они начнут изучать Питон или C, а если им это слишком сложно, то скорее всего, они для этой профессии слабо пригодны всё равно.
                                                                                +2
                                                                                вы как налогоплательщик считаете, что тратить деньги общества на выяснение «что лучше для университета — Питон или Лисп» — это хорошее расходование средств?

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


                                                                                В остальном же резкий перевод на тему налогов выглядит приёмом некорректной полемики.


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

                                                                                Это откровенная ерунда, потому что приросты бывают и в 500 и в 100500 процентов, но — в конкретных областях и для конкретных типов задач. Иначе бы новые языки просто не выстреливали, и мы бы действительно сидели на одном Фортране или Коболе. Если вы видите язык, который вышел из породившей его лаборатории и пошёл по миру, то он даёт прирост не 5%, а как минимум десятки процентов — иначе легаси не дало бы ему развиться.


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

                                                                                "Реальная жизнь" она разная бывает. Вон если больше половины (навскидку и например) применений Python это врапперы вокруг numpy/pandas/etc., то тем, кто использует его для таких задач, LISP нафиг не сдался.
                                                                                А вот тем, кто целится на широкий спектр понимания CS, надо учить и LISP, и Forth, и обычные процедурные языки, и акторные цепочки из промисов… а вообще такому надо пройти, например, этот список до указанного уровня (знать по каждому слову, что оно и чем характерно). (Может, чуть устарел — ну так обновлять.)

                                                                                  0
                                                                                  резкий перевод на тему налогов выглядит приёмом некорректной полемики.
                                                                                  Смотрите, этот приём корректен потому, что именно таким образом оцениваются предложения учёных в грантовых комиссиях. Если кто-то захочет провести подобную работу и выбить под это деньги, то проект будут изучать на предмет научной интересности, новизны и да, impact/spillover effects/importance, вот и всё.

                                                                                  Это откровенная ерунда, потому что приросты бывают и в 500 и в 100500 процентов
                                                                                  Безусловно. Эта цитата относилась к языку «общего назначения» в рамках написания «софта широкого профиля». Сейчас мы имеем куда больший зоопарк языков и сфер применения, но если сосредоточиться на «учебных» языках, то назовите любую десятку — пусть там будет и Паскаль, и Питон, и Руби, и что угодно ещё. Вот я уверен, что не найдётся такого языка, который вот прямо все понимают, а Питон не понимают. Ну ведь уже учили и на Бейсике, и на Лого, и на чём только не. Любой не слишком замороченный язык плюс-минус одинаков.

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

                                                                        MIT таки писал какое-то обоснование, почему они перевели CISP со Scheme на Python. Можете поискать.

                                                                      +4
                                                                      Не вижу особой проблемы начинать с паскаля в школе

                                                                      Пачка граблей, которые непонятны и которые надо тупо запомнить, я об этом писал несколько раз: 1 2 и т.д.


                                                                      Я понимаю критику C, но тогда надо брать не Pascal, а хотя бы Modula-3.


                                                                      кто заинтересуется изучит и другие.

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

                                                                        +1
                                                                        Я понимаю критику C, но тогда надо брать не Pascal, а хотя бы Modula-3.

                                                                        Но зачем? Это очередной мертвый язык. Ни IDE, ни SO, ни реальных проектов. Ничего нет. Не надо откапывать стюардессу.
                                                                          0

                                                                          а нужно ли детям SO? мы же о первом языке говорим, это должна быть чуть ли не начальная школа

                                                                            0
                                                                            Начальная школа это вы преувеличиваете.

                                                                            Да, а почему нет? Пусть привыкают что на правильно сформулированный вопрос как сделать тото интернет всегда ответит.
                                                                            Мы же используем so. Так почему обучающимся не надо? Не надо решать за других. Есть сложившиеся практики. Надо просто обеспечить их доступность.
                                                                            0

                                                                            Паскаль по факту не сильно от него отличается (да, есть анклавы дельфистов и т.п. — но это чудовищно далеко от мейнстрима). Да, надо было сказать "надо было брать лет 20 назад", или даже раньше.


                                                                            Сейчас обстановка интересна тем, что ломается всё — ждём, что выживет из новой волны языков. Хоть выбирай между Swift и Julia какими-нибудь...

                                                                      0
                                                                      Бейсик, тот да, ужасен.

                                                                      Чем же бейсик так ужасен?
                                                                        0
                                                                        Бейсик ужасен всем мням. То есть мне и моей шизе.
                                                                        За других не ручаюсь.
                                                                          0
                                                                          ну мне просто интересно, можете объяснить чем бейсик хуже, например питона?
                                                                          а то я часто слышу как бейсик называют ужасным, но никто не может привести ни единого примера ужасности?.. максимум вспоминают косяки 70х годов прошлого века…
                                                                            +1
                                                                            Питон моей шизе нравится ещё меньше. А пользоваться приходится и им тоже изредка. Так что я Вам объяснить не смогу.
                                                                            Не нравится и все. Неудобно как неудобная обувь. Может кто нибудь сможет найти явные причины этого, но я не зна
                                                                            А серьезно я сторонник строгой типизации
                                                                              0
                                                                              А серьезно я сторонник строгой типизации

                                                                              Так в питоне как раз строгая типизация и есть. Может, путаете с динамической типизацией?

                                                                                0
                                                                                В питоне, в переменной может быть все что угодно. Сейчас там число, чуть позже строка, а потом массив. Там скорее не переменная владеет объектом, а объект переменной.
                                                                                И мне это не нравится.
                                                                                Может, путаете с динамической типизацией?

                                                                                В смысле как dynamic_cast с++?
                                                                                Я не силен в теории современных языков. Когда я изучал программирование, их еще не было и терминология была сильно другая.
                                                                                А еще меня раздражает питоновское форматирование. Мой любимый редактор на ней все время выкидывает фортели…
                                                                                Впрочем это уже совсем мое старческое ворчание…
                                                                                И еще. За все нужно платить. Питон хорош для маленьких поделок, на один, два, три листа кода. А вот с объемными проектами гарантированно будут проблемы.
                                                                                  0
                                                                                  В питоне, в переменной может быть все что угодно. Сейчас там число, чуть позже строка, а потом массив.

                                                                                  Не так. В Питоне переменная, по-сути, является нетипизированной ссылкой на строго типизированный объект. Т. к. эта «ссылка» нетипизированна, её в любой момент можно перенаправить на строго типизированный объект совершенно другого типа. Возможно, вы именно об этом и пишете далее («объект владеет переменной»), но тут уж, скорее, дело в отсутствии объявления переменных как такового. Впрочем, строго статически типизированный Rust позволяет наобъявлять что-то вроде
                                                                                  let x = 3;
                                                                                  let x = "blah";

                                                                                  И ничего, как-то живут с этим.

                                                                                  В смысле как dynamic_cast с++?

                                                                                  В смысле, в языке с нестрогой типизацией вы запросто можете сложить вместе строку и массив целых чисел. Например, Javascript:
                                                                                  let msg = 'fuck my brain' + [1, 2]

                                                                                  Питон такой содомии, всё же, не допускает.

                                                                                  Питон хорош для маленьких поделок, на один, два, три листа кода. А вот с объемными проектами гарантированно будут проблемы.

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

                                                                                  Неудобно как неудобная обувь.

                                                                                  Пишу последние несколько лет, в основном, на Питоне. Мне, наоборот, удобно — даже если заранее знаю, что надо будет С++, зачастую мне быстрее и удобнее всё равно сперва написать прототип на Питоне. Что бесит, несмотря на мою любовь к Питону?
                                                                                  • Форматирование. К нему привыкаешь, без него Питон не был бы Питоном, оно снимает вопрос, оставлять фигурную скобку или переносить (но при этом усугубляет холивар «табы vs. пробелы»).
                                                                                  • Размытая и неявная грань между «ссылкой» и «значением». Некоторые объекты (большинство) передаются по ссылке всегда. Некоторые объекты передать по ссылке нельзя вообще никак.
                                                                                  • Сам синтаксис языка провоцирует совершать множество мелких ошибок, которые в C++ или Java спалил бы еще IntelliSense. А тут давай, до свиданья, в смысле, до рантайма.
                                                                                  • Иногда не хватает перегрузки функций — то, что легко и изящно делается на этапе объявления в таком неуклюжем языке, как C++, в минималистичном Питоне выглядит каким-то извращением.
                                                                                  0

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


                                                                                  К сожалению, для data science библиотеки сплошной Питон.

                                                                                +3
                                                                                Современный Бейсик не ужасен, но бесполезен, к сожалению. В восьмидесятых годах уже к нему относились свысока из-за нехватки средств структурного программирования (по сравнению с другим главным учебным языком — Паскалем). Потом в Бейсике (я про Microsoft версии в первую очередь) накрутили столько всего, что по сложности он стоит теперь в одном ряду с Питоном, и прочими. Но по факту используется гораздо реже, и стало быть, нет ни одной разумной причины начинать с него.

                                                                                Вообще мне кажется, что ниша учебных языков либо перестала быть востребованной, либо просто переживает тёмные времена. По факту Scratch, а дальше уже что-то взрослое.
                                                                          +1
                                                                          Чем вам Керниган-Ритчи и Си как первый язык для обучения основам не угодил
                                                                          В Си (и асме) ломает мозг и потом значительно усложняет освоения более высокоуровневых языков определение переменной: в С это именованный адрес (ячейка памяти), а в высокоуровневых языках — именованное значение.
                                                                            0
                                                                            Такие сложности нужны ближе к концу первого года обучения. Вместе с рассказом про указатели. Большим и обстоятельным рассказом с кучей практических работ.

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

                                                                                  Ну там всё равно будет фактический эквивалент адреса в виде какого-нибудь id объекта и проверки его на идентичность другому такому же.


                                                                                  (Уточнение: мне недавно доказывали, что в Haskell этого нет. Готов поверить: для таких языков идентичность может не являться чем-то важным по сравнению с равенством.)

                                                                              +6
                                                                              > Чем вам Керниган-Ритчи и Си как первый язык для обучения основам не угодил.

                                                                              Строгий «академический» ответ на этот вопрос приведен в монографии Столярова, ссылку на которую дали в комментах выше.
                                                                              А я по-простому скажу. Си похож одновременно на самурайский меч, турецкую саблю и мушкетёрскую шпагу — устроен очень просто, в нём почти ничего нет, но приёмы написания программ на нём — сложны и замысловаты. И для освоения именно этих приёмов (и безопасного их применения!) нужно много специальных знаний.
                                                                              Таким образом, изучение Си на уровне чуть выше элементарного тут же превращатся в изучение операционной системы (что такое файл? а дескриптор файла? И зачем функция dup2?), архитектуры компьютера (ошибки buffer overflow где-то рядом, а вместе с ними — опасные уязвимости) и прочих интересных вещей. Такие знания, разумеется, программисту тоже нужны, но на самом начальном этапе обучения программированию у студента начинается информационный перегруз — он не в состоянии справиться с потоком сведений и отделить важное от неважного, как, собственно, и произошло с автором исходного поста.
                                                                                –1
                                                                                Все учебные примеры это 100 строк. Как правило даже до 50 строк.
                                                                                Все тонкости не нужны. Замысловатости заканчиваются на выборе имен переменных.
                                                                                Прочитать файл — вот одна функция. Или вобще вот плюсовой стрим. Мы не стремимся к чистоте кода или языка. Мы стремимся чтобы попроще было. Просто прочитать или записать файл это несложно.

                                                                                Что-то утекает или не безопасно? Ну и ладно. Файлик прочитан, данные из него корректно обработаны. Остальное не важно.
                                                                                –1
                                                                                Дельфисты атакуют

                                                                                Насильников? ;)

                                                                              0
                                                                              У него плохой синтаксис.

                                                                              ?!?

                                                                                0
                                                                                  +1
                                                                                  Фигня там почти все. Основная претензия — это писал не я и поэтому барахло.
                                                                                  Посмотрите например пассаж про яблоки апельсины и целые числа.
                                                                                  В свете сползания с к плюсам половина текста уже не релевантна.
                                                                                  Просто он весьма необъективен, а Вирт мужик весьма порядочный
                                                                                  Впрочем это уже о другом
                                                                                  PS Да и посмотрите на его собственное детище язык AWK.
                                                                                    0
                                                                                    Посмотрите например пассаж про яблоки апельсины и целые числа.

                                                                                    Так он до сих пор прав. И в 2020 году это выглядит ужастно.
                                                                                    Можно складывать теплое с мягким. Да, это работает. Специально проверил.
                                                                                    program p1;
                                                                                         type
                                                                                                 apple = integer;
                                                                                                 orange = integer;
                                                                                    var
                                                                                        apple1 : apple = 0;
                                                                                        orange2 : orange = 0;
                                                                                    begin
                                                                                        apple1 := 1;
                                                                                        orange2 := 2;
                                                                                        writeln(apple1 + orange2);
                                                                                    end.


                                                                                    В свете сползания с к плюсам половина текста уже не релевантна.

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

                                                                                    PS Да и посмотрите на его собственное детище язык AWK.

                                                                                    Специализированный язык. Вроде sed. Что такого? Тогда еще было непонятно как такое должно выглядеть чтобы удобно было. Вот и делали все подряд. Не проверишь не узнаешь. Это мы сейчас опытные.
                                                                                      0
                                                                                      и
                                                                                      #include <stdio.h>
                                                                                      typedef int apple;
                                                                                      typedef int orange;
                                                                                      apple    apple1 = 0;
                                                                                      orange  orange2 = 0;
                                                                                      
                                                                                      int main()
                                                                                      {
                                                                                      	apple1 = 1;
                                                                                      	orange2 =2;
                                                                                      	printf("%d\n",apple1+orange2);
                                                                                      return 0;
                                                                                      }

                                                                                      Все чего то стOит, и за всеми решениями есть компромиссы
                                                                                      У Ады типы строже, а компилятор тяжелее
                                                                                      С break вообще все сложно. Была сильная парадигма структурного программирования. Она и сегодня во многом релевантна. А break в нее не укладывался толком.
                                                                                        0
                                                                                        Ну право. Вы же прикапываетесь. Прямо в документации это написано. Синоним, ничего больше. Легко объяснить, легко понять, везде написано.
                                                                                        Ключевое слово typedef позволяет программисту создать псевдоним для любого типа данных и использовать его вместо фактического имени типа. Чтобы объявить typedef (использовать псевдоним типа) — используйте ключевое слово typedef вместе с типом данных, для которого создается псевдоним, а затем, собственно, сам псевдоним.


                                                                                        А вот в документации по Паскалю слова синоним не видно. Как понять без эксперимента что это именно так будет работать я не уверен.
                                                                                        Ссылок не даю. Где лежит правильная документация на которую не стыдно сослатьcя я не уверен.
                                                                                          0
                                                                                          #include <stdio.h>
                                                                                          enum apple{one, two};
                                                                                          enum  orange{four,five};
                                                                                          enum apple    apple1 = 0;
                                                                                          enum orange  orange2 = 0;
                                                                                          
                                                                                          int main()
                                                                                          {
                                                                                          	apple1 = 1;
                                                                                          	orange2 =2;
                                                                                          	printf("%d\n",apple1+orange2);
                                                                                          return 0;
                                                                                          }
                                                                                            0
                                                                                            Вы точно шутите.
                                                                                            Занудным голосом лектора: enum в Сях это не тип, это просто кучка именованных интов. Используется чтобы избежать магических цифр в коде.
                                                                                              0
                                                                                              #include <stdio.h>
                                                                                              enum apple{one, two};
                                                                                              enum  orange{four,five};
                                                                                              enum apple    apple1 = 0;
                                                                                              enum orange  orange2 = 0;
                                                                                              
                                                                                              int main()
                                                                                              {
                                                                                              	apple1 = 1;
                                                                                              	orange2 =200;
                                                                                              	printf("%f\n",1.0+2.0f+apple1+orange2+'b'+'a'+'n'+'a'+'n');
                                                                                              return 0;
                                                                                              }

                                                                                              я это к тому, претензия на смешивание типов к Паскалю от Брайана по меньшей мере забавна.
                                                                                            +2
                                                                                            «Документация по Паскалю» — это по какой версии? На сайте Freepascal прямо написано, что в примере выше вводится type alias, так что всё понятно.
                                                                                  –1

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

                                                                                    +2
                                                                                    Да и просто новичков не хотим учить вымершему языку.

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

                                                                                      +1
                                                                                      На кобол написано огромное количество кода, который все еще работает на проме.
                                                                                      А что написано на Паскале из того, что все еще активно используется?
                                                                            +3
                                                                            Видеокурсы очень плохо усваиваются. Нужно больше практики, например на codewars.com или аналогичных сайтах.
                                                                              –2
                                                                              А как по мне, так довольно хорошо усваиваются. Но у меня ~5 лет программирования.
                                                                              +11

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

                                                                                0
                                                                                У меня вот с математикой плохо совсем. Даже с линейными уравнениями, типа kx+b. Тем не менее, программирование очень нравится и вроде неплохо получается (последние 12 лет). Так что зря вы так категорично :)
                                                                                +5
                                                                                У меня такое чувство что я читаю свою историю только с другим набором параметров ;))
                                                                                Тоже была пауза почти в 8 лет в ИТ, тоже работал админом… тоже некоторые разочарования в планах (точнее сроках) Только проблемы несколько иного порядка мне планы тормозят.

                                                                                Коммерческим программистом (ready to relocalte) за 1,5 года стать мОжно, если есть какаято база, я в первые в жизни открыл питон в 2016 году устроившись работать сразу миддлом на питон-бекенд программиста. НО я до этого программированием увлекался как хобби с 97 года… писал на VB/C#/Java и работал около 5 лет 1C программистом в 2000х хотя у меня до сих пор возникают проблемы с собеседованиями (в РФ)
                                                                                А в данном вопросе надо пройти собес так чтобы с опытом 1,5 года убедить работодателя тебя релоцировать...imho довольно непростое занятие

                                                                                Но вот конкретно у меня проблемы были
                                                                                1) с языком, я думал что довольно сносно знаю язык и надо «чуть подтянуть»… до первого звонка рекрутера из вакансии на Monster ;) а раскачать язык на уровень выше надо минимум полгода (и то это тоже при оптимитичном варианте)
                                                                                2) Вопрос «решил через 1,5 года переехать в США» — это ооочень оптимистично, я в течении года прошерстил все миграционные особенности большинства «нормальных» стран и это далеко не такой простой и легкий путь как часто пишут на хабре (очень часто забывают упоминать очень важные детали, о типе визы, о работодателе, о наличии профильного образования, которые зачастую являются заградительными у многих стран)

                                                                                ===
                                                                                но вот знания теории (в плане какойто математики) на самом деле не так важны, важнее знать типовые вопросы на собеседованиях, остальное не так важно, всёравно большая часть работы это рутинные типовые сервисы где большинство этого не нужно
                                                                                  +3
                                                                                  Очень интересная статья! Я так понимаю, большая часть нынешних программистов все же
                                                                                  а) Нормально относилась в школе к математике за пределами таблицы умножения.
                                                                                  б) Закончила хотя бы пару курсов технического ВУЗа.
                                                                                  И им не понять истинных гуманитариев или естественников. То что кажется очевидным технократам в понимании Нила Стивенсона — как задачка про огораживание загона — для кого-то вовсе неочевидно.
                                                                                  Для сравнения и получения гм… сходных ощущений можно окунуться в биологию. У меня знакомая написала как-то популярную (в её понимании) статью по биологии.
                                                                                  Вот пример фразы: "… успех комбинации блокирования ингибирования PD-1 / PD-L1 с комплементарным ингибитором иммунной контрольной точки CTLA-4 при меланоме и немелкоклеточном раке легкого...". Я из всей статьи понимаю только отдельные слова.

                                                                                  Способность понять технический текст – привилегия. Она дается образованием, которое доступно лишь членам элиты. Вот какой смысл я вкладываю в слово «технократ». «Криптономикон» Нил Стивенсон
                                                                                    +1
                                                                                    Естественники сейчас тоже вынужденно окунаются в программирование (как и некоторые гуманитарии, вроде лингвистов). Вряд-ли много найдете молодых успешных естественников без знания азов питона/R. Впрочем, везде можно сачкануть.
                                                                                    По поводу цитаты, терминология — это не самая большая проблема. Имхо, сложнее сам подход к проблеме, аппарат науки и реальная деятельность. По-моему, расшифровать текст сравнительно несложно, если знать, что аббревиатуры — обычно белки (или другие конструкты) и загуглить некоторые термины (вроде «контрольной точки»). Скорее всего за месяц вдумчивого чтения, получится с лету понимать о чем речь. Другое дело, что в реальной лабе ничего не светит (кроме повторения банальностей), но вот и с программированием та же штука.
                                                                                      0
                                                                                      Надо будет спросить как у них с программированием. Так-то биоинформатика вполен существует как направление. Насчет терминологии — задумался… а ведь не всё так просто. Каждый термин — это объект со свойствам в смысле ООП и цепочкой связей.
                                                                                      Что у меня всплывает в голове связанное с квадратным уравнением -коэффициенты… дискриминант… теорема Виета… кубическое уравнение сводится к квадратному… график — парабола… задача на экзамене по математике должна приводить к квадратному уравнению… производная — линейная функция, интеграл — кубическая… уравнение теплопроводности с источником… и т.д… И у биологов, очевидно, аналогично.
                                                                                        0
                                                                                        Во-всяком случае, мои знакомые, спешно учат, если еще/уже не. Например, друг перешел недавно с хим в программирование (после ~10 лет рисерча в универе, т.к. видимо достало, год учил питон/js + сопутствующие фреймворки). Кроме био/хим информатики в естественных еще полно статистиков и расчетчиков (обычно первое профильное образование, а потом программирование в разном виде), такие специалистов стараются удерживать (знакомый получил профессора после одного постдока, что очень круто, классическим естественникам сейчас практически такое не удается). Плюс тенденция, что «мокрые» исследователи завидуют «сухим». Такая вот позитивная дискриминация (зарплата + нормальные условия + большая уверенность в будущем). Тем более, после карантинов ситуация ускоряется, вот, к примеру заметка про это.
                                                                                      +1
                                                                                      Шо за наезд на естественников? Нормально у нас всё с матаном, дифурами и теорвером/статистикой.
                                                                                        0

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

                                                                                      +10

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

                                                                                        –3

                                                                                        Не кодер, но всё же с чтением документации проблем обычно не возникает.


                                                                                        Но не смотря на это, обычно выбираю видео, а не текст по многим причинам:
                                                                                        1) Легче воспринимается
                                                                                        2) Привычная единая площадка. Обычно это Ютуб или Khan academy
                                                                                        3) В большинстве видео (да хоть по квадратным уравнениям) есть живые примеры и их решения
                                                                                        4) Легче рассчитать время которое будет потрачено на ознакомление с материалом


                                                                                        Но есть и недостатки, такие как:
                                                                                        1) Высокая фрагментированность контента — найти полный глубокий видеокурс по некой теме сложнее, чаще всего это просто запись лекций. В книге по языку можно найти в одном месте и теорию и практику; различные темы структурированы и разбиты на главы.
                                                                                        2) Может не быть подходящего видео, даже на английском языке. Тогда именно приходится читать, а не смотреть.


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

                                                                                          +8
                                                                                          1) Легче воспринимается

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


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

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

                                                                                            0
                                                                                            психологи говорят, что люди делятся в визуалов, аудиалов и т. п

                                                                                            В таком случае мы, похоже, спорим о вкусе фломастеров

                                                                                              0
                                                                                              (Задумчиво)
                                                                                              Знаете, я примерно всю жизнь: вернее, ту ее часть, в которой сталкивался, ненавидел обучающие ролики. И внезапно именно в программировании, области от меня достаточно удаленной, ролики начали заходить. Может быть, на просмотре ролика в сознании включаются те же механизмы, которые обрабатывают обычную оффлайновую лекцию?
                                                                                                –1
                                                                                                Я не защищаю видео-формат, но
                                                                                                видео же идёт с какой-то заданной кем-то другим скоростью
                                                                                                Скорость меняется легко, как угодно, разве нет? Можно по хоткеям скорость менять, можно сразу позицию выбирать, никаких проблем.
                                                                                                перемотать ровно на пару предложений назад — тот ещё квест
                                                                                                Если открыть скрипт субтитров (на youtube или на coursera), то можно сразу ткнуть куда нужно (кстати, это неплохой вариант, хотя конечно книжка все-равно выигрывает).
                                                                                                психологи говорят, что люди делятся в визуалов, аудиалов и т. п
                                                                                                Читал, что это полнейший бред, нет четкого деления.
                                                                                                если же для вас работа с текстом некомфортна, то зачем же туда полезли
                                                                                                Так он же не программист, он что-то другое по видео изучает, насколько я понял из первого предложения.

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

                                                                                                  да, меняется. но не так легко, как при чтении, и не как угодно, но меняется.


                                                                                                  Если открыть скрипт субтитров (на youtube или на coursera), то можно сразу ткнуть куда нужно

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


                                                                                                  Читал, что это полнейший бред, нет четкого деления.

                                                                                                  «нет чёткого деления» — да, как и на умных и глупых, например.
                                                                                                  «полная ернуда» — нет, конечно.


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

                                                                                                  фраза была обращена не только (не столько) к 1tuz

                                                                                                    0
                                                                                                    не как угодно, но меняется
                                                                                                    Если именно онлайн, то существуют расширения (например github.com/igrigorik/videospeed, скорость от 0.1x до 16x). Оффлайн, как минимум vlc.
                                                                                                    да, как и на умных и глупых, например.«полная ернуда» — нет, конечно
                                                                                                    Деление на визуалов/аудиалов/кинестетиков (вак), это одна из многих теорий обучения, полно других, но почему-то именно идея вак всем запомнилась. Проблема в том, что те, кто предложили эту модель, еще постулировали, что со временем приоритет меняется и выравнивается, а еще то, что сила влияния какого-либо из факторов, который человек сам себе выбрал, часто не совпадает. И да, модель вак критикуют.
                                                                                                  0
                                                                                                  текст можно читать с любой скоростью. эту скорость можно произвольно менять. непонятные вещи можно перечитывать несколько раз.
                                                                                                  видео же идёт с какой-то заданной кем-то другим скоростью.


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

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

                                                                                                  Кстати, про оффлайновые лекции. Не знаю как сейчас, а когда (и там где) я учился, лекции практически никогда на не строились на одном учебнике. И сдать курс только по конспектам можно было на слабенькую троечку в лучшем случае. Всегда давался список литературы и подразумевалось, что конспект лекции это всего лишь план для работы с этой литературой.
                                                                                                    0
                                                                                                    Ютуб слегка ослабляет проблему со скоростью: скорость видео можно изменить.
                                                                                                    К тому же иногда скорость передачи информации определённого канала подходит изначально.
                                                                                                    В качестве основного источника информации такие видео врядли подходят, но вот для расширения кругозора — почему бы нет? (Примерно как чтение хабра)
                                                                                                    +2
                                                                                                    Я понимаю, что есть тип информации, который проще воспринять через видео. В первую очередь это, например, что-нибудь типа уроков по Фотошопу, где проще увидеть, куда там мышью тыкают и какие конкретно кнопки нажимают. Но всё остальное как-то странно; я не вижу ни одной причины, почему квадратное уравнение на видео должны объяснять на других примерах нежели в книжке. Ну и аналогичным образом мне сложно понять, почему поиск по фразе «квадратное уравнение» должен приводить к нужному контенту на видео, а не в тексте, т.е. чем поиск проще.

                                                                                                    В целом мне кажется, тут есть ещё и более глобальная проблема. Да, можно сводить дискуссию к теме «кому что удобнее», но по факту по целому ряду причин среднестатистическое видео содержит информацию менее высокого качества, нежели текст. Если речь не идёт о чём-то совсем уж научно-популярном, конечно.
                                                                                                      0
                                                                                                      но по факту по целому ряду причин среднестатистическое видео содержит информацию менее высокого качества, нежели текст
                                                                                                      Однако Coursera и прочие ведь нормально заходит, и не только из-за проверки заданий. Приходится смотреть видео потому, что там легче найти понятную поверхностную информацию (когда этого достаточно).
                                                                                                      Хотя легкодоступный текст лучше такого же видео. Просто почему-то их реже делают. Если писать, так глубоко и обо всём, и в итоге нужно потратить время. А обучающие видео всегда делают с упором на доступность (и иногда даже получается), и время нормировано. Но квадратных уравнений и прочего базового материала это не касается, слишком долго смотреть видео про единственный кирпичик знаний, к тому же если не смотреть цельный курс, то эффективность подачи сильно падает.
                                                                                                        +1
                                                                                                        Да, Курсера — это не «среднестатистическое видео», это по сути некий отдельный продукт. У университета есть устоявшийся курс — с лекциями, заданиями и т.п., и они его выкладывают в онлайн. Т.е. это не совсем «видео», это скорее «виртуальное присутствие» на занятиях. Такого качества работ немного — требуется большую работу провести.
                                                                                                      +4
                                                                                                      1) Легче воспринимается

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


                                                                                                      2) Привычная единая площадка. Обычно это Ютуб или Khan academy

                                                                                                      А какая разница, какая площадка?


                                                                                                      3) В большинстве видео (да хоть по квадратным уравнениям) есть живые примеры и их решения

                                                                                                      Ага. А если дело касается кода, то что, просто перенабирать куски программ с экрана, вместо того, чтобы просто сделать копи-паст текста?


                                                                                                      4) Легче рассчитать время которое будет потрачено на ознакомление с материалом

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


                                                                                                      чаще всего это просто запись лекций.

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

                                                                                                    +4

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


                                                                                                    Так как мы говорим о навыке, то потребуется немалое время для его выработки (сколько времени нужно чтобы получить разряд по боксу?). Новые нейронные связи не быстро формируются. Хорошая новость заключается в том, что навык можно набивать практикой и одновременно читать и разбираться в языках, платформах, сетях, БД, железе и т.д. Не знаю сколько времени уйдёт до достижения «нанимаемого» уровня, но я бы готовился к 6-18 месяцам довольно интенсивной работы по несколько часов в день.

                                                                                                      0

                                                                                                      Странно что сразу программистом и переезд. Может сначала хотя бы устроиться "джуном" на полгодика тут? Это помогло бы "быстро въехать".
                                                                                                      IT конечно та ещё кроличья нора.

                                                                                                        +2
                                                                                                        Я долго вникал почему 0 в степени 0 равен 1, и у меня ощущение что я до конца так и не понял всей сути.

                                                                                                        это хорошо, что не поняли.


                                                                                                        википедия:


                                                                                                        Выражение 0⁰ (ноль в нулевой степени) многие учебники считают неопределённым и лишённым смысла

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


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


                                                                                                        выражение типа N=N+1 и более сложные уравнения меня загоняли в легкий ступор.

                                                                                                        если спустя несколько лет в IT вы говорите такое, программирование — не ваше.
                                                                                                        btw, а как же вы админили? я не представляю админства без скриптов, и выражения вроде N=$((N+1)) вполне обыденны.
                                                                                                        ИМХО чтобы стать хорошим специалистом в любой области нужно гореть, интересоваться этой темой. сколько вам лет? судя по ребёнку, к которому ходит репетитор, не так уж и мало. если вы к этому возрасту не проявили склонности к программированию, то почему сейчас что-то должно измениться?


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

                                                                                                          0

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

                                                                                                            0

                                                                                                            А еще адекватный взрослый человек должен прекрасно понимать, что никому "там" он не нужен без профильного образования, опыта работы, рекомендаций, портфолио (не обязательно все пункты сразу). Ну и ещё момент: очень сложно вот так вот взять и кардинально поменять свою жизнь, когда в ней столько якорей. Это я если что про ребенка, который уже с репетитором занимается. Так что согласен с вами, статья с большой долей вероятности ничего общего с действительностью не имеет.

                                                                                                              +1
                                                                                                              В ИТ сейчас столько денег…
                                                                                                              Ломанулись толпы которые программировать не любят и не хотят, но хотят денег.
                                                                                                              Смотришь количество курсов «Стань фронтэндером за 30 дней и зарабатывай 100к+» и офигеваешь.

                                                                                                              Статья на Хабре это неплохая строчка в резюме.
                                                                                                                0
                                                                                                                Статья на Хабре это неплохая строчка в резюме.

                                                                                                                У Вас какое-то предвзятое мнение. Лично мне строчка в резюме о «статье на хабре» ни о чем не говорит. Тем более все-таки не научная же статья была написана. Возможно она имела бы значение для публицистов, журналистов и т.д.
                                                                                                                  0
                                                                                                                  Ломанулись толпы которые программировать не любят и не хотят, но хотят денег.
                                                                                                                  Многие работают только ради денег, и вполне рационально поступают. Я тоже так делаю. А развлечения по интересам — по вечерам.
                                                                                                                –1
                                                                                                                откуда он узнал про хабр? тут нет видеороликов. как решил сам писать статьи?

                                                                                                                А что именно смутило то?
                                                                                                                Про хабр знают многие, более-менее связанные с IT. Это же не закрытый клуб единомышленников :)
                                                                                                                Решение о написании статьи было принято исходя из соображении, что на данном ресурсе и сконцентрированы в основном — developer-ы, которые могут дать дельные рекомендации и советы по исправлению багов в моем плане и подходе к изучению програмирования.
                                                                                                                  +1

                                                                                                                  про хабр — это один из моментов только.
                                                                                                                  0⁰, N=N+1, список упомянутых технологий, да много всего. у меня всё более устойчивое ощущение, что статья фейковая.

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

                                                                                                                Самое начало же топика, предыстория вопроса дана текстом. Нейрохирурги и дантисты требуют 1. мед.диплома, 2. хорошей практики 3. невероятно прямых рук 4. высокой стрессоустойчивости 5. высокий уровень ответственности 6. конкуренция не обязательно ниже 7. хирургия требует некоторой доли таланта и т.д.
                                                                                                                Пошли бы вы к специалисту, который переучился в нейрохирурги из админов после 25 лет?
                                                                                                                  0
                                                                                                                  Возьмёте к себе в больницу, на систему хранения DICOM (PACS вроде называется) сканов больных, сисадмина который переучился после 25 лет работы хирургом?
                                                                                                                    +1
                                                                                                                    Нет, но в теории (очень натянутой теории) я думаю, что хирург мог параллельно админить (вместе с работой). А вот админ, который параллельно ходит в анатомичку и еще делает операции, меня бы немного испугал.

                                                                                                                    PS. Я имел в виду возраст (25), а не стаж. Если у хирурга 25 лет стажа, то ему очень очень много лет:
                                                                                                                    где-то 50, если не напутал
                                                                                                                      0
                                                                                                                      Ну пусть будет возраст. Я бы обоих испугался. Важна не должность и даже не профессия, а цена ошибки. Если она велика, то всегда лучше перебдеть, чем недобдеть. И цена может быть весьма высока, как у доктора, так и у программиста. А может быть и не очень. Только не для клиента. Вон посмотрите на адвокатов. Они как в том анекдоте по предсказанию пола младенца за деньги. Если не угадали, то деньги вернём.
                                                                                                                    +1
                                                                                                                    Нейрохирурги и дантисты требуют 1. мед.диплома, 2. хорошей практики 3. невероятно прямых рук 4. высокой стрессоустойчивости 5. высокий уровень ответственности 6. конкуренция не обязательно ниже 7. хирургия требует некоторой доли таланта и т.д.

                                                                                                                    1. без диплома по специальности получить программисту рабочую визу в США реально?
                                                                                                                    2. как и программирование;
                                                                                                                    7. как и программирование.


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

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


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

                                                                                                                      +1
                                                                                                                      1.
                                                                                                                      программисту рабочую визу в США реально

                                                                                                                      Не было речи о визе в США (у меня). Медикам также очень сложно устроится в других странах, даже с дипломом, странно, что вы не знали об этом (нужно доучиваться и подтверждать, а в случае штатов, это очень тяжело и конкуренция огромна). Более того, юристам тоже не поможет их рф диплом в штатах.
                                                                                                                      2,7. Далеко не всякое программирование. Нейрохирург, это между прочим, тот кто в теории может открыть голову и попытаться исправить баг в программе, которую написала эволюция и случай. Мне обычно вспоминается анекдот, про кардиохирурга и механика, но с нейрохирургом по-моему все еще более иронично.
                                                                                                                      сознательно в зрелом возрасте понял, что хочет стать врачом и положил на это кучу сил и времени).
                                                                                                                      Эээ, мне бы ваш оптимизм. Мне попадались только люди переходящие из медицины в другие области, но не в нее. Возможно я преувеличиваю сложности перехода в нейрохирургию и мед., но что-то не вижу рвущихся в нее взрослых людей.

                                                                                                                      PS. Коммент, изменился, поэтому добавлю:
                                                                                                                      почему-то то, что стать нейрохирургом сложно, понимают все но вот вот автор статьи (если это не фейк, в чём я сомневаюсь) решил стать программистом
                                                                                                                      Ну это же желание стать, не факт что получится. Может и фейк, раз «НЕ» в заголовке. Зарплаты, наверное, привлекают и примеры (которыми наводнена сеть). Это ведь практически единственный шанс для обычного человека получить неплохую зарплату умом и упорством.
                                                                                                                      С медиками есть еще другие сложности (долго и дорого учиться по сравнению с другими специальностями; низкий уровень обучения в медвузах; медицина сильно бюрократизирована; непотизм и взятки). Адвокатов просто много.
                                                                                                                      Впрочем я понял ваш посыл. Со временем, скорее всего, интерес «вайти» пропадет.
                                                                                                                    –1
                                                                                                                    btw, а как же вы админили? я не представляю админства без скриптов, и выражения вроде N=$((N+1)) вполне обыденны.

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

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

                                                                                                                      Как бы зарплата тоже имеет определенный вес. Однако больше исхожу из понимания что в IT сфере у меня есть определенный background, ну а developer-ом, т.к. входной порог на зарубежный рынок будет намного проще, нежели например sales-ом.
                                                                                                                      Я как-то себе не представляю возможным переезжать и обучиться ради этого, например на нефтяника или врача.
                                                                                                                        0
                                                                                                                        в IT сфере у меня есть определенный background

                                                                                                                        и


                                                                                                                        выражение типа N=N+1 и более сложные уравнения меня загоняли в легкий ступор

                                                                                                                        не вяжутся друг с другом, извините.

                                                                                                                      +4
                                                                                                                      Честно, после прочтения статьи напомнило мне видео Коваленко Клима, где затрагивается похожая тема. «Подход к обучению (программирование, математика). Математическая тревожность» — www.youtube.com/watch?v=9Dc-dWS6ldQ&list=WL&index=22&t=1. Чтобы изучить одно, необходимо углубиться во второе, затем в третье, четвёртое и т.д., пока не достигнешь твёрдого основания и не начнёшь подыматься выше. Этот путь подойдёт тем, кому нравится всё это изучать, у кого неограниченный запас времени и кто хочет иметь очень сильную базу, чтобы потом с лёгкостью решать любые задачи. Это путь для избранных.

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

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

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

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

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

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


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


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


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

                                                                                                                              +1
                                                                                                                              Сорта да, но различение этих сортов ограничивается чисто по пользовательским свойствам, а то и тупо по надписи на этикетке. Без вникания в «нижележащие слои абстракции».
                                                                                                                        0

                                                                                                                        У "Thinking in Java" ("Философия Java") было аж целых три издания, так вот первое — как раз вполне для новичков. В следующих напихали больше конкретных технологий. Не знаю, правда, есть ли у 1-го официальный русский перевод.


                                                                                                                        P.S. А, нет — даже уже четыре.

                                                                                                                          +2
                                                                                                                          Аналогичная ситуация. Только я давно понял, что я гуманитарий. И лишен начисто математического мышления. Я чистый визуал. Могу врубиться с полпинка во все что вижу глазьми. А вот с формулами всякими высокими прям беда. И что интересно, кодить на различных ассемблерах мне в кайф и получается, потому что я сразу вижу результат, воплощенный в устройстве. Я знаю что код будет делать с железом, а вот какой-то веб девелопмент просто не идет и все… А вот мой брат, например, давно старший разраб, пилящий для мастер кард и виза систем всякое, руками вообще ничего сделать не может, просто не соображает так же как и я в жабе, например. Ищите себя и обрящете.
                                                                                                                            +1
                                                                                                                            Быстро переключился на Java без сожаления… Правда не определился с чего стартануть будет лучше, с Java либо JS, ну да ладно, думал походу разберусь. На форумах где-то читал, что с JS войти в мир разработки намного легче и быстрее

                                                                                                                            Вы понимаете, что это разные языки программирования и знания Java не релевантны Javascript?
                                                                                                                              +1
                                                                                                                              Можно же начать со Scratch, а потом перейти на MIT App Inventor — т.е. научиться программировать с помощью графических блоков. Когда станет ясно что такое циклы, ветвления, переменные, функции, события, можно будет перейти уже и к текстовому языку программирования.
                                                                                                                                +2
                                                                                                                                Как уже многие до меня заметили: Вы слишком распыляетесь, оставьте «магию нижних уровней» на потом и, если понадобится, почитаете, поизучаете — говорю, как человек, который не имеет технического образования, изучивший за пару месяцев базис Java сам, после прошедший специализированный полугодовой курс и устроившийся месяц назад после второго собеседования на работу Java разработчиком.
                                                                                                                                Удачи, не сдавайтесь, немного терпения и упорства (много) и у Вас все получится!
                                                                                                                                  0

                                                                                                                                  Аааарррр Java и Js разные языки

                                                                                                                                    0

                                                                                                                                    Может быть программирование просто не ваше? Может быть не стоит себя мучатт, если не идёт?

                                                                                                                                      +2
                                                                                                                                      Не изучайте «вообще», это как «я изучу физику». Возьмите конкретную, посильную задачу, и изучите для нее. Например, несложную игру. Пятнашки или крестики-нолики напишите.
                                                                                                                                        +1
                                                                                                                                        Первое с чего нужно начинать изучать программирование, это ЧЕТКО ответить для себя на вопрос — что именно вы хотите научиться делать. И уже в зависимости от поставленной цели решать, какие знания вам могут понадобиться. Скорее всего вы сразу не сможете найти то что вам нравится, но процесс поиска должен протекать так: решили попробовать какую-то область программирования которая вам приглянулась, постарайтесь четко очертить для себя её границы, определите какие знания она требует и вперед. В процессе поняли что не нравится? Ок, пробуем другое направление по тому же приницпу.
                                                                                                                                        Второе — чтобы научиться программировать надо… программировать. Внезапно, правда? Надо постоянно решать задачи и реализовывать их в коде. От элементарного, до сложного. Тут важно понимать — пытаться разобраться в механизмах и принципах работы той или иной технологии до той степени, до которой это требует решаемая задача.
                                                                                                                                        Третье, касательно теории и прочного фундамента — тут нужна хорошо составленная программа, освоив которую вы научитесь решать типовые задачи и у вас будет достаточное представление касательно смежных областей знаний и их взаимосвязи с программированием, чтобы уже самостоятельно заниматься углубленным изучением интересующих вас областей в интересующем вас направлении.
                                                                                                                                        Четвертое — первый и второй пункт важнее третьего.
                                                                                                                                          0
                                                                                                                                          Решение то получил, однако понять, как преподаватель решила не смог:
                                                                                                                                          Например так:
                                                                                                                                          Wolfram
                                                                                                                                          Алгоритм, построенный мной для изучения программирования, дал сбой практически в самом начале.
                                                                                                                                          Возможно потому, что стоило ставить конкретные цели? Хотя бы лабораторные работы из университета по джаве. Они очень простые.

                                                                                                                                          Я не то что не помню, как решаются такие задачи, — я элементарно, как выяснилось, попросту не знаю Алгебру за 10-11 класс!
                                                                                                                                          Ммм нет, эта задача 7 класса.

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

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

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


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

                                                                                                                                              0
                                                                                                                                              Скорее задачей с 2 звёздочками. Где я учился на отлично нужно было их решать.
                                                                                                                                                0

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

                                                                                                                                                  0
                                                                                                                                                  В параболу проходят и в 7 классе. А свойства симметрии достаточно для нахождения вершины. Корни же при 0 в явном виде есть в уравнении(да и догадаться когда площадь прямоугольника равна нулю можно).

                                                                                                                                                  Вдобавок можно нарисовать график и по нему найти. И метод перебора ещё есть.
                                                                                                                                              0

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

                                                                                                                                                0
                                                                                                                                                Вот например:
                                                                                                                                                mathematics-tests.com/algebra-7-klass-novoe/kontrolnye-raboty-novye/mordkovich-novoe
                                                                                                                                                Максимум линейной функции.
                                                                                                                                                Максимум параболы в 7 классе был. Так что вполне решаемо.
                                                                                                                                                  0

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

                                                                                                                                                    0
                                                                                                                                                    Среднее из 2 корней это координаты максимума. Это прямо следует из написанного по ссылке.
                                                                                                                                                +1
                                                                                                                                                Ммм нет, эта задача 7 класса.

                                                                                                                                                Программиста сразу видно по тому, что он считает с нуля :)
                                                                                                                                                (тоже думал, что седьмой, но оказался всё же восьмой https://www.yaklass.ru/p/algebra/8-klass/kvadratichnaia-funktciia-funktciia-y-k-x-11012/funktciia-y-ax-bx-c-ee-svoistva-i-grafik-9108/re-92d9d602-f9c6-43f6-8f78-6f80b2c8227a)

                                                                                                                                                    0
                                                                                                                                                    В этом материале для 7-го класса не рассматривается аналитическое нахождение максимума обобщённой квадратичной функции.
                                                                                                                                                    По предыдущей ссылке для 8 класса для максимума даётся вывод из производной квадратичной функции как факт, без упоминания его получения. Я думаю, что это довольно мусорное оторванное от всего знание. Хотя я не помню, может эту формулу можно иначе получить, но ad hoc для взрослого возраста из школы всё же нужно что-то более тупое, как производные (достаточно просто знать, что это такое).
                                                                                                                                                      0
                                                                                                                                                      Если есть 2 корня, то очевидно где максимум, парабола же симметричная. Тут ненужно общее решение, достаточно частного.
                                                                                                                                                        0
                                                                                                                                                        Эта идея мне не пришла сразу в голову. У всех разная смекалка. Знание математики уравнивает разные умы.
                                                                                                                                                          0
                                                                                                                                                          Неа, не уравнивает. Туже задачу забора мне решит вольфрам, потому что я догадался его использовать, а математик её будет решать.
                                                                                                                                                            0

                                                                                                                                                            ой ли. многие математики активно используют подобный софт.

                                                                                                                                                0
                                                                                                                                                Дааа…

                                                                                                                                                Мне кажется, программисту нужна начальная математика в основном. Если это в норме, то можно начать изучать программирование. Главное подобрать хорошие курсы(советую посмотреть на Udemy) или книги(для начала в джава советую Герберта шилдта «Java 8 руководство для начинающих»; или если не жалко переплатить 2-3к сначала прочитать «hed first java», потом того же шилдта, но не для начинающих, а полное руководство), дальше уже начнёте понимать в этом и разберётесь что читать дальше. Котлин тоже очень крутой язык, советую разобраться в java (пофрилансить неплохо было бы) и если с джавой всё ок, то хотя бы учить Котлин. Дальше уже пробовать искать работу(если зашёл Котлин, то выучить его, тоже пофрилансить, дальше можно попробовать переехать.
                                                                                                                                                Конечно не забывайте читать книги!

                                                                                                                                                P.S. во время обучения решайте задачки на Codewars
                                                                                                                                                  +3
                                                                                                                                                  Попробую объяснить, как непрограммист непрограммисту.

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

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

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

                                                                                                                                                  Какая у вас основная специальность, или направление? Посмотрите, что автоматизируют там, и попробуйте решить похожие задачи. Тогда вы не будете терять время и силы на задачу, а сможете изучать инструмент.
                                                                                                                                                    0
                                                                                                                                                    Самая большая проблема в том, что, пользуясь вашей аналогией, работа программиста — это не «прочитать Китса в оригинале», а «написать почти как Китс». Когда человек не может решить задачу вообще — это даже меньшее зло, потому что ну не может и всё, его задача переходит другому. Если же он с помощью лома и такой-то матери задачу всё-таки решает, в полный рост встаёт другой вопрос: это был одноразовый код на выброс или часть будущей кодовой базы? И вот если второе, то не менее важно, чтобы не получилась чудовищная неподдерживаемая лапша, которую можно считать отрицательным вкладом в проект. Беда в том, что нужно обладать очень неплохим общим техническим уровнем, чтобы оценить качество своего кода и не допускать там откровенных часовых бомб. Ну то есть да, если хотите написать хотя бы среднего качества рассказ, надо сначала прочитать энное количество рассказов, чтобы приобрести какой-никакой вкус и понимание критериев качества.
                                                                                                                                                    +4

                                                                                                                                                    Как человек, всю свою профессиональную карьеру стоящий на грани "зарыться навсегда в одну узкую область" могу сказать, что в этом неудачном пути обучения отсутствовал навык breath vs depth. И навык делегирования ответов.


                                                                                                                                                    Объясняю: в любой области всегда можно копать дальше. Например, начинаем мы копать в Computer Science. CS нас быстро подводит к пониманию вычислимости, которое напрямую связано с перечисляемостью и разрешимостью множеств, что в свою очередь нас утыкает лицом в математическую логику и теорию множеств, которая совершенно не стесняется перепрыгивать из счётных множеств в несчётные, что опасно близко нас подводит к множеству R и открывающейся при этом несчётной бездне. Где-то тут рядом с лёгкостью всплывает функциональный анализ, теория групп и понеслось…


                                                                                                                                                    Это мы всё ещё не прочитали первую главу CS, которая к программированию не относится.


                                                                                                                                                    Вместо этого надо уметь принимать часть решений на веру. Запоминать, что там "есть что-то такое" и вовремя останавливаться. Приспичит — можно нырнуть. Не приспичит — держать голову над водой.


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


                                                                                                                                                    Таким образом надо уметь в нужный момент прекращать искать знания и начинать рабатывать опыт. Одно другое не исключает (знания сильно помогают), но без опыта никакого результата не будет, даже если вы выучите все курсы MIT'а наизусть.


                                                                                                                                                    Программирование — как рисование. 10000 часов теории сильно помогут вам научиться рисовать. 10000 часов рисования научат вас рисовать.


                                                                                                                                                    Что надо делать: программировать. Берёте и пишите программу. Копипаста, "оно работает но я не знаю почему" и т.д. Опыт — важнее, чем 100% понимание происходящего.

                                                                                                                                                      –1
                                                                                                                                                      Копипаста, "оно работает но я не знаю почему" и т.д. Опыт — важнее, чем 100% понимание происходящего.

                                                                                                                                                      гхм, это однозначно вредный совет.


                                                                                                                                                      я понимаю, что это продолжение вот этого правильного совета:


                                                                                                                                                      Вместо этого надо уметь принимать часть решений на веру. Запоминать, что там "есть что-то такое" и вовремя останавливаться. Приспичит — можно нырнуть. Не приспичит — держать голову над водой.

                                                                                                                                                      но бездумная копипаста ни к чему хорошему не приводит (и не учит программировать тоже).

                                                                                                                                                        0

                                                                                                                                                        "Бездумную копипасту" придумали вы. Я говорил про копипасту. Она — основна для начала изучения любой области. Берёшь готовое и пробуешь использовать. Работающее можно ломать и смотреть как оно не работает (или работает). А если работающего нет, что ломать не понятно.

                                                                                                                                                          0
                                                                                                                                                          "оно работает но я не знаю почему"

                                                                                                                                                          это можно понять как руководство к действию: «работает — и ладно, нечего разбираться»

                                                                                                                                                        +1
                                                                                                                                                        Множества, категории и т.п. — это просто математическое описание логики. Для использования логики не нужно знать её формальное описание. Как для использования автомобиля не нужно… вот это всё из теормеха. Но для использования какой-то математики или механики нужно их знать (правда, программисты редко такое используют, ограничиваясь простой логикой).
                                                                                                                                                        +5
                                                                                                                                                        В программировании математика как таковая не нужна.
                                                                                                                                                        Математика и программирование — отличающиеся вещи. Очень большая ошибка полагать, что программирование будет похоже на математику. Это верный способ так и не понять элементарных вещей.
                                                                                                                                                        Дело в том, что математика оперирует довольно сложными и довольно туманными абстракциями (число, функция, производная, уравнение, предел и так далее). Есть множество вариантов базовых аксиом и все это на самом деле очень сложно.
                                                                                                                                                        Задача изучения математики — освоить эти абстракции и научиться применять их для решения задач.
                                                                                                                                                        Программирование — это другая задача. Программист по сути имеет дело с неким устройством, которое нужно заставить сделать то что нужно. Здесь нет ничего абстрактного как в математике. Все абстракции вводятся поверх вполне материальных существующих битов и вводятся только чтобы упростить понимание того что происходит с этими битами. Устройство это состоит из памяти и процессора, перекладывающего числа из одних ячеек в другие согласно программе. Все что нужно программисту — научиться писать программы, перекладывающие числа именно требуемым образом. Здесь нет тех абстракций из тонкого воздуха, как в математике, все очень конкретно и очень определенно.
                                                                                                                                                        Другими словами: в математике мы имеем дело с абстрактными объектами, про которые не говорится как их изготовить, в программировании — речь всегда идет о вещах, которые имеют материальное воплощение в битах памяти.
                                                                                                                                                        На днях смеялся, как мой ребенок осваивает программирование. Он научился на питоне писать операторы while (true), break, if с одним условием и присваивания. Теперь он пишет любые программы и решает олимпиадные задачи по информатике для детей. Его код чудовищен, но все чудесным образом работает. Т.е. он осознал как работает эта «машина»: она умеет перекладывать числа из одной переменной в другую, ходить по кругу, выходить из круга и учитывать условия. Этого достаточно, воображение ребенка отыскивает последовательность операторов для решения нужной задачи и можно считать что он уже программист.
                                                                                                                                                        то выражение типа N=N+1 и более сложные уравнения меня загоняли в легкий ступор.
                                                                                                                                                        Потому что это никакая не математика. Это инструкция для процессора достать число из ячейки с именем N, прибавить к нему 1 и снова положить в ячейку N. Это инструкция для машины а не уравнение. То что это выглядит как уравнение — плохая аналогия, сбивающая с толку. На самом деле здесь записано что-то типа «PutTo N value (N+1)».
                                                                                                                                                        Плохая новость заключается в том, что если человек этого всего не понял сам и у него школьная математика вызывает трудности, то высока вероятность, что его склад ума очень плохо подходит для программирования. Таким людям обычно стоит изучать программирование в качестве дополнения к негой основной профессии для того, чтобы быть аналитиком, дизайнером или что-то подобное.
                                                                                                                                                          0
                                                                                                                                                          То что это выглядит как уравнение — плохая аналогия, сбивающая с толку.

                                                                                                                                                          Вот да, знаю многих людей, которые не могли осознать суть присваивания из-за этой путаницы.
                                                                                                                                                          В этом плане Паскаль с его := (часто читают как «пусть будет равно», аналогично конструкции QBasic «LET A = B+C») имеет некоторое преимущество перед языками, где для присваивания используется просто знак равенства (каковых, увы, большинство).
                                                                                                                                                          А уж синтаксис присваивания в языке «Рапира» вообще прозрачен: a + b -> x сначала вычисляем выражение операции, и только после этого результат помещаем в указанную переменную.
                                                                                                                                                            +1

                                                                                                                                                            Чем глубже я ухожу в хорошо написанный код, тем больше там оказывается этих "туманных абстракций". В системе конфигурации реализовывать ковариантное или контрвариантное наследование свойств? Является ли exception методом сохранения инварианта функции?

                                                                                                                                                            +2
                                                                                                                                                            Я долго вникал почему 0 в степени 0 равен 1, и у меня ощущение что я до конца так и не понял всей сути.

                                                                                                                                                            Ноль в степени ноль в математике не определенно, также как и ноль делить на ноль, ноль умножить на бесконечность и т.п.

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

                                                                                                                                                            Например, в функции y = x^x, при положительных значениях х, все определенно и понятно (постройте этот график и убедитесь сами, можно попутно найти минимум этой функции). Так вот, при x, стремящемся к нулю справа (при x, меньших нуля, эта функция неопределенна), легко видеть, что значение функции стремиться к единице. Его еще называют значением по непрерывности. Поэтому, ничего нам не мешает доопределить эту функцию в нуле, так чтобы для всех неотрицательных значениях x, функция сохраняла непрерывность (и даже дифференцируемость).

                                                                                                                                                            На мой вопрос: «как решаются такие уравнения?», ответ был очень прост: «учи исследование функции, начало анализа и задачи на оптимизацию. Алгебра 10-11 класс».

                                                                                                                                                            Мы квадратные уравнения изучали в пятом-шестом классе. А тригонометрию вам в школе преподавали? А стереометрию? Классов у нас было десять, анализа, исследования функции и оптимизации не было, но я лично в десятом классе все это легко выучил самостоятельно (по учебнику для первого курса ВТУЗов).

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

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

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

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

                                                                                                                                                            Могу открыть маленький секрет, достаточно знать не объемный курс высшей математики, а просто быть способным легко усваивать нужную тему. А по сложным алгоритмам можно попросить помощи на форуме математиков. Я вот недавно задал там вопрос: «Как группировать бинарные матрицы по степени их похожести?» ( dxdy.ru/topic142232.html ) и нашел ответ с общей помощью, что позволяет мне программировать дальше.
                                                                                                                                                              –1
                                                                                                                                                              Программисту математика нужна именно как точка опоры, в основном ради абстрактного мышления.

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


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

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


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

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

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

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

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

                                                                                                                                                                Так современное программиование — это не придумывание новых алгоритмов, а переиспользование уже существующих.

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

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

                                                                                                                                                                Речь идет не столько о самостоятельной реализации алгоритмов OpenCV, сколько о понимании их работы. А как вы их поймете, если не знаете математики? А непонимание чревато. Убедился на себе. Я вот сейчас пишу обучающую программу по распознаванию встроенных субтитров видео роликов и перевода их на русский язык. В том числе использую OpenCV (наряду с SDL и FFmpeg / FFplay). Так вот использование алгоритмов OpenCV вслепую, по аналогии с опубликованными примерами, приводит, в конечном счете, к плачевным результатам (для более-менее серьезных проектов). И только когда я начал вникать в алгоритмы и пользоваться их собственными аналогами, дела пошли лучше. И даже код получался проще и понятнее. Надеюсь, я еще опубликую здесь свою статью об этом.

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

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

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

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

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

                                                                                                                                                                Хорошо, вас переключили на SDI-интерфейс. Говорят, сделай нам мультипоточный интерфейс с перегружаемыми либо неявным образом переключаемыми клиентским окнами. Есть хороший прототип для работы? «Брезенту ненту!», как говорил старый Райкин.

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

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

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

                                                                                                                                                                Вообще-то определена www.wolframalpha.com/input/?i=complexplot++x%5Ex
                                                                                                                                                                И вдобавок в -1 -2 -3 даже не в комплексной плоскости.
                                                                                                                                                                  –1
                                                                                                                                                                  На вашем рисунке нет никакой функции в отрицательной полуплоскости аргумента. Об этом и шла речь, что функция y = x^x не определена для x < 0. Именно как функция, точнее, как непрерывная функция и уж тем более, как гладкая функция. Но как разрывная функция она определена, согласен. При целых четных отрицательных значениях функция будет положительна, а при целых нечетных отрицательных значениях функция будет отрицательна. Сложнее вопрос обстоит с рациональными аргументами, здесь помимо действительных, могут быть комплексные значения, а для отрицательных иррациональных чисел функция не определенна даже в комплексной плоскости и вообще для любых числовых множеств.

                                                                                                                                                                  Поэтому непрерывности, при x < 0, у этой функции нет, а гладкости тем более. А поскольку речь шла, о предельном значении по непрерывности справа, то я и утверждал, что данная функция не определенна по непрерывности слева. Хотя, строго говоря, функция определенна, как уже говорилось, как разрывная функция и то за исключением иррациональных аргументов. Причем, мера рациональных чисел на любом отрезке равна нулю. Это дает нам право говорить, что строго математически, данная функция не определенна, при x < 0, почти всюду.

                                                                                                                                                                  Вас такой ответ устроит :)?
                                                                                                                                                                    +1
                                                                                                                                                                    На вашем рисунке нет никакой функции в отрицательной полуплоскости аргумента.
                                                                                                                                                                    А вот я вижу, что есть: image

                                                                                                                                                                    Поэтому непрерывности, при x < 0, у этой функции нет, а гладкости тем более. А поскольку речь шла, о предельном значении по непрерывности справа, то я и утверждал, что данная функция не определенна по непрерывности слева.
                                                                                                                                                                    А вольфрам считает иначе: www.wolframalpha.com/input/?i=lim+x%5Ex+as+x-%3E0-

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

                                                                                                                                                                    А вольфрам считает иначе: www.wolframalpha.com/input/?i=x%5Ex+where+x%3D-pi

                                                                                                                                                                    Вас такой ответ устроит :)?
                                                                                                                                                                    Не устроит, ибо я не вижу на графике разрывов.
                                                                                                                                                                      0
                                                                                                                                                                      Не устроит, ибо я не вижу на графике разрывов.
                                                                                                                                                                      А то, что в левой части графика изображена комплексная функция, вы видите? На рисунке представлены действительная (real) и мнимая (imaginary) части комплексного значения. Действительного предела (по непрерывности) слева для этой функции нет. Есть только предел слева для real-части комплексного значения. А это, как бы, не одно и то же.

                                                                                                                                                                      Тоже самое для минус пи в степени минус пи. Это выражение многозначно, как, скажем sin(x) на бесконечности. Вы можете выбрать любое значении от –1 до +1 и указать некоторую подпоследовательность, сходящееся к этому значению, что, однако, не сделает это выражение определенным, только с точностью до некоторой подпоследовательности.

                                                                                                                                                                      Вы можете сказать, что приведенное значение «главное». Тогда я скажу, что «главное» значение sin(x) на бесконечности равно нулю, что проблемы, понятно, не закроет.
                                                                                                                                                                        0
                                                                                                                                                                        Тоже самое для минус пи в степени минус пи. Это выражение многозначно, как, скажем sin(x) на бесконечности.

                                                                                                                                                                        Скорее оно многозначно так же, как квадртаный корень: sqrt(4) — это либо +2, либо -2. Но вы же не хотите сказать, что квадратный корень — разрывная функция?

                                                                                                                                                                          0
                                                                                                                                                                          Вообще-то, в математике принято соглашение об арифметическом значении квадратного корня. Т.е., по определению, квадратный корень всегда положителен. Но если, допустим, нужно решить квадратное уравнение x^2 = 1, то корнем будут два значения: +sqrt(1) = 1 и –sqrt(1) = –1. Так что, в математике, функция y = sqrt(x) – функция однозначная.

                                                                                                                                                                          А вот функция y = x^x для иррациональных отрицательных чисел просто неопределенна, другими словами, многозначна. Это означает, что существуют разные подпоследовательности, сходящиеся к аргументу, но имеющие различные значения. Равно, как это обстоит с sin(x) на бесконечности. Только sin(x) многозначна в «точках» плюс / минус бесконечность, а x^x многозначная для всех иррациональных отрицательных чисел.
                                                                                                                                                                            0

                                                                                                                                                                            Простите, что с вами спорю, но "неопределена" и "многозначна" — разные понятия. Функция sin(1/x) в нуле неопределена — у нее нет значения. Функция x^x определена везде, включая x = 0 и x = -pi, и при определенных аргументах она многозначна.

                                                                                                                                                                              +1
                                                                                                                                                                              Неа, в нуле она не определена. В нуле обычная неопределённость. Но левый и правый лимит для нуля это 1.
                                                                                                                                                                              0

                                                                                                                                                                              Ситуация с извлечением корня и возведением в степень x^x ровно одна и та же. У этих функций есть разные ветви, и нужно для каждого конкретного применения эту ветвь выбирать. Просто для корня в силу его популярности решили, что обычно проще использовать одну конкретную ветвь. При этом если рассматривать эту ветвь, но такая комплексная функция по необходимости получается разрывной. Вот и с x^x то же самое — если брать "обычную" ветвь логарифма, то неоднозначности не будет. И такая функция тоже будет разрывна — всё как у sqrt.

                                                                                                                                                                                0
                                                                                                                                                                                Неа, корень положительный так как по настоящему это x^(1/2). Никакого выбора никогда не существовало. Просто в школе проще учить так, как будто есть функция sqrt.
                                                                                                                                                                                  0

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

                                                                                                                                                                                    0
                                                                                                                                                                                    Если уж ооочень покопаться, то получается, что есть множество корней, и есть некий principial root(как его вольфрам называет). Из этого корня можно получить и остальные.

                                                                                                                                                                                    Однако рас против однозначного определения x^x в 1/2 никто ничего не сказал, значит обсуждается только этот самый principial root.
                                                                                                                                                                        0

                                                                                                                                                                        Если коротко, то функция y = x^x аналитическая на всей комплексной плоскости, за исключением может быть каких-то особых точек. Функция эквивалентна следующей: y = exp[x ln(x)], поэтому если логарифм аналитичен для всех комплексных x, тогда проблем нет — мы рассматриваем композицию аналитических функций.


                                                                                                                                                                        Пусть x = r exp[i q], тогда ln(x) = ln(r) + i q, это основная ветвь логарифма, остальные отличаются на 2pi, т.е. i q, i (q + 2pi), i (q + 4pi) и так далее. Таким образом, при x = x_r, где x_r — строго отрицательное вещественное число, представимое как |x_r| exp[i pi], то ln(x) = ln(|x_r|) + i pi. Т.е. логарифм определен для всех отрицательных вещественных чисел, x ln(x) тоже, exp[ x ln(x)] тоже.


                                                                                                                                                                        Остается проблема x = 0. Формально, ln(x = 0) = -Inf, но это не помогает. Попробовать разобраться можно так: посмотрим, как себя ведет x ln(x) при x близком к 0. Если эта величина примерно 0, значит x^x = exp[ x ln(x)] = exp [0] = 1 и проблема решена. Можно попробовать приложить правило Лопиталя, у которого есть ряд ограничений, но суть такова: если у вас есть две 'хорошие' функции, предел каждой из которых в какой-то точке это 0 или бесконечность, а вы хотите найти предел отношения этих двух функций, то если существует предел отношения производных этих двух функций (функции хорошие и должны быть дифференцируемы вплоть до предельной точки), то предел отношения этих двух функций равен пределу отношения их производных. Прикладываем эту теорию к нашему случаю:
                                                                                                                                                                        x ln(x) при x -> 0 это f(x) / g(x), где f(x) = ln(x), g(x) = 1/x, обе функции 'хорошие' вплоть до x = 0, обе стремятся к бесконечности. Берем производные, получаем f'(x) = 1 / x, g'(x) = - 1/x^2, предел отношение f'(x) / g'(x) = (1 / x) / (-1 / x^2) = -x, что при x -> +0 едет к -0. Таким образом, x ln(x) при x = 0 это 0*, а значит exp[x ln(x)] = 1, а значит x ^ x при x = 0 это 1.


                                                                                                                                                                        Как проверить численно? Берем убывающую последовательность x = 1 / w, где w = 10, 100, 1000, 10000, ..., считаем exp [x ln(x)] = exp [- ln(w) / w]. Не силен в питоне, но вот такой говнокод


                                                                                                                                                                        import numpy as np
                                                                                                                                                                        
                                                                                                                                                                        [np.exp(-np.log(w) / w) for w in
                                                                                                                                                                            [10 ** i for i in range(1, 20, 2)]
                                                                                                                                                                        ]

                                                                                                                                                                        выдает


                                                                                                                                                                        [0.7943282347242815, 0.9931160484209338, 0.9998848773724686, 0.9999983881917339, 0.9999999792767343, 0.9999999997467156, 0.9999999999970066, 0.9999999999999655, 0.9999999999999996, 1.0]
                                                                                                                                                                          0
                                                                                                                                                                          Ценю ваш профессиональный ответ. Мне, откровенно говоря, лень разбираться с отображением формул. Но, думаю, можно обойтись без них.

                                                                                                                                                                          Я согласен, что «композиция аналитических функций» функция аналитическая, но вы сами пишете, что есть «основная ветвь логарифма», а «остальные отличаются на 2pi». Другими словами, логарифм для отрицательных аргументов – функция многозначная. Как тот же sin(x) на бесконечности. Из этого следует, что значение отрицательного иррационального числа в точно такой же степени величина многозначная, даже если можно говорить о «главном» значении.

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

                                                                                                                                                                          И это достаточно очевидно. Возьмем тот же пример www.wolframalpha.com/input/?i=x%5Ex+where+x%3D-pi, указанный samrrr чуть выше. Речь идет о минус пи в степени минус пи. Представим минус пи в виде двух подпоследовательностей рациональных чисел, сходящихся к этому аргументу. В первой последовательности все числители будут четными, а во второй нечетными при нечетном знаменателе. Таким образом, мы получим два разных предельных значения, первое будет положительным числом, а второе отрицательным. Можно также подобрать подпоследовательность, дающую комплексный предел.

                                                                                                                                                                          Так что, не все так однозначно :).
                                                                                                                                                                            0

                                                                                                                                                                            Если я не ошибся, то (-pi)^(-pi) = pi^(-pi) (cos(pi^2 + 2 pi^2 n) + i sin(pi^2 + 2 pi^2 n)), где n — целое число. Интересный результат заключается в том, что не существует чисто вещественного значения, потому что для этого необходимо, чтобы pi^2 + 2 pi^2 n = 2pi k, где k — целое, или n = k / pi - 1/2. Если k=0, n = -1/2 и не целое, k!=0n даже не рациональное, а скорее всего трансцендентное. Т.е. (-pi) ^ (-pi) представляет собой бесконечное количество чисто комплексных чисел, расположенных на окружности r = pi^(-pi).


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


                                                                                                                                                                            Моя попытка была показать, что 0^0 = 1 это не просто 'кто-то так решил', а это действительно предельное поведение функции x^x в 0, и что с помощью комплексных чисел это можно прямо посчитать.

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

                                                                                                                                                                              Моя попытка была показать, что 0^0 = 1 это не просто 'кто-то так решил', а это действительно предельное поведение функции x^x в 0, и что с помощью комплексных чисел это можно прямо посчитать.

                                                                                                                                                                              Да, это предельное значение, но только справа. Слева предел не существует, просто потому, что x^x не является непрерывной функцией и даже, вообще говоря, однозначной. Хотя сама эта функция в математике довольно широко используется и изучается.

                                                                                                                                                                              Однако, что нам мешает рассмотреть композиции типа f(x)^g(x), таких, что f(0) = 0 и g(0) = 0, при x –> 0. Там вообще могут быть чудеса.
                                                                                                                                                                                0

                                                                                                                                                                                x^x имеет пределы с обеих сторон от 0, эти пределы равны, это даже видно из графика который вам присылали:



                                                                                                                                                                                Значение предела не зависит от того, с какой "стороны" к нему приближаться. "Сторона" регулируется phi — для 0+0 phi = 0, для 0-0 phi = pi, а если с чисто мнимой оси, то phi = +- pi/2. Любые значения между тоже допустимы.

                                                                                                                                                                                  0
                                                                                                                                                                                  Слева предел не существует, просто потому, что x^x не является непрерывной функцией и даже, вообще говоря, однозначной.
                                                                                                                                                                                  Напоминаю, вольфрам считает иначе: www.wolframalpha.com/input/?i=lim+x%5Ex+as+x-%3E0-
                                                                                                                                                                                  Вы считаете что он ошибается?

                                                                                                                                                                                  И Что это за ваше новшество в математике, под названием «действительный предел»
                                                                                                                                                                                  0
                                                                                                                                                                                  Нет 0^0 это не единица никак. Вам стоит подучить пределы.
                                                                                                                                                                                  Вот например это не единица:
                                                                                                                                                                                  www.wolframalpha.com/input/?i=lim+x%5E%281%2Fln+x%29
                                                                                                                                                                                  Хотя 0^0 же.

                                                                                                                                                                                  www.wolframalpha.com/input/?i=x%5Ex%3B+x%3D0
                                                                                                                                                                                    0

                                                                                                                                                                                    Смотря что вы имеете ввиду под 0^0. x^x имеет предел единицу, x^(1/ln(x)) = exp(ln(x)/ln(x)) = exp(1) это вообще константа и любой ее предел будет exp(1).
                                                                                                                                                                                    Ну т.е. ситуация 0^0 это ситуация f(x) * g(x) где f(x) -> 0 а g(x) -> inf. А дальше все просто — какие функции выберете, такой результат и получите. Вот в 0 x быстрее едет к 0 чем ln(x) к -inf, поэтому x^x в нуле будет единицей. Возьмите вместо ^x степень, которая будет ехат к 0 медленнее чем ln(x) к бесконечности — получите предел exp(-inf) = 0. Делов-то.

                                                                                                                                                                                      0
                                                                                                                                                                                      0^0 это неопределённость и всё. Как и 0/0 inf/inf итд

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

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

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

                                                                                                                                                                        От себя могу добавить, что курсы с нуля готовятся и у нас, но пока недоступны. Но теоретически мы могли бы помочь друг другу путём тестирования материала «на кошках» (добровольцах). Если вдруг у кого-то появится интерес — пишите в личку.
                                                                                                                                                                          0
                                                                                                                                                                          Касательно математики, есть прекрасный справочник, название — 'Алгебра в таблицах', автор — Е. П. Неллин. Краткий справочник, в небольшом журнальчике все данные по школьному курсу алгебры (и немного больше). Помогает, когда надо что-то быстро решить, а материалом не владеете.
                                                                                                                                                                            +3

                                                                                                                                                                            Почему жы все нетехнари пытаются зайти в самые высококонкурентные сферы программирования. Сфера мобильной разработки и вообще Java — высококонкурентна. Обратить стоит лучше усилия на WEB разработку. Особенно на фронтенд. Знаю много гуманитариев преуспевших на фронтенде как таковом при большом желании. Математика там вообще не нужна. Профессия скажем react разработчика котируется везде и в России и в Европе и Америке. Но не нужно циклиться на книгах. Набирается минимум знаний из книг и люди устраиваются джуном в офис. Там учиться надо у опытных людей. Потом поменяв несколько работ, и поднявшись хотя бы до реального миддла, можно пытаться устраиваться зарубеж. Без реального опыта в офисе хорошим разработчикам не стать никак. У кого-то до крепкого миддла путь по офисам занимает год, у кого-то 5. Тут уж все зависит от желания учиться.

                                                                                                                                                                              +1
                                                                                                                                                                              По моим ощущениям, во фронтенде наоборот самая бешеная конкуренция из-за относительно низкого порога входа.
                                                                                                                                                                                +1

                                                                                                                                                                                Там очень много некомпетентных разработчиков. Много просто знающих по верхам HTML и css. Среди java программистов или C# не найдешь тех, кто не знает паттерны разработки и работу с БД и сервером, во фронтенде сплошь и рядом. В фронтенде гораздо ниже порог входа в разработку. Но реально грамотных разработчиков во фронтенде знакомых со всеми тонкостями JS и построения правильных архитектур, глубокими знаниями js фреймворков днем с огнём не найдешь — они всегда при деле и имеют зарплаты не ниже всех остальных разработчиков в других языках с таким уровнем.

                                                                                                                                                                              +1
                                                                                                                                                                              Автор не сделал самого главного на пути к профессиональному совершенству: не отвалил каких-нибудь 100к за курс на каком-нибудь скилбокс… Статья получилась бы интересней.
                                                                                                                                                                                +2
                                                                                                                                                                                Я стал программистом вообще не имея никакого высшего образования, и я далеко не джун. Секрет в любви ко всему «техническому», из чего вытекает сильное любопытство и получение удовольствия в ковырянии с технической частью — начиная от замены лампочки в холодильнике. У таких людей, как и я, этот путь занимает годы. Но это движение всегда подпитывается любовью.

                                                                                                                                                                                Если вы сможете найти любовь к чему-то, будь то комбинаторика, 3D-графика, ИИ, то двигайтесь в этом направлении.
                                                                                                                                                                                Если желание именно разобраться — то снизу вверх, от теории к практике. Это долго.
                                                                                                                                                                                Наоборот, если есть желание побыстрее войти в среду и работать в команде, то пробуйте сверху вниз, например, в случае с вебом, сначала поставьте и настройте wordpress.

                                                                                                                                                                                Если это не ваша любовь, а ваша любовь только деньги — то увы, этот путь будет два вас намного сложнее. Имейте ввиду, вас может стошнить от задачек на вычисление факториала. Пусть вас подпитывает дисциплина. За год вполне реально стать джуном.
                                                                                                                                                                                  0
                                                                                                                                                                                  Если ты новичок, всегда надо взять какой нибудь курс толковый месяцев на 8 с практикой естественно, а потом еще такой же на другой платформе для закрепления материала. Он будет хорошо структурирован и не даст тебе погрязнуть в этом болоте. А вот уже потом, когда у тебя есть уже хоть какое то представление, можно обучаться самому.
                                                                                                                                                                                    0
                                                                                                                                                                                    Меня напрягает, что вы как-то пришли к тому, что для изучения одного ЯП, нужно изучить другой ЯП. Такими темпами, вам придется ассемблеры учить еще. Да, путь будет долгим.

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

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

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

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

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

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

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

                                                                                                                                                                                    P.S. Работодатели смотрят не только на уровней знаний CS, и не для всех это ключевой показатель. Уровень владения ЯП и экосистемой, на каких языках говорите, как вы общаетесь, сможете ли влиться в коллектив — все имеет значение. Не знаю, есть ли какой-то главный критерий, потому что знаком с людьми, которые толком не зная самого языка, минимально осваивали фреймворк и получали оффер. И росли до нормальных специалистов, — помогали коллеги и любознательность. Один знакомый, пошел тестировщиком, за год освоился, выучил язык и стал программистом в той же компании, но у него техническое образование и некоторый профильный бэкграунд. Бывает наоборот, человек приходит программистом, а в итоге занимает совсем другое место. К цели обычно ведет множество путей, и никто за вас не выберет тот, который лучше всего вам подходит.
                                                                                                                                                                                      0
                                                                                                                                                                                      а по моему ты очень крут, знаю многих людей кто бы забили на первой книжке) имху твоя проблема что ты слишком глубоко копаешь (это отличный скилл, и он пригодится, но в начале все это не нужно).

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

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

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

                                                                                                                                                                                      главное не сдавайся, и с твоим упорством у тебя все получится. удачи!
                                                                                                                                                                                        0
                                                                                                                                                                                        Сам учусь программированию (33года -.-) и тоже без технического бэкграунда. Тоже по совету «учи джаву, там платят кучу денег» купил книгу, пытаться понять все и сразу, миллионы вкладок в браузере. И каждая из вкладок порождала еще пару десятков вкладок. И тоже в какой-то момент приуныл, понял что я дно и впал в депрессию. Без шуток, я пару дней не мог въехать как работает функция…

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

                                                                                                                                                                                        Если вы знаете все это, значит вы уже понимаете программирование на базовом уровне.

                                                                                                                                                                                        И если вы будете все время практиковаться, пытаться реализовывать все новые фичи, вы точно придете к успеху. Читать книги, сайты, смотреть видюшки вам ничего не даст если вы не будете каждый день кодить. Проверено очень горьким опытом.
                                                                                                                                                                                        +1
                                                                                                                                                                                        Я преподаю информатику в физ-мат лицее. И вот на первом уроке по программированию я всегда говорю, что программирование — это в первую очередь математика. Если в голове нет математики, то никакого программирования не получится. Соответственно, если дитятко решило пойти в вуз по направлению программирования (а это я узнаю, потому что нужно сдавать ЕГЭ по информатике), но не сильно дружит с математикой, то я его сколько не отговариваю, сколько стараюсь убедить не делать этого, не гробить свои ближайшие несколько лет векторами, матрицами и прочими тройными интегралами вперемешку с диффурами, ведь всё равно мозгов на матанализ не хватит и всё равно отчислят. За всё время ЕГЭ по информатике у меня не было ни одного ученика, набравшего 80 и более балов, если по математике было меньше 4
                                                                                                                                                                                          0
                                                                                                                                                                                          nsnurlan — это пример того, как любое, даже самое хорошее начинание, можно довести до безумия.
                                                                                                                                                                                          А может быть, это просто такая скрытая форма увиливания от конечной цели? И вы не хотите перезжать / выходить из зоны комфорта? Увиливаете с помощью синдрома отвлечённого внимания + прокрастинации.

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

                                                                                                                                                                                          Самое читаемое