Фулстек - история Python, NodeJs. И по личному опыту и распределению ресурсов - требует активного поддержания интереса в обе стороны, что после года или двух в итоге перевесит в одну сторону. Лидом - это больше про софт скилы, отношение к проекту, качеству продукта, ответственности перед коллегами, умению быть ментором и менеджером одновременно и при этом работать ради своей команды на пределе технических возможностей, чтобы решать самые тяжёлые задачи хорошо и подавать своим выбором и опытом пример младшим коллегам. Я с 2008 года занимаюсь фронтом, последние 4 года пишу на питоне для себя бекенд - без этого я бы ничего не создал из сообственных проектов. Но, это скорее веб приложения простенькие, а не сервисы и социальные сети с нагрузкой в 10000 rps. Возможно изначально мне надо было идти в сторону бекенда, но проще было развиваться медленно во фронте. У меня нет технического образования. В и 30 лет я вместо backend учу матан. Хотя бы потому что пишу шейдеры и увлекаюсь 3д графикой. Тупо писать свой движок когда есть Unity. Но, бекенд мне явно ближе чем пользовательские интерфейсы.
Хороший ответ, я аналогично думаю что без реального коммерческого опыта в пару лет над растущем под нагрузкой и требованиями сервисом - не имеет ничего общего с опытом в разработке интерфейсов.
Возми React - попробуй написать там счетчик кликов, потом напиши дропдаун, потом напиши меню, потом напиши модальное окно. Когда надоест, напиши TODO. Но, не забывай что JS язык программирования. Так что учиться программировать и учить JS - не одно и тоже. Если хочешь научиться именно программировать, лучше тогда начать с изучения Парадигм программирования, паттернов проектирования, структур данных, алгоритмов.
Выборки можно будет делать с помощью jquery + regexp. Если действительно с помощью визуального редактора дописать логику. Допустим вводите текст, выделили слово. Открылось меню, пометили что это глагол. Он взял и создал модельку слова, создал отношение модельки к конкретному свойству (глагол, прилагательное, наречие). Записал это в атрибуты, потом перед запросом на сервере вы собираете массив объектов (слов из текста) и шлете его. Таким образом будут обновляться слова в таблицах нужные вам. Ну тут надо понимать что в конечном итоге вам нужно. Если формировать самому данные таким образом - задача уже проще.
ayapergenov: Ангуляр ( Это Two Way Databinding) - У вас в модельке будет свойство, если сделаете model.prop.update(val) - оно перерисуется. Чтобы вставить тег, нужно будет сделать свой шаблон. А проще всего использовать data атрибуты у html. Для хранения тегов можно использовать span tag-data="verbal" tag-value="прыгать" .class = "tag_verbal__red". Впринципе подойдет, но у него много лишнего. Можно с такой-же целью использовать Knockout. Но опять же это просто MVC - где данные - модели, есть контроллер и вьюшка с шаблоном для представления.
По мне проще что-то изначально сделать с данными, допустим завести таблицы глаголы, существительные, суффиксы. Как-то на сервере организовать логику, чтобы просто SQL запрос мог вам выдать через поиск, что это предположим глагол. А на клиент вы вернете все данные, которые можете спокойно преобразовать в нужный шаблон. Обратная схема - на клиенте выставляете дата атрибуты, допустим чуть-чуть визуальный редактор переписать, чтобы он подставлял - это слово глагол, это слово существительное, это вообще суффикс. Таким образом когда вы будете сохранять текст на клиенте, он преобразуется через фреймворк в нужные модели. И будет проще работать с массивом объектов, в которых уже есть указание к какой части речи принадлежит объект и меньше уходить будете в дебри.
Я бы не сказал, что знание языка программирования - довольствие школьника. Во первых там - синтаксис, семантика. Синтаксис возможно просто много раз напомнит что его обрабатывает компилятор. А вот оценить прелесть семантику языка, без математики не получится. Поэтому плохо понимая синтаксис и его обработку, строение семантики языка - нельзя говорить о знании языка. Ну говнокод строчить, а толку то? Решать реальные задачи то надо, а зная язык, программировать никто не научит. И при этом, матан не учит программировать, он учит формам, отношениям, выводам, закономерности, абстракциям, методам вычислений. Что только поможет программировать какие-то конкретные модели, но не создавать.
По поводу если знаешь основы можно освоить любой язык. Окей, осваивайте Erlang, Haskell. Посмотрим основы чего вы возмете за основы :) Кроме мат. аппарата.
nicenice: Так что задумайтесь, пока вы еще можете слезть с крючка. Что вы действительно хотите? Возможно программирование тут только прикладная часть. А из того что вы пишите, я вижу что есть желание учиться, познавать. Но... советую не уходить в узкий коридор, а подольше остаться в перекрестке коридоров, пока не затянет. Там уже все само собой время решит :)
nicenice: Как еще более печально вспоминаются кадры из фильма про Стива Джобса, что он практический не спал, не обращал внимание на друзей, жену, ребенка - он бредил компанией, новыми возможностями, тем что каждый раз преодолевает нормальность бытия и выбивается за все возможные рамки. Для управленца это конечно круто, для семьянина - это очень грустно, для программиста - не выполнимо. Для обычного человека - фантастика или единственный в жизни вид исключения, который можно оправдать тем, что человек шизофренический страдал манией творить. Но, в этом случае, простые идеи, которые можно реализовать, ну к примеру написать свой DOOM 5. Через пару месяцев, будут слезы идти, читая на ютубе комменты к обзору игры, что она **мно, уже такое есть, на пару дней... И так далее, люди избалованы и привыкли к техническим инновациям. Это лишь момент, который уже случился, время которое нашло своих героев и прошло, оставив огромную эволюцию и историю. Помня обо всем этом и понимая свое место относительно уже не молодой IT сферы, я понимаю, что мне сложно ответить на вопрос: "А какой корабль я бы запустил в космос и зачем?". Наверное я считаю, что если хочется просто деньги зарабатывать программированием, то амбиций и самолетов не надо.
А если к примеру изобретать машину времени, телепорт, искусственный интеллект, межгалактический двигатель,. варп портал, единое коллективное сознание посредством peer to peer или электронное правительство - вне услуг, а именно управление. Если шанс больше 5%, может стоит рискнуть, но если шанс 0.0000001%. Лучше наслаждаться жизнью и ценить то что имеете :)
nicenice: Увековечить себя, свое детище, которым будут пользоваться люди. При этом как вы правильно заметили мечешься, время, идеи, проходят мимо. Ну вот взять пример: Стив Джобс, он интересовался почти каждой новой идеей, которую видел как применять. Не могу процитировать, но, он поддерживал, общался встречался с основоположником ООП, он заметил Pixar и так-же видел будущее в этой компании. Он понимал что будет нравится и необходимо людям, что признают, поэтому самым большим достижением стал Apple.
А если взять обратную сторону медали, ну схожу я отучусь, буду иметь богатое представление как моделировать и создавать математические модели, как пользоваться статистикой, вычислять для других не вычисляемое. Наберу и опыт программирования, наконец-то дойду до графики, machine learning, big data, всю жизнь поработаю на дядю, у которого есть идея. И медленно буду подходить к своей старости. Да конечно можно назвать человека специалистом, который посвятил любимому делу всю жизнь. Но будут ли корабли запущены в космос? Оправдает ли такое огромное вложение своей жизни собственные амбиции. Мне кажется это просто романтика, которая так манит, когда ты стоишь перед чертой старта.
Все это круто и заманчиво, но к примеру у меня есть проект, он достаточно простой, сложного там - это таймлайн который позволяет эмулировать последовательность действий в игре и отражаться комбинации, редактировать их. Я напридумал как вокруг него все связать, создал чуть ли ни мини социальную сеть. Прекрасно понимаю, как реализовать (примерно). А это уже тот уровень с которым я могу пойти на собеседование и пройти его. Но... Я посчитал, сколько свободного времени я готов уделять проекту и... если взять 3 часа в неделю ( А если это время дробить, то как практика показывает, до конца отдельную задачу не доведешь). То на первую версию этого "проекта", учитывая что всегда трачу 3 часа в неделю. 1.5 года. Время в годах взял тоже из личного наблюдения, так как бывало и год работал на проекте который с нуля пишется 6 человеками и понимал что до результата и универсальности можно еще 5 лет идти. Причем тут нету вопросов, а как что сделать, с чего начать, что выбрать, как научиться. Предполагается, что есть ошибки, есть сложные архитектурные задачи, рефакторинг и все программисты все умеют, но все равно дедлайн так далеко. К чему я ? Ну вот я грустно понимаю, что проект или идея, мечта должна быть насколько выполнимой за конечное время и ее выполнение должно сопровождаться или приносить почти все что ты ждешь от жизни. Комбинация этих вещей, дело сложнее математики, программирования, это некая доля самоуправления и менеджмента, умение контактировать, находить единомышлеников, вести за собой. Тогда может что-то в виде корабля в космос и запуститься...
Мне интересен сейчас такой стек, который я очень хочу знать (C++, Haskell, Erlang, GO, Lisp, Lua, Java, Python). С питоном и джавой еще как-то дружу. Но остальные языки, это для расширения сознания :) увидев один раз хороший подход в одном языке, это моментально отражается на вашем стиле, когда пишете на комфортном языке. Сейчас происходит просто БУМ Функционально-реактивного программирования на Javascript, а в основе лежит математический базис. И получается что вывод какой, кто-то пишет на jQuery, поумнее используют фреймворки напичканные ООП, Высоко абстрактным сахарком с jQuery, сеньоры помечают галочками новые библиотеки типо Rambda, Koa, React. А мастер классы выдают люди у которых более общие знания в математике, перенявшие опыт и слезы с других языков и двигают сообщество вперед.
nicenice: Рад что вы нашли что-то полезное для себя из моего потока мыслей.
Советую не зацикливаться на C++. Конечно для алгоритмов, разработки операционных систем, высокопроизводительного программного обеспечения - это отличный выбор. Но, для экономия вашего личного времени (C++ перегружен операторами). Вам попутно нужен язык более высокой абстракции и более стандартизированный. (C#, Java). Эти языки можно использовать как с парадигмой ООП так и ФП (Scala), только реализовать за меньшее время нужную вам программу.
Если будете решать мат задачи, алгоритмы, big data, писать свою СУБД, нагруженный сложными операциями OPENGL, DirectX, классические структуры данных - Это только C++ и MathLab.
Но не всю же программу писать на плюсах, можно выделить производительную часть, написать к ней биндинг к Python например и спокойно использовать. Java например освобождает от глубокого проектирования и долгого выбора структур данных, библиотек - все есть, не надо велосипедов. А Scala в добавок к ней еще придает всему этому Event-driven, Service Oriented, Functional Reactive Way.
Получить практику и доказательство вашей хорошей мат. базы и понимания Функционального программирования лучше всего на Haskell, Erlang, LISP. (Очень будет полезно если смотреть в сторону Machine Learning, дискретной математики).
P.S: Сам я пишу на Javascript (ООП, ФП), Python, Java. C++ только для обучения и понимания структур данных, алгоритмов. На сегодня задумываюсь идти получать второе высшее по Вычислительной математике, наверное в МГУ. Так как понимаю, что без нее мой уровень мышления слишком убыточен, чтобы писать большие, сложные программы. А интересует 3д графика, Machine Learning, AI, FRP, Big Data, Системное программирование. Без ВМК ну некуда :) А когда вижу на github что эти подходы умные люди на JS пишут и получают за месяц пару тысяч звезд на гитхабе, вообще стыдно становиться.
А так, чтобы потом не обидно было на потраченное время зря, делайте все это ради того чтобы реально помогать людям :)
На месте автора, лучше бы сходил для начала в гов** конторы по разработке рекламных проектов. Чем идти сразу после Bitrix в ад. Где уровень вхождения в сто кратно выше и еще коллектив может ударить по самооценке, что очень быстро захочется уехать домой и найти жилетку для слез :)
Python на уровне codeacademy - можно сказать что вы не знаете Python. Попробуйте реализовать все классические алгоритмы на нем. И не просто, а чтобы красиво, в нем много красивого, много вариантов того что использовать и как. Сделайте сайт по продаже автомобилей на Django, Flask, (Postresql, sqlAlchemy, flashRestApi, django-rest-framework, mqrabbit, celery). Добавьте крутой интерфейс (Backbone, Angular, React, Extjs). Поверстайте (Bootstrap, Foundation, адаптивная верстка, мобильная, семантичная). И вы говорите что некуда и типо ничем заниматься. Мне кажется вы задали вопрос в поисках поддержки. Заведите девушку, друга программиста, собаку :)
Хотите обратную связь с реальностью по математике? https://projecteuler.net/ - Скучно? Попробуйте TopCoder. Засветитесь, вам самому работу предложат...
Про GIT вы написали, что нету опыта. Вот смешно читать такое, открывается официальный мануал, ставиться gitlab или на крайний случай аккаунт на github. И руками тыкаете, тыкаете, пробуете, запоминаете, исправляете. Потом делайте свой GITLAB сервер, читаете маны по SSH, настраиваете. Дальше GIT FLOW, берете открытую либу, пишите на нее тесты BDD, TDD, становитесь приятным контрибутором, тесты начинают падать, исправляете ошибки, делаете Pull Request. Вот вам и опыт... Сложно? Я думаю нет.
Кстати думаю автору коммента будет лень написать такого котика. Мне вот интересно по какому критерию котик будет убирать рекламу??))))) Тут под капотом этой фичи как минимум BD надо, как максимум анализатор текста, парсер, сервак который еще плагину стукнет вот это удалить. Сложная штука :) а вообще напомнило собаку из ms word, которая ошибки исправляла (год наверное 2001, помню в школе писал диктант в ms word и она все мне показывала на ошибки).