Найти тему

Начало изучения GoLang

Тут не будет долгих вступлений и размышлений на темы "Зачем начинать заниматься программированием в 26 лет?" или "Как я дошел до жизни такой?", по крайней мере пока что. Хочется создать канал, который бы помог мне как-то систематизировать всё изученное, зафиксировать прогресс, намечать краткосрочные планы и вообще поддерживать мотивацию продолжать всем этим заниматься. Максимально сухо и безынтересно, не для большого круга читателей.
Если таковые вообще будут, немного о себе: инженер, 26 лет, о программировании "слышал" в универе, - никакого опыта нет, в связи с чем будет огромное количество ошибок во всем, в чем только можно. Решил "вкатиться" в бэкенд веб-разработку путем самостоятельного изучения GoLang и всего, что около: в перспективе основы SQL, HTML, JavaScript и всех других технологий со страшными для обывателя именами.

Начну с того, что был пройден вот этот курс на Степике - https://stepik.org/course/54403/info. Впечатления в целом положительные, хоть последние темы и зашли крайне туго.
После таких основ хотелось бы научиться нормально работать с IDE и Git.

Остановился на GoLand. Создал репозиторий на GitHub. Вроде получается "пуллить" и "пушить". Уже отлично.

ООП в Go странное - надо разбираться. Некоторую ясность внесла вот эта статья -
https://habr.com/ru/post/225907/. До многопоточности дойду позже.

Для закрепления начал курс на Курсере, вот этот - https://www.coursera.org/learn/golang-webservices-1.
При создании программы по уникализации решил немного пострадать и попытаться относиться серьезно.
Задача: есть файл .txt с набором строк. На каждой строке число от 0 до 9. Необходимо создать два файла:
1) Файл с отсортированными строками по возрастанию
2) Файл со строками без повторений (соответственно, тоже по возрастанию).

В процессе выяснил особенности при работе с чтением из файла. Сначала пытался делать через file.Read (как описано здесь - https://metanit.com/go/tutorial/8.3.php). Выдавало чушь с пустыми строками. Насколько понял, это подходит для чтения только одной строки. С учетом того, что у меня это было загнано в цикл до конца всего файла, ничего и не оплучалось. В итоге сделал как надо: через bufio.NewScanner.

Пытался разбить программу на файлы, в каждом из которых будет отдельная функция. Не получилось. Краткое гугление выдало, что есть особенности импорта пакетов. Ладно, разберусь позже на примерах от умных людей.

Надо будет, чтобы файлы читались и создавались напрямую из/в репозитории GitHub (видел, что так можно делать). Думаю, что крайне удобно для крупных проектов. Сейчас же прописывается конкретный путь на диске (как для чтения, так и для создания новых файлов).

Репозиторий - https://github.com/Krooper/coursera/tree/main/uniqueization (а вдруг кто глянет).

Выглядит всё так, что можно еще "причесать", возможно, сделать более лаконично и проще. Как это сделать - не знаю. Ну да оставлю на будущее.

В ближайшее время планирую изучить видео - https://youtu.be/1DQUl14ow5M, https://youtu.be/nX5hpyZvMyM (были еще другие). Возможно, получится с их помощью понять какие-то простые вещи из HTML и др. Ну, и, естественно, продолжение курса (а у него еще и вторая часть есть).

Если это кто-нибудь когда-нибудь прочтет: буду рад комментариям к программе, советам, что изучать дальше и просто вниманию (осуждение автора в любом формате тоже приветствуется).

Как говорил классик "А на сегодня всё. До новых встреч."(С)