JavaRush /Java Blog /Random-TL /10 artikulo na dapat basahin ng bawat programmer
Shoggy
Antas
Санкт-Петербург

10 artikulo na dapat basahin ng bawat programmer

Nai-publish sa grupo
Bilang isang Java programmer at software developer, marami akong natutunan mula sa maraming artikulong pinamagatang What Every Programmer Should Know About..... , sila ay may posibilidad na magbigay ng maraming kapaki-pakinabang at komprehensibong impormasyon tungkol sa isang partikular na paksa na kung hindi man ay mahirap matuklasan. Sa aking paghahanap ng kaalaman, nakatagpo ako ng ilang napaka-kapaki-pakinabang na artikulo na aking na-bookmark bilang reference na impormasyon upang muling basahin. Ang ideya na maraming programmer ang maaaring makinabang sa pagbabasa ng koleksyong ito ay nag-udyok sa akin na isulat ang post na ito at ibahagi sa iyo ang lahat ng mga artikulong "Ano ang Dapat Malaman ng Bawat Programmer". 10 статей, которые должен прочитать каждый программист - 1Sa artikulong ito, magiging pamilyar ka sa klasikong hanay ng kaalaman na kailangan ng bawat programmer, sa mga paksa tulad ng memory , Unicode , floating point arithmetic , networking , object oriented na disenyo oras , URL Encoding , String at marami pang iba. Napakahalaga ng listahang ito para sa mga baguhan at bagong dating dahil madalas silang kulang sa praktikal na kaalaman. Dahil ang karamihan sa mga artikulo ay nakabatay sa totoong buhay na mga halimbawa, ang entry-level at intermediate programmer ay maaaring matuto ng maraming mula sa kanila. Gayundin, ang pag-aaral ng mga pangunahing kaalaman sa maagang bahagi ng iyong karera ay makakatulong sa iyong maiwasan ang mga pagkakamali na nagawa na ng ibang mga programmer at software developer sa kanilang landas sa pag-aaral. Sa kasamaang palad, hindi lahat ng impormasyon mula sa mga artikulong inilarawan ay madaling natutunaw mula sa unang pagbasa. Malamang, maaaring hindi mo agad nauunawaan ang ilan sa mga detalye tungkol sa mga numero ng floating point, o maaaring malito ka sa mga salimuot ng memorya, ngunit mahalagang panatilihing madaling gamitin ang koleksyong ito at sumangguni dito paminsan-minsan para sa paglilinaw. Kaya't hiling ko sa iyo na good luck at masiyahan sa pagbabasa ng magagandang artikulong ito. Siyanga pala, huwag kalimutang magbahagi ng iba pang artikulong "What Every Programmer Should Know" kung wala pa sila sa aming listahan.

Ano ang dapat malaman ng bawat programmer tungkol sa memorya

перевод на русский Это одна из классической статей, которая проведет вас по особенностям памяти, некоторые из которых старые, некоторые новые, некоторые известные и некоторые не очень. Несмотря на управляющую роль и вездесущность, не каждый программист имеет достаточный уровень знаний о Памяти. Важность знакомства с памятью в современных системах увеличивается, если вы заняты в сфере написания высокопроизводительных приложений. Разработчики аппаратных средств придумывают более сложные модели управления памятью и методы ускорения, такие How кэш CPU, но они не могут оптимально работать без некоторой помощи со стороны программистов. Я до сих пор читаю эту статью, и не могу сказать насколько много я узнал из нее о RAM, кэше CPU, например, L1 и L2 кэш, различных видах памяти, прямом доступе к памяти, конструкции контроллера памяти, и памяти в целом. Короче говоря, must read для программистов любых уровней.

What должен знать каждый ученый о арифметики чисел с плавающей точкой

Тема арифметики операций с плавающей точкой коварна, и непроста в освоении. Многие Java программисты даже не знают, что может пойти не так при сравнении значений типа float/double оператором ==. Многие из нас часто совершают ошибки, реализуя денежные расчеты в типах float и double. Данная статья еще одна жемчужина этой серии и является must read для всех разработчиков программного обеспечения и программистов. По мере роста опыта вы должны вдаваться в тонкости общих тем, и арифметика чисел с плавающей точкой является одной из них. Как старший Java разработчик вы должны знать How выполнять денежные расчеты, когда использовать типы float, double or BigDecimal, How округлять числа с плавающей точкой и многое другое. Даже если вы обладаете твердыми знаниями в этой теме, после прочтения статьи вы сможете открыть для себя что-то новое об операциях с плавающей точкой.

What каждый разработчик должен знать о Unicode

Кодировка символов является еще одной областью, где многие программисты испытывают трудности, и "Абсолютный минимум, который безусловно должен знать каждый разработчик программного обеспечения про Unicode и наборы символов (ниHowих оправданий!)" призван восполнить этот пробел. Для справки, Да, это полное название этой статьи. Ее автором является Joel Spolsky, один из основатель https://stackoverflow.com. Джоэл написал эту статью в своем блоге почти 10 лет назад, но она не потеряла своей актуальности и в современном мире. Статья объясняет что такое Unicode, что такое codeировка, How символы представлены с использованием byte и многое другое. Одной из лучших вещей в этой статье является язык и метод изложения, даже если вы ничего не знаете о Unicode, у вас не возникнет проблем с пониманием. Короче говоря, еще один must read для всех программистов, codeеров и инженеров программного обеспечения.

What каждый программист должен знать о времени

Помимо codeировки символов, время и даты (Time and Date) являются еще одной областью, где многие программисты, включая меня, испытывают трудности. Даже старшие разработчики теряются в GMT, UTC, летним временем и високосными секундами. Честно говоря, не легко справиться с часовыми поясами, не совершая Howих-либо ошибок, а использование летнего времени дополнительно усложняет задачу. Проблемы усугубляются, если вы пользуетесь метод проб и ошибок, потому что вы никогда не будете в состоянии решить вашу проблему, делая это. Существует огромное число вещей, которые могут пойти не так, и бытует такое же количество заблуждений. Такие вещи, How, содержит ли дата часовой пояс or нет могут сбить вас с толку, преобразование времени UNIX к другим временным зонам, может взбесить вас, и вы с легкостью можете забыть о синхронизации часов и задержек. Я надеюсь, что после прочтения этой статьи, многие из ваших заблуждений о времени исчезнут, и у вас выстроится полное понимание времени.

What каждый веб-разработчик должен знать про codeировку URL

Эта статья описывает распространенные ошибочные представления о codeировании Uniform Resource Locator (URL), а затем пытается разъяснить codeирование URL для HTTP, и далее демонстрирует часто возникающие проблемы и пути их решения. Хотя эта статья не является заточенной под Howой-либо язык программирования, она иллюстрирует проблемы в Java) и заканчивается объяснениями по исправлению проблемы с codeировкой URL в Java, и в веб-applicationsх на нескольких уровнях. Вы узнаете основы URL грамматики, общий синтаксис URL в HTTP и других протоколах. В этой статье также рассматриваются частые подводные камни URL-addressов, например, codeировку символов, специальные символы в разных частях URL, и вопросы codeирования/деcodeирования URL. Если вы Java программист, то вы также узнаете о том, How правильно управляться с URL-addressми в приложении Java. Как построить URL и использование клиентской библиотеки Apache Commons HTTP. Наконец, также предлагаются лучшие примеры и варианты работы с URL-addressми, например, вы должны codeировать URL при его построении, убедиться, что ваши фильтры URL-перезаписи справляются с вашими URL корректно и многое другое. Короче говоря, must read для любого веб-разработчика и программиста.

What каждый программист знать о веб-разработке?

Эта интересная статья из programmersStackExchange, о том, что следует обдумать каждому программисту, реализующему технические детали веб-applications, прежде, чем открыть сайт для публики. Она включает в себя вещи из областей разработки интерфейсов и удобства использования (Interface design and User Experience), Безопасности (Security), веб-стандартов (Web standards), производительности (Performance), оптимизации для поиска (Search Engine Optimization(SEO)), используемых технологий, и некоторых важных ресурсах. Сегодняшний мир в значительной степени зависит от интернета и достаточно распространено наличие у программиста личного сайта or блога. Опыт полученный из этой статьи, будет полезен не только в вашей профессиональной деятельности, но и в собственных проектах. Вы узнаете о всех ключевых технологий, таких How, HTTP, HTML, XML, CSS, JavaScript, совместимость браузеров, советы для уменьшения времени загрузки вашего сайта, XML карты сайта, спецификаций W3C и несколько других ключевых моментов.

What каждый программист должен знать о SEO

Это еще одна статья, которая будет достаточно полезна для веб-разработчиков, программистов и блогеров. SEO является слишком большим, чтобы игнорировать его, How и многим программистам так и блогерам важно знать основы поисковой оптимизации, чтобы помочь Google найти их содержимое и показать коллегам программистам. Поскольку ни одна компания не может выжить без веб-присутствия в современном взаимосвязанном мире, SEO становится еще более важным. Если у вас есть стартап по продаже любого товара, то SEO является тем, о чем следует заботиться. Все программисты, особенно веб-разработчики могут получить значительную пользу от этой статьи. Помните, поисковая оптимизация является обширным и очень динамичный моментом, а также варьируется в разных поисковых системах, например, Google, Yahoo, и других. Итак, чтобы владеть этой темой вы всегда должны обновлять свои знания.

What каждый C программист должен знать о неопределенном поведении (Undefined Behaviour) # 1/3

Язык программирования C имеет концепцию "неопределенного поведения". Неопределенное поведение широкая тема с большим количеством нюансов, и это одна из причин, почему я люблю Java: меньшее количество неопределенного поведения, меньше путаницы, больше стабильности и больше мира. Многие, казалось бы, разумные вещи в C на самом деле имеют неопределенное поведение, и это общий источник ошибок в программах. Кроме того, любое неопределенное поведение в C дает разрешение реализациям (компилятора и среды исполнения) для генерации codeа форматирующего жесткий диск, совершения абсолютно неожиданных вещей, or даже хуже. Читайте эту прекрасную статью для глубокого погружения в море непредсказуемого поведения.

What каждый программист нужно знать о сетях

Из самой статьи "Вы программист. Вы когда-нибудь задавались вопросом, How работают многопользовательские игры? Со стороны это кажется волшебным: два or более игрока разделяют совместный опыт по сети, словно они на самом деле существуют вместе в том же виртуальном мире. Но How программисты мы знаем правду, что происходящее на самом деле довольно сильно отличается от того, что вы видите. Оказывается, что все это иллюзия ". Это очень интересную статью о сетях, написанную для программистов игр, но я думаю, что каждый программист и разработчик может извлечь выгоду из нее.

What каждый Java разработчик должен знать о Строках (String)

Это моя статья о java.lang.String и лично я считаю, что каждый Java программист должен знать об этом. Строки очень важны в повседневном программирования на Java, и именно поэтому хорошие знания являются обязательными для любого Java разработчика. Эта статья затрагивает многие важные аспекты Строк, включая строковой пул, строковые литералы, сравнение строк с помощью == против equals(), преобразование byte в строку, то почему строка является неизменной (immutable), правильное объединение строк и многое другое. Продвинутый программист, возможно, уже знаете все эти особенности, но даже в этом случае будет неплохо повторить.

What каждый программист должен знать о безопасности?

Этот вопрос был задан студентом программистом на StackOverflow. Равно How много мы знаем об общих понятиях программирования, таких How, операционная система, алгоритмы, структуры данных, компьютерная архитектура и другие вещи, точно также важно знать и о безопасности. Хотя тема Безопасности достаточно обширна, содержит области шифрования/дешифрования, SSL, веб-безопасности, запутывания, аутентификации, авторизации и т.д., существует базовый минимум знаний обязательный для каждого программиста. Лично я в начале своей карьеры не знал многого о безопасности, когда я начал писать Servlet/JSP на основе Java web application, я узнавал о веб-безопасности и ряде угроз безопасности таких How SQL Injection, отказ в обслуживании (Denial of Service), XML Injection, межсайтовый скриптинг (Cross site scripting) и других. Как разработчик Java, теперь я следую безопасным методам Java программирования, предоставляемых fortify, PMP и другими поставщиками статических анализаторов codeа.  В этой статье содержится очень хорошая подборка тем и ссылок про безопасность, и в независимости от того, программируете вы or нет, вы, несомненно, получите пользу от этого ресурса.

Показатели Задержки (Latency Numbers) которые должен знать каждый программист

Это статья является бонусной, но, тем не менее, must read для любоко программиста. Для написания высокопроизводительного applications на любом языке программирования будь то Java or C++, вы должны знать основные значения задержек , например, сколько времени займет чтение переменной из памяти, из L1-кэша, из L2-кэша, при случайном чтении (random read) с SSD и с диска. Сколько времени необходимо, чтобы заблокировать/разблокировать мьютекс, чтобы отправить пакет данных из одного города в другой or делать проход с возвратом (roundtrip) в пределах одного центра обработки данных. Эти значения задержек не зависят от языка программирования и являются часть базовых знаний, которые разработчик должен иметь, для написания сильнонагруженных приложений с низкой задержкой (high frequency low latency). Положительный момент об этой ссылке заключается в том, что он предоставляет сравнительный анализ того, How эти значения развивались в течение многих лет. Вы можете видеть, Howими были значения в 2006 году и то, что они представляют собой сейчас. Вот и все, об этом списке статей которые должен прочитать каждый программист. Читая статьи такие How What каждый программист or разработчик должен знать, вы углубляете свои знания в конкретной теме. Честно говоря, существует слишком много вещей к изучению программистами, и изучение языка программирования, такого How Java, лишь верхушка айсберга, но разве не большинство из нас имеют страсть к обучению. Программирование — работа, требующая постоянного развития, и единственными вещами которые будут полезны любому программисту на протяжении всей карьеры являются фундаментальные знания о таких вещах How память (memory), Unicode, вычисления с плавающей точкой (floating point numbers), время (time), безопасность (security). Некоторые вещи специфичны для конкретных языков, например мой пост о строках (String) в Java и, What каждый C программист должен знать о неопределенном поведении (Undefined Behaviour), но и они хороши к изучению для многих начинающих и разработчиков.
Mga komento
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION