程序员

给年轻程序员的建议

蓝咒 提交于 2020-03-15 23:47:15
本文是从 Advice to young programmers 这篇文章翻译而来。   偶尔的,我会被人问道:如何成为一名优秀的程序员,更或者,如何成为一名程序员。每次人们问起,我都力图给出不同的答案。因此,我的答案是各种各样的。下面就是我认为的成为一名优秀的程序员需要做的一些事情。记住,想成为一名程序员,很多条路可走,这里列出的只是我的方法。   1. 解决你自己的问题 —   从外面获取答案和自己解决问题、找到答案,这两种方式是有区别的。当你自己解决一个问题时,你不仅解决了这一个问题,也意味着解决了跟它类似的数百万问题。这是一个先投资后收获的过程。有时,你可能需要花2到3天的时间解决一个问题,这没什么;这是你的前期投资。   2. 从做小程序开始 —   我说的小程序,是指100行左右的。目前为止, 《Java程序设计教程实验手册(Deitel and Deitel)》 这本书是我见过的最好的编程书。从第一章到第十章,里面的所有习题都做一遍。当你做完了这些,你就对编程有了相当的掌握了。   3. 仿造软件 —   找一个你喜欢的网站或游戏,把它仿造出来。在你真正的想做一件项目前,先做完这个。这个能促使你学到前沿的编程技术,而且能让你更容易的被招聘公司选中。做3-5个这样的仿制项目后,你就能实现任意的你想要的东西了。   4. 每个项目都要学到新东西 —  

给年轻程序员的建议

妖精的绣舞 提交于 2020-03-15 23:46:50
偶尔的,我会被人问道:如何成为一名优秀的程序员,更或者,如何成为一名程序员。每次人们问起,我都力图给出不同的答案。因此,我的答案是各种各样的。下面就是我认为的成为一名优秀的程序员需要做的一些事情。记住,想成为一名程序员,很多条路可走,这里列出的只是我的方法。 1. 解决你自己的问题 — 从外面获取答案和自己解决问题、找到答案,这两种方式是有区别的。当你自己解决一个问题时,你不仅解决了这一个问题,也意味着解决了跟它类似的数百万问题。这是一个先投资后收获的过程。有时,你可能需要花2到3天的时间解决一个问题,这没什么;这是你的前期投资。 2. 从做小程序开始 — 我说的小程序,是指100行左右的。目前为止, 《Java程序设计教程实验手册(Deitel and Deitel)》 这本书是我见过的最好的编程书。从第一章到第十章,里面的所有习题都做一遍。当你做完了这些,你就对编程有了相当的掌握了。 3. 仿造软件 — 找一个你喜欢的网站或游戏,把它仿造出来。在你真正的想做一件项目前,先做完这个。这个能促使你学到前沿的编程技术,而且能让你更容易的被招聘公司选中。做3-5个这样的仿制项目后,你就能实现任意的你想要的东西了。 4. 每个项目都要学到新东西 — 每次项目都努力使用一些听到过但从未使用过的新东西。没有使用过Jquery,那下次项目中就使用它;没有试过测试驱动开发,下次项目就是你的实验品

给年轻程序员的建议

百般思念 提交于 2020-03-15 23:46:03
本文是从 Advice to young programmers 这篇文章翻译而来。   偶尔的,我会被人问道:如何成为一名优秀的程序员,更或者,如何成为一名程序员。每次人们问起,我都力图给出不同的答案。因此,我的答案是各种各样的。下面就是我认为的成为一名优秀的程序员需要做的一些事情。记住,想成为一名程序员,很多条路可走,这里列出的只是我的方法。   1. 解决你自己的问题 —   从外面获取答案和自己解决问题、找到答案,这两种方式是有区别的。当你自己解决一个问题时,你不仅解决了这一个问题,也意味着解决了跟它类似的数百万问题。这是一个先投资后收获的过程。有时,你可能需要花2到3天的时间解决一个问题,这没什么;这是你的前期投资。   2. 从做小程序开始 —   我说的小程序,是指100行左右的。目前为止, 《Java程序设计教程实验手册(Deitel and Deitel)》 这本书是我见过的最好的编程书。从第一章到第十章,里面的所有习题都做一遍。当你做完了这些,你就对编程有了相当的掌握了。   3. 仿造软件 —   找一个你喜欢的网站或游戏,把它仿造出来。在你真正的想做一件项目前,先做完这个。这个能促使你学到前沿的编程技术,而且能让你更容易的被招聘公司选中。做3-5个这样的仿制项目后,你就能实现任意的你想要的东西了。   4. 每个项目都要学到新东西 —  

程序员之歌

牧云@^-^@ 提交于 2020-03-14 16:24:33
产品说今天要加个需求一点点 设计师又要打开ps画画画半天 程序员们又要加班加到10点半 冷却了女朋友做的爱心晚餐 回家路上微风拂过不再青涩的脸 仿佛看到那个可以 触碰的明天 所有需求的争论早都已烟消云散 明天的明天都因我们不再遥远 来吧开发完测试完部署完今晚就上线 来吧让用户体验感觉像是逛游乐园 搞完了周末就撸串 一撸撸到凌晨3点 蹦蹦恰恰嘻嘻哈哈老子明天不上班 我们都是一群苦逼又欢乐的程序员 每天对着23寸的屏幕敲打着明天 代码撸着撸着撸到G点 再难的bug都能解决 我们努力让这世界在改变 回家路上微风 拂过不再青涩的脸 仿佛看到那个可以触碰的明天 所有需求的争论早都已烟消云散 明天的明天都因我们而不再遥远 来吧开发完测试完部署完今晚就上线 来吧让用户体验感觉像是逛游乐园 搞完了周末就撸串 一撸撸到凌晨3点 蹦蹦恰恰嘻嘻哈哈老子明天不上班 我们都是一群苦逼又欢乐的程序员 每天对着23寸的屏幕敲打着明天 代码撸着撸着撸到G点 再难的bug都能解决 我们努力让这世界在改变 你会看到这世界在改变 欢迎关注微信公众号【Java典籍】,收看更多Java技术干货!    ▼长按下图↓↓↓二维码识别关注    来源: https://www.cnblogs.com/bingyimeiling/p/10247202.html

程序员面试金典-面试题 16.06. 最小差

流过昼夜 提交于 2020-03-14 15:24:05
题目: 给定两个整数数组a和b,计算具有最小差绝对值的一对数值(每个数组中取一个值),并返回该对数值的差 示例: 输入:{1, 3, 15, 11, 2}, {23, 127, 235, 19, 8} 输出: 3,即数值对(11, 8) 提示: 1 <= a.length, b.length <= 100000 -2147483648 <= a[i], b[i] <= 2147483647 正确结果在区间[-2147483648, 2147483647]内 分析: 现将两个数组排序,然后双指针从两个数组的头部向后扫描,哪个指针指向的元素小,该指针就向后移动。注意溢出的问题。 程序: class Solution { public int smallestDifference(int[] a, int[] b) { Arrays.sort(a); Arrays.sort(b); int i = 0, j = 0; int res = Integer.MAX_VALUE; while(i < a.length && j < b.length){ res = (int)Math.min(res, Math.abs((long)a[i] - (long)b[j])); if(a[i] < b[j]) i++; else j++; } return res; } } 来源: https:/

梦断代码阅读笔记03

谁都会走 提交于 2020-03-14 15:13:46
近期阅读《梦断代码》了四、五、六、七章,现在我把我的感想公之于众,在我的感想之前,先要把它的主要思想阐述一番: 第四章内容的标题是乐高王国,讲述了在大量程序员失业或半待业的技术工业冰河时代,OSAF获益匪浅,很多人投入到Chandler项目中, 了解到了软件开发者常常谈及的前台和后台的概念,前台是程序中和用户打交道的部分——显示窗体对话框和鼠标指示,告诉你正在发生什么,让你有办法输入信息 并得到输出信息。后台是前台发生的事件和用户输入流向的地方,计算机对事件和输入进行处理,保存,取回。前台应该精致,直观,功能强大,后台应该隐形,高 效,如磐石般坚固。然而Chandler后台工作陷入了困境。对资料库的最主要需求是方便前端开发者,而前端开发者需要一种“对象持久化”的机制。实现 “对象持久化”最简单的手段就是采用对象数据库,对象数据库把一段代码和与之相关的数据打包储存。接下来就是完善Chandler项目,引出了ZODB, 从而提出了乐高这个词:新西兰学者詹姆斯.诺博尔和罗伯特.毕多有时用“后现代程序员”的笔名共同写作,他们把这个梦想叫做“乐高假设”。经过所有程序员 的努力Chandler完成了第一版。 第五章内容的标题是管束奇客和狗,开头写到了名叫Chandler的狗,接着映出了管束狗和程序项目的相似性,看到OSAF在狗身上抹上跳蚤 粉,然后贴上标签说:正在要杀跳蚤——别碰我

php和java的一些比较

你离开我真会死。 提交于 2020-03-14 11:03:52
现在市场上的电子商务软件基本上可归结为两大阵营,即PHP阵营和Java阵营。但对接触电子商务不久的用户来说,看到的往往只是它们的表相,只是明显的价格差异,却很难看出它们之间的实际差异。其实,PHP+ MySQL高效的开发、品质优良的特性,已经让风靡大学校园的Java变的越来越难堪。而作为PHP+ MySQL为什么在历史的进程中,后来居上,独领风骚呢?为什么基于Java架构的的电子商务除了高额的开发成本,而变的前途暗淡呢?首先得明白PHP和Java之间的差异才行。 1、 出身 Java本来的设计初衷是为了家用消费电子产品开发一个分布式代码系统。 PHP就是为了互联网的应用而生的。   2、系统的技术架构比较 分层是将系统进行有效组织的方式,分而治之的思想是计算机领域中非常重要的思想。在好的分层思想引导下,便能实现“高内聚、低耦合”,也能将具体的问题割 裂开来,易于控制、易于延展,更易于分配资源。从PHP5版本之后,PHP对于系统架构方面也有了质的飞跃。ShopNC 采用PHP语言开发,可以完美的实现多层架构分布。运用MVC的设计模式,可使电子商务软件具有更加高效、合理的系统架构。使得系统在可拓展性、需求应变性上与Java编写的电子商务软件系统的毫不逊色。 Gutmans 在前年发表过一篇文章,其中也阐述了多核环境中多线程(JVM)与多进程(LAMP)的比较

如何设计分层架构和交互接口 API ?

[亡魂溺海] 提交于 2020-03-14 09:12:20
架构设计流程 在「 如何建立架构师的立体化思维? 」这篇文章中, 老兵哥 跟大家一起聊到架构设计涉及业务、技术、系统和时间等几个维度,也知道从技术维度可以将应用分成七层,那具体怎么做呢?今天我们继续来聊聊分层架构的设计流程,以及接口设计方法等内容。通常,我们可以将分层架构的设计流程分解为下列 4 个步骤: 第一步,结合现实情况,将系统划分成多个层次。 第二步,确定层与层之间的关系,梳理出层与层之间的交互接口。 第三步,将功能相近的接口划归到一个模块,确保模块高内聚,对外低耦合。 第四步,在此基础上进一步明晰接口的参数列表。 仅仅四个步骤就完成了架构设计吗?这会不会太简单空洞了呢?各位看官,不要着急,请听蔡老师慢慢道来,每个步骤都有极具可操作性的方法及工具。 图 5 架构设计流程 层次的切分方法 面对一个庞然大物,你该如何下手呢?不用担心,这已经给你准备了庖丁解牛的方法,轻轻松松把一个复杂的大系统变得可以掌控了。 第一刀: 按照这套方法论来进行架构设计,最理想的情况是将 X 轴切分成七层。而第一刀应该先切在业务和领域之间,即通过 API 把两边解耦。交互和业务跟用户关联度高,经常随需求变化而改动,而领域和资源相对比较稳定。 第二刀: 考虑到要完成某些业务功能,系统可能需要调用外部系统协同完成,为了保证领域层相对稳定,我们需要隔离外部系统或数据持久层变化带来的影响

C++程序员学习历程

自作多情 提交于 2020-03-14 04:30:57
1、 《 C程序设计语言(第2版) 》 2、 《 Essential C++中文版》非常适合初学,一个礼拜就可以看完,看了它可以快速对C++的全貌有个了解,虽然不会马上熟练掌握C++ 3、 《数据结构算法与应用C++语言描述》是本好书,它提供了很多实际的例子,比如火车站调度、走迷宫,相比于“百钱买百鸡”这种问题又提高了一个层次 4、 接下来专心提高C++的水平,可以选择《 C++编程思想 》 5、 再看《 Effective C++中文版 2nd Edition 》和《 More Effective C++中文版》,这两本书介绍了高效使用C++的宝贵经验,语言很幽默 下面介绍几本书,有兴趣的朋友可以选读。如果想高效地使用C++开发软件,STL一定要学!《 C++标准程序库—自修教程与参考手册》可以帮你学会STL的使用,而且开发时可以拿它做手册,有了前面数据结构的基础,学习STL的使用不会遇到什么困难。如果你还想知道STL的设计思想及原理,不妨看看《泛型编程与STL 》。有些朋友可能会问,C++的面向对象机制是怎么实现的?《深度探索C++对象模型》给了你答案,它剖析了C++底层的实现。最后,如果想有一本C++大百科全书,那非《 C++程序设计语言(特别版) 》莫属!这本书是C++之父Bjarne Stroustrup的大作,算是书中权威。 世界上并没有成为高手的捷径

什么是SQL注入及SQL注入工具

风流意气都作罢 提交于 2020-03-14 04:26:56
随着B/S模式应用开发的发展,使用这种模式编写应用程序的程序员也越来越多。但是由于这个行业的入门门槛不高,程序员的水平及经验也参差不齐,相当大一部分程序员在编写代码的时候,没有对用户输入数据的合法性进行判断,使应用程序存在安全隐患。用户可以提交一段数据库查询代码,根据程序返回的结果,获得某些他想得知的数据,这就是所谓的SQL Injection,即SQL注入。 SQL注入是从正常的WWW端口访问,而且表面看起来跟一般的Web页面访问没什么区别,所以目前市面的防火墙都不会对SQL注入发出警报,如果管理员没查看IIS日志的习惯,可能被入侵很长时间都不会发觉。 但是,SQL注入的手法相当灵活,在注入的时候会碰到很多意外的情况。能不能根据具体情况进行分析,构造巧妙的SQL语句,从而成功获取想要的数据,是高手与“菜鸟”的根本区别。 根据国情,国内的网站用ASP+Access或SQLServer的占70%以上,PHP+MySQ占L20%,其他的不足10%。在本文,我们从分入门、进阶至高级讲解一下ASP注入的方法及技巧,PHP注入的文章由NB联盟的另一位朋友zwell撰写,希望对安全工作者和程序员都有用处。了解ASP注入的朋友也请不要跳过入门篇,因为部分人对注入的基本判断方法还存在误区。大家准备好了吗?Let's Go... 入 门 篇 如果你以前没试过SQL注入的话,那么第一步先把IE菜单=