191 Кб, 1080x1242
Существуют ли хоть какие-то движения в эту сторону? Не один же я вижу, какую проблему представляет наличие в отрасли индусов, арабов и прочей срани. Как-то в один европейский (!) банк меня собеседовали два индуса. Неужели не могли найти кого-то в Европе, чтобы элементарно по часовому поясу было удобнее созваниваться? Не говоря уже о том, что очень некрасиво подвергать потенциального сотрудника звуковой пытке, заставляя его битый час слушать булькание вместо нормальной членораздельной английской речи: «Хелёу, сар-р-р, ю апляйд фар апликейсин дивеляпар р-р-ро-о-оль, р-р-райт? Плиз ду зи нидфуль, тарн он яр кямра».
Один очень показательный пример: контора, где я работал, приобрела какую-то индийскую галеру. Сразу же после этого её акции наебнулись процентов на семьдесят. Почему многим до сих пор не очевидно, что индусы тянут любую компанию на дно и превращают в говно все её продукты? Элементарно же можно сообразить, что если целая раса не может научиться пользоваться презервативами (!), то она тем более не способна на хоть какую-то интеллектуальную деятельность. Многие же видели хуёвый код, автор которого при включении git blame чуть реже чем всегда подсвечивался как Pajeet Kumar или похоже. Конечно, с поста CEO мирным путём не получится кого-то сковырнуть, только физическая ликвидация поможет. Но почему там, где решения ещё принимают белые, продолжают нанимать индусов и прочих копчёных? Как вести разъяснительную работу среди коллег? Понятно, что лекции по расологии они не воспримут, но мемы и разные видосы вроде прикреплённых должны же помочь им понять связь уровня интеллекта и расы? Просто в корпоративном Teams страшно отправлять такое, ещё нажалуются.
Был на проекте, где вся команда была белой, в основном из бывшей Югославии. Один из самых приятных периодов в карьере. Хочется, чтобы таких было больше. Хорошо же звучит: make IT white again?

280 Кб, 3840x2072
Это тред для начинающих. Слово «классы» у тебя ассоциируется только со школой, а в аттестате тройка по математике? Ты наш человек.

Предыдущий тред был тут: >>3561777 (OP)

Старые треды тут https://2ch.hk/pr/arch/ (М)
(искать по слову php), а также на архиваче и в гугле по словам по словам "клуб изучающих PHP".

С чего начать - основы PHP

Наши уроки по PHP собраны по адресу http://codedokode.github.io/phpbook
. Это учебник для изучающих с нуля. Там есть задачи, их нужно решать. Но если этот учебник тебе не нравится, можно читать любой другой. Или официальный справочник ( https://www.php.net/manual/ru/langref.php
). Или все сразу.

Если что-то непонятно, запости код и попроси подсказку или поищи задачу в архиве тредов.

Какой редактор использовать

Простые задачки можно решать в онлайн-песочницах вроде https://onlinephp.io/
, https://paiza.io/en/projects/new?language=php
, https://www.programiz.com/php/online-compiler/
, но для программ посложнее лучше установить редактор. Есть (дорогая) IDE PhpStorm, есть бесплатный Netbeans и VSCode, условно-бесплатный Sublime Text. Чтобы в последних получить автодополнение для PHP, нужно установить и настроить PHP language server.

Вот инструкции по установке PHP на компьютер: https://github.com/codedokode/pasta/blob/master/soft/php-install.md

Гайд по командной строке: https://github.com/codedokode/pasta/blob/master/soft/cli.md

Что изучать дальше

Зная лишь основы PHP, сайт ты не сделаешь и работу не найдешь. Обычно от начинающего требуют чуть-чуть больше:

PHP, ООП, основы HTTP, HTML/CSS (основы верстки), JS, SQL, PDO, MVC, git, composer, какой-нибудь фреймворк (Laravel или Symfony), основы автоматического тестирования, основы linux, английский.

Вот неофициальный роадмап (карта того, что можно изучать): https://miro.com/app/board/o9J_lbUUBBQ=/

По многим из этих тем у нас есть уроки или задачки:

- для понимания, что такое веб-сервер, прочти урок https://github.com/codedokode/pasta/blob/master/soft/web-server.md

- для понимая MVC, работы с БД и формами, реши задачу про студентов, в ней много полезных советов: https://github.com/codedokode/pasta/blob/master/student-list.md

- далее есть более сложная задача сделать файлообменник на микрофреймворке Slim: https://gist.github.com/codedokode/9424217

- задача, близкая по сложности к реальным задачам на Laravel/Symfony: https://gist.github.com/codedokode/8733007

- после нее можно изучать автоматизированное тестирование https://gist.github.com/codedokode/a455bde7d0748c0a351a

- если ты все решил, переходи к Symfony или Laravel
- почитать про паттерны можно тут https://designpatternsphp.readthedocs.io/ru/latest/
(если ты не изучил ни одного фреймворка, то это будет рановато). Если хочешь увидеть примеры использования паттернов в реальном коде - ковыряй исходники Симфони, например Symfony Forms. Ну и скажем честно, начинающему без опыта, который не видел сложный код, паттерны понять будет сложно.
- для улучшения английского можно читать news.ycombinator.com - там много статей на тему IT.

Также, у нас есть задачи которые позволят тебе изучить или подтянуть до нормального уровня знания JS/HTML/CSS/SQL. Решай их параллельно с задачами выше.

- задачи на HTML/CSS: https://github.com/codedokode/pasta/blob/master/html/html.md

- хороший учебник по JS: https://learn.javascript.ru/

- задачи на JS: https://gist.github.com/codedokode/ce30e7a036f18f416ae0

- задача на SPA (сложно): https://github.com/codedokode/pasta/blob/master/js/spa.md

- проверялка решений на JS: http://dkab.github.io/jasmine-tests/

- задачки на SQL: https://www.sql-ex.ru/
(нужна регистрация), https://sql-academy.org/ru/trainer
и немного наших задачек: https://github.com/codedokode/pasta/blob/master/db/databases.md

Что еще почитать

- Мануал по PHP — http://www.php.net/manual/ru/langref.php

http://www.php.net/manual/ru/langref.php
- Адель Ф. - Архитектура сложных веб-приложений
- https://phptherightway.com/
- Книга: Профессиональное программирование на PHP Джордж Шлосснейгл
- Книга: Мэтт Зандстра — PHP: Объекты, шаблоны, методики программирования
- Про Git: https://git-scm.com/book/ru/v2
- Задачи на алгоритмы: https://codeforces.com/problemset

Дополнительно

- скачать учебник: зайди на https://github.com/codedokode/phpbook, нажми зеленую кнопку Code -> Download ZIP, распакуй на рабочий стол и открой index.html
- что будут спрашивать на собеседовании, если 0 опыта - будут гонять по теории, по официальному мануалу PHP, давать дурацкие задачки на переворачивание строк, гонять по SQL (транзакции, внешние ключи, напиши запрос), по JS (как сделать анимацию при нажатии кнопки), ну погугли, не ленись
- сколько времени надо изучать все это? - все зависит от тебя, в районе 10-15 месяцев, но известны случаи когда люди вкатывались с нуля за 2 месяца и перекатывались с другого стека за пару недель.

751 Кб, 621x631
Собственно вот сам видос
https://www.youtube.com/watch?v=fF_-cxIGCXU

Короче вот прям реальный кабаныч, в айти не шарит, не знает клиент-сервер и все такое. Но с клодом, за 58 дней навайбкодил расширение для браузера и заработал 1.8 млн. Айтишников послал, смысл ему платить 450к (всей команде) когда с подпиской за $200 он сам все сделает?

Порылся в его аккаунте, есть видос где и маркетолога нейронкой заменил и после этого аудитория канала выросла на 40%. Маркетологу платил 90к. Это пиздец.

Будущее уже наступило и это пиздец как тревожит.
Читаю новости, смотрю видосы и ахереваю, на западе оч много людей кто-то уже 100% работает через клод. Почти ни кто уже код не пишет руками, кодинг решен, топовые модели почти не ошибаются, а если и ошибаются, то незначительно.
Просто в какой-то фрустарции. Относительно недавно вкатился в айти, сейчас мысли что и крупняк так же будет сокращать штат, а кода генериться будет еще больше, да айтишники нужны будут, но не так много.

1,3 Мб, 1280x719
Вместо шапки:
https://github.com/sosachbot/cppthreadhat
⚹ Для кусков кода: https://0bin.net/

Ответы на вопросы:
https://en.cppreference.com/w/
https://www.cplusplus.com/reference/

Для указателей: ⚹

Прошлый тред: https://2ch.org/pr/arch/2026-03-26/res/3539163.html

126 Кб, 533x651
Все ИИ-агенты для программирования с громким треском провалили новый бенчмарк чистоты и качества кода!

Alibaba протестировала ИИ-агентов для программирования на 100 реальных кодовых базах, каждая из которых охватывала 233 дня разработки. Результат - полный провал ИИ в программировании.

Выяснилось, что один раз сгенерировать код и пройти тесты — не так уж сложно. А вот поддерживать код в течение 8 месяцев и при этом не ломать всё подряд — именно здесь ИИ с огромным треском проваливает задачу хуже джуна.

SWE-CI — это первый бенчмарк, который измеряет долгосрочную поддержку кода, а не разовые исправления багов. В каждой задаче рассматривается 71 последовательный коммит, то есть реальная эволюция проекта во времени.

Для всех ИИ-сектантов, распространяющих крики «ИИ скоро заменит программистов», это очень плохой знак. Так что для всех, кто уже хоронил профессию программиста и рассказывал про «осталось пару лет», новости так себе. Похоже, между «умеет написать еле работающий прототип» и «умеет быть нормальным инженером и поддерживать кодовую базу проекта» по-прежнему огромная пропасть.

https://x.com/alex_prompter/status/2030331477918126286

2,4 Мб, 1024x1024
Тред для тех, кто пытается вкатиться в андройд разработку или что-то похожее. По возможности стараемся угощать ньюфагов чаем.

>Хочу вкатится в 20/30/50 лет, не поздно?



Нет, не поздно. Лично знаю несколько примеров из жизни когда вкатывались в 30+ лет.

>С чего начать?



Для начала изучи roadmap - https://roadmap.sh/android

Roadmap анона из предыдущего треда:

Основы программирования, логические операции -> Джава(базовый синтаксис и особенности языка) -> ООП -> особенности различных версий Джава -> алгоритмы и структуры данных -> многопоточность -> дженерики -> функции высшего порядка -> Котлин -> Android SDK(UI, версии и различия, особенности оси на уровне работы виртуальной машины) -> работа с БД, CRUD(можно и на этапе знакомства с алгоритмами) -> git -> networking/REST API/JSON/сериализация -> актуальные фреймворки зачем и почему, спойлер: экономия времени -> архитектура, зависимости, инверсия контроля -> ?..

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

В эту же последовательность нужно вставить clean code, SOLID, DRY/DIE, KISS, YAGNI и прочие модные аббревиатуры, которые весьма актуальны. Что-то упустил, но, думаю, этого достаточно.

Навигация, от книг до вопросов на интервью:
https://github.com/qqqlll/Java-Thread/wiki

Очень много уроков и не только по ведройду. Почекай и посмотри, вдруг зайдет:
https://coursehunters.net/mobile-development

https://developer.android.com - ресурс от гугла с полным описанием всего.

https://metanit.com/ - ресурс с кратким разбором языков ПО, для тех кому лень в книги.

https://stackoverflow.com/ - ответы на большинство вопросов касающихся кода.

Курсы от OTUS:

https://cloud.mail.ru/public/4nHb/449Ub4Pqj

https://drive.google.com/open?id=1cxWWBZzHNRAdd0wnjN6lfLDcYqMv7ohm

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

>Что по книгам?



Java:
Head First Java Kathy Sierra
Thinking Java 4th Bruce Eckel

Шилдта не рекомендую, говнокод.

Kotlin:
https://techrocks.ru/2020/01/20/12-books-for-kotlin-learners/ - краткое ревью 12 книг.

Flutter:
http://flutterapps.ru/flutter-books/

>Стоит ли сразу вкатиться в котлин минуя джаву?



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

>Прочел книгу по java/kotlin/flutter и посмотрел видосы, на деле ничего не понимаю. Куда идти дальше?



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

>Где взять примеры проектов?



Можешь банально поискать на ютюбе или в телеграмме. Для примера:

https://www.youtube.com/channel/UCPz3xmUpIbo8jooCtV_vMNw
https://www.youtube.com/c/devcolibri/videos

>Когда можно идти собес? И что для этого нужно?



1. Нужно хорошее знание Java/kotlin.
2. Понимание базовых принципов Android (жизненный цикл activity/fragment, что такое Context, intents, services, UI thread, support library и ее версии (уже androidx), shared preferences, SQLite, Handlers, Executors, Content-Providers, firebase.
3. Знание популярных библиотек типа Retrofit + Glide/Picasso/Koil + Coroutines + RxJava2 + Dagger2/Hilt/Koin(по обстоятельствам) + гугловские поделки jetpack, понимания СОЛИД и других паттернов проектирования.
4. Базовое понимание что вообще такое Gradle. Рекомендую хорошенько изучить XML/Compose.
5. И хотя бы несколько готовых приложений.

upd: Также стоит прочекать вакансии в вашем городе и собрать самый часто используемый стек технологий и отталкиваться от него.

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

Ресурсы по инглишу для нубов:

Грамматика:
https://ru.duolingo.com/
https://lingualeo.com/

Также советую полностью сменить язык интерфейса на всех устройствах.

Ютюб каналы с простым английским:
https://www.youtube.com/c/Anomaly/videos
https://www.youtube.com/c/EnglishClass101/videos
https://www.youtube.com/channel/UCMCjGkbqKVkjJN2sVWocz0w
https://www.youtube.com/c/SpeakEnglishWithTiffani/videos

Старая шапка. За 2019 год.

https://pastebin.com/sh7eC6R4

#1 c шапкой: https://2ch.hk/pr/res/1822731.html (М)
#2 с шапкой: https://2ch.hk/pr/res/1908185.html (М)
#3 с шапкой: https://2ch.hk/pr/res/1994880.html (М)
#4 с шапкой: https://2ch.hk/pr/res/2105885.html (М)
#5 с шапкой: https://2ch.hk/pr/res/2362898.html (М)
#6 с шапкой: https://2ch.hk/pr/res/2509590.html (М)
#7 с шапкой: https://2ch.hk/pr/res/2678699.html (М)
#8 с шапкой: https://2ch.hk/pr/res/2907862.html (М)
#9 с шапкой: https://2ch.hk/pr/res/3209134.html (М)

141 Кб, 920x920
Мне 18 лет. Я закончил расширенный курс от Яндекс Практикума (Frontend - разработчик). Курс длился примерно 2 года, закончил я его где то пол года назад и отдыхал до сегодняшнего дня. Знаю JS, TS, React, SCSS, с доккером умею работать, тестиками покрывать тоже умею код, впринципе прям очень базовый фронтендер. НО ПОЛНОЦЕННЫМ и совершенным фронтенд разработчиком я себя назвать не могу. Понимаю что работу сейчас найти оч сложно, но я верю в силу Двача. Если есть тут такие люди, которые могут меня как то пропихнуть в компанию, то сделайте это пж, я вам готов несколько зарплат отдать, договоримся с вами как нибуль. Буду очень рад, если вы даже просто дадите мне какие то советы. Я в целом не переживаю за анонимность, пожтому если со мной нужно будет связаться или ещё какие то данные будут от меня нужны, то я могу дать и гитхаб и портфолио и соцсети ( просто думаю что тут сидят сильнейшие )

82 Кб, 1200x1200
Добро пожаловать в тред гарантий, обещаний, владения, заимствования и тайных знаков

Rust — невероятно быстрый язык для системного программирования без segfault'ов и с гарантиями потокобезопасности.

Ссылка на официальный сайт: https://www.rust-lang.org/

В этом ИТТ мы можем объяснить базовые и продвинутые концепции языка, и программирования в целом, поможем вкатывающимся, подскажем что выбрать для веба, игр или, прости Абу, блокчейна.

НОВИНКА: Rust для Windows: https://metanit.com/rust/windows/

IDE для Rust: https://areweideyet.com/
GUI для Rust: http://www.areweguiyet.com/
Web для Rust: https://www.arewewebyet.org/
GayDev для Rust: https://arewegameyet.rs/
Что еще есть для Rust?
- Посмотри сам: https://wiki.mozilla.org/Areweyet

Основная литература:
Rust Book(версия на русском языке): https://doc.rust-lang.ru/book/
Rust Book: https://doc.rust-lang.org/book/
Rustlings (упражнения чтобы привыкнуть к расту): https://github.com/rust-lang/rustlings
Rust by Example: https://doc.rust-lang.org/rust-by-example/
The Rustonomicon(для продвинутых анонов): https://doc.rust-lang.org/nomicon/
Programming Rust: https://www.oreilly.com/library/view/programming-rust/9781491927274/

Ресурсы на русском:
https://rust-lang.ru/
Отдельное спасибо автору этого гитхаба(старому ОПу). Здесь вы сможете найти много полезной информации: https://gist.github.com/TatriX/183c816f1346d418f969c4576c2b9b41

521 Кб, 598x397
Если брать обычного .NET-разработчика в Нью-Йорке (не FAANG и не хедж-фонд), то картина примерно такая:

ПараметрНью-ЙоркУкраина (Харьков/Киев)
Middle .NET$120k–170k в год$2k–4k в месяц
Senior .NET$170k–250k+ в год$4k–6k+ в месяц
Чистыми после налогов~$7k–12k в месяц~$2k–5.5k в месяц
Аренда 1-комн. квартиры$2500–5000+$200–500
Продукты$600–1200$150–350
Медстраховка$200–800+часто почти бесплатно или через работодателя
Транспорт$130–300$10–50
Ресторан$20–50 за обычный ужин$5–15
Кофе$4–8$1–3

Средняя зарплата software engineer в NYC сейчас оценивается примерно в $160k–190k total compensation.

Например, если .NET Senior получает $180k:

Федеральный налог + штат Нью-Йорк + налог города Нью-Йорк + Social Security/Medicare съедают примерно 35–40%.
Остаётся около $9k–10k чистыми в месяц.

Типичный бюджет такого разработчика:

аренда нормальной квартиры: $3500
коммуналка + интернет: $200
продукты: $800
транспорт: $150
развлечения/подписки: $500
медицина: $300–500

Итого расходы около $5k–6k в месяц, остаётся примерно $3k–5k накоплений. Конечно, если жить с соседями или в Нью-Джерси, можно откладывать больше.

Для сравнения, украинский Senior .NET с зарплатой $4500:

после ФОП налогов остаётся примерно $4200–4300;
расходы в Харькове могут быть $800–1500;
накопления $2500–3500 вполне реальны.

То есть парадокс в том, что:

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

Самый большой финансовый скачок в США обычно получают не обычные аутсорс-разработчики, а инженеры уровня Google, Meta, Amazon, Bloomberg или крупных финансовых компаний, где total compensation может уходить в $250k–500k+ в год.

324 Кб, 1400x1050
Лиспы - семейство языков программирования. Характерные особенности лиспов: динамичность, гомоиконность (код как данные), программируемость.

{Основные диалекты}
:: Common Lisp - разрабатывался как промышленный язык, пригодный для широкого спектра применения, из-за чего имеет достаточно объемную спецификацию. Является мультипарадигменным (процедурщина, функциональщина, ооп (CLOS)), с сильной, динамической типизацией. Есть опциональная декларация типов и частичный их вывод в некоторых реализациях.
Описание особенностей: http://habrahabr.ru/post/143490
Основные реализации:
- свободные: SBCL (нативный код), Clozure CL (нативный код), ECL (через сишку), Clisp (байт-код; небольшой размер образа; похоже, заброшен), Clasp (LLVM; ориентирован на интероп с C++), ABCL (байт-код JVM), CMUCL, GCL.
- коммерческие: LispWorks, Allegro CL, Scieneer CL, mocl
:: Scheme - это минималистичный лисп, пригодный в основном для обучения, исследований. Наиболее практичными реализациями являются GNU Guile и Chicken Scheme.
:: Racket - развитие PLT Scheme. Racket включает в себя много подъязыков (typed racket, lazy racket, frtime racket, Scheme стандартов r5rs и r6rs).
:: Clojure - для тех, кто считает, что из смеси явы и лиспа может получиться что-то хорошее, или тех, кто интересуется креольскими языками, есть отдельный тред. Тред утонул, дом сгорел, отец-подлец бросил, поэтому поживёт сиротка пока у нас. Мальчик со странностями, но хороший, не обижайте. Шапка треда здесь https://rentry.co/9ve9d

{Scheme}
::: Учебники
- SICP :: https://mitpress.mit.edu/sites/default/files/sicp/index.html
- The Scheme Programming Language (R6RS) :: https://www.scheme.com/tspl3
- Практика :: https://exercism.io/my/tracks/scheme

::: Документация
- http://web.mit.edu/scheme_v9.2/doc/index.html

::: Остальное
- https://github.com/theodesp/awesome-scheme
- https://github.com/schemedoc/awesome-scheme

{Racket}
::: Учебники
- HtDP :: https://www.htdp.org/
- Racket Guide :: https://docs.racket-lang.org/guide/index.html
- Beautiful Racket: https://beautifulracket.com/
- Остальные :: https://racket-lang.org/books.html

::: Документация
- https://docs.racket-lang.org/

::: Библиотеки
- https://github.com/avelino/awesome-racket
- https://pkgs.racket-lang.org/

::: Среда разработки
- DrRacket :: https://docs.racket-lang.org/drracket/
- Online :: https://www.jdoodle.com/execute-racket-online/

{Common Lisp}
::: Учебники
- Cookbook :: https://lispcookbook.github.io/cl-cookbook/
- PCL :: http://lisper.ru/pcl/
- OnLisp :: http://www.paulgraham.com/onlisptext.html

::: Документация
- http://www.lispworks.com/documentation/HyperSpec/Front/index.htm
- https://cl-community-spec.github.io/

::: Библиотеки
- https://awesome-cl.com/
- https://ultralisp.org/
- https://lisp-journey.gitlab.io/blog/state-of-the-common-lisp-ecosystem-2020/

::: Среда разработки
- https://lispcookbook.github.io/cl-cookbook/editor-support.html

Предыдущий тред: >>2681837

25,4 Мб, mp4, 1920x1080, 0:10mp4
Мне захотелось научиться программировать как можно ближе к машинному коду. Лет 7 назад я был веб-разработчиком некоторое время, использовал php и js. Все это было просто ради денег. Тогда это было актуально для меня.

В будущем я хочу разобраться с асемблером. Но сразу это будет сложно, поэтому сейчас я знакомлюсь с C++, мне надо писать на нем с минимальным количеством библиотек. Поэтому я начал изучать win32 api.

Что то на win32 api у меня немного получается. Но есть проблема. Я не понимаю смысл, почему в win32 api что то работает именно так или так. Потому что у меня мало знаний в области того как вообще работает компьютер и операционная система.

Встречаются мне регулярно понятия такие как - поток, ядро, дескрипторы. Иногда я представляю интуитивно что все это примерно значит, но глубокого понимания всего этого нет.

Теперь вопрос. Что мне стоит почитать, что изучить чтобы получить эти знания? Что позволит мне лучше понять почему те или вещи в win32 api и в дальнейшем в низкоуровневом программировании работают так или иначе, что именно надо учитывать.

Стремлюсь к низкоуровневому программированию ради интереса. Как то зарабатывать на этом не планирую да и просто не смогу, даже если захочу. Времени на все это у меня много. Думаю лет 10 есть.

659 Кб, 1280x853
[size=18]AnonPeer[/size]

Недавно решил попробовать написать собственный мессенджер на Rust. Основной целью было сделать федеративную систему обмена сообщениями, где пользователи могут общаться между разными серверами, а сами серверы не имеют доступа к содержимому переписки.

В итоге получился AnonPeer.

[size=16]Как работает федерация[/size]

Каждый сервер в сети является независимым узлом. Пользователь регистрируется на одном сервере и получает адрес в формате:

[code]username@domain[/code]

Например:

[code]
a2UKliceANUSserv%Fner-aPUNCTUMcbtFom
boI,KbANUSservergMn-bPUNCTUMcoMh:m
[/code]

Если Алиса отправляет сообщение Бобу, который находится на другом сервере, клиент сначала шифрует сообщение, после чего оно передаётся через сервер Алисы на сервер Боба.

Упрощённо это выглядит так:

[code]
Алиса
|
Сервер A
|
WebSocket
|
Сервер B
|
Боб
[/code]

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

[size=16]Структура проекта[/size]

Проект разделён на три части:

[list]
[]shared — общие структуры данных, криптография и сетевой протокол;
[]server — серверная часть на Axum;
[]client — десктопный клиент на Iced.
[/list]

Сервер использует PostgreSQL для хранения пользователей и публичных ключей.

Клиент хранит локальные данные в SQLite.

[size=16]Шифрование сообщений[/size]

Для обмена ключами используется X25519.

При регистрации клиент создаёт пару ключей:

[list]
[]приватный ключ;
[]публичный ключ.
[/list]

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

Когда начинается диалог, клиент получает публичный ключ собеседника и вычисляет общий секрет.

[code]
shared_secret = my_private_key × peer_public_key
[/code]

Из полученного секрета через HKDF выводится симметричный ключ.

Далее сообщение шифруется алгоритмом ChaCha20-Poly1305.

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

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

Это позволяет обнаружить подмену сообщения или попытку отправить пакет от имени другого пользователя.

[size=16]Проверка на MITM</size]

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

Для проверки используется SAS (Short Authentication String).

После вычисления общего секрета обе стороны независимо получают короткий код:

[code]
a1b2-c3d4
[/code]

Если код совпадает у обоих пользователей, значит обмен ключами прошёл корректно.

Если значения отличаются, значит кто-то вмешался в соединение или произошла ошибка.

[size=16]Отправка сообщения[/size]

Процесс отправки выглядит следующим образом:

[list=1]
[]Получение публичного ключа получателя.
[]Вычисление общего секрета.
[]Генерация ключа через HKDF.
[]Шифрование ChaCha20-Poly1305.
[]Подпись Ed25519.
[]Отправка на сервер.
[/list]

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

После доставки клиент получателя:

[list=1]
[]проверяет подпись;
[]расшифровывает сообщение;
[]сохраняет его в SQLite;
[]отображает в интерфейсе.
[/list]

[size=16]Технологии[/size]

Сервер:

[list]
[]Rust
[]Axum
[]Tokio
[]PostgreSQL
[]SQLx
[]DashMap
[
]tracing
[/list]

Клиент:

[list]
[]Rust
[]Iced
[]SQLite
[]notify-rust
[*]rodio
[/list]

Криптография:

[list]
[]x25519-dalek
[]ed25519-dalek
[]chacha20poly1305
[]argon2
[]hkdf
[]sha2
[/list]

[size=16]Что получилось[/size]

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

Основная идея проекта заключалась не в создании очередного клона Telegram, а в попытке реализовать собственный федеративный протокол обмена сообщениями и разобраться на практике с криптографией, WebSocket-соединениями и распределённой архитектурой на Rust.

381 Кб, 1488x1168
Стоит ли попробовать вкатиться вот в это? Наверняка тут есть люди в теме, ну или у которых брат там учился и остался жив. Бесплатное обучение, любые люди там приветствуются, обещают лампововое общение и помощь в обучении. Привлекает, что это не какие-то полуподвальные инфоцигане, которые хотят стрясти с меня денег за курсы, а сберовский социальный проект(изначально калька с французской школы эколь 42)

Времени, как у настоящего питурда — навалом. Поэтому, потерей времени на музейный язык можете не пугать. В принципе, вообще не важно, что там изучают. Основные плюсы в том, что:

1. Это бесплатно
2. Школа дисциплинирует
3. Школа учит добывать информацию и сразу использовать
4. Мощное комьюнити, общение, знакомства и прочие соц навыки
5. Игофикационный процесс обучения
6. Стажировки в топ компаниях

Прослушал подкасты, посмотрел видео, там даже овуляшки с детьми, бабки-сраки и супер-скуфидоны 40++ учатся и потом работают покайфу. Приходят к успеху через эту самую «школу 21».
Но как-то все слишком шоколадно выглядит. И из-за этого вызывает подозрение.
Ну и самый главный пугающий фактор: там нужно ебашить. Что сложно для козинки-питурда. По крайней мере, на начальных этапах.

319 Кб, 598x434
1. Стек
2. Опыт
3. Образование
4. Почему стал безработным
5. Сколько сидишь без работы в айти
6. Чем занимаешься сейчас

73 Кб, 500x408
/butthurt/ [370] >>
ОБЩИЙ БУГУРТ ТРЕД GENERAL BUTTHURT THREAD #78

Прошлый: >>3583140 (OP)

ОТКРЫВАЕШЬ ГЛАВНУЮ СТРАНИЦУ ПРОДУКТА НАД КОТОРЫМ РАБОТАЕШЬ
@
ЧТО-ТО ПРО КУКИ
@
РАЗРЕШИТЬ УВЕДОМЛЕНИЯ
@
ВАШ ГОРОД МОСКВА, ВЕРНО?
@
ЗАПРОС МЕСТОПОЛОЖЕНИЯ
@
УСТАНОВИТЕ НАШЕ ПРИЛОЖЕНИЕ
@
ПОДПИСЫВАЙТЕСЬ НА НАС В ТГ, МАКСЕ, В ВК, В ОДНОКЛАССНИКАХ, В ДЗЕНЕ, В ГАЗЕТЕ ТЕЩИН ЯЗЫК
@
ОТКЛЮЧИТЕ БЛОКИРОВЩИК РЕКЛАМЫ НАМ НЕЧЕГО ЖРАТЬ
@
ВЫ 5 МИНУТ НА САЙТЕ И НИЧЕГО НЕ НАШЛИ, ДАВАЙТЕ МЫ ВАМ ПЕРЕЗВОНИМ
@
УЖЕ ВТОРОЙ СОЗВОН ПО 1,5 ЧАСА ОБСУЖДАЕТСЯ ПОЧЕМУ УПАЛА ПРОДОЛЖИТЕЛЬНОСТЬ ВИЗИТА В ЯНДЕКС МЕТРИКЕ И УМЕНЬШИЛАСЬ КОНВЕРСИЯ КЛИЕНТОВ С САЙТА
@
К ОДНОЗНАЧНЫМ ВЫВОДАМ НЕ ПРИШЛИ
@
НАЗНАЧИЛИ ТРЕТИЙ СОЗВОН

997 Кб, 1024x1024
Вики по джаве: https://github.com/java2ch/java-thread/wiki (доступна для редактирования всем)
Предыдущий: >>3667760 (OP)

54 Кб, 702x599
К широкому известному в узких кругах доценту Андрею Столярову заглянул... Кто бы вы думали? Волчок от Антона Назарова. Как ни удивительно, гуру не выдал традиционный комментарий "вон с моего сайта мразь", а даже удостоил юного падавана своей мудростью.

Суть - настоящие программисты устраиваются не в ООО "Рога и копыта" через хх.ру, не в КОТВАСЯ через стажировку, а в хорошие продуктовые компании (не в "очередной обезьянник") через знакомства.

Но откуда брать эти самые знакомства и социальные связи? Вот получил студентик диплом, и кому он нужен? Его никто не знает и порекомендовать своему боссу не может.

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

314 Кб, 1067x800
Сап, /pr/. Хочу купить ноут для вката в программирование. Поэтому решил узнать, какие компьютеры и ОС нынче популярны среди разработчиков.

1) Какая область IT?
2) Какой у тебя ноут/комп? Процессор, оперативная память, видеокарта, сколько Гб на жестком диске и сколько из них реально используется?
3) Какая у тебя ОС? Почему именно она?
4) Какие программы используешь для разработки?


74 Кб, 1138x882
Сап, на связи кун 20 лвл, ойтишник, направление можно описать как "общее ойтишное", типа общая теория, сайтики-хуяйтики, прога какая-то и т д. Вкратце, я как будто недостаточно стараюсь каждый день. Я просто делаю что-то в вузе, сдаю всё исправно, но это ведь на деле никому не нужно. Отсюда вообщем вопрос, что бы такого изучать нужного, полезного, я ни в какие ещё собесы и инфу по ним не лез, поэтому спрашиваю у тебя, благородный анон. В целом, меня-то всё устраивает, последние пару месяцев вне времени занятий универа изучал opengl, хотел движок свой сделать, благо с 3д графикой знаком, но ведь это никому на работке не нужно будет, от того и такие страхи есть, что в итоге всё время своё проебу.