Офтоп
Sam Tokov

Программирование, самый полезный Github репозиторий

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

Приветствую, не ожидал, что прошлый пост зайдет настолько хорошо, надеюсь, кому то он действительно поможет в изучении питона. Этот пост совсем короткий, всего лишь рассказывает об одном репозитории на github, но как мне кажется, он куда важнее и полезней предыдущего.

Мой канал в телеге - https://t.me/tobeprog (там о самих методах обучения и обзоры на уч.материалы).

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

https://github.com/danistefanovic/build-your-own-x Легендарный репозиторий, несмотря на огромную популярность(100к звезд на github), все еще многим неизвестный, и что особенно печально - многим начинающим программистам.

Если кратко - подборка туториалов, основная идея которых - создание с нуля какой то сложной технологии: языка программирования, операционки, воксельного движка, физического движка и прочего. Привязки к определенному языку тоже нет: питон, плюсы, js, c# и т.д.

https://ruslanspivak.com/lsbasi-part1/ - пример, одного такого материала. Цикл из 19 статей, в котором автор(Ruslan Spivak), пишет интерпретатор языка Pascal на Python(кстати отличный пример ооп на python). Вообще, качество работы поражает - по сути это полноценная книга с подробнейшим разбором, графическими пояснениями, примерами из жизни, даже юмором, а в конце каждой главы - вопросы для проверки понимания темы и домашнее задание.

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

Возможные проблемы, при прохождении подобных материалов:

1. Ну разумеется - английский

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

К примеру, статья Питера Норвига, где он пишет интерпретатор языка Lisp на python:

Оригинал - http://norvig.com/lispy.html

2. Как минимум, нужно знать основы япа

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

Также, подразумевается хотя бы начальные знания в computer science. Гарвардский CS50 вполне может закрыть основные моменты. оригинал перевод

3. Сложность может быть не в коде

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

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

Ко всему прочему CS50 и "Код" Петцольда - идеальное сочетание. CS50 мало про архитектуру, а Код отлично ложится на ввод в computer science. Поэтому рекомендую ознакомится с книгой как можно раньше.

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

{ "author_name": "Sam Tokov", "author_type": "self", "tags": [], "comments": 38, "likes": 101, "favorites": 374, "is_advertisement": false, "subsite_label": "flood", "id": 662922, "is_wide": false, "is_ugc": true, "date": "Fri, 05 Mar 2021 21:09:54 +0300", "is_special": false }
0
38 комментариев
Популярные
По порядку
Написать комментарий...
23

Отличные туториалы. Мне нравится

Ответить

Прозрачный завод

–1

ткнул в случайную статью, а там (не, спасибо, давайте вы научите сначала выбирать инструменты под задачи):

Ответить
7

Ооо, это я удачно зашел.
Чем JS плох для ботов?

Ответить

Прозрачный завод

Mike
–4

однопоточность, ресурсоёмкость и незрелость стека.

Ответить
7

Однопоточность — это то, на чём взлетела Нода. Никаких заморочек: один запрос — один процесс. Ресурсоёмкость — это про что? Так-то JIT в JS куда лучше чем в Питоне. Про незрелость тоже вопрос. А где зрелость? Или вы ничего младше 30 лет не рассматриваете?

Ответить

Прозрачный завод

Gre
–5

Никаких заморочек — типичный подход современного программиста, к сожалению.
Сравнивать js и python в производительности довольно странно, все всосут по ресурсам условному go или даже php7. Я про более узкие ниши вроде lua и openresty не говорю даже.
Пакетные менеджеры не настоялись ещё - вижу зоопарк про который общались мистеры выше. Генераторы там когда появились? В ES 2015? А template string? А map/reduce? Про типизацию уже даже шутить не хочется. Это про незрелость, да.

Ответить
1

То есть, типизация строгая это показатель зрелости языка?) Это самое забавное, что я слышал за сегодня))

Есть TypeScript, если на то пошло.

«Зоопарк» менеджеров пакетов это лишь показатель того, что есть конкуренция между компонентами экосистемы, это и есть показатель зрелости.

Ответить

Прозрачный завод

Mike
–1

задачами глубже отрисовки формы и передачи json ты не занимался, походу? но ничего, найдётся со временем

Ответить
0

Ну видимо ты на чем писал в 2007, на том и пишешь) 
Формы отрисовываю, да, в CDPR мы этим и занимаемся)

Ответить

Прозрачный

Mike
–2

Ну видимо ты на чем писал в 2007, на том и пишешь)

В принципе я на этом моменте должен был тебя нахуй послать, но я сегодня щедр и готов к откровениям. Жги!

Ответить
3

Не, ты относишься к тому мерзкому типу разрабов, которые хейтят других за использование других инструментов. 

Поэтому, катись-ка ты сам туда :)

Ответить

Комментарий удален

Прозрачный

Mike
0

ладно, тут была провокация, но я не хочу срача

Ответить

Прозрачный

Mike
0

Жги, Майк, интересно же!

Ответить

Комментарий удален

Прозрачный

Mike
–1

Да, спасибо.
Я было подумал что ты способен на дискуссию, но ты сэкономил мне время. Ещё раз спасибо за укрепление мнения о так называемых js-программистах.

Ответить
1

Очень хлипко байтишь)

Ответить

Прозрачный

Mike
0

Про генераторы которые появились только вчера не ответил, про итераторы тоже, но срешь как взрослый, я ж тебя послал, отстань. Я про тебя понял уже всё.
Не интересно больше, спасибо.

Ответить

Прозрачный

Mike
0

Про мою работу ты знаешь ничего.

А вот про свою раскажи подробнее, пожалуйста.
Чтобы я мог как бы оценить уровень своего падения пред тобой.

Ответить

Прозрачный

Mike
–3

в CDPR 

оло, Михаил (почему нужно своё имя под латиницу подгонять, это правило какое-то в восточной Европе?), я таки жду рассказа об успешном js-программисте в Польше. Про стек особенно интересно, а то мы тут в России может не тот фреймворк используем, стыдоба-то какая может стать.

Ответить

Прозрачный завод

Mike
0

это и есть показатель зрелости

oh my sweet summer child

стек ваш — говно, пишу на нём с 2007, если чо

Ответить
0

Сравнивать go или рhp7 производительности довольно странно, все всосут по ресурсам условному С++ или даже Java. 

Ну ты понял

Ответить

Прозрачный завод

Руккола
–1

поэтому давайте брать инструмент для фронтендеров и делать на нём сервисы!

Ответить
1

let me google for you: node.js

Ответить

Прозрачный

Руккола
0

а я про что, по-твоему?
не, я может пропустил и нода стала нормальным серверным решением и способна держать 7k/мин запросов без горизонтального масштабирования в кластере AWS за миллиард?

Ответить
0

При том грамотная реализация на JS не сильно отстаёт от C++. Чел сам не знает, что сравнивает.

Ответить
0

Многопоточность в ноду завезли 3 года назад.

Ответить

Прозрачный завод

tardeck
0

через event loop или нормально?

Ответить
0

Модуль worker_threads.

Ответить

Прозрачный завод

tardeck
0
Ответить
1

Может быть он про npm, сейчас yarn модный. Хотя практически все модники на вопрос об отличиях мямлят только про скорость. 

Ответить
0

Я тоже юзаю yarn, но сомневаюсь, что он именно за это зацепился. Все-таки это слишком незначительная деталь и никак не сказывается на разработке. 

Ответить
0

Ну в таком случае я даже не знаю. Сам запускал ботов на ноде - полет нормальный. Прогромируйте хорошо - будет работать хорошо. Это я @Allo, Zina, eto Drakon 

Ответить
1

Я запутался. 

Ответить
0

"Код" - замечательная книга, но все-таки довольно поверхностная. Для введения в курс дела подойдёт отлично, но не более того.

Ответить
0

А статья про попы в это время собирает сотни комментариев и тысячи лайков...

Ответить
0

Вот-вот, автор не туда копает вообще, если хочет быть успешным :D

Ответить
–2

Что там сложного

Ответить
0

Предложение закончишь-то?

Ответить

Комментарии

null