程序员

排Bug技巧

放肆的年华 提交于 2019-11-29 07:00:58
排Bug技巧 什么是Bug? Bug 一词的英文原意是“臭虫”或“虫子”。但是现在,在电脑系统或游戏程序中,如果隐藏着的一些未被发现的缺陷或问题,可被人利用,人们也叫它 Bug ,也叫漏洞。 解决Bug方法 利用网络 把错误信息粘贴到 百度 、 Stack Overflow 、 Google 中搜索 重写 遇到BUG,去理清楚是什么导致的,去分析在哪儿改能成,都试过不行,重头写一遍 日积月累 把BUG分类,并把常见bug整理一套解决方案 请教大牛 谦卑的态度请教同事、网络技术论坛…… 程序员发现bug是一种怎样的感受 有三个程序员需要穿过一片田地,到达对岸的房子。 初级程序员看了一眼笑着说道:不远,只需要十分钟就行。 资深级程序员想了一下说道:我应该在一天内过去。”菜鸟程序员很惊讶。 大神程序员看了一眼田地,说:我觉得十五分钟应该够了,资深程序员冷笑了一声。 于是,初级程序员出发了,刚走了一步就碰到了地雷,只好返回再次尝试,最后,花费了一天的时间才过去,结果却是伤痕累累。 资深程序员一出发就匍匐前进,仔细地拍打地面,寻找地雷,只有在安全的时候才前进。他在一天的时间内小心谨慎地缓慢爬过了这片地,只触发了几个地雷。 大神程序员出发之后径直穿过了田地,十分果断。他只用了十分钟就到了另一边。 “你是怎么做到的?”另外两个人问道,“那些地雷怎么没有伤到你?” “很简单,”他回答道,

程序员的八种境界

蹲街弑〆低调 提交于 2019-11-29 06:52:30
在求职的时候,相信很多人都被问过这样的问题,“你对自己未来5年的职业规划是怎么样的?” 每当我被问起这个问题的时候,我的脑海里总是浮现出Twisted Sister乐队1984年拍摄的一段视频里的这个场景:一位老师对着他的学生大喊,“我想要你告诉我,不,是告诉全班同学,你究竟想要过怎样的生活?” 译者注:Twisted Sister是一支源自美国纽约的摇滚乐队,成立于1970年代早期。后来经过将近10年的奋斗,他们在80年代初取得了较大的突破。然而由于他们的叛逆形象和古怪行为,在他们最风光的时候,他们被美国政府看作是重金属毒害青少年的一个典型例子,于1988年被迫解散。 你自然会想:我要变得很牛!或者至少成为一个很牛的程序员。尽管这个问题看起来并不像其他一些同样老掉牙的问题那么严肃(比如,“你觉得你最大的弱点是什么?”),但很可能你还是觉得难以回答。也许有时候你表现得太牛了,不屑于回答这样的问题。但要小心了,你可能会惹恼别人。 在我看来,这个问题同样是一个相当严肃的问题,值得好好思考一番。不是为了应付面试官,而是为了你自己。 对于这个问题,大部分人都会选择一个不痛不痒的答案来敷衍面试官。但它也确实引出了一个更为深层次的问题:一个软件开发人员究竟该有怎样的职业生涯?当然,我们选择这一行是因为我们喜欢这行,并且幸运地得到了老天的眷顾,我们干上了这一行

程序员,你当的了吗?——读《高效能程序员的修炼》有感

人走茶凉 提交于 2019-11-29 06:52:25
在我读大学的年代,计算机专业火的不行。那时候从那个专业(包括其他相关专业,比如物理和电子)毕业出来的学生,很大的比例都当上了“程序员”。而很多公司会给它一个更加响亮的名字——软件工程师。多么有份儿的职位名称啊。尤其是里面的“工程师”更是给这个份工作平添了个又大又亮的光环。 当然,这都是别人眼里看到的。我们自己(由此可见,我也是其中一员),却管它叫“码农”。为啥?工程师多好听啊,为啥不叫。没办法,不是不想,是不够资格。软件工程师,你以为那么好当的啊! 我的老板前几天送了我一本书,《 高效能程序员的修炼 》。它的副标题说明了一切:软件开发远不只是写代码那么简单…… 想当程序员吗?想做软件开发吗?嗯,单单会写几行代码是远远不够的。(话说我们也真的很苦逼。会写代码已经很不容易了,这还不够。还要学那么多“乱七八糟”的其他东西才能配得上这个职位。) 翻开书,天哪,要学的还真不少呢。从心理学到团队管理,从人员招聘到用户体验,从团队协作到市场营销,从系统安全到代码测试,我们甚至还要去关心坐什么样的椅子,用多大的显示器。我只是想当个程序员啊。容易么! 不过话说回来,人总是要发展的。你愿意写一辈子Hello World吗?只有丰富了自己的经验,开拓了自己的视野,不但从代码的角度,更要从用户的角度去最求产品的完美,才能让自己得到升华,让自己的代码变成艺术。网络上有句话:我们不是程序猿

程序员如何保持身心健康,做到这几点,远离秃头。

旧街凉风 提交于 2019-11-29 06:50:18
程序员,一个在外人看来是高薪、前途无量的工作,但又有多少人清楚,有多少程序员是用自己的身心健康换来的这一看似华丽的褒赞。好吧,生活总是继续向前的,有问题就要积极地去解决,更何况是关乎自身的身心健康问题,如果一味的抱怨只会将自己推向另一个深渊。 以下是和身边的程序员谈论中总结出来的关于如何保持身心健康的几点建议,大家可以参考一下: 1、要学会走开 一般来说程序员大多有定力、做事有条理。我们不愿意承认失败,当不顺时我们也不愿走开。但当你已在一个问题上花费了太长时间的时候,最好的选择是走开,清醒头脑。出去走两步看看风景呼吸新鲜空气,等你平静下来(不再急躁)再回到办公桌上,效率会事半功倍。 2、在家少编程 工作一天了,回到家,继续打开电脑开启eclipse进行编程,我想这是很多程序员都喜欢干的事情。但是我的建议是,既然回家了,那就把代码放一边,做做饭,做做家务 ,然后看会电视,最好阅读点书籍。至于代码,可以等到明天。 3、少叫外卖,自己做 很多程序员中午习惯叫外卖,别人都去吃饭了,他还在那里继续编码,直至外卖送来,然后在电脑面前完成这顿仓促的午餐,这是一件多么悲催的事情。我的建议是,中午出去吃,但要吃的健康,KFC和麦当劳就不要了,你的健康本来就比人差了,再吃这个就说不过去了。 4、非技术的兴趣爱好 你不能只对电脑、对代码感兴趣,我们是一个社会人,应该具备社会人所应有的社交活动

公司开始抓考勤了,就算你是程序员也必须每天准点到!

只谈情不闲聊 提交于 2019-11-29 06:47:29
一个朋友今天和我说他们公司统计了上个月每个人的累积迟到时间,最高按照每分钟2块从工资里面扣钱。原因是去年来了一个新的行政总监,从今年初开始就一直嚷着说是为了解决员工拖拉散漫的问题,要抓迟到,抓早退,抓旷工。其实他们公司早退和旷工几乎是没有的,但是迟到的很多,一般是5-15分钟范围的最多。关于这个问题,朋友的观念是:“一家程序员为主的公司,开始抓迟到,其实是管理层不作为的表现。提高员工效率的途径那么多,而抓迟到是最解决不了本质问题的那一个。为什么管理层要选择这个呢?因为抓迟到太容易了,但是想出那些激励员工主观能动性,提高员工凝聚力和归属感的方法对他们来说太难了。” 我是比较赞同这个观念的。优秀的程序员往往都有自己的工作节奏,他们效率高的关键不是在每天的8小时范围内体现出来的,而是在8小时以外的自我修养和对技术的追求。我觉得那些喜欢抓迟到的管理层可以把这些年员工迟到的数据和年底绩效的数据对比对比,看看是不是绩效排名靠前的程序员都是准点到公司的。 迟到这个词,听上去感觉不好,但是也要分场合来看,比如类似程序员这种经常加班的职业,迟不迟到其实和程序员的效率没有什么太大的关系,换句话说,如果一个程序员的效率不高,那么你让他每天准点到公司,他的效率也不会高;如果一个程序员的效率很高,那么他就算每天不准点到公司,效率依然高。所以与其盯着程序员的迟到时长,管理层不如好好想想怎么提高他们的归属感

程序员如何顺利应对中年危机?

天涯浪子 提交于 2019-11-29 06:37:35
程序员中年危机的焦虑 说到程序员的“中年危机”,这四个字承载着太多焦虑,而焦虑的原因主要有以下三点: 1、上有老下有小、左有房贷右有车贷,职业选择经不起任性; 2、自己不断增长的期望和实现之间的差距越来越大; 3、行业从业者更加年轻化,互联网寒冬人才需求缩减,自己却一直停滞不前遭遇瓶颈。 时代成就了我们 很长一段时间,我都在想,这些年程序员收入确实不错,程序员因此一度被特别关注,其实深入思考你会发现,我们也只是运气还行,恰好赶上历史机遇了而已,说直白点,这是智能手机和移动互联网带来的行业爆发式增长的结果。 互联网万众创业创新的那几年”猪都能飞起来”。而2018互联网寒冬“猪掉下来摔死了”,互联网也将迎来又一次行业巨变、人才洗牌,下面详解: 越来越多的大学生加入程序员这个行业,计算机专业的学生数量及质量都不断上升。根据教育部的统计,2016 年有高校毕业生 765 万人,为历年最高;而与编程相关的专业毕业人数达到了总人数的 8% 以上,大家可以算一下。 互联网行业正处于波谷期,BATJ等一线大厂招聘需求缩减。BAT 等巨头企业 2017 年的校招需求数量均不足前两年巅峰时期的一半,与此相对的是对高级程序员、JAVA架构师、CTO等高端招聘的需求越来越旺盛。 以“概念产品”取胜追求快收割的创业公司倒闭了不少。 较难继续为基础研发的工程师提供稳定大量的岗位需求

并发编程:进程+线程+协程

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

JVM性能优化, Part 1 ―― JVM简介

浪子不回头ぞ 提交于 2019-11-29 05:27:05
众所周知,Java应用程序是运行在JVM上的,但是你对JVM有所了解么?作为这个系列文章的第一篇,本文将对经典Java虚拟机的运行机制做简单介绍,内容包括“一次编写,到处运行”的利弊、垃圾回收的基本原理、常用垃圾回收算法的示例和编译器优化等。后续的系列文章将会JVM性能优化的内容进行介绍,包括新一代JVM的设计思路,以及如何支持当今Java应用程序对高性能和高扩展性的要求。 如果你是一名程序员,那么毫无疑问,你肯定有过某种兴奋的感觉,就像是当一束灵感之光照亮了你思考方向,又像是神经元最终建立连接,又像是你解放思想开拓了新的局面。就我个人来说,我喜欢这种学习新知识的感觉。我在工作时就常常会有这种感觉,我的工作会涉及到一些JVM的相关技术,这着实令我兴奋,尤其是工作涉及到垃圾回收和JVM性能优化的时候。在这个系列中,我希望可以与你分享一些这方面的经验,希望你也会像我一样热爱JVM相关技术。 这个系列文章主要面向那些想要裂解JVM底层运行原理的Java程序员。文章立足于较高的层面展开讨论,内容涉及到垃圾回收和在不影响应用程序运行的情况下对安全快速的释放/分配内存。你将对JVM的核心模块有所了解:垃圾回收、GC算法、编译器行为,以及一些常用优化技巧。此外,还会讨论为什么对Java做基准测试(benchmark)是件很困难的事,并提供一些建议来帮助做基准测试。最后

好程序员web前端学习路线分享css模块化方案

我的梦境 提交于 2019-11-29 04:45:20
  好程序员web前端学习路线分享css模块化方案,这篇文章主要介绍了css模块化方案,css的模块化方案可能和js的一样多,下面简单介绍几种主要的模块方案,非常具有实用价值,需要的小伙伴可以参考下。 css的模块化方案可能和js的一样多,下面简单介绍几种主要的模块方案。 oocss 面对对象的规则,主要的原则是两种:分离结构和外观,分离容器和内容。 名词解释 1、分离结构和外观:增加可重复的设计单元,同时去推进产品和ui对这方面的思考,比如下面的css使用时对象模式的命名和模块化规则。 2、分离容器和内容:指的是样式的使用不以元素位置唯一匹配,在任何位置你都可以使用这个样式,如果你不适用这个样式,会保持默认的样式。 实例 // dom结构 <div class="toogle simple"> <div class="toogle-control open"> <div class="toogle-tittle">标题</div> </div> <div class="toogle-details "></div> </div> // 模块的标记 唯一标识 .toggle{ } // 皮肤样式的写法,如果基本结构是一样的,你可以用complex的一个辅助样式 .toggle.simple{ } // 是否做嵌套写法 相信很多预处理器的部分会支持嵌套 然后很多人会这样写,不被推荐的

程序员成长活动

泪湿孤枕 提交于 2019-11-29 04:11:21
毕业N年,每个人在能力跑道上,有了或大或小的差距。有些人一直在重复的劳动,有些人却能从中总结和解决问题。通过成长日活动,我们或许可以探讨下,怎样共同成长、共同前行,跟“勤奋战术掩盖下的战略懒惰”说个再见,使得知识点、技能点慢慢生长、连接,最终组成一张大网。 程序员的自我修养 我们的理念: 对程序员来说,精进代码(coding)和高效沟通(talking)同样重要 我们的目标和愿景: 1 分享技术点滴,沉淀知识和逻辑;结合LB业务,从细节开始提高大家的设计、编码质量。 2 从程序员视角出发,分享沟通技巧;结合过往的爱恨情仇,改善大家的表达、沟通能力: - 研发内部前后端沟通:增加对各自技术体系的理解,让前后端配合更流畅 - 研发和产品、测试沟通:增强自身产品、质量意识,让产品、测试更懂我们,我们也更懂他们… 我们的玩法: 1 两大主题的知识分享:代码+沟通,team成员根据既定主题主动贡献内容 2 分享的内容不仅仅限于“讲”,比如宣讲技术心得、复盘落地实践等;还可以包含“做”的内容:结合demo从0到1、 头脑风暴、编程马拉松…… 3 积分制:组织、参会、分享、积极反馈、竞赛胜出都会贡献不同比例的积分;积分兑换有惊喜~ 4 我们还会不定期邀请嘉宾现身说法,换一个视角或更高的维度,探讨程序员的成长之路 最后,不仅仅是程序员,对任何人来说,“成长”意味着不断的学习、实践