Задать вопрос
@Daibend
Начинающий пайтон дэв.

Почему обучение продвигается так медленно?

Добрый день. Мой вопрос не касательно каких-либо функций или основ. Просто подскажите, как быть в такой ситуации, что делать, или может вообще лучше оставить всё и программирование не моё.

Около месяца каждый день активно изучаю пайтон. И мне это нравится! Знаю базу: могу решать элементарные задания, писать функции, циклы, понимаю что такое ленивое вычисление. Вроде даже получается неплохо учиться. Но вот я столкнулся с заданием, которое не понимаю как решить. Задача состояла в том, чтобы сделать функцию, которая арабские числа заменяла бы на аналогичные римские. И вот в чём беда. Я не могу придумать как решить такую задачу. То-есть я знаю все основы, но собрать пазл воедино не могу. Для моей головы такая задача сложна. Сидел долго, когда уже увидел решение этой задачи - всё равно было трудно понять, как люди до такого додумались. У меня были предположения, но я сталкивался с тем, чего ещё не знаю и я буксовал. Так вот, скажите мне пожалуйста, нормально ли такое непонимание, или же моя голова не готова к этому? Спасибо.
  • Вопрос задан
  • 427 просмотров
Подписаться 1 Простой Комментировать
Решения вопроса 1
sergey-gornostaev
@sergey-gornostaev
Седой и строгий
А вы ждали мгновенного результата? Месяц - это очень мало. За месяц даже учебник для начинающих нормально не изучить. На тренировку мозга требуются существенно больше времени. Стартовый уровень, достаточный для найма, нарабатывается полгода-год. Пара-тройка лет практики в окружении профессионалов нужна, чтобы вырасти в мидлы. И процесс не останавливается никогда, чем больше вы тренируетесь, тем больший спектр задач можете решать и тем проще это вам даётся. Продолжайте стараться, всё придётся при должном упорстве.
Ответ написан
Пригласить эксперта
Ответы на вопрос 5
@AstraVlad
Финансист, консультант, программист-любитель
Я может быть и не программист по профессии, но есть одна вещь, которую могу сказать совершенно точно: в программировании главное это не изучение языков программирования. Программа это алгоритм, записанный машиночитаемым языком. Знание языка программирования позволяет написать программу, но если у вас нет алгоритма, вам нечего будет записывать. Поэтому самое главное это научиться мыслить алгоритмически, то-есть начать у себя в уме раскладывать задачу на последовательность взаимосвязанных действий, которые будут всегда, гарантированно, приводить вас к нужному результату. Для начала эту последовательность можно просто записывать обычным русским языком на бумаге и проходиться по ней самому, пытаясь исполнить шаг за шагом. И только потом пытаться записать "на машиночитаемом языке".

Как только выработается дисциплина ума, остальное станет намного проще. И станет совершенно неважно на каком языке записывать ваш алгоритм.
Ответ написан
Комментировать
firedragon
@firedragon
Не джун-мидл-сеньор, а трус-балбес-бывалый.
Учите алгоритмы. Точнее даже учите как формализовывать задачу. Перво наперво найдите как переводятся арабские в римские, потом все описывайте в коде.
Ответ написан
sanya84
@sanya84
Фанатик Python 3
Используйте словарь.

roman = {1: 'I', 2: 'II', 3: 'III', 4: 'IV', 5: 'V'}
arabic = {'I': 1, 'II': 2, 'III': 3, 'IV': 4, 'V': 5}


class Numbers:
    @staticmethod
    def to_roman(integer: int)->str:
        return roman[integer]
    @staticmethod
    def to_arabic(string: str)->int:
        return arabic[string]


def test():
    print(Numbers.to_arabic('V'))
    print(Numbers.to_roman(3))

if __name__ == '__main__':
    test()
Ответ написан
solotony
@solotony
покоряю пик Балмера
на самом деле алгоритм перевода из арабской системы в римскую надо просто ЗНАТЬ. а когда знаешь, то закодировать....

A = (1, 4, 5, 9, 10, 40, 50, 90, 100, 400, 500, 900, 1000)
L = ('I', 'IV', 'V', 'IX', 'X', 'XL', 'L', 'XC', 'C', 'CD', 'D', 'CM', 'M')
def a2l(x):
    r = ''
    k = len(A)
    while k >= 0:
        while x >= A[k]:
            r += L[k]
            x -= A[k]
        k -= 1
    return r


нормально ли такое непонимание, или же моя голова не готова к этому? Спасибо.


нормально. тренируйся. и помни что есть правило "10000 часов".
Ответ написан
saboteur_kiev
@saboteur_kiev Куратор тега IT-образование
software engineer
Не очень понятно закончил ли ты школу, но вопрос сколько лет ты учил в школе математику, и стал ли ты математиком?
Сколько лет ты в школе учил английский, и можешь ли ты сейчас общаться с англичанином на английском?
Сколько лет ты в школе учил "что угодно" и стал ли ты специалистом?

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

Войдите, чтобы написать ответ

Похожие вопросы