程序员⽂章_每个程序员必须阅读的10篇⽂章
程序员⽂章
作为⼀名Java程序员和软件开发⼈员,我从标题为“每个程序员应该了解的...”的⽂章中学到很多东西,他们往往会提供有关特定主题的⼤量有⽤且深⼊的信息,否则这些信息将很难去探索。
在寻求学习的过程中,我遇到了⼀些⾮常有⽤的⽂章,将它们加为书签以供参考和阅读。 我个⼈认为,所有程序员都可以从阅读这些⽂章
“每个程序员都应该知道”的⽂章。 这些来⾃我的个⼈书签。
中受益,这使我写了这篇⽂章,并与⼤家分享了所有这些“每个程序员都应该知道”的
在本⽂中,您将看到经典的内容,每个程序员都应该从诸如内存 , Unicode , 浮点算术 , ⽹络 , ⾯向对象的设计 , 时间 , URL编码, 字符串等主题中了解⽂章。 对于那些缺乏实践知识的初学者和新⼿来说,此列表⾮常重要。 由于⼤多数这些帖⼦实际上都是由实践知识驱动的,因此初学者和中级程序员可以从中学到很多。
在职业⽣涯的早期就获得基本知识也有助于避免错误,这是其他程序员和软件开发⼈员在学习过程中所
做的事情。 虽然很难⼀⼝⽓掌握这些⽂章中提供的所有知识。 您可能不会理解⼀些有关浮点数的细节,或者将其与内存的细微细节混淆,但是重要的是要使这些列表⽅便使⽤,并时不时地将它们与上下⽂相关联。 祝您好运,并喜欢阅读这些精彩的⽂章。 顺便说⼀句,如果该列表中没有该⽂章,请不要忘记分享任何“每个程序员应该知道的内容”。
这是经典⽂章之⼀,它将带您穿越各种可能的记忆通道,包括⼀些旧的,⼀些新的,⼀些已知的和未知的。 尽管如此,⽆处不在,但并不是每个程序员都对内存有⾜够的了解。 如果您要编写⾼性能应⽤程序,那么现代系统中的内存知识就变得尤为重要。 硬件设计⼈员提出了越来越复杂的内存处理和加速技术(例如CPU缓存),但是如果没有程序员的帮助,这些技术就⽆法最佳发挥作⽤。 我仍在阅读本⽂,我⽆法告诉您从RAM,CPU⾼速缓存(例如L1和L2⾼速缓存),不同类型的内存,直接内存访问,内存控制器设计以及⼀般的内存中学到了多少。 简⽽⾔之,所有⽔平的程序员都必须阅读。
浮点算术是⼀个棘⼿的话题,⽽且掌握起来并不容易。 甚⾄许多Java程序员都不知道将浮点数/双精度值与==运算符进⾏⽐较时会出什么问题。 我们中的许多⼈经常会犯错误的货币浮动和两倍计算。 本⽂是本系列的另⼀篇⽂章,所有软件开发⼈员和程序员都必须阅读。 随着经验的增长,您应该了解⼀些常见的细节,浮点算术就是其中之⼀。 作为⾼级Java开发⼈员,您必须知道如何执⾏货币计算,何时使⽤float,double或BigDecimal类,如何舍⼊浮点数等。即使您了解浮点算术的基础知识,也将学到⼀些有关浮点的新知识。通过阅读本⽂计算积分。
字符编码是另⼀个领域,许多程序员在其中奋⽃, “每个软件开发⼈员绝对绝对要完全了解Unicode和字符集(没有借⼝!)”的⽬标是填补这⼀空⽩。 另外,是的,那是该⽂章的完整标题。 它由statckoverflow的创始⼈之⼀Joel Spolsky编写。 Joel将近10年前就在⾃⼰的博客上写了这篇⽂章,但在当今世界仍然有意义。 本⽂将教您什么是Unicode,什么是字符编码 ,如何使⽤字节表⽰字符等等。 关于本⽂的最好的事情之⼀是语⾔和流程,即使您对Unicode⼀⽆所知,也可以轻松地遵循。 简⽽⾔之,所有程序员,编码⼈员和软件⼯程师都必须阅读⼀本。
除了字符编码外,时间和⽇期是另⼀个领域,包括我在内的许多程序员都在为此奋⽃。 即使是⾼级开发⼈员,也⽆法在格林尼治标准时间(GMT),UTC,⽇光节约时间和seconds秒之间损失。 坦率地说,要处理时区⽽不犯任何错误,然后增加⽇光节约量和效果,是不容易的。 如果使⽤试错法,问题将变得更加严重,因为这样做将永远⽆法解决您的问题。 有太多事情可能出错,并且存在相同数量的误解。 诸如⽇期是否包含时区之类的东西都会使您感到困惑,将UNIX时间转换为其他时区会使您感到迷惑,忘记时钟同步和延迟。 我希望您对时间的许多误解会消失,并且通过阅读这篇经典⽂章,您将对时间有基本的了解。
每个Web开发⼈员必须了解的URL编码bigdecimal格式化两位小数
本⽂介绍了有关统⼀资源定位器(URL)编码的常见误解,然后尝试在介绍常见问题及其解决⽅案之
前阐明HTTP的URL编码。 尽管本⽂不是针对任何编程语⾔的,但它说明了Java中的问题,并通过解释如何在Java和Web应⽤程序中的多个级别解决URL编码问题来结束本⽂。 您将学习URL语法的基础知识,HTTP和其他协议中的常规URL语法。 本⽂还探讨了URL的常见陷阱,例如字符编码,URL不同部分的保留字符以及URL编码/解码问题。 如果您是Java程序员,那么您还将学习如何以正确的⽅式处理Java应⽤程序中的URL。 如何构造URL和使⽤Apache Commons HTTP客户端库。 最后,它还建议了最佳做法或处理URL,例如,在构建URL时应对URL进⾏编码,以确保URL重写过滤器可以正确处理URL等等。 简⽽⾔之,任何Web开发⼈员和程序员都必须阅读的⽂章。
这是程序员堆栈交换中的⼀篇有趣的⽂章,内容涉及在⽹站公开之前,每个实现Web应⽤程序技术细节的程序员应该考虑什么。 其中包
括界⾯设计和⽤户体验 , 安全性 , Web标准 , 性能 , 搜索引擎优化(SEO) ,所涉及的技术以及⼀些重要资源。 由于当今世界极⼤地依赖于Internet和程序员拥有其个⼈站点,因此博客⾮常普遍。 从本⽂中学到的经验甚⾄对您的专业⼯作⽆济于事,对您的个⼈⼯作也⽆济于事。 您将了解所有关键技术,例如HTTP,HTML,XML,CSS,JavaScript,浏览器兼容性,减少⽹站加载时间的提⽰,XML站点地图,W3C规范以及其他⼀些关键细节。
每个程序员应了解的SEO知识
这是另⼀篇⽂章,对Web开发⼈员,程序员和博客作者⾮常重要。 SEO太⼤了,不容忽视,因为许多程序员也是博客作者,因此了解⼀些搜索引擎优化基础知识以帮助Google到其内容并呈现给其他程序员是很重要的。 由于在当今的互联世界中,没有公司⽆法⽣存,因此没有SEO变得更加重要。 如果您是⼀家初创公司,销售任何产品,那么SEO就是您要关⼼的事情。 所有程序员,特别是Web开发⼈员,都可以从本⽂中受益匪浅。 请记住,搜索引擎优化是⼀个⼴阔⽽⼜充满活⼒的主题,并且在不同的搜索引擎(例如Google,Yahoo等)之间也有所不同。 因此,为了精通此主题,您将始终需要更新知识。
每个C程序员应该了解的未定义⾏为#1/3
C编程语⾔具有“未定义⾏为”的概念。 未定义的⾏为是⼀个涉及很多细微差别的⼴泛话题,这就是为什么我喜欢Java,更少的未定义⾏为,更少的混乱,更多的稳定性和更多的和平的原因之⼀。 C语⾔中许多看似合理的东西实际上具有未定义的⾏为,这是程序中错误的常见来源。 除此之外,C中任何未定义的⾏为都会向实现(编译器和运⾏时)授予使⽤许可,以⽣成格式化硬盘的代码,执⾏完全意外的事情,甚⾄更糟。 阅读这篇出⾊的⽂章,深⼊研究不确定⾏为的海洋。
从⽂章本⾝“您是⼀名程序员。 您是否想过多⼈游戏如何运作? 从外部看,这似乎很神奇:两个或多个玩家在⽹络上共享⼀致的体验,就像他们实际存在于同⼀个虚拟世界中⼀样。 但是,作为程序员,
我们知道下⾯实际发⽣的情况与您所看到的情况⼤不相同。 事实证明,这全都是幻想。” 这是为游戏程序员撰写的有关⽹络的⾮常有趣的⽂章,但我认为每个程序员和开发⼈员都可以从中受益。
这是我关于java.lang.String的⽂章,也是我个⼈每个Java程序员都应该了解的内容。 在Java的⽇常编程中,字符串⾮常重要,这就是为什么任何Java开发⼈员都必须具备良好的知识。 本⽂涉及String的许多重要领域,包括字符串池,字符串⽂字,使⽤==与equals()⽐较String,将字节转换为String,为什么String是不可变的,正确连接String等等。 ⾼级程序员可能已经知道所有这些内容,但是即使如此,对它们进⾏修改也还是不错的。
这个问题是由StackOverFlow中的⼀名计算机编程学⽣提出的。 就像我们学习了很多有关通⽤编程概念的知识⼀样,例如操作系统,算法,数据结构,计算机体系结构以及其他内容,了解安全性也很重要。 尽管安全性是涵盖加密/解密,SSL,Web安全性,混淆,⾝份验证,授权等范围⼴泛的主题,但每个程序员都必须具备基本的基本知识。 我个⼈从职业⽣涯开始就对安全性了解不多,当我开始编写基于Servlet / JSP的Java Web应⽤程序时,我并不了解安全性,我对Web安全性以及诸如SQL注⼊ , 拒绝服务 , XML注⼊ , 跨站点脚本编写和其他。 作为Java开发⼈员,现在我遵循Fortify,PMP和其他静态代码分析提供程序提供的安全Java编码实践。 本⽂很好地收集了有关安全性的主题和链接,⽆论您是否进⾏编码,您⼀定会从此资源中受益。
每个程序员都应该知道的延迟数
这是奖⾦⽂章,但必须为每个程序员阅读。 为了⽤任何编程语⾔(例如Java或C ++)编写⾼性能应⽤程序,您都应该知道基本的延迟数,例如从内存,L1缓存,L2缓存,SSD随机读取和从磁盘。 锁定互斥锁解锁,将数据包从⼀个城市发送到另⼀座城市或在同⼀数据中⼼进⾏往返需要花费多少时间。 这些等待时间数量独⽴于任何编程语⾔和核⼼知识的⼀部分,开发⼈员必须编写⾼频低等待时间的应⽤程序。 关于此链接的好处是,它还可以为您提供这些年来这些等待时间数量如何演变的⽐较分析。 您可以看到这些延迟数字在2006年是多少,现在⼜是什么。
每个程序员必须阅读的⽂章清单 。 通过阅读每个程序员或开发⼈员应了解的⽂章标题,您将获得对特定主题的深⼊了解。 坦⽩以上就是每个程序员必须阅读的⽂章清单
地说,对于程序员来说,有太多东西要学,学习像Java这样的编程语⾔只是冰⼭⼀⾓,但不是我们许多⼈都对学习充满热情。 编程是⼀项艰巨的⼯作,只有对您整个职业都有帮助的事情才是基础知识,例如有关内存 , Unicode , 浮点数 , 时间 , 安全性的知识对于任何程序员⽽⾔都是⾮常重要的。 很少有什么是特定于编程语⾔的,例如我关于Java String的⽂章以及每个C程序员应了解的未定义⾏为的知识,但对于许多初学者和开发⼈员⽽⾔,它们仍然是好东西。
程序员⽂章
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论