程序员

程序员修炼之道读后感(1)

帅比萌擦擦* 提交于 2019-11-30 16:23:26
  在老师的建议下我这个月开始空闲时间阅读《程序员修炼之道-从小工到专家》这本书,目前读完了第一章——注重实效的哲学。该章节主要讲述的是一些程序员该如何去思考,如何去完善一个程序,以及如何去修改自己的程序。   第一节名为我的源码被猫吃了 该章节主要讲述了人要为自己的所作所为负责,程序员也要为自己接受的任务负责,不管你是不是因为什么其他原因,导致代码交付晚了,或者说是交付完成后代码有漏洞,这些都需要你去负起自己的责任。当然当事情超出你的能力或者风险过大时你有权不去为之负责任,必须基于道德准则去承担自己的责任。有句话说的好:提供各种选择,不要找蹩脚的借口。当你负责的事情上出现纰漏时第一时间不是去为犯的错误找各种借口,而是该选择一种方式去弥补这个错误,承担起自己的责任。   下一节章节题目为 软件的熵;熵是一个物理学上的名词,指的是某个系统中“无序性”的总量。当无序性越大也就意味着程序越“腐烂”。因而我们必须去减小软件的熵。不要容忍破窗户,在此有一个破窗户的理论,一栋建筑的废弃往往是由第一扇破窗户的出现开始的。当破窗户出现后,人们开始对该建筑肆意乱涂乱画,丢弃垃圾,最终彻底废弃。而我们程序员要做到的就是不要让“破窗户”出现,我们可以通过给代码添加注释或用虚设的数据加以代替的方法来实现。当“破窗户”消失的时候,我们也会刻意的去维持,不让破窗户再次出现。  

TextRank提取关键词实现原理

泪湿孤枕 提交于 2019-11-30 14:32:17
TextRank是在Google的PageRank算法启发下,针对文本里的句子设计的权重算法,目标是自动摘要。它利用投票的原理,让每一个单词给它的邻居(术语称窗口)投赞成票,票的权重取决于自己的票数。这是一个“先有鸡还是先有蛋”的悖论,PageRank采用矩阵迭代收敛的方式解决了这个悖论。TextRank也不例外: PageRank的计算公式: TextRank的计算公式: 正规的TextRank公式在PageRank的公式的基础上,引入了边的权值的概念, 代表两个句子的相似度 。 但是很明显我只想计算关键字,如果把一个单词视为一个句子的话,那么所有句子(单词)构成的边的权重都是0(没有交集,没有相似性),所以分子分母的权值w约掉了,算法退化为PageRank。所以说,这里称关键字提取算法为PageRank也不为过。 Java实现 先看看测试数据 1234 程序员(英文Programmer)是从事程序开发、维护的专业人员。一般将程序员分为程序设计人员和程序编码人员,但两者的界限并不非常清楚,特别是在中国。软件从业人员分为初级程序员、高级程序员、系统分析员和项目经理四大类。 我取出了百度百科关于“程序员”的定义作为测试用例,很明显,这段定义的关键字应当是“程序员”并且“程序员”的得分应当最高。 首先对这句话分词,这里可以借助各种分词项目,比如HanLP分词,得出分词结果:

程序员该如何维护健康的人际关系?

余生颓废 提交于 2019-11-30 14:26:53
版权声明: 本文为北京尚学堂原创文章,未经允许不得转载。 我们都曾有过这种感受: 当你在文本编辑器中穿梭解决难题时,整个世界似乎都远去了。你不知道当前时间,也不会想着晚饭要吃些什么,全身心地投入在屏幕,或者说是难题上。 我从未吸过毒,但是我猜这应该就是吸毒的感觉。 这种感觉很容易上瘾,可以说是最容易上瘾的事物之一。这感觉并不像上瘾,只是感觉……很有成效。 确实,这样可以让你把事情做完,获得丰厚的薪水,但是代价是什么呢? 你的家人和朋友并不能体会这种乐趣。当你坐下来,敲写了几百行代码,对结果感到满意时,他们不会像你一样觉得满意。 作为程序员,找到工作和生活的平衡点可能有点困难。但是人际关系是幸福生活的关键之一,所以了解如何维持和发展人际关系至关重要。 聊聊你的工作 直面这个问题,和不太懂技术的人解释技术难题确实需要花费些精力。 当被问及整天在干嘛时,我发现自己通常都会说“你不懂”。但是现在我意识到,这很损害人际关系。 就像我之前说的,亲人朋友通常没有我们对编程和解决问题的那种热爱。但是他们很爱我们,这就是为什么前面他们会好奇我们的工作都干了什么。 如果你累了,没有心情工作,或者没有头绪了,至少试着和亲人朋友谈谈你的工作。他们会肯定你的付出,也可能会对你的问题有所帮助呢。更多精彩内容关注微信公众号:北京尚学堂。 定期社交/放空自己 如果想要更好的利用时间,不妨休息一下。众所周知

Python小小程序员,一语道破,Python编程效率的十个方法

半城伤御伤魂 提交于 2019-11-30 13:50:58
叙述 Python 是一个美丽的语言,可以激发用户对它的爱。所以如果你试图加入程序员行列,或者你有点厌倦C++,Perl,Java 和其他语言,我推荐你尝试Python. Python有很多吸引程序员的功能 ,它易学,面向对象,字节码编译,免费且开源。还有运行时检查。完整快速的支持,可以执行各种任务的扩展。 高效的Python 在这篇文章,我想强调一些 Python 可以节约时间并最大限度地提高生产力的方面。在做准备时,我咨询了几个 Pythonists,他们最节省时间的技巧是什么?答案在这里 1. 不使用分号 2. 找一个称手的代码编辑器 3. 遵循 Python 代码规范 遵循 Python 代码规范可以提升代码的可读性,从而节省评审代码的时间。 4. 使用 help() 函数 5. 使用库 Python 有大量的库可以让你不必每次都重复造轮子。 它使图像处理任务如模糊,增强对比度,缩放只需要一些函数调用就可以完成。 6. 使用Cookiecutter命令行工具 可以帮助你从工程模板创建 Python 工程,这可以节省大量的时间。 7. 严格的注释 养成写注释的好习惯,可以节省你和其他人的时间,尤其是作调试跟踪。 注释在团队合作是非常关键,尤其是一个做了大量变更。 8. 经常测试 9. 专注和专业 Pythonists 都建议要有一个专注领域和专长。你可以使用 Python

分享一首小诗--《致程序员》

橙三吉。 提交于 2019-11-30 11:58:49
十年生死两茫茫,写程序,到天亮。 千行代码,Bug何处藏。 纵使上线又怎样,朝令改,夕断肠。 领导每天新想法,天天改,日日忙。 相顾无言,惟有泪千行。 每晚灯火阑珊处,程序员,又加班,工作狂~ 来源: https://blog.csdn.net/u011265001/article/details/101350424

给年轻程序员们的10点启示

半世苍凉 提交于 2019-11-30 11:09:31
最近,陆续在51CTO和CSDN上看到好几篇写程序员如何成长,如何拿到高薪的文章。文章都很不错,一些观点也很实用,但整片文章读下来,我总觉得意犹未尽,感觉还应该再给年轻的程序员们说些什么似的。 我其实离开正式的程序员岗位(当时我是一名架构师)已经快3年了,现在我仍然在业余时间做一些感兴趣的开源或个人项目。但我发现恰恰是最近几年,让我能够从不同的角度和视野,对程序员这个职业有了更深入的理解和认识。当我成为一名IT管理者,我从更多的程序员的身上看到他们身上的一些特质对其职业生涯所产生的影响;当我开始自学设计,我从一些设计大师们那里得到很多极具启发性的观点,发现这些观点对那些程序员同样具有很大的价值;而当我开始写作时,每一篇文章过后与年轻程序员读者们进行交流的过程中,我的想法和观点又得到了进一步的完善和提升。 因此,我迫不及待地将这些记录下来,希望从一些不同的角度给予年轻程序员朋友们一些启发: 1. 正确地认识自己 我听到过很多用来形容程序员的网络词汇,码农,程序猿,软件工程师,张江男,屌丝程序员等等。其中大部分都略带贬义,有些甚至是程序员们自己发明出来用于自嘲的。其实这些称呼对你来说并不重要,关键是你自己内心中用了哪一个词汇来描述自己。当你仅仅将自己定位成一个码农,那你可能就是那个整天用着相同的工具,写着相似代码的码农;你把自己看作是一个屌丝程序员的话,那你也可能就是那个衣食不愁

递归函数

不想你离开。 提交于 2019-11-30 10:47:35
程序函数递归原理讲解 一、在说函数递归的时候,顺便说一下栈的概念。 栈是一个后进先出的压入(push)和弹出(pop)式数据结构。在程序运行时,系统每次向栈中压入一个对象,然后栈指针向下移动一个位置。当系统从栈中弹出一个对象时,最近进栈的对象将被弹出。然后栈指针向上移动一个位置。程序员经常利用栈这种数据结构来处理那些最适合用后进先出逻辑来描述的编程问题。这里讨论的程序中的栈在每个程序中都是存在的,它不需要程序员编写代码去维护,而是由运行是系统自动处理。所谓的系统自动维护,实际上就是编译器所产生的程序代码。尽管在源代码中看不到它们,但程序员应该对此有所了解。 再来看看程序中的栈是如何工作的。当一个函数(调用者)调用另一个函数(被调用者)时,运行时系统将把调用者的所有实参和返回地址压入到栈中,栈指针将移到合适的位置来容纳这些数据。最后进栈的是调用者的返回地址。当被调用者开始执行时,系统把被调用者的自变量压入到栈中,并把栈指针再向下移,以保证有足够的空间存储被调用者声明的所有自变量。当调用者把实参压入栈后,被调用者就在栈中以自变量的形式建立了形参。被调用者内部的其他自变量也是存放在栈中的。由于这些进栈操作,栈指针已经移动所有这些局部变量之下。但是被调用者记录了它刚开始执行时的初始栈指针,以他为参考,用正或负的偏移值来访问栈中的变量。当被调用者准备返回时,系统弹出栈中所有的自变量

中国头号程序员,独自12万2000行代码,雷军成“迷妹”!

不打扰是莪最后的温柔 提交于 2019-11-30 10:47:12
中国第一程序员 今天小七给大家介绍一位程序员,他可了不得,因为他是中国头号程序员,是万千程序员的偶像!他就是求伯君! 他从出生就是个传奇,3岁就会背诵九九乘法表,5岁围棋就已经达到业余五段水平。之后,他更是被誉为国内办公软件第一人、WPS的缔造者!天才可能从小就有表现了,就是不知道他的智商有多高。 雷军是他的“头号迷妹” 2018年底,金山软件举办创业三十年庆典,三位创始人,求伯君、雷军和张旋龙到场,庆典中,雷军与求伯君深情相拥,两个中年男人因此落泪。 次日,雷军感慨道:“三十年的岁月年华,三十年的兄弟情谊,刹那间涌上心头。人生能有几个三十年,人生又能有几个这样的战友?” 大家以为这就完了?其实才刚刚开始!2000年,求伯君随便在中关村招呼一声,就会立马围过来成百上千人,其中雷军更是其“头号迷妹"。当时25岁的求伯君,凭借一己之力就开发出了中国初代WPS,是全栈程序员的鼻祖。 当年office进入中国的时候,希望WPS能够兼容他们的文件格式,还给出了75万美元的天价,但被他果断拒绝,只为了打造出独一无二的民族品牌,今天,他们成功了! 独立写出12万2000行代码 一人写出12万2000行代码,差点因此丧命! 从1988年5月开始,求伯君把自己关在深圳一家酒店的房间里,夜以继日写代码!要知道,求伯君有肝病,医生警告他如果继续这样下去会死。但求伯君不听,他的肝炎因此复发过3次

Python并发编程

╄→гoц情女王★ 提交于 2019-11-30 10:19:38
一.操作系统 1.简介 现代计算机系统是由一个或者多个处理器,主存,磁盘,打印机,键盘,鼠标显示器,网络接口以及各种其他输入输出设备组成的复杂系统,每位程序员不可能掌握所有系统实现的细节,并且管理优化这些部件是一件挑战性极强的工作。所以,我们需要为计算机安装一层软件,成为操作系统,任务就是用户程序提供一个简单清晰的计算机模型,并管理以上所有设备。 定义也就有了:操作系统是一个用来协调、管理和控制计算机硬件和软件资源的系统程序,它位于硬件和应用程序之间。(程序是运行在系统上的具有某种功能的软件,比如说浏览器,音乐播放器等。) 操作系统的内核的定义:操作系统的内核是一个管理和控制程序,负责管理计算机的所有物理资源,其中包括:文件系统、内存管理、设备管理和进程管理。 2.操作系统历史 2.1 真空管与穿孔卡片(无操作系统) 过程: 万能程序员们将对应于程序和数据的已穿孔的纸带(或卡片)装入输入机,然后启动输入机把程序和数据输入计算机内存,接着通过控制台开关启动程序针对数据运行;计算完毕,打印机输出计算结果;用户取走结果并卸下纸带(或卡片)后,才让下一个用户上机。 注意点: 1 程序员需要在墙上的计时表上预约时间 2 同一时刻只有一个程序在内存中被CPU调用运行(串行的) 优缺点: 优点:程序员在申请的时间段内独享整个资源,即时的调试自己的程序,如果有bug可以当场处理, 缺点

打造你自己的程序员品牌

纵然是瞬间 提交于 2019-11-30 09:28:01
John Sonmez是Simple Programmer的创始人、作者与程序员,关注于如何让复杂的事情变得简单。他是一位专业的软件开发者、架构师与讲师,感兴趣的领域包括测试驱动开发、如何编写整洁的代码、敏捷方法学等。John坚信可以通过简单的方式来解决复杂的问题、大多数优雅的解决方案都是很简单的。近日,John撰写了一篇文章,谈到了如何打造程序员自己的品牌,在社区中引起了不小的反响。 你的职业是一位软件开发者,但这并不意味着你不用关注于品牌问题。事实上,如果你想让自己的职业生涯更上一层楼,那么你需要通过打造自己的个人品牌来积极地对其进行梳理。 本文将会帮助你打造属于自己的个人品牌,不过首先我需要对品牌的构成进行一个总体的介绍(品牌并不仅仅只是个Logo)。我还会介绍如何通过定义你的职业来打造出一个高效的个人品牌。最后,本文将会介绍打造你自己的个人品牌所要做的4件事。 何为品牌? 在打造自己的个人品牌前,我们需要清楚品牌到底是什么。大多数人都觉得品牌就是个Logo而已。虽然很多品牌都有Logo,不过品牌却并非仅仅是Logo而已。Logo只不过是品牌的一个小小的构成元素之一。品牌其实是一种承诺。品牌都与期望相关。在打造品牌时,你实际上是在构建关于你和你的公司的一些期望,你承诺要兑现这些期望。想想诸如星巴克这样的流行品牌吧。你觉得星巴克这个品牌所做出的承诺是什么?当你走进星巴克时