Почему жы все нетехнари пытаются зайти в самые высококонкурентные сферы программирования. Сфера мобильной разработки и вообще Java — высококонкурентна. Обратить стоит лучше усилия на WEB разработку. Особенно на фронтенд. Знаю много гуманитариев преуспевших на фронтенде как таковом при большом желании. Математика там вообще не нужна. Профессия скажем react разработчика котируется везде и в России и в Европе и Америке. Но не нужно циклиться на книгах. Набирается минимум знаний из книг и люди устраиваются джуном в офис. Там учиться надо у опытных людей. Потом поменяв несколько работ, и поднявшись хотя бы до реального миддла, можно пытаться устраиваться зарубеж. Без реального опыта в офисе хорошим разработчикам не стать никак. У кого-то до крепкого миддла путь по офисам занимает год, у кого-то 5. Тут уж все зависит от желания учиться.
Касательно математики, есть прекрасный справочник, название — 'Алгебра в таблицах', автор — Е. П. Неллин. Краткий справочник, в небольшом журнальчике все данные по школьному курсу алгебры (и немного больше). Помогает, когда надо что-то быстро решить, а материалом не владеете.
Для людей с уровнем основ где-то около уровня автора лучше всего подходит обучение с преподавателем.
Преподаватель (если он хороший) укажет обучаемому, где нужно остановиться, поймёт, почему обучаемый полез не в те дебри и объяснит, почему пока туда соваться не нужно, а так же покажет более лёгкий путь.
Такого преподавателья, видимо, нужно искать на каких-то курсах, но курсы сегодня не очень качественные (именно по части преподавателей), поэтому здесь ждёт засада. Нужно перебирать, тратить время и деньги.
От себя могу добавить, что курсы с нуля готовятся и у нас, но пока недоступны. Но теоретически мы могли бы помочь друг другу путём тестирования материала «на кошках» (добровольцах). Если вдруг у кого-то появится интерес — пишите в личку.
Паскаль по факту не сильно от него отличается (да, есть анклавы дельфистов и т.п. — но это чудовищно далеко от мейнстрима). Да, надо было сказать "надо было брать лет 20 назад", или даже раньше.
Сейчас обстановка интересна тем, что ломается всё — ждём, что выживет из новой волны языков. Хоть выбирай между Swift и Julia какими-нибудь...
Ну я не знаю, вы как налогоплательщик считаете, что тратить деньги общества на выяснение «что лучше для университета — Питон или Лисп» — это хорошее расходование средств? Притом что классики типа Брукса (или может, не он это сказал, а Перлис или Парнас, не помню) давно заметили, что если бы какой-то язык давал прирост производительности труда по сравнению с другим хотя бы на 5%, все на нём бы сидели. Я не против такого исследования, конечно, с чего бы мне быть против. Но навскидку мне не кажется, что это сверхинтересная работа, потому что с практической точки зрения если даже студенты полгода посидят на Лиспе, всё равно ради реальной жизни через полгода они начнут изучать Питон или C, а если им это слишком сложно, то скорее всего, они для этой профессии слабо пригодны всё равно.
Люди туда работать идут не ради того, чтобы выяснять, первокурсник лучше освоит лисп или питон.
Вот честно хотелось бы, чтобы именно ради таких вопросов и шли.
А то наши (большей части exUSSR) типовые вузы, где большинство преподавателей пенсионного возраста и в лучшем случае пишут фанфики по мотивам настоящей науки (а то и этим себя не озадачивают) — годятся только ради корочки.
ненамного хуже «любого другого языка», и при этом очень популярен на практике.
Это да. Но именно как учебный мне больше нравится лисп, просто потому, что на нём в силу единства данных и кода можно сделать вообще всё, и это будет достаточно лаконично. Своя система типов? Своё ООП с плюшками? ФП? Рекомендательные системы? Логическое программирование? Всё это можно реализовать в сотни-тысячи строк поверх ванильного лиспа. Тикль, внебрачный сын плюсов и лиспа, кстати, всё это же поддерживает, просто там синтаксис ещё более мутный. А вот как в питоне, например, перейти от ООП на классах к ООП на прототипах я вообще не пойму.
EDIT Правда, если учить студентов ближе к индустрии, то принцип «Если на текущем ЯП тебе приходится вывихивать мозг над задачей, а на другом ЯП это три строчки, пиши на другом плюс биндинг» придётся внушать. Питон изначально разрабатывался как язык — универсальный клей, так что тут он в самую тему.
Ну вот я лично думаю, что Питон, потому что он объективно ненамного хуже «любого другого языка», и при этом очень популярен на практике. Т.е. ценой небольших гипотетических неудобств по сравнению с «языком X» студент получает бонусом готовый практический навык для работы.
Вот условно 30 лет назад такой опции не было: либо чисто учебный Бейсик, либо «туда-сюда» Паскаль, либо уже по хардкору с головой в C/С++ и иже с ними.
Как человек, всю свою профессиональную карьеру стоящий на грани "зарыться навсегда в одну узкую область" могу сказать, что в этом неудачном пути обучения отсутствовал навык breath vs depth. И навык делегирования ответов.
Объясняю: в любой области всегда можно копать дальше. Например, начинаем мы копать в Computer Science. CS нас быстро подводит к пониманию вычислимости, которое напрямую связано с перечисляемостью и разрешимостью множеств, что в свою очередь нас утыкает лицом в математическую логику и теорию множеств, которая совершенно не стесняется перепрыгивать из счётных множеств в несчётные, что опасно близко нас подводит к множеству R и открывающейся при этом несчётной бездне. Где-то тут рядом с лёгкостью всплывает функциональный анализ, теория групп и понеслось…
Это мы всё ещё не прочитали первую главу CS, которая к программированию не относится.
Вместо этого надо уметь принимать часть решений на веру. Запоминать, что там "есть что-то такое" и вовремя останавливаться. Приспичит — можно нырнуть. Не приспичит — держать голову над водой.
Программирование — это не наука, это смесь ремесла и искуства. Кусок программирования уводит нас в район теории алгоритмов, кусок — в другие интереснейшие области теории. Но, основная часть — это навык, а не знания. Навык отличается от знания в том, что знание всегда либо ищет ответ, либо опирается на другие знания; а навык опирается на опыт.
Таким образом надо уметь в нужный момент прекращать искать знания и начинать рабатывать опыт. Одно другое не исключает (знания сильно помогают), но без опыта никакого результата не будет, даже если вы выучите все курсы MIT'а наизусть.
Программирование — как рисование. 10000 часов теории сильно помогут вам научиться рисовать. 10000 часов рисования научат вас рисовать.
Что надо делать: программировать. Берёте и пишите программу. Копипаста, "оно работает но я не знаю почему" и т.д. Опыт — важнее, чем 100% понимание происходящего.
> Чем вам Керниган-Ритчи и Си как первый язык для обучения основам не угодил.
Строгий «академический» ответ на этот вопрос приведен в монографии Столярова, ссылку на которую дали в комментах выше.
А я по-простому скажу. Си похож одновременно на самурайский меч, турецкую саблю и мушкетёрскую шпагу — устроен очень просто, в нём почти ничего нет, но приёмы написания программ на нём — сложны и замысловаты. И для освоения именно этих приёмов (и безопасного их применения!) нужно много специальных знаний.
Таким образом, изучение Си на уровне чуть выше элементарного тут же превращатся в изучение операционной системы (что такое файл? а дескриптор файла? И зачем функция dup2?), архитектуры компьютера (ошибки buffer overflow где-то рядом, а вместе с ними — опасные уязвимости) и прочих интересных вещей. Такие знания, разумеется, программисту тоже нужны, но на самом начальном этапе обучения программированию у студента начинается информационный перегруз — он не в состоянии справиться с потоком сведений и отделить важное от неважного, как, собственно, и произошло с автором исходного поста.
В питоне, в переменной может быть все что угодно. Сейчас там число, чуть позже строка, а потом массив. Там скорее не переменная владеет объектом, а объект переменной.
И мне это не нравится.
Может, путаете с динамической типизацией?
В смысле как dynamic_cast с++?
Я не силен в теории современных языков. Когда я изучал программирование, их еще не было и терминология была сильно другая.
А еще меня раздражает питоновское форматирование. Мой любимый редактор на ней все время выкидывает фортели…
Впрочем это уже совсем мое старческое ворчание…
И еще. За все нужно платить. Питон хорош для маленьких поделок, на один, два, три листа кода. А вот с объемными проектами гарантированно будут проблемы.
Очень-очень сложный вопрос. Сейчас ищут быть любые манипуляции и пляски со всех сторон. На кону огромные деньги. В целом, более корректно данные запросить непосредственно у авторов. Мы это делали нередко, когда я ещё в лаборатории работал.
Меня немного удивляет, что все данные до последнего листочка не были запрошены и пересмотрены редакцией изначально. Я просто помню, как мы публиковались в Biomaterials. Я, блин, крыс на видео снимал, чтобы редакция убедилась, что им комфортно и они достаточно весёлые. Неверный диаметр игл, поданный в протоколах экспериментов, автоматически бы поставил крест на статье, так как негуманно использовать слишком большой диаметр — крысам больно.
По самой вакцине ощущения смешанные. Но есть понимание, что надо сравнивать с риском бездействия. Если в твоей возрастной группе летальность условные 5%, а риски от вакцины ниже, то надо думать.
Office 365 Premium выходит дешевле. Подписка на год стоит в районе 2-3 тысяч рублей, за эти деньги дают пять терабайт. То есть за терабайт в месяц выходит от 35 до 50.
Правда за 2000 продают какие-то мутные конторы, но за 3000 уже без рисков можно купить.
Есть ещё вариант с покупкой аккаунта onedrive на ebay, там за какие-то копейки якобы бессрочные подписки продают. Но пробовать не хочу.
Можно и дешевле — через мобильную версию взять самый дешевый тариф. Правда владельцу терабайта тариф +8 недоступен, придётся брать +64 за 69 в месяц или 690 в год.
При этом включится webdav и ограничение на размер файла увеличится до 32 гигабайт.
Почему жы все нетехнари пытаются зайти в самые высококонкурентные сферы программирования. Сфера мобильной разработки и вообще Java — высококонкурентна. Обратить стоит лучше усилия на WEB разработку. Особенно на фронтенд. Знаю много гуманитариев преуспевших на фронтенде как таковом при большом желании. Математика там вообще не нужна. Профессия скажем react разработчика котируется везде и в России и в Европе и Америке. Но не нужно циклиться на книгах. Набирается минимум знаний из книг и люди устраиваются джуном в офис. Там учиться надо у опытных людей. Потом поменяв несколько работ, и поднявшись хотя бы до реального миддла, можно пытаться устраиваться зарубеж. Без реального опыта в офисе хорошим разработчикам не стать никак. У кого-то до крепкого миддла путь по офисам занимает год, у кого-то 5. Тут уж все зависит от желания учиться.
Преподаватель (если он хороший) укажет обучаемому, где нужно остановиться, поймёт, почему обучаемый полез не в те дебри и объяснит, почему пока туда соваться не нужно, а так же покажет более лёгкий путь.
Такого преподавателья, видимо, нужно искать на каких-то курсах, но курсы сегодня не очень качественные (именно по части преподавателей), поэтому здесь ждёт засада. Нужно перебирать, тратить время и деньги.
От себя могу добавить, что курсы с нуля готовятся и у нас, но пока недоступны. Но теоретически мы могли бы помочь друг другу путём тестирования материала «на кошках» (добровольцах). Если вдруг у кого-то появится интерес — пишите в личку.
Паскаль по факту не сильно от него отличается (да, есть анклавы дельфистов и т.п. — но это чудовищно далеко от мейнстрима). Да, надо было сказать "надо было брать лет 20 назад", или даже раньше.
Сейчас обстановка интересна тем, что ломается всё — ждём, что выживет из новой волны языков. Хоть выбирай между Swift и Julia какими-нибудь...
Вот честно хотелось бы, чтобы именно ради таких вопросов и шли.
А то наши (большей части exUSSR) типовые вузы, где большинство преподавателей пенсионного возраста и в лучшем случае пишут фанфики по мотивам настоящей науки (а то и этим себя не озадачивают) — годятся только ради корочки.
EDIT Правда, если учить студентов ближе к индустрии, то принцип «Если на текущем ЯП тебе приходится вывихивать мозг над задачей, а на другом ЯП это три строчки, пиши на другом плюс биндинг» придётся внушать. Питон изначально разрабатывался как язык — универсальный клей, так что тут он в самую тему.
Вот условно 30 лет назад такой опции не было: либо чисто учебный Бейсик, либо «туда-сюда» Паскаль, либо уже по хардкору с головой в C/С++ и иже с ними.
Тут важно что это Си. Живой, массовый и сложный проект. Учим не мертвому языку дедов, а живому на котором пишут живые проекты.
Как человек, всю свою профессиональную карьеру стоящий на грани "зарыться навсегда в одну узкую область" могу сказать, что в этом неудачном пути обучения отсутствовал навык breath vs depth. И навык делегирования ответов.
Объясняю: в любой области всегда можно копать дальше. Например, начинаем мы копать в Computer Science. CS нас быстро подводит к пониманию вычислимости, которое напрямую связано с перечисляемостью и разрешимостью множеств, что в свою очередь нас утыкает лицом в математическую логику и теорию множеств, которая совершенно не стесняется перепрыгивать из счётных множеств в несчётные, что опасно близко нас подводит к множеству R и открывающейся при этом несчётной бездне. Где-то тут рядом с лёгкостью всплывает функциональный анализ, теория групп и понеслось…
Это мы всё ещё не прочитали первую главу CS, которая к программированию не относится.
Вместо этого надо уметь принимать часть решений на веру. Запоминать, что там "есть что-то такое" и вовремя останавливаться. Приспичит — можно нырнуть. Не приспичит — держать голову над водой.
Программирование — это не наука, это смесь ремесла и искуства. Кусок программирования уводит нас в район теории алгоритмов, кусок — в другие интереснейшие области теории. Но, основная часть — это навык, а не знания. Навык отличается от знания в том, что знание всегда либо ищет ответ, либо опирается на другие знания; а навык опирается на опыт.
Таким образом надо уметь в нужный момент прекращать искать знания и начинать рабатывать опыт. Одно другое не исключает (знания сильно помогают), но без опыта никакого результата не будет, даже если вы выучите все курсы MIT'а наизусть.
Программирование — как рисование. 10000 часов теории сильно помогут вам научиться рисовать. 10000 часов рисования научат вас рисовать.
Что надо делать: программировать. Берёте и пишите программу. Копипаста, "оно работает но я не знаю почему" и т.д. Опыт — важнее, чем 100% понимание происходящего.
Строгий «академический» ответ на этот вопрос приведен в монографии Столярова, ссылку на которую дали в комментах выше.
А я по-простому скажу. Си похож одновременно на самурайский меч, турецкую саблю и мушкетёрскую шпагу — устроен очень просто, в нём почти ничего нет, но приёмы написания программ на нём — сложны и замысловаты. И для освоения именно этих приёмов (и безопасного их применения!) нужно много специальных знаний.
Таким образом, изучение Си на уровне чуть выше элементарного тут же превращатся в изучение операционной системы (что такое файл? а дескриптор файла? И зачем функция dup2?), архитектуры компьютера (ошибки buffer overflow где-то рядом, а вместе с ними — опасные уязвимости) и прочих интересных вещей. Такие знания, разумеется, программисту тоже нужны, но на самом начальном этапе обучения программированию у студента начинается информационный перегруз — он не в состоянии справиться с потоком сведений и отделить важное от неважного, как, собственно, и произошло с автором исходного поста.
И мне это не нравится.
В смысле как dynamic_cast с++?
Я не силен в теории современных языков. Когда я изучал программирование, их еще не было и терминология была сильно другая.
А еще меня раздражает питоновское форматирование. Мой любимый редактор на ней все время выкидывает фортели…
Впрочем это уже совсем мое старческое ворчание…
И еще. За все нужно платить. Питон хорош для маленьких поделок, на один, два, три листа кода. А вот с объемными проектами гарантированно будут проблемы.
Очень-очень сложный вопрос. Сейчас ищут быть любые манипуляции и пляски со всех сторон. На кону огромные деньги. В целом, более корректно данные запросить непосредственно у авторов. Мы это делали нередко, когда я ещё в лаборатории работал.
Меня немного удивляет, что все данные до последнего листочка не были запрошены и пересмотрены редакцией изначально. Я просто помню, как мы публиковались в Biomaterials. Я, блин, крыс на видео снимал, чтобы редакция убедилась, что им комфортно и они достаточно весёлые. Неверный диаметр игл, поданный в протоколах экспериментов, автоматически бы поставил крест на статье, так как негуманно использовать слишком большой диаметр — крысам больно.
По самой вакцине ощущения смешанные. Но есть понимание, что надо сравнивать с риском бездействия. Если в твоей возрастной группе летальность условные 5%, а риски от вакцины ниже, то надо думать.
Правда за 2000 продают какие-то мутные конторы, но за 3000 уже без рисков можно купить.
Есть ещё вариант с покупкой аккаунта onedrive на ebay, там за какие-то копейки якобы бессрочные подписки продают. Но пробовать не хочу.
fex.net
Есть дешевле — напишите, буду рад ознакомиться
При этом включится webdav и ограничение на размер файла увеличится до 32 гигабайт.
Конечно, есть небольшой процент компаний, где алгоритмы нужны, но такие еще найти надо и попасть в них. А где нужна математика, таких еще меньше.
Я бы и сам с удовольствием на работе писал бы алгоритмы, т.к. это и интересно и для мозга тренировка. Но, реальные задачи совсем другие.
Про Калифорнию да, в нынешние времена вроде даже выигрывают места типа Хьюстона, Остина и пр с лучшим балансом оплаты и стоимости/качества жизни.