Форум сайта python.su
Python_newbie13Проблема начала обучения программированию вообще, используя для этого инструмент Java, заключается в том, что с Java ты не будешь знать половины вещей, которые нужно знать программисту, так как в Java они скрыты для удобства профессиональных разработчиков. Избыточность кода на Java при записи простых программ можно преодолеть, составив один раз шаблон проекта и каждый раз его использовав по новой, просто копируя код. Проблема, как видишь, не в этом. Проблема в том, что ты ничего не будешь узнавать о работе на низком уровне. Это примерно как блондинка ездит на мерседесе очень долго и успешно, из-за этого ошибочно считает себя хорошим водителем и автолюбителем, а потом у неё выходит из строя свеча под капотом. Вместо того чтобы заменить свечу самостоятельно (будь она настоящим автолюбителем), она едет в автосервис, где ей втюхивают перебор всего двигателя за крупную сумму. Она думает, что очень развитая, но на деле даже с мелочью справиться не может.
Вот есть Java. Учиться с 0 на ней - это ад. Тебя в начале учат, что такое класс, метод, конструктор, модификаторы доступа. Затем наследование, абстрактные классы и интерфейсы ну а потом уже алгоритмизации как таковой. Так вот понять новичку всю эту карусель невозможно(Может я тупой). Но из-за этого писать говнокод на Java сложнее.
Python_newbie13Вузы заменяют Pascal на Python. Просто на Паскале уже нельзя ничего написать современное, поэтому учащиеся просто теряют интерес к обучению. В то же время Питон хорошо вставляется на многие устройства и учащийся на питоне может запрограммировать себе бота для игры, в которую он там играет с фанатизмом, или запрограммировать игрушку на ардуино. То есть он может полученные навыки закреплять с интересом для себя и получать дополнительную мотивацию для дальнейшего становления программистом. Раньше можно было на Паскале это делать, так как тогда была DOS, для которой можно было что-то написать - повторить какую-то игру, вывести какую-то графику, произвести на кого-то впечатление. Тогда было очень много программ от студентов. Они с любовью писали эту всю графику по точкам, где тебя программа с красивыми картинками в консоли учила набирать текст на клавиатуре. Это важный аспект обучения. Очень сложно изучать то, что неинтересно и неприменимо. Поэтому студенты с удовольствием и изучали Паскаль, и писали на Паскале, а потом и работать шли тоже на Паскале. Питон выглядит как игрушка, но в то же время это не игрушка, а профессиональный инструмент, который даёт возможность и учиться на нём, и работать на нём в плане реализации карьеры в жизни. Поэтому он хорошо подходит для обучения и как инструмент, и как мотиватор. И даже то, что в Питоне не задаются типы переменных явным образом (а про это нужно знать как про явление), роли не играет, потому что преподать типы переменных с помощью Питона можно.
Просто очень многие вузы, как наши так и зарубежные ставят Питон во главе языков с которых проще начать программировать.
Python_newbie13Думаю, ты слишком сложную задачу взял. Ты её не потянешь просто, так как для этого нужно знать первое, второе, пятое и десятое. А ты не знаешь ни одного из этих необходимых и тебе ещё наивно кажется, что это простенькая задачка.
Моя цель минимум - это просто научиться писать сложные алгоритмы. Как пример я сейчас пытаюсь осилить алгоритм который сокращает выражение с переменными т.е пользователь вводит (x+5)*(x-y) и получает
x^2 +5x -x*y - 10.
Python_newbie13Думаю, ты ошибочно полагаешь, что у тебя получается.
Получается так себе(уже неделю страдаю, но реализовано только умножение и сложение и частично степени,если они целочисленные)
Отредактировано py.user.next (Июль 9, 2020 02:20:23)
Офлайн
Я бы не сказал, что результат нулевой и я потратил время впустую. Я сразу знал, что это задача сложна, потому что человек у которого я раз в месяц беру урок поставил ей 2 звездочки.(Супер сложно)
За эту неделю, пытаясь ее решить я много нового узнал и попробовал. Про 4 шага согласен полностью.
Офлайн
Python_newbie13Ты не сделал программу. Это нулевой результат. Можешь какие угодно сказки придумывать для самоуспокоения, как ты там научился чему-то новому и вот как ты сейчас сможешь, только вот надо больше времени и прочие вещи. Но в реальном мире, во-первых, нет учебных задачек никаких, а всё очень серьёзно и никто за тебя сопли не будет подтирать (не можешь сделать - твои проблемы; никакой добрый дяденька, который умеет, не будет к тебе прибегать и помогать радостно), а во-вторых, написание сложной программы, как правило, является процессом изготовления ма-а-аленького винтика во всей программе, которая делает хотя бы что-то ощутимое, которую можно продуктом назвать. И когда у тебя винтика в программе не хватает, потому что ты его сделать не смог, ты им пренебрегаешь, и вся программа со всеми шестерёнками в ней начинает держаться на соплях. И так ты становишься программистом, который что-то пишет и много рекламирует себя, но код которого что-то как-то странновато работает. Ну, и потом мы твоего кода не увидим, потому что при его публикации будет видно, что там винтов не хватает. Будем слышать только сказки.
Я бы не сказал, что результат нулевой
Офлайн
Python_newbie13Вот я прям сейчас на сайте БГУ нашел ссылку на сайт Факультета Прикладной Математики и Информатики. На сайте есть программы обучения для всех ступеней. Смотрим страницу Программирование. № УД-5433/уч. из цикла общенаучных и общепрофессиональных дисциплин для первого курса. Качаем документ. Читаем
ВУЗ в который я поступил ну и большинство в моей стране тоже( я из Беларуси).
гиям.
Основные задачи, решаемые при изучении дисциплины «Программирование»:
изучение языков программирования C++, C# и Java;
изучение современных технологий разработки программ, в частности,
объектно-ориентированной и событийно-управляемой;
изучение архитектуры компьютера и машинно-ориентированных языков.
В результате изучения учебной дисциплины студент должен
знать:
─ основные понятия и принципы обработки информации, основы компьютерной обработки информации;
─ принципы проектирования алгоритмов и их реализации;
─ основные методы и средства эффективной разработки программного
обеспечения;
─ методы тестирования, отладки и верификации программ;
4
─ структуру компьютера и архитектуру микропроцессора;
─ особенности применения платформенно-независимых языков;
─ области применения и практическое использование декларативных
языков;
уметь:
─ проектировать эффективные алгоритмы решения поставленной задачи;
─ выбирать наиболее подходящие структуры данных, программные и
технические средства реализации алгоритма;
─ разрабатывать программные приложения с заданной функциональностью и операционным окружением;
владеть:
─ основными методами алгоритмизации практических задач;
─ навыками разработки и сопровождения программ в конкретных средах
разработки.
Отредактировано FishHook (Июль 9, 2020 10:22:34)
Офлайн
Python_newbie13Если вы хотите научиться готовить, то вам надо научиться разделывать свиную тушу, варить из неё бульон, и руками месить тесто. Работая поваром в кафе у Ашота вы не будете так сложно заморачиваться, вы возьмете бульонный кубик, макароны Макфа и какой-нибудь кетчуп, результат получится точно такой же. Питон не даст вам возможности по честному реализовать половину алгоритмов, потому что в него встроен целый ряд механизмов упрощающих жизнь программиста. Он потому, блин, и простой.
Для меня первый изучить алгоритмизацию в совершенстве.
Офлайн
Не знаю если актуально ещё но! Вот вариант решения:
a = [] cnt = 0 j = 0 while j <= 9: digit = int(input('Enter a digit from 0 to 9: ')) a.append(digit) j += 1 for i in a: if i == 0: cnt += 1 else: pass print(a) print(cnt)
Офлайн