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

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

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

Около месяца каждый день активно изучаю пайтон. И мне это нравится! Знаю базу: могу решать элементарные задания, писать функции, циклы, понимаю что такое ленивое вычисление. Вроде даже получается неплохо учиться. Но вот я столкнулся с заданием, которое не понимаю как решить. Задача состояла в том, чтобы сделать функцию, которая арабские числа заменяла бы на аналогичные римские. И вот в чём беда. Я не могу придумать как решить такую задачу. То-есть я знаю все основы, но собрать пазл воедино не могу. Для моей головы такая задача сложна. Сидел долго, когда уже увидел решение этой задачи - всё равно было трудно понять, как люди до такого додумались. У меня были предположения, но я сталкивался с тем, чего ещё не знаю и я буксовал. Так вот, скажите мне пожалуйста, нормально ли такое непонимание, или же моя голова не готова к этому? Спасибо.
  • Вопрос задан
  • 410 просмотров
Решения вопроса 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
Не очень понятно закончил ли ты школу, но вопрос сколько лет ты учил в школе математику, и стал ли ты математиком?
Сколько лет ты в школе учил английский, и можешь ли ты сейчас общаться с англичанином на английском?
Сколько лет ты в школе учил "что угодно" и стал ли ты специалистом?

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

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

Войти через центр авторизации
Похожие вопросы
25 апр. 2024, в 12:20
15000 руб./за проект
25 апр. 2024, в 12:08
300 руб./за проект
25 апр. 2024, в 11:49
25000 руб./за проект