Re[3]: Кому-нибудь требуется начинающий питонист в подмастерья?
От: CEMb  
Дата: 20.05.19 08:19
Оценка:
Здравствуйте, Lazytech, Вы писали:

CEM>>А что стало с переводами?


L>Нэту, сапсэм нэту.


Хреново

А если переводить книги и продавать? По тому же Питону (и другим языкам/технологиям)? Договориться с издательством каким-нибудь? И Питон выучишь и денег заработаешь?
also, it's desktop photo frame
Re[4]: Кому-нибудь требуется начинающий питонист в подмастер
От: Lazytech Ниоткуда  
Дата: 20.05.19 08:41
Оценка:
Здравствуйте, CEMb, Вы писали:

CEM>Хреново


Во втором полугодии прошлого года я значительно снизил цены на русско-английские переводы, рассчитывая хоть расширить круг прямых заказчиков. Результат — один заказ стоимостью менее 500 руб. Выводы делайте сами.

CEM>А если переводить книги и продавать? По тому же Питону (и другим языкам/технологиям)? Договориться с издательством каким-нибудь? И Питон выучишь и денег заработаешь?


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

По-моему, лучше брать пример с лягушки, которую бросили в котел с горячей водой, чем с лягушки, которая лежит в котле с медленно подогреваемой водой...
Отредактировано 20.05.2019 8:47 Lazytech . Предыдущая версия .
Re[12]: Кому-нибудь требуется начинающий питонист в подмастер
От: Lazytech Ниоткуда  
Дата: 20.05.19 08:45
Оценка:
Здравствуйте, takTak, Вы писали:

T>не совсем понял, где там с классами была твоя проблема... рефакторинг в наше время довольно быстро делается...


Увы и ах. К примеру, я не знал, что в данном проекте надо использовать специальные питоновские функции вида __function__ (которые, по сути, переопределяют существующие функции). Более того, я вообще ни разу их не использовал и даже не предполагал, что это может потребоваться в первом же проекте.
Re[13]: Кому-нибудь требуется начинающий питонист в подмастер
От: takTak  
Дата: 20.05.19 10:02
Оценка:
T>>не совсем понял, где там с классами была твоя проблема... рефакторинг в наше время довольно быстро делается...

L>Увы и ах. К примеру, я не знал, что в данном проекте надо использовать специальные питоновские функции вида __function__ (которые, по сути, переопределяют существующие функции). Более того, я вообще ни разу их не использовал и даже не предполагал, что это может потребоваться в первом же проекте.


ну это уже какая-то "специфическая специфика"... что, неужели как-то по-другому, но более понятно нельзя было тоже самое сделать? имхо это очень субтильный уровень, который надо , возможно, начинать учить, когда со всем остальным проблем нет...
Re[13]: Кому-нибудь требуется начинающий питонист в подмастер
От: jahr  
Дата: 20.05.19 10:11
Оценка: 9 (1) :)
Здравствуйте, Lazytech, Вы писали:

L>Увы и ах. К примеру, я не знал, что в данном проекте надо использовать специальные питоновские функции вида __function__ (которые, по сути, переопределяют существующие функции). Более того, я вообще ни разу их не использовал и даже не предполагал, что это может потребоваться в первом же проекте.


Я думаю, на этой стадии достаточно прочитать книжку типа этой — https://habr.com/ru/company/piter/blog/418761/ (там купон на скидку, поэтому ссылка на хабр, а не напрямую к издательству) и идти программировать.) В голове, конечно, останеся не вся книжка, но того, что останется, — достаточно.)
Re[14]: Кому-нибудь требуется начинающий питонист в подмастер
От: Lazytech Ниоткуда  
Дата: 20.05.19 10:38
Оценка:
Здравствуйте, takTak, Вы писали:

T>ну это уже какая-то "специфическая специфика"... что, неужели как-то по-другому, но более понятно нельзя было тоже самое сделать? имхо это очень субтильный уровень, который надо , возможно, начинать учить, когда со всем остальным проблем нет...


Вот именно что по-другому сделать было нельзя, потому что от меня требовалось сделать такой класс, с которым работал бы такой-то код условного заказчика. Вернее, поначалу можно было сделать как угодно, но по ходу работы наставник внес некоторые изменения в ТЗ. В итоге он сам сделал класс, над которым безуспешно бился я, после чего я понял, что совсем не умею проектировать классы...
Re[14]: Кому-нибудь требуется начинающий питонист в подмасте
От: Lazytech Ниоткуда  
Дата: 20.05.19 10:40
Оценка:
Здравствуйте, jahr, Вы писали:

J>Я думаю, на этой стадии достаточно прочитать книжку типа этой — https://habr.com/ru/company/piter/blog/418761/ (там купон на скидку, поэтому ссылка на хабр, а не напрямую к издательству) и идти программировать.) В голове, конечно, останеся не вся книжка, но того, что останется, — достаточно.)




P.S. Если бы всё было так просто...

P.P.S. Программировать я, в принципе, умею. Основная проблема в том, что я пока не умею программировать, придерживаясь общих правил проектирования питоновских программ. Просто потому, что эти правила толком не усвоил.
Отредактировано 20.05.2019 10:44 Lazytech . Предыдущая версия . Еще …
Отредактировано 20.05.2019 10:41 Lazytech . Предыдущая версия .
Re: Кому-нибудь требуется начинающий питонист в подмастерья?
От: L_G Россия  
Дата: 21.05.19 03:15
Оценка: 9 (1)
Lazytech,
ваша проблема "не умею делать с нуля сколько-нибудь серьезные питоновские программы"
в индустрии для новичка не слишком характерна, потому, что чаще всего
а) их садят на развитие/поддержку/багфиксинг проекта, в котором архитектура уже определена и большую часть работы можно делать, беря за основу имеющийся код, либо
б) они пишут, используя фреймворки, которые тоже архитектурные решения предоставляют в готовом виде.

Если пока не удается найти практику по варианту "а", то упражняться в варианте "б" можно начать самому.
Как я писал выше, django. Обучалок должно хватать. Да хоть https://www.youtube.com/watch?v=FZAO72uTj0M&list=PL0lO_mIqDDFXx5_8RmAqAmD_Cdb9DV-H5
Возможная альтернатива — flask (упоминается в 103 вакансиях на hh в Москве против 223 у django). https://python-scripts.com/flask-vs-django

Еще можно самостоятельно развиваться по варианту "а", разбираясь в чужом коде (подгонка под себя, улучшения, багфиксы).
Лучше всего найти исходники программы, которая действительно нужна или интересна самому.
Навскидку: https://github.com/mahmoud/awesome-python-applications

Еще, на фрилансе популярна работа (хоть и junk) по парсингу сайтов (автоматизация одноразового либо периодического выковыривания из страничек нужной инфы, часто с загрузкой в БД). Обычно тут полный простор для творчества (большинство заказчиков заинтересованы только в результате и вряд ли вообще заглянут в код). Для начала подумайте, не найдется ли полезная лично вам задача в этой области (тот же поиск работы. Или всякие avito, где важно оказаться первым). Можно поискать готовые решения и покопать их (по варианту "а").
Re[15]: Кому-нибудь требуется начинающий питонист в подмасте
От: jahr  
Дата: 21.05.19 06:29
Оценка: 6 (1)
Здравствуйте, Lazytech, Вы писали:

L>P.P.S. Программировать я, в принципе, умею. Основная проблема в том, что я пока не умею программировать, придерживаясь общих правил проектирования питоновских программ. Просто потому, что эти правила толком не усвоил.


Вам не нужно уметь проектировать, никто не даст новичку проектировать программы. Более того, новичек не сможет сам научиться "программировать, придерживаясь общих правил проектирования питоновских программ", самый правильный способ делать это — устроиться на работу джуном. Я, когда на свою первую работу устраивался, Visual Studio первый раз увидел в офисе на собеседовании, до этого только книжку читал (одну книжку, обратите внимание). Джуна берут, чтобы учить, чтобы говорить ему выучи вот это и это, а не он сам решал, что и когда ему учить.)

Посмотрите, здесь такие разные люди в один голос Вам говорят примерно одно и то же, это же неспроста?)
Re[16]: Кому-нибудь требуется начинающий питонист в подмасте
От: Lazytech Ниоткуда  
Дата: 21.05.19 06:31
Оценка:
Здравствуйте, jahr, Вы писали:

J>Вам не нужно уметь проектировать, никто не даст новичку проектировать программы. Более того, новичек не сможет сам научиться "программировать, придерживаясь общих правил проектирования питоновских программ", самый правильный способ делать это — устроиться на работу джуном. Я, когда на свою первую работу устраивался, Visual Studio первый раз увидел в офисе на собеседовании, до этого только книжку читал (одну книжку, обратите внимание). Джуна берут, чтобы учить, чтобы говорить ему выучи вот это и это, а не он сам решал, что и когда ему учить.)

J>Посмотрите, здесь такие разные люди в один голос Вам говорят примерно одно и то же, это же неспроста?)

Ну, мне дали ТЗ на создание простенького питоновского класса, а я с этой задачей не справился, несмотря на то, что по ходу работы посмотрел несколько очень толковых лекций, касающихся именно этой задачи.

Кроме того, наставник посоветовал мне освоить такой-то редактор и подключить его к GitHub. Увы, я так и не смог подключить этот редактор к GitHub, несмотря на то, что наставник также дал мне ссылку на статью, где подробно разъяснялось, как это сделать. Я вообще толком не понял, как использовать GitHub, хотя это, по идее, очень просто.
Отредактировано 21.05.2019 6:37 Lazytech . Предыдущая версия .
Re[17]: Кому-нибудь требуется начинающий питонист в подмасте
От: jahr  
Дата: 21.05.19 08:49
Оценка: 1 (1)
Здравствуйте, Lazytech, Вы писали:


L>Ну, мне дали ТЗ на создание простенького питоновского класса, а я с этой задачей не справился, несмотря на то, что по ходу работы посмотрел несколько очень толковых лекций, касающихся именно этой задачи.


Это нормально, делаете как получится, вас поправляют, вносите изменения, потом снова что-то делаете. Если случился затык такой, что совсем не получается вперед продвинуться — сообщаете о нем старшему товарищу, он подскажет, что делать.) Не бояться задавать вопросы здесь важнее, чем что-то знать, это нормальный процесс обучения.

L>Кроме того, наставник посоветовал мне освоить такой-то редактор и подключить его к GitHub. Увы, я так и не смог подключить этот редактор к GitHub, несмотря на то, что наставник также дал мне ссылку на статью, где подробно разъяснялось, как это сделать. Я вообще толком не понял, как использовать GitHub, хотя это, по идее, очень просто.


Это тоже не фокус.) У меня такое регулярно случается — у всех просто делаешь по инструкции, и оно работает, начинаешь это делать сам — и никак.) Надо разбираться, бывает.) Тут тоже лучше к кому-то опытному обратиться за подсказкой.)
Re: Кому-нибудь требуется начинающий питонист в подмастерья?
От: sharpcoder Россия  
Дата: 21.05.19 09:00
Оценка: 30 (3) +2
Здравствуйте, Lazytech, Вы писали:

L>С прошлого года постепенно осваиваю Python 3. Хотелось бы поучаствовать в качестве волонтера (то есть бесплатно) в небольших проектах малой или средней сложности, не всё же тренировочные задачки решать. Похвастаться знанием других актуальных языков программирования, к сожалению, пока не могу, да и опыта практической работы в каких-либо предметных областях у меня пока нет.


Привет!

Я тебе честно скажу свое мнение.
Я посмотрел задачки которые ты решаешь, видно что ты дружишь с простыми алгоритмами, это плюс. А минус в том, что питом сам по себе не сильно востребован, а востребованы в некоторых нишах, в которых нужно знание предметной области. Например машинное обучение делается на питоне, но у тебя в этой области шансов нет — нужна сильная математика, которой у тебя нет и скорее всего никогда в жизни уже не будет.

Ты изучил основы программирования, теперь самое время сделать простую вещь:
1. Потратить пару месяцев для самостоятельного изучения востребованного языка, в котором не нужен сильный технический бэкграунд.
— я тебе рекомендую C# или Java. Поверь, в них нет ничего сложного. Лучше Java (не буду углубляться в детали, но можешь мне поверить).

2. Через 2-3 месяца найти работу джуниором в офисе. Удаленку не рекомендую — очень медленное развитие.

3. Пока работаешь джуниором параллельно изучать библиотеки, в первую очередь по работе с вебом, базам данных.
Также обязательно осваиваешь SQL. И алгоритмы и структуры данных. Потом еще паттерны.
И вот через 2 года ты мид, а еще через 3 года — сеньер. И можешь работать в офисе или удаленно с примерно одинаковой зарплатой.


Твоих основ достаточно чтобы проделать этот путь, приведенные примеры твоего кода это доказывают. У тебя 100% это все получится. Но слезь плз с питона, не комплексуй, ты все осилишь.

Я тебе даже завидую. Я помню, как я связал свою жизнь с кодингом, и как после этого круто взлетела моя жизнь! А ты сейчас можешь пережить этот опыт взлета, это круто Успехов.
Re[18]: Кому-нибудь требуется начинающий питонист в подмасте
От: Lazytech Ниоткуда  
Дата: 21.05.19 09:29
Оценка:
Здравствуйте, jahr, Вы писали:

J>Это нормально, делаете как получится, вас поправляют, вносите изменения, потом снова что-то делаете. Если случился затык такой, что совсем не получается вперед продвинуться — сообщаете о нем старшему товарищу, он подскажет, что делать.) Не бояться задавать вопросы здесь важнее, чем что-то знать, это нормальный процесс обучения.


Вопросы-то я задавал, но в итоге всё равно получилось не то, что надо.

J>Это тоже не фокус.) У меня такое регулярно случается — у всех просто делаешь по инструкции, и оно работает, начинаешь это делать сам — и никак.) Надо разбираться, бывает.) Тут тоже лучше к кому-то опытному обратиться за подсказкой.)


Понятно. Но это можно отложить на потом, а сначала надо разобраться собственно с Питоном.
Re[2]: Кому-нибудь требуется начинающий питонист в подмастерья?
От: Lazytech Ниоткуда  
Дата: 21.05.19 09:32
Оценка:
Здравствуйте, sharpcoder, Вы писали:

S>Ты изучил основы программирования, теперь самое время сделать простую вещь:

S>1. Потратить пару месяцев для самостоятельного изучения востребованного языка, в котором не нужен сильный технический бэкграунд.
S> — я тебе рекомендую C# или Java. Поверь, в них нет ничего сложного. Лучше Java (не буду углубляться в детали, но можешь мне поверить).

Спасибо за обстоятельный ответ!
Re: Кому-нибудь требуется начинающий питонист в подмастерья?
От: Slawa Ms Россия http://www.elhoCalc.com
Дата: 21.05.19 11:03
Оценка:
Здравствуйте, Lazytech, Вы писали:

L>С прошлого года постепенно осваиваю Python 3. Хотелось бы поучаствовать в качестве волонтера (то есть бесплатно) в небольших проектах малой или средней сложности, не всё же тренировочные задачки решать. Похвастаться знанием других актуальных языков программирования, к сожалению, пока не могу, да и опыта практической работы в каких-либо предметных областях у меня пока нет.


Присоединяюсь, тоже начал изучать Питон. Пока решаю задачи на https://www.codewars.com. Хотелось бы научиться совместной работе под руководством опытного товарища.

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


Дай, пожалуйста, ссылку на этот сайт.
И, в догонку, вопрос, какую IDE используешь для отладки программ на Питоне?
"Can You Remember, Remember My Name." (c) DP
Re[2]: Кому-нибудь требуется начинающий питонист в подмастер
От: Lazytech Ниоткуда  
Дата: 21.05.19 12:17
Оценка:
Здравствуйте, Slawa Ms, Вы писали:

SM>Дай, пожалуйста, ссылку на этот сайт.


Вот он:
https://leetcode.com/

А до этого решал задачи на этих сайтах:
https://www.codingame.com/
https://www.geeksforgeeks.org/

В принципе, выбор сайта не столь важен. LeetCode нравится мне тем, что, решив задачу, можно сразу посмотреть графики распределения разных решений этой задачи по скорости выполнения кода и по занимаемой памяти. В результате такой вот своеобразной конкуренции появляется интерес оптимизировать свое решение по скорости выполнения кода или даже сделать несколько разных решений и посмотреть, какое из них окажется быстрее.

  Очередные образцы кода...
"""
Runtime: 108 ms, faster than 91.30% of Python3 online submissions for Palindrome Number.
Memory Usage: 13.4 MB, less than 5.03% of Python3 online submissions for Palindrome Number.
"""

class Solution:
    def isPalindrome(self, x: int) -> bool:
        # Hybrid solution
        if x < 0:
            return False
        elif x < 10:
            return True
        elif x % 10 == 0:
            return False

        if x < 1000000000000:
            digits = []

            while x > 0:
                x, rem = divmod(x, 10)
                digits.append(rem)

            n = len(digits)

            for i in range(n // 2):
                if digits[i] != digits[n - 1 - i]:
                    return False
            else:
                return True        
        else:
            from math import log10

            digitCount = int(log10(x)) + 1
            pivotPos = digitCount // 2
            digits = [0 for i in range(pivotPos)]

            for i in range(pivotPos):
                x, rem = divmod(x, 10)
                digits[i] = rem

            if digitCount % 2 == 1:
                # Dropping the middle digit
                x, rem = divmod(x, 10)

            for j in range(pivotPos):
                x, rem = divmod(x, 10)
                if rem != digits[-1-j]:
                    return False
            else:
                return True


"""
Runtime: 72 ms, faster than 98.09% of Python3 online submissions for Wildcard Matching.
Memory Usage: 13.3 MB, less than 66.92% of Python3 online submissions for Wildcard Matching.
"""


class Solution:
    def isMatch(self, s: str, p: str) -> bool:
        # I intentionally did not use the re library

        matchFound = False


        def subMatch(s, p):
            sLen = len(s)
            pLen = len(p)

            if pLen == sLen:
                for i in range(pLen):
                    if p[i] != '?' and p[i] != s[i]:
                        return False
                else:
                    return True
            else:
                return False


        def tryout(s, fragments):
            nonlocal matchFound

            if s and not fragments:
                matchFound = True
                return
            
            if not s or not fragments:        
                return

            sLen = len(s)

            totalFragLen = sum([len(f) for f in fragments])
            if totalFragLen > sLen:
                return

            leftFrag = fragments[0]
            leftFragLen = len(leftFrag)        
            otherFragLen = totalFragLen - leftFragLen

            for i in range(sLen - otherFragLen):
                if subMatch(s[i:i+leftFragLen], leftFrag):
                    if otherFragLen > 0:
                        tryout(s[i+leftFragLen:], fragments[1:])
                        return
                    else:
                        matchFound = True
                        return


        pLen = len(p)
        sLen = len(s)

        starCount = p.count('*')

        if pLen > 0 and pLen == starCount:
            return True

        if starCount == 0 and not '?' in p:
            return p == s

        if pLen == sLen == 0:
            return True
        elif pLen == 0 or sLen == 0:
            return False

        if starCount == 0:
            return subMatch(s, p)

        if pLen - starCount > sLen:
            return False

        # At this stage, starCount > 0

        starRightEdge = (p[-1] == '*')
        starLeftEdge = (p[0] == '*')

        fragments = [i for i in p.split('*') if i]

        # Trying to match the right side
        if not starRightEdge:
            fragRight = len(fragments[-1])
            if subMatch(s[-fragRight:], fragments[-1]):
                s = s[:-fragRight]     
                fragments = fragments[:-1]
            else:
                return False

        # Trying to match the left side
        if not starLeftEdge:
            fragLeft = len(fragments[0])
            if subMatch(s[:fragLeft], fragments[0]):
                s = s[fragLeft:]     
                fragments = fragments[1:]
            else:
                return False

        if not s and not fragments:
            return True
                
        tryout(s, fragments)

        return matchFound

Обратите внимание на заключенный в три двойные кавычки текст в самом начале кода. Это краткая информация о том, какое место занимает данное решение среди всех решений этой задачи.

SM>И, в догонку, вопрос, какую IDE используешь для отладки программ на Питоне?


Поскольку задачи были относительно небольшие, обходился IDLE (несмотря на скромные возможности, на мой взгляд, очень удобная программа для начинающих питонистов). Позже мне порекомендовали Atom — редактор, изначально разработанный для GitHub.
Отредактировано 21.05.2019 12:34 Lazytech . Предыдущая версия . Еще …
Отредактировано 21.05.2019 12:33 Lazytech . Предыдущая версия .
Отредактировано 21.05.2019 12:27 Lazytech . Предыдущая версия .
Re[3]: Кому-нибудь требуется начинающий питонист в подмастер
От: Slawa Ms Россия http://www.elhoCalc.com
Дата: 21.05.19 12:40
Оценка:
Здравствуйте, Lazytech, Вы писали:

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


SM>>Дай, пожалуйста, ссылку на этот сайт.


L>Вот он:

L>https://leetcode.com/

L>А до этого решал задачи на этих сайтах:

L>https://www.codingame.com/
L>https://www.geeksforgeeks.org/

Спасибо, пошел регистрироваться...
"Can You Remember, Remember My Name." (c) DP
Re[4]: Кому-нибудь требуется начинающий питонист в подмастер
От: Lazytech Ниоткуда  
Дата: 21.05.19 12:41
Оценка:
Здравствуйте, Slawa Ms, Вы писали:

SM>Спасибо, пошел регистрироваться...


Если что, я никого не агитирую зарегистрироваться именно на этих сайтах. Задачи-то везде примерно одинаковые.
Re: Кому-нибудь требуется начинающий питонист в подмастерья?
От: wamaco  
Дата: 21.05.19 20:06
Оценка: 9 (1)
Здравствуйте, Lazytech, Вы писали:

L>С прошлого года постепенно осваиваю Python 3. Хотелось бы поучаствовать в качестве волонтера (то есть бесплатно) в небольших проектах малой или средней сложности, не всё же тренировочные задачки решать. Похвастаться знанием других актуальных языков программирования, к сожалению, пока не могу, да и опыта практической работы в каких-либо предметных областях у меня пока нет.


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


L>Буду рад любым советам. Если задал неуместный вопрос, прошу извинить.


Ошибка уже в самом начале. Брось Питон!!! Питон не правильно развивает.
Уже есть статистика по горе программистам-питонистам кривых ручек на всю жизнь.
Не буду вдоваться в подробности. Изучай C или Java, съэкономишь и время и силы.
Re[5]: Кому-нибудь требуется начинающий питонист в подмастер
От: Michael  
Дата: 21.05.19 20:39
Оценка: 9 (1)
Здравствуйте, Lazytech, Вы писали:

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


SM>>Спасибо, пошел регистрироваться...


L>Если что, я никого не агитирую зарегистрироваться именно на этих сайтах. Задачи-то везде примерно одинаковые.



я сам питонист и бекендщик и не навижу javascript и фронт-енд
но скажу так:

1) питон всегда требуется в комбинации с чем-то и этих комбинаций много, кому то нужно python+flask+mysql, python+flask+mongodb, python+django+aws и т.п.
то есть вам нужно будет знать как минимум ещё sql и скорей всего ещё nosql.

2) поэтому пройти собеседование на питон вам будет практически не реально. нигде не нужен чистый питон.
вы можете много знать про питон но вас дополнительно спросят отличие Left join от inner join в sql. Или спросят как лучше запускать серверное приложение на питоне.

допустим у меня есть простые задачи для вас на связке python+flask+mongodb, но в будущем будет облом когда вы пойдёте на собеседование где нужен будет sql или django.


3) в этом плане изучить фронтенд с javascript и трудоустроиться значительно проще. берёте изучаете один Фреймворк типа angular, react или vue.js(+1) и дела нет какая там база данных или сервер.
вы можете только дёрнуть API которые вам дадут серверные разработчики (которые на питон или php).
уровень алгоритмов которые нужны на фронтенде на порядок проще. хитросплетения многопоточного программирования? их просто нет в javascript (он однопоточен).
По мне "подъеба.ся" на собеседовании по этим фрейворкам сложнее, отчасти потому что они сами
по себе молодые эти фреймворки.

Более того — у фронтендщиков работы больше. У меня в одном проекте интерфейс приложения меняется каждые две недели, а вот бекенд очень редко, и соотношение разработчиков с перевесом на фронтенд.
Сюда же добавлю про гибридные приложения — типа когда интерфейс пишется на js/html5 и потом пакуется в "обычное" приложение для айфона.
Вообщем Chrome и простой текстовый редактор типа Atom и пишите крестики-нолики на vue.js. И уже можно пойти на собеседование (стучитесь).
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.