В этой статье вы узнаете, что каждый программист должен знать из таких тем, как память, Юникод, арифметика с плавающей точкой, сеть, объектно-ориентированный дизайн, время, кодирование URL, строка и многое другое. Этот список очень важен, особенно для начинающих новичков, так как именно им не хватает практических знаний. Полученные знания об основах в начале карьеры помогает избежать ошибок, которые сделали другие программисты и разработчики программного обеспечения на их курсе обучения.
ЧТО ДОЛЖЕН ЗНАТЬ КАЖДЫЙ ПРОГРАММИСТ О ПАМЯТИ
Знание памяти в современной системе становится еще более важным, если вы находитесь в пространстве написания высокопроизводительного приложения. Разработчики оборудования придумали все более сложные методы обработки памяти и ускорения, такие как кэш ЦП, но они не могут работать оптимально без некоторой помощи программиста. Вы много можете узнать о О RAM, различных типах памяти, прямом доступе к памяти, конструкции контроллера памяти и памяти в целом. Одним словом, обязательно прочтите для программистов любого уровня опыта.
ЧТО ДОЛЖЕН ЗНАТЬ КАЖДЫЙ КОМПЬЮТЕРЩИК ОБ АРИФМЕТИКЕ С ПЛАВАЮЩЕЙ ТОЧКОЙ
Арифметика с плавающей точкой - сложная тема, и ее нелегко освоить. Даже многие программисты Java не знают, что может пойти не так при сравнении значения float / double с оператором==. Эта статья является еще одной жемчужиной этой серии и обязательна для чтения для всех разработчиков программного обеспечения и программистов. По мере того, как ваш опыт растет, вы, как ожидается, знаете тонкие детали общих вещей, и арифметика с плавающей точкой является одним из них. Как старший Разработчик Java, вы должны знать, как выполнить денежный расчет, когда использовать float, double или Big Decimal классы, как округлить числа с плавающей запятой и т.д. Даже если вы знаете основы арифметики с плавающей точкой, вы узнаете что-то новое о вычислении с плавающей точкой, прочитав статью.
ЧТО ДОЛЖЕН ЗНАТЬ КАЖДЫЙ РАЗРАБОТЧИК О UNICODE
Кодировка символов - это еще одна область, где многие программисты борются за абсолютный минимум, абсолютно каждый разработчик программного обеспечения положительно должен знать о Unicode и наборах символов. Он был написан Джоэлом Спольским, одним из основателей statckoverflow.com. Джоэл написал этот пост в своем блоге почти 10 лет назад, но он по-прежнему актуален в современном мире. Эта статья научит Вас, что такое Unicode, что такое Кодировка символов, как символы представлены с помощью байтов и многое другое. Одна из лучших вещей в этой статье - это язык и поток, даже если вы ничего не знаете о Unicode, вы можете легко понять.
ЧТО ДОЛЖЕН ЗНАТЬ КАЖДЫЙ ПРОГРАММИСТ О ВРЕМЕНИ
Помимо кодирования символов, время и дата - это еще одна область, где многие программисты борются. Даже старшие разработчики потерялись между GMT, UTC, переходом на летнее время и между високосными секундами. Есть так много вещей, которые могут пойти не так, и есть равное количество неправильных представлений. Такие вещи, как, содержит ли дата часовой пояс или нет, могут смутить вас, а преобразование времени UNIX в другой часовой пояс может вас напугать, заставит забыть о синхронизации часов и задержек. Я надеюсь, что многие из вашего заблуждения о времени уйдет, и вы будете строить фундаментальный отсчёт времени, читая эту классическую статью.
ЧТО ДОЛЖЕН ЗНАТЬ КАЖДЫЙ ВЕБ-РАЗРАБОТЧИК О КОДИРОВКЕ URL
В этой статье описываются распространенные заблуждения о кодировке Uniform Resource Locator (URL), а затем предпринимаются попытки прояснить кодировку URL для HTTP, прежде чем представлять частые проблемы и их решения. Хотя эта статья не является специфическим для любого языка программирования, он иллюстрирует проблемы в Java) и заканчивается объяснением, как исправить проблемы кодирования URL в Java, и в веб-приложении на нескольких уровнях. Вы узнаете основы грамматики URL, общий синтаксис URL в HTTP и другой протокол. Эта статья также исследует общие подводные камни URL-адресов, например, Кодировки символов и проблемы с кодировкой/декодированием URL. Если Вы программист Java, то Вы также узнаете о том, как правильно обрабатывать URL-адреса в приложении Java. Создание URL-адреса и использование клиентской библиотеки Apache Commons HTTP. Одним словом, обязательно прочитайте статью для любого веб-разработчика и программиста.
ЧТО ДОЛЖЕН ЗНАТЬ КАЖДЫЙ ПРОГРАММИСТ О ВЕБ-РАЗРАБОТКЕ?
Это интересная статья от программистов stack exchange, о том, что должен каждый программист, реализующий технические детали веб-приложения, рассмотреть прежде, чем сделать сайт общедоступным. Это включает в себя вещи, начиная от дизайна интерфейса и пользовательского опыта, безопасности, веб-стандартов, производительности, оптимизации поисковых систем(SEO), технологий и нескольких важных ресурсов. Поскольку сегодняшний мир очень зависит от интернета и программиста, имеющего свой личный сайт, блог довольно распространен. Опыт, накопленный в этой статье, даже поможет не только в вашей профессиональной деятельности, но и в вашей личной работе. Вы узнаете обо всех ключевых технологиях, таких как HTTP, HTML, XML, CSS, JavaScript, Совместимость браузеров, советы по сокращению времени загрузки вашего сайта, XML sitemap, спецификации W3C и некоторые другие ключевые детали.
ЧТО ДОЛЖЕН ЗНАТЬ КАЖДЫЙ ПРОГРАММИСТ О SEO
Это еще одна статья, которая очень важна для веб-разработчиков, программистов и блогеров. SEO слишком велик, чтобы быть проигнорированным, так как многие программисты, а также блогеры, это важно, чтобы узнать несколько основ поисковой оптимизации, чтобы помочь Google найти их содержание и представить другим коллегам-программистам. Поскольку ни одна компания не может выжить без веб-присутствия в современном взаимосвязанном мире, SEO становится еще более важным. Если у вас есть стартап, продажа любого продукта, то SEO-это то, о чем нужно заботиться. Все программисты, особенно веб-разработчики могут в значительной степени извлечь выгоду из этой статьи. Помните, что поисковая оптимизация является обширной и очень динамичной темой, а также варьируется между различными поисковыми системами, например, Google, Yahoo и другими. Таким образом, для того, чтобы освоить эту тему, Вы всегда должны обновить свои знания.
ЧТО ДОЛЖЕН ЗНАТЬ КАЖДЫЙ ПРОГРАММИСТ C О НЕОПРЕДЕЛЕННОМ ПОВЕДЕНИИ #1/3
Язык программирования C имеет понятие "неопределенное поведение". Неопределенное поведение - это широкая тема с множеством нюансов. Многие, казалось бы, разумные вещи в C на самом деле имеют неопределенное поведение, и это общий источник ошибок в программах. Кроме того, любое неопределенное поведение в C дает лицензию на реализацию (компилятор и среда выполнения) для создания кода, который форматирует жесткий диск, делает совершенно неожиданные вещи или еще хуже. Прочитайте эту отличную статью, чтобы глубоко погрузиться в море неопределенного поведения.
ЧТО ДОЛЖЕН ЗНАТЬ КАЖДЫЙ ПРОГРАММИСТ О СЕТИ
Вы программист. Вы когда-нибудь задумывались, как работают многопользовательские игры? Со стороны это кажется волшебным: два или более игроков, разделяющих последовательный опыт по сети, как будто они на самом деле существуют вместе в одном виртуальном мире. Но как программисты, мы знаем, что правда того, что на самом деле происходит, сильно отличается от того, что вы видите. Оказывается, все это иллюзия. Это очень интересная статья о сети, написанная для игровых программистов, но я думаю, что каждый программист и разработчик может извлечь из этого пользу.
ЧТО ДОЛЖЕН ЗНАТЬ КАЖДЫЙ РАЗРАБОТЧИК JAVA О STRING
Каждый программист Java должен знать об этом. Строка очень важна в повседневном программировании на Java, поэтому хорошие знания необходимы для любого Java-разработчика. В этой статье затрагиваются многие важные области String, включая строковый пул, строковый литерал, сравнение String using = = vs equals (), преобразование байтов в String, почему String является неизменяемым, правильно объединяя строки и многое другое. Продвинутый программист может уже знать все эти вещи, но даже тогда это хорошо, чтобы пересмотреть их.
ЧТО ДОЛЖЕН ЗНАТЬ КАЖДЫЙ ПРОГРАММИСТ О БЕЗОПАСНОСТИ?
Этот вопрос задал один студент по программированию в StackOverflow. Так же, как мы много узнаем об общих концепциях программирования, таких как Операционная система, алгоритм, структура данных, компьютерная архитектура и другие вещи, также важно знать о безопасности. Хотя безопасность является обширной темой, начиная от шифрования / дешифрования, SSL, веб-безопасности, запутывания, аутентификации, авторизации и т.д., базовые минимальные знания должны быть у каждого программиста.
КАЖДЫЙ ПРОГРАММИСТ ДОЛЖЕН ЗНАТЬ НОМЕРА ЛАТЕНТНОСТИ
Это бонусная статья, но она должна быть прочитана. Для того, чтобы написать высокопроизводительное приложение на любом языке программирования, например, Java или c++, вы должны знать основные числа латентности, например, сколько времени требуется для чтения переменной из памяти, из кэша L1, из кэша L2, из случайного чтения в SSD и с диска. Сколько времени требуется, чтобы заблокировать разблокировку мьютекса, чтобы отправить пакет данных из одного города в другой или выполнить это туда и обратно, в том же центре обработки данных. Эти числа задержки не зависят от любого языка программирования. Разработчик должен написать высокочастотные приложения с низкой задержкой. Хорошая вещь об этой ссылке заключается в том, что она также предоставляет Вам сравнительный анализ того, как эти числа латентности эволюционировали за эти годы. Вы можете увидеть, что эти цифры задержки были в 2006 году и что они представляют сейчас.
Друзья! Приглашаем вас к обсуждению. Если у вас есть своё мнение, напишите нам в комментарии.