isp
у меня нет аккаунта на фрилансере
Нет, он там есть, но не суть.
Это неважно, потому что все эти фрилансерские ресурсы - это всё фейки, которые заманивают дурачков, чтобы собирать с них деньги. Ты сидишь там, такой специалист, и думаешь “почему я никому не нужен? почему никто работы у меня не заказывает? я же могу сделать всё”, а там всё просто. Если ты заплатил хозяину сервиса, то он тебя будет иногда показывать заказчикам, а если не заплатил, то он будет делать вид, что тебя показывает. Ты просто заказчиком становишься и пытаешься себя найти и тут обнаруживаешь, что ты себя найти не можешь как исполнителя. А кажется, что тебя все видят, просто тебя типа не выбирают. А как заплатишь, так ты такой сразу популярный становишься. Но это недолго, потом тебе начинают навязывать, чтобы ты проценты сайту отдавал побольше с заказов, и так далее. То есть это не биржи, а псевдобиржи, которые только притворяются биржами.
isp
Есть пару мини пк с дебиан, скажем так для обучения.
Тебе надо будет поставить Linux второй системой рядом с Windows. Не на виртуалку, а второй системой. Там будет загрузчик GRUB потом, как космический корабль он такой по своему устройству, и в нём будет два пункта: Linux и Windows. То есть Linux должна одна на компе работать и вся память и диски должны быть только ей доступны. А потом уже в неё поставишь виртуалку, а в эту виртуалку поставишь Windows себе. И то, если это понадобится вообще. Я вот, например, занятия по ассемблеру провожу в Windows XP на виртуалке. Если она повисла или там синий экран выдаёт, компьютер перезагружать не надо, ты просто её выключаешь и загружаешь потом по новой с сохранённого снимка, где с ней всё в порядке.
Дальше тебе надо будет взять редактор с подсветкой синтаксиса. В Linux есть два редактора: Emacs и Vim. Это для профессионалов. Ну, плюсы и минусы у них есть у обоих. Хорошо бы их оба знать. Просто Emacs сильнее, чем Vim, но Vim везде установлен в виде своего предка vi. Если ты попал в какую-то *NIX-систему, то vi там уже установлен, а Emacs туда надо ставить и там его нет. Я пользуюсь Emacs'ом, поэтому я и сообщения на этом форуме смотрю в Emacs'е, и новые видео, появляющиеся на интересующих меня YouTube-каналах тоже вижу в Emacs'е, и новости в стране и в мире я тоже смотрю в Emacs'е, да и сериалы как-то качал в нём тоже, было дело. Ну, Vim это всё не вывезет. В Vim что-нибудь да не получится сделать. А в Emacs'е мало что не получается сделать.
Есть даже такая шутка: в Emacs'е всё есть, вот только одного не хватает - какого-нибудь простого текстового редактора.
Emacs я начал изучать вот по этому курсу (чисто для вхождения)
https://www.youtube.com/playlist?list=PLECBtie1W1tGlrbDDBvcxnttRR4IA5qZnНо также в нём много внутренней документации, она простая и её много. Потому что он весь внутри себя автоматизирован по максимуму. Поэтому документация в нём тоже автоматизирована удобно.
Ну, что говорить, один калькулятор в Emacs'е умеет интегралы вычислять, векторные скалярные произведения, матрицы перемножать, искать их определители и даже корни уравнений и систем уравнений находить. Это просто одна из частей Emacs'а.
А здесь можно посмотреть возможности Emacs'а (что в нём возможно делать и с какой быстротой)
https://www.youtube.com/playlist?list=PLVfFIUHWy-aNaF08m34sO81dsVr4L7uI-Тут можно посмотреть разные фичи.
Вот одна из фич - мультикурсор. Ты просто можешь выделить одну функцию по заголовку и потом установить курсоры (несколько курсоров сразу) на десяток функций и просто начать у всей этой группы функций редактировать аргументы. Ты редактируешь одну функцию, а у тебя редактируются сразу десять функций следом. То есть работает не как замена по шаблону, типа одно заменить на другое по всему файлу, а это работает как одновременное редактирование файла в нескольких местах, и у каждого курсора при этом свой личный буфер обмена, то есть ты можешь вырезать, копировать, вставлять, и оно будет всё правильно вырезаться и вставляться, именно не одно и то же, а разные буферы обмена будут использоваться на разных строках. На одной строке встанет int, а на другой строке встанет string, а на третьей - double.
Emacs'у больше сорока лет, поэтому в нём есть все языки, и эти средства тоже в нём отлажены годами.
Дальше тебе надо будет научиться использовать систему контроля версий. В Linux есть Git. На базе программы Git был построен сервис GitHub. Многие путают эти вещи между собой. Git - это программа. Вот её надо изучить. Если ты изменение сделал в программе, то это изменение фиксируешь. Если оно неправильное, то ты его убираешь на время. Если оно всё-таки правильное, то ты его спокойно возвращаешь обратно. То есть она даёт множество тонких изменений в программе проводить одним махом.
Дальше тебе надо будет изучить юнит-тестирование. Юнит-тесты - это такие программки маленькие, которые в твой код залазят в каждую функцию и проверяют, как эта функция работает. Когда пишешь программу, ты её покрываешь юнит-тестами и после каждого изменения программы ты их просто все запускаешь и каждый из них куда-нибудь там залазит в самые дебри и что-то там проверяет. Если всё окей, то он тебе скажет “всё окей”, а если там какой-то неверный результат начал выдаваться, то он тебе скажет “в функции такой-то на десятой глубине я сказал 10, а оно сказало 20, а должно было сказать 15!” и красным цветом тебе пометит всё это. И так у тебя там сто, двести, тысяча тестов просто запустится и там ни одна ошибка не проскочит в итоге. Называется пуленепробиваемый код.
Дальше ты поставишь среду ещё. Она неплохая, но лучше научиться по отдельности всем пользоваться. Для питона ты поставишь PyCharm. Это основная среда сейчас для питона.
Я вот, например, себе эти всякие среды ставлю, но я ими не пользуюсь. Я пишу на нескольких языках, поэтому на C, на C++, на Java, на Shell, на Python и других иногда я пишу в Emacs'е всё время. Но сборку только я провожу в этих средах, если нельзя без них собирать. Только для этого эти среды стоят, а так они нафиг не нужны. Я могу среду эту выключить, в Emacs'е всё отредактировать, в Git'е всё закоммитить, а потом просто один раз запустить эту среду и собрать программу в ней, да и то не всегда. Потому что никакой редактор в этих средах даже близко ничего не может из того, что мне Emacs уже даёт годами.
isp
А есть примеры проектов подобных?
Проекты вообще всякие можешь поискать на GitHub'е
https://github.com/topics/flaskНо вот то, что ты описал, оно на Flask'е делается легко.
Основной функционал интерфейса будет на JavaScript-скриптах.
isp
Есть качественная литература “без воды” по JS?
Да есть книжки и платные, и бесплатные. Я по бесплатной его изучал для ознакомления.
https://eloquentjavascript.net/Тут стандарт JavaScript
http://ecma-international.org/ecma-262/tags: linux