Кому-нибудь требуется начинающий питонист в подмастерья?
От: Lazytech Ниоткуда  
Дата: 04.05.19 10:35
Оценка:
С прошлого года постепенно осваиваю Python 3. Хотелось бы поучаствовать в качестве волонтера (то есть бесплатно) в небольших проектах малой или средней сложности, не всё же тренировочные задачки решать. Похвастаться знанием других актуальных языков программирования, к сожалению, пока не могу, да и опыта практической работы в каких-либо предметных областях у меня пока нет.

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

Буду рад любым советам. Если задал неуместный вопрос, прошу извинить.
Отредактировано 04.05.2019 10:58 Lazytech . Предыдущая версия . Еще …
Отредактировано 04.05.2019 10:43 Lazytech . Предыдущая версия .
Отредактировано 04.05.2019 10:42 Lazytech . Предыдущая версия .
Отредактировано 04.05.2019 10:42 Lazytech . Предыдущая версия .
Отредактировано 04.05.2019 10:38 Lazytech . Предыдущая версия .
Отредактировано 04.05.2019 10:38 Lazytech . Предыдущая версия .
python python3
Re: Кому-нибудь требуется начинающий питонист в подмастерья?
От: L.K.  
Дата: 04.05.19 10:54
Оценка: 9 (1) -1
https://github.com/python

А вообще, если и осваивать что-то с нуля, то что-то новое: какой-нибудь Rust или Golang.
Re[2]: Кому-нибудь требуется начинающий питонист в подмастер
От: Lazytech Ниоткуда  
Дата: 04.05.19 11:00
Оценка:
Здравствуйте, L.K., Вы писали:

LK>https://github.com/python


За ссылку спасибо, но это пока слишком круто для меня.

LK>А вообще, если и осваивать что-то с нуля, то что-то новое: какой-нибудь Rust или Golang.


К сожалению, поезд не только ушел, но и успел набрать ход. Мне бы для начала с одним языком разобраться.
Отредактировано 04.05.2019 11:01 Lazytech . Предыдущая версия .
Re: Кому-нибудь требуется начинающий питонист в подмастерья?
От: zverjuga Беларусь  
Дата: 04.05.19 11:15
Оценка: 3 (1) +1
можно свой проект пилить, не обязательно лезть в чужой. придумай себе задачу и делай ее.
решаю проблемы
Re[3]: Кому-нибудь требуется начинающий питонист в подмастер
От: L.K.  
Дата: 04.05.19 11:21
Оценка: 4 (1) +1 -1 :)
L>С прошлого года постепенно осваиваю Python 3.
L>Мне бы для начала с одним языком разобраться.

С прошлого года прошло уже почти полгода. Азы языка программирования (любого) учатся за неделю. А дальнейший опыт получается только в серьезной коммерческой разработке (на полную ставку и за бабки).
Re[2]: Кому-нибудь требуется начинающий питонист в подмастерья?
От: Lazytech Ниоткуда  
Дата: 04.05.19 11:21
Оценка:
Здравствуйте, zverjuga, Вы писали:

Z>можно свой проект пилить, не обязательно лезть в чужой. придумай себе задачу и делай ее.


Я пока слабо себе представляю, как это делается...
Re[3]: Кому-нибудь требуется начинающий питонист в подмастерья?
От: aik Австралия  
Дата: 04.05.19 11:25
Оценка: 3 (1)
Здравствуйте, Lazytech, Вы писали:

Z>>можно свой проект пилить, не обязательно лезть в чужой. придумай себе задачу и делай ее.

L>Я пока слабо себе представляю, как это делается...

Захотелось вот мне погодную станцию слабать на коленке — микроконтроллер esp8266 с микропитоном и сенсор dht22 и вперед. Или вот задолбали скрипты bash — перенес свои рабочие скрипты на питон, красота. Неужели скрипты ни для чего нужны?
Re[4]: Кому-нибудь требуется начинающий питонист в подмастер
От: Lazytech Ниоткуда  
Дата: 04.05.19 11:25
Оценка:
Здравствуйте, L.K., Вы писали:

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


Увы, в моем случае процесс освоения языка программирования идет не медленно, а очень медленно и временами почти болезненно (не зря же придумали выражение «голова пухнет»). Я даже не представляю себе, как, не имея серьезного опыта программирования, можно быстро освоить азы какого-либо языка. Что касается серьезной коммерческой разработки, кто же меня туда возьмет, без опыта-то...
Отредактировано 04.05.2019 11:31 Lazytech . Предыдущая версия . Еще …
Отредактировано 04.05.2019 11:30 Lazytech . Предыдущая версия .
Re[4]: Кому-нибудь требуется начинающий питонист в подмастер
От: Lazytech Ниоткуда  
Дата: 04.05.19 11:29
Оценка:
Здравствуйте, aik, Вы писали:

aik>Захотелось вот мне погодную станцию слабать на коленке — микроконтроллер esp8266 с микропитоном и сенсор dht22 и вперед. Или вот задолбали скрипты bash — перенес свои рабочие скрипты на питон, красота. Неужели скрипты ни для чего нужны?


Только теперь до меня дошло, о чем идет речь! Скриптов, как мне кажется, будет недостаточно для набора опыта. Я еще несколько лет назад делал скриптики для планировщика nnCron на языке SP-Forth, а задолго до того — макросы для MS Excel, но программистом от этого не стал...

P.S. Поясню, что имею в виду, на примере кода (см. под катом).
  2 образца кода...
Код до переделки:
class Solution:
    def numMagicSquaresInside(self, grid: List[List[int]]) -> int:
        
        def isMagicSquare(r0, c0):
            row_sums, col_sums, diag_sums = [0, 0, 0], [0, 0, 0], [0, 0]
            uniques = set()

            for r in range(r0, r0+3):
                for c in range(c0, c0+3):
                    cell = grid[r][c]
                    if not (1 <= cell <= 9):
                        return False
                    else:
                        uniques.add(cell)
                        if len(uniques) < c - c0 + r - r0 + 1:
                            return False
                        else:                
                            row_sums[r-r0] += cell
                            col_sums[c-c0] += cell

                if r - r0 > 1 and row_sums[r-r0] != row_sums[r-r0-1]:
                    return False

                diag_sums[0] += grid[r][c0+r-r0]
                diag_sums[1] += grid[r][c0+r0+2-r]

            if len(uniques) < 9:
                return False
                
            for c in range(2):
                if col_sums[c] != col_sums[c+1]:
                    return False

            return diag_sums[0] == diag_sums[1] == row_sums[0] == col_sums[0]


        n, m = len(grid), len(grid[0])
        magic_squares = 0

        for r in range(n-2):
            for c in range(m-2):
                if isMagicSquare(r, c):
                    magic_squares += 1

        return magic_squares


Код после переделки:
class Solution:
    def numMagicSquaresInside(self, grid: List[List[int]]) -> int:
        
        def isMagic(r0, c0):
            row_sums, col_sums, diag_sums = [0, 0, 0], [0, 0, 0], [0, 0]
            uniques = set()

            for r in range(r0, r0+3):
                c_last = c0 + 2           
                for c in range(c0, c0+3):
                    cell = grid[r][c]
                    uniques.add(cell)
                    row_sums[r-r0] += cell
                    col_sums[c-c0] += cell

                r_pos = r - r0
                if r_pos > 1 and row_sums[r_pos] != row_sums[r_pos-1]:
                    return False

                diag_sums[0] += grid[r][c0+r_pos]
                diag_sums[1] += grid[r][c_last-r_pos]

            if len(uniques) < 9:
                return False

            for c in range(2):
                if col_sums[c] != col_sums[c+1]:
                    return False

            return diag_sums[0] == diag_sums[1] == row_sums[0] == col_sums[0]


        n, m = len(grid), len(grid[0])
        magic_squares = 0
        bad_cells = {(r, c) for c in range(m) for r in range(n)
                     if not (1 <= grid[r][c] <= 9)}

        for r in range(n-2):
            for c in range(m-2):
                # based on research by lee215
                # https://leetcode.com/problems/magic-squares-in-grid/discuss/133874/Python-5-and-43816729
                # "The center of magic square must be 5."                
                if grid[r+1][c+1] == 5:            
                    r_end, c_end = r + 2, c + 2
                    all_good = True
                    for r1, c1 in bad_cells:
                        if r <= r1 <= r_end and c <= c1 <= c_end:
                            all_good = False
                            break

                    if all_good and isMagic(r, c):
                        magic_squares += 1

        return magic_squares

Если верить сайту, где я решал эту самую задачку, переделка кода сократила время его выполнения с 44 мс до 36 мс. Я ожидал большего, но хоть что-то...
Отредактировано 04.05.2019 11:42 Lazytech . Предыдущая версия .
Re[3]: Кому-нибудь требуется начинающий питонист в подмастерья?
От: vsb Казахстан  
Дата: 04.05.19 12:00
Оценка: 12 (2) +1
Здравствуйте, Lazytech, Вы писали:

Z>>можно свой проект пилить, не обязательно лезть в чужой. придумай себе задачу и делай ее.


L>Я пока слабо себе представляю, как это делается...


Ты же переводчик. Придумай программу, которая тебе поможет. GUI на пайтоне пишется с помощью PyQt и работает на любой операционной системе. Вот и напиши, и тебе полезно будет и практических навыков получишь выше крыши и есть шанс, что полезная программа выйдет, т.к. ты профессионал и лучше остальных знаешь, что важно, а что не очень. Тем более с английским у тебя точно проблем нет, поэтому с любым вопросом мучай Google и StackOverflow, всё должно получиться.
Re[4]: Кому-нибудь требуется начинающий питонист в подмастерья?
От: Lazytech Ниоткуда  
Дата: 04.05.19 12:06
Оценка:
Здравствуйте, vsb, Вы писали:

vsb>Ты же переводчик. Придумай программу, которая тебе поможет. GUI на пайтоне пишется с помощью PyQt и работает на любой операционной системе. Вот и напиши, и тебе полезно будет и практических навыков получишь выше крыши и есть шанс, что полезная программа выйдет, т.к. ты профессионал и лучше остальных знаешь, что важно, а что не очень. Тем более с английским у тебя точно проблем нет, поэтому с любым вопросом мучай Google и StackOverflow, всё должно получиться.


Спасибо за интересный совет! Если бы всё было так просто... Меня пока интересует приобретение какого-то опыта в качестве простого кодера, не более того.
Re[5]: Кому-нибудь требуется начинающий питонист в подмастер
От: aik Австралия  
Дата: 04.05.19 12:16
Оценка: 3 (1)
Здравствуйте, Lazytech, Вы писали:

L>Увы, в моем случае процесс освоения языка программирования идет не медленно, а очень медленно и временами почти болезненно (не зря же придумали выражение «голова пухнет»). Я даже не представляю себе, как, не имея серьезного опыта программирования, можно быстро освоить азы какого-либо языка. Что касается серьезной коммерческой разработки, кто же меня туда возьмет, без опыта-то...


Друг в 40 лет рванул из айти директора в явапрограммера. Месяца три-четыре тренировался на кошках, потом джуном полгода, а через год где то был вполне вменяемый офер от сбертеха. Но у него прям глаза горели, так айтишничество достало, недостаток опыта вполне компенсируется энтузиазмом и мозгами.
Re[6]: Кому-нибудь требуется начинающий питонист в подмастер
От: Lazytech Ниоткуда  
Дата: 04.05.19 12:18
Оценка:
Здравствуйте, aik, Вы писали:

aik>Друг в 40 лет рванул из айти директора в явапрограммера. Месяца три-четыре тренировался на кошках, потом джуном полгода, а через год где то был вполне вменяемый офер от сбертеха. Но у него прям глаза горели, так айтишничество достало, недостаток опыта вполне компенсируется энтузиазмом и мозгами.


К сожалению, это не совсем мой случай. Я-то в айти никогда не работал, да и мозгами, заточенными под программирование, похвастаться не могу...
Re[5]: Кому-нибудь требуется начинающий питонист в подмастер
От: L.K.  
Дата: 04.05.19 12:33
Оценка: 17 (2)
vsb>>Ты же переводчик.

Вот этого я не понял. Зачем переводчику лезть в кодописание? Занимайся своим делом и зарабатывай бабло. Или спрос на переводы резко упал?

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

Еще можно закодить сайтик по изучению языков. Такое тоже уже есть, но тоже можно сделать лучше.

А само кодописание — это переменные, объекты, функции, параметры, условные операторы и циклы. Ничего сложного.
Re[3]: Кому-нибудь требуется начинающий питонист в подмастерья?
От: zverjuga Беларусь  
Дата: 04.05.19 12:45
Оценка: 9 (1) -1
Здравствуйте, Lazytech, Вы писали:

L>Здравствуйте, zverjuga, Вы писали:


Z>>можно свой проект пилить, не обязательно лезть в чужой. придумай себе задачу и делай ее.


L>Я пока слабо себе представляю, как это делается...


как ни странно, но это даже и к лучшему. если ты самостоятельно разберешься с этим, то получишь к опыту еще +100 очков, чем если тебя посадят на уже готовый проект.
решаю проблемы
Re[6]: Кому-нибудь требуется начинающий питонист в подмастер
От: Lazytech Ниоткуда  
Дата: 04.05.19 12:52
Оценка:
Здравствуйте, L.K., Вы писали:

LK>Вот этого я не понял. Зачем переводчику лезть в кодописание? Занимайся своим делом и зарабатывай бабло. Или спрос на переводы резко упал?


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

LK>Но если охота покодить, можно сделать переводческую библиотеку. Чтобы её можно было подцепить к программе или вебсайту. Хотя, подозреваю, что такое уже есть. Но можно найти там косяки и сделать лучше.

LK>Еще можно закодить сайтик по изучению языков. Такое тоже уже есть, но тоже можно сделать лучше.

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

LK>А само кодописание — это переменные, объекты, функции, параметры, условные операторы и циклы. Ничего сложного.


Это смотря для кого ничего сложного...
Re[4]: Кому-нибудь требуется начинающий питонист в подмастер
От: Lazytech Ниоткуда  
Дата: 04.05.19 12:54
Оценка:
Здравствуйте, zverjuga, Вы писали:

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


Всё это очень здорово, но мне даже теоретические задачки зачастую даются непросто (иные решаю по 2-3 дня, а некоторые так и оставляю нерешенными), чего уж там говорить о практике...
Отредактировано 04.05.2019 12:55 Lazytech . Предыдущая версия .
Re[7]: Кому-нибудь требуется начинающий питонист в подмастер
От: L.K.  
Дата: 04.05.19 13:40
Оценка: +1
L>Боюсь, что я пока не готов самостоятельно пилить проекты, пусть даже относительно простые.

А тогда кому нужен такой волонтёр? Он только отвлекать будет.

Я бы задумался о том, почему исчезли заказы на перевод. Избыток переводчиков на рынке? Все начали переводить гугло-переводчком?
Re[8]: Кому-нибудь требуется начинающий питонист в подмастер
От: Lazytech Ниоткуда  
Дата: 04.05.19 13:47
Оценка:
Здравствуйте, L.K., Вы писали:

LK>А тогда кому нужен такой волонтёр? Он только отвлекать будет.




LK>Я бы задумался о том, почему исчезли заказы на перевод. Избыток переводчиков на рынке? Все начали переводить гугло-переводчком?


Причин, полагаю, несколько, но не буду оффтопить. Если интересно, можно обсудить этот вопрос в соответствующем разделе.
Отредактировано 04.05.2019 13:55 Lazytech . Предыдущая версия .
Re[6]: Кому-нибудь требуется начинающий питонист в подмастер
От: L.K.  
Дата: 04.05.19 13:51
Оценка:
aik>рванул из айти директора в явапрограммера
aik>так айтишничество достало

Так достало, что рванул с должности айти директора на должность рядового айтишника?
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.