Типичный программист
81.4K subscribers
2.66K photos
891 videos
8 files
7.44K links
Всё самое интересное по программированию

Разместить рекламу: @tproger_sales_bot

Правила общения: https://tprg.ru/rules

Другие каналы: @tproger_channels

Сайт: https://tprg.ru/site

VK: vk.com/tproger

Регистрация в перечне РКН: https://tprg.ru/mJwo
Download Telegram
This media is not supported in your browser
VIEW IN TELEGRAM
Не начинайте учить Си, пока не заберёте себе эту исчерпывающую подборку полезных ресурсов

В ней есть интерактивные обучалки для новичков, книги, проверенные временем, и даже знаменитый бесплатный гарвардский курс «CS50», доступный на русском языке. Сохраните себе, чтобы не потерять, и пользуйтесь на здоровье:

https://tprg.ru/D5CK

#си
Почему Си должен умереть?

Не учил Си — не настоящий программист. По крайней мере, так считают некоторые разработчики. Но есть и другое мнение.

Советуем материал от пользователя с ником exegete, в котором он рассказал, как разработчики компиляторов и комитет стандартизации пытались реализовать высокоуровневые конструкции Си, сохранив при этом его низкоуровневые свойства. И в итоге сделали из него бесполезный и даже вредный инструмент разработки:

https://tprg.ru/gIqj

#си
Что почитать на выходных: «Алгоритмы. Справочник. С примерами на C, C++, Java и Python», 2-е издание

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

#алгоритмы #книги #си #cpp #java #python
Почему не нужно и даже вредно бояться GOTO?

Готофобия — это боязнь использовать инструкции goto. Обычно возникает из-за непонимания и незнания контекста этой проблемы, а также из-за историй о незапамятных временах в истории программировании. Разработчики, страдающие готофобией, готовы жертвовать удобочитаемостью своего кода, только бы не прибегать к goto.

Сам по себе оператор goto не опасен — это языковая возможность, которая напрямую преобразуется в инструкции перехода, реализованные в машинном коде. Goto — точно как и указатели, перегрузка операторов и масса прочих «субъективных» зол — повсеместно ненавидят те, кто обжёгся на плохом программировании.

В статье о том, почему goto можно и нужно использовать, и о том, как делать это правильно: https://habr.com/ru/post/720486/

#си #алгоритм
Как работает PostgreSQL на уровне кода?

Postgres — один из крупнейших open source проектов. Он создавался многие года, и кодовая база накопилась огромная. Но много ли разработчиков представляет себе, как он работает изнутри? И речь не про SQL, а про язык, на котором он написан, — про C.

Вот подборка статей, которая показывает, как работает PostgreSQL на уровне кода:
— Часть 1, введение: https://habr.com/ru/post/701284/
— Часть 2, цикл сервера: https://habr.com/ru/post/704618/
— Часть 3, подготовка бэкэнда: https://habr.com/ru/post/707950/
— Часть 4, инициализация бэкэнда: https://habr.com/ru/post/709404/
— Часть 5, цикл бэкэнда: https://habr.com/ru/post/714840/

#sql #си
А вы знали, что для кода, от которого зависит жизнь человека, есть специальный стандарт?

MISRA C — это набор промышленных рекомендаций и стандартов, разработанных ассоциацией MISRA (Motor Industry Software Reliability Association) для разработки программного обеспечения на языке Си. Это — стандарт с огромным количеством запретов, чтобы повысить безопасность и надёжность кода в том случае, когда от его качества зависит жизнь человека.

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

Рассказываем подробнее про MISRA C в статье: https://tproger.ru/articles/zachem-nuzhen-misra-c-standart-s-ogromnym-kolichestvom-zapretov/

#си #безопасность
Стоит ли изучать С и С++ после Java?

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

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

В этой статье разбираемся, зачем переходить с Java на С или С++, зачем учить именно С-языки и какие плюсы и минусы присущи С и С++ по сравнению с Java: https://tproger.ru/articles/stoit-li-izuchat-s-i-s-posle-java/

#java #си
Почему Линус Торвальдс ненавидит C++?

В 2007 году пользователь Дмитрий Какурин написал письмо Линусу Торвальдсу, в котором спросил программиста, почему тот использует чистый Си вместо того, чтобы написать все на C++. Само использование чистого Си Дмитрий Какурин назвал емким словом bullshit. В ответ Линус Торвальдс сказал, что bullshit — это сам Какурин, а C++ — ужасный язык, на котором кодеры генерируют, мягко говоря, «нечистоты».

Рассказываем, что еще сказал Линус и почему так вышло: https://tproger.ru/articles/pochemu-linus-torvalds-nenavidit-s

#linux #cpp #си
История C++ с 1953 года от FLOW-MATIC и Fortran до языка Си и Cfront

Язык C++ разработал датский программист Бьерн Страуструп, это известный факт. Но что, если копнуть глубже и попытаться разобраться, где находится стартовая точка эволюции языков программирования, которая привела к появлению C++, и какой эволюционный путь прошли языки?

В этой статье рассказываем, как бизнес в 1950 годах появлиял на развитие языков программирования, какие шаги проделал ALGOL перед тем, как превратился в язык Си, и как языки проделали долгий и витиеватый путь от упрощения к усложнению, и наоборот: https://tproger.ru/articles/istoriya-cpp-s-1953-goda

#cpp #си #история
Как работает PostgreSQL на уровне кода?

Postgres — один из крупнейших open source проектов. Он создавался многие года, и кодовая база накопилась огромная. Но много ли разработчиков представляет себе, как он работает изнутри? И речь не про SQL, а про язык, на котором он написан, — про C.

Вот подборка статей, которая показывает, как работает PostgreSQL на уровне кода:
— Часть 1, введение: https://habr.com/ru/post/701284/
— Часть 2, цикл сервера: https://habr.com/ru/post/704618/
— Часть 3, подготовка бэкэнда: https://habr.com/ru/post/707950/
— Часть 4, инициализация бэкэнда: https://habr.com/ru/post/709404/
— Часть 5, цикл бэкэнда: https://habr.com/ru/post/714840/

#sql #си