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". Sa 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), правильное объединение строк и многое другое. Продвинутый программист, возможно, уже знаете все эти особенности, но даже в этом случае будет неплохо повторить.
GO TO FULL VERSION