知乎程序猿武侠小说
㈠ 怎么写出一本程序员风格的修真小说
知乎上不是有这个问题,帮你转一篇
终有一天我手中的编译器将成为我灵魂的一部分,这世界在我的眼中将被代码重构,我将看到山川无尽银河无垠都汇成二进制的数字河流,过往英雄都在我脑海眼前一一浮现,而我听到无数码农跪倒在我的程序面前呼喊。
他们叫我代码之神。
到那个时候,我想我一定可以找回你。
一丶
这是一个属于代码的修真世界。
这世界里的每一个人,每一个东西,包括高山大海,刀剑风云,其本质都是一串数字流。
打个比方,如果你知道一块石头的内部数据结构,并且参透其中玄妙,你就能用程序改变它的一切。如果能参透自身这一个复杂的操作系统,就能重新编码自己,获得更大的能力。
所以你的程序水平的高低,决定了你的牛逼程度。
我们这些修真者,都叫程序员。
有人的地方,就有江湖。有江湖的地方,就有代码。
刚入门的时候,师傅跟我说,我们程序员修的,是一份境界。短短几句的代码里,要有最完美的逻辑,跟最精妙的算法。这本《算法导论》,你暂且拿去研修。
我们程序员,外修语言,内修算法。以数据为根,算天算地算自己。
听起来真的好酷。
但这个江湖,并不平静。几大门派,上有微软谷歌,下至网络阿里,每个门派风格迥异,暗地里都有无数摩擦。
师傅说,我们知乎派,理论见长。三大软狗、哦不,三大软神坐镇,还有无数默默搬砖的程序员,如今也算在乱世立稳了脚跟。
师傅还说,江湖虽乱,但我们修真之人,说到底还是要修自身,恩恩怨怨都是过眼云烟,自身境界才是万源之本。
我点了点头。
师傅又拍了拍我的小脑瓜,慈祥一笑。他说,如果下次天涯派那群人还过来闹事,我们一定要秉承我们的自身理念来处理他们。
我知道了,我回师傅道,我跟刘看山一定会好言相劝,么么他们个哒哒。
不。师傅转身过来,鹰眼之中精光毕露,胡须颤动的嘴唇之中,一个字一个字地吐出来。
灰飞烟灭,一个不留。
二丶
自我开始修真起,我练的便是C++的功夫。
虽然大师兄跟我说过,不管你学的事什么语言,都是殊途同归。我们修真之人,都不要在乎这些差别,要参透的是程序的本质。
然后他又说,不过,用Java的都是傻逼。
大师兄跟我一样,C++的功底深厚,面向对象的各种技能用的精通,只是可惜,他还没有对象。
我永远忘不了那一天,我们知乎派的山门被一众凶恶之徒所踏破,山石飞舞,浮尘弥漫,门派服务器都暂停运行。
大师兄坐在大殿房顶之上,喝一壶陈年的竹叶青。姿势潇洒,闷骚至极。
是他们,谁都知道,天涯派不止一次来闹事。
我从来没见过大师兄出过手。
天涯派的来人,在烟尘之中现出数个魁梧身影,还夹带了一声大笑和开场白:
哈哈哈哈哈哈哈,知乎派,hello world!
大师兄的眼皮都没有眨一下。
他的右手之上字符串环流浮现,左手抬起酒壶一饮而尽,右手对着虚空就是一指,那一串字符都消散在空气之中。
刹那间风云突变,一阵狂风似有形一般,沿着大师兄所指方向似一条狂龙横冲了过去,一个照面便将几个大汉吹得撞出山门之外,摔了个七荤八素。
那一霎我屏住呼吸。
大师兄整了整风中凌乱的发型,说,这就叫快速傅里叶变换,将风压重新编码,所到之处,寸草不生。你们都还在解码自己,我已经开始操纵世界——天涯跟知乎,就是在这里的差距,懂?
都他妈的给老子滚。
从那一刻开始,我才知道,有些人已经可以编码这个世界本身。
这才是叫修真。
三丶
在知乎里修行了十年,师傅说我可以下山了。
我已经熟知C++的基本技能,但师傅告诫我千万不要说自己精通C++。他说,这世界上,没有人可以说,他已经精通C++,所以即算你装逼的时候,也要装得像个样子。比如,你可以说你精通java。
我点头称是。
这十年来,我每日苦读《算法导论》和《C++ primer》,精通数据库原理跟操作系统,同龄人之中无人是我敌手,自认为天下哪里都可去得。
是为年轻气盛,是为势不可挡。
我下山之后,连连在江湖之中,将一些有一点点小名气的程序员斩于马下。
他们之中,有些是根基不稳,有些是反应迟钝,有些是冥顽不灵,有些是莽撞愚蠢。
当然,我现在说起来是云淡风轻,那是因为我在装逼。其实也经过了一番苦战,有过一些辛酸。终于有一天,我将天下程序员排行榜第一千位的马特给击败,成功登上天下程序员排行榜。
马特这个程序员,有一些狡猾。他占据第一千位,已经很久没有变过。他精通计算机图形学,经常使用一些幻境击败对手。他比他上面几位更加难缠,所以通常没有人会去挑战他。因为你赢了他,也只能到第一千位,还不如去挑战他上面的更划算一些。
可惜他遇到了我,因为我比他,更精通计算机图形学。
于是这也成为一个不大不小的消息,在江湖里传播,从此我有了一个外号,他们叫我杀马特。
俗话说树大招风,人不能太出名。
有一天看到一个酒馆,我走进去,一个风情万种的女人转过来,她问我,客官,你要喝点什么嘛?
我说,三两竹叶青。
正当我在喝酒的时候,来了一群穿着黑衣的程序员。
这群人,个个怪异,但水平很高。
江湖之中,穿黑衣的程序员,都叫黑客。
来者不善。
他们将我围起来,为首的一人说,他们是做安全的。
我心中陡然一惊。因为我看到了他们衣服里藏着的,三百六十度的环形刀刃。
一百年前,有一个叫奇虎的门派。他们每个人,都有一把神秘的三百六十度的环形刀刃,所以也叫奇虎三六零。他们声称他们的存在,是为了防止世界被破坏,为了保护世界的和平,是为了贯彻爱与真实的勇敢,他们是穿梭在江湖中的三六零。但他们却暗中做了无数秘密勾当,后来江湖人人称之魔教,BAT三大派跟一些其他门派联手围上光明顶,将其灭门。
当然,我们知乎派,也在之中出了不少的力量。
我皱眉喝酒,问他们所为何事。
那为首一人,拿过我的酒壶,仰头一灌。最后一滴酒在壶中滴落之时,无数环形刀刃在我身边出现,他的手中也倏地出现一把,朝我迎面砍来。
竟是偷袭。
刀刃之上闪过的代码我毕生未见,锋利无比,威力惊人。
我虽鼓动全身能量,瞬间编译,但也感觉凶多吉少。
这电光火石一瞬间,只听得铛地一声,数把环形刀刃通通弹落一边,那些黑衣怪人通通倒地。
我靠,我有这么强?
只听得酒馆二楼悠悠传来一个女声。要打去别的地方打吧,进来酒钱都没付,还要打我的客人,这是何理?
原来是酒馆的女老板。
她从二楼飘飘而落,将我身边灰尘一扫而空,朱唇轻启,哎呀,吓到小哥你了,真是对不起。
我以前听师傅说,对于程序员,只有两种东西是天敌。一种是御姐,一种是萝莉。我说我不信。
我现在信了。
四丶
女老板说,可以叫她结衣。
她问我叫什么,我嘟哝了半天,我说我叫杀马特。
结衣说哈哈哈哈哈哈哈你真可爱。
我说结衣,你怎么会这么强。
她说你不懂,我一个弱女子,不懂点编程之术,在这江湖里怎么开酒馆嘛。
我说结衣,你怎么这么好看。
结衣不说话了。
结衣说,你这个小流氓。
我说结衣,师傅说,我们程序员只有两种天敌,一叫御姐,二是萝莉,你是哪一种?
结衣说,我都不是。
我说,哦。其实我心里想着的,是你都是。
结衣,你跟我一起闯荡江湖去好不好?
不好,你还没我强。
哦。那等我比你强了,我们一起去闯荡江湖好不好?
结衣笑了一下说,不好。
于是我就住在了酒馆里。
因为我可能,爱上了这个女人。
我杀马特曾经以为,我这一辈子就只能爱上一个女人。后来我才知道,这世间有万千代码,万物都可编译,但你编译不了的,是自己的心。
结衣是一个看上去很好强,八面玲珑的女人。她的编程水平,比那些排行榜上五百位之后的怂蛋,不知道高到哪里去了,但是她却在这里经营一个小酒馆。
我曾经问过为什么,但是结衣不说。
她只说她在等人。
我想问她是不是在等她的意中人,但是又不好意思开口。我怕是的,那我可能要伤心。师傅说修真的程序员,不能伤心。伤心的程序员,写不出好的代码。
所以我也只能等。
终于等到有一天,那天酒馆外面都是黑漆漆的云,空气里都是紧张的、像墨水混合了砂子一样的味道。可能有沙尘暴。
结衣一脸严肃。
我说结衣,咱们把门关上避一避。
结衣一言不发,站在门口,看向远方。
过了一阵,远处黑云之中,竟然出现一个人影。霎时间,雷光闪动,暴雨如注。
结衣看了我一眼,转身腾空就飞了出去。朝着远处的黑云人影,鼓动着浑身能量,就这么飞了出去。
我大喊一声结衣,然后也跑了出去。雨越下越大,我只能隐隐看见远处电闪雷鸣,我在混乱之中大喊结衣。
他们在交战。
远处代码一行行在云端飞舞盘旋,命令与字节化为巨大的力量,我没有想到结衣竟然强到这个地步。
举手投足,山河变色。
我想起大师兄所说的,有人还在解码自身,有人已经操纵世界。
是一场恶战。
我只能站在下面看,我甚至都不知道他们交战的具体情况。
我心急如焚。
在一个天际的惊雷响彻之后,一道正弦函数冲击波将所有黑云弹射开来,而我只看到结衣在空中坠落的身影。
拨云见日,阳光普照。
在很多年之后,当我再回想起这个情形,还是觉得,即算是临死之时的结衣,在空中的身影,也那么美好。
我抱着结衣,泣不成声。
她看着我,怔怔的看着我。
她说你别哭,真的,这是注定的一天。
她说我们家以前侵入国防系统,被朝廷发现灭门,我侥幸逃脱。但是不管我在哪里,总有一天他们会找上来。
她说你是男孩子,要坚强一点。不坚强一点,你怎么成为最好的程序员。
结衣在那几分钟里,好像想把她一生没讲完的话,都给讲完。
她说的最后一句话是,杀马特,你一定不要忘了我。
然后她就再也没有说话了。
我甚至都没有问过她说,你有心上人吗?
我甚至都没有跟她说过,我是真的很喜欢你。
我甚至都没有吻过她,没有牵过她的手,我们只是这样匆匆遇到,然后匆匆告别。
她的身体将化成一串数字流,失去结构,流向无尽的原野、河流跟大地,化为三月的春风、杨柳跟雨滴。
有些东西,是命。
我的整个程序员修真生涯,在这一天,被分割开来。
对,我杀马特,在这一天之后,是一个一定要成为天下第一的程序员。
为了结衣。
五丶
并非是单单想给结衣报仇。
我们程序员的修真之路,内修自己,外修天地。
当代码可以操控天地这个最为复杂的系统之时,就一定会涉及到世界的本源之处。若这个世界的代码在我眼前一览无遗,或许我可以控制时间。
或许我可以从时间的bug里,找回结衣。
这是我这么多年来的,唯一念想。
毕竟我们程序员,生来就要逆天改命。
之后的时间里,我从程序员排行榜上一路飙升,五年之后跻身前十,成为世界上最优秀的程序员之一。
我树敌无数,也击败无数敌人。他们之中,甚至有自创一门语言的奇才,有号称已然精通C++的装逼犯,有对各类操作系统跟编译原理都熟悉无比的怪才,但是,不管谁,都无法阻挡我杀马特的脚步。
无人可挡。生来彷徨。
但,即算是到了我这样的水准,我也依旧无法知道,如何寻找这个世界里时间的bug,甚至都没有一丝头绪。
每逢debug的夜晚,我都会想起结衣,明媚如歌的笑容,和她从天而落,如佛光普照般的美丽。
但这又时时提醒了我,我可能真的已经离她远去了,而我无能为力。
这世间我认识的高手,都无法为我解答这个问题。
直到有一天,我在山间遇到一个红衣人。
他是个高手,从看到他码出第一行代码的时候,我就知道,这是个绝顶高手。
山野相逢,抛却了身份。我跟他把酒言欢,知无不谈,倒也痛快。
直到我跟他说起关于这世界里,时间的bug。
他说,这世界极有可能是在一个环形循环之中。说罢他从怀里掏出一把刀,却正是奇虎派的那把三百六十度环形刀刃。
他说你看这把刀,我派毕生所愿,即是参透这世界的圆之循环,重新编码,到时候天下唾手可得。
我说,我不想要什么天下,我只要一个女人。
红衣人哈哈大笑,说,那你加入我们,来我奇虎参透这世界运行之时最底层的命令,参透这循环,说不定你就能重新遇到那个女人。
对,我没有犹豫,我答应了。
他说,他叫周红衣。
六丶
我就这么加入了奇虎三六零。
彼时奇虎正在重整旗鼓,周红衣想要东山再起,他不能少了我这个助力。
从此我手里多了一把,三百六十度的,环形刀刃。
萧萧狼烟,江湖恩怨再起。
人在江湖,真的身不由己。
我一边参悟奇虎派祖传的代码跟算法,一边帮奇虎派征战天下。
我是知乎派出身,根正苗红,师傅知我落入魔教之手,吐出一口老血。孽徒,孽徒啊。他们也曾劝降,但我不为所动。
我心中,有我自己的编程之道。
所以我很清楚自己在干什么。我很清楚,男孩子,要坚强。
奇虎的势力扩张得很快,但正邪势不两立,BAT三大派见天下形势如此,便要集结程序员部队,重新再上一次光明顶。
他们说,一百年前能灭的,现在也能灭。
光明顶,是我奇虎派的大本营。
而他们带队之人,正是当今天下排行第一的程序员,出身知乎、神龙见首不见尾的大师兄。
大师兄,真的好久不见。
说实话,虽从一开始,我便知道自己背负的是什么,但我也并未想过,有一天要跟大师兄动手。也许在成为男人的路上,杀死偶像,都是不可避免的一环。
大师兄还是酒壶一把,桀骜不驯。他说傻小子,你现在过来,还真的来得及。
我说大师兄,皇皇天下,哪有什么正邪分家。无非是你来我往,你抢我杀。咱们做程序员的都知道,手底下见真章。
大师兄喝酒,哈哈大笑,他说你有长进,然后把酒壶朝天一扔。
Talk is cheap,show me the code。
七丶
与大师兄交战之前,我正参悟到这个世界代码的一些关键之处。
如今一战,倒是针尖对麦芒。大师兄的编程能力,已然步入化境。代码不在手上,已在心中。物质都是数据,规则都是代码,一时间天地轰隆,流云沐风皆能当锋利兵器,重力气压都能做任意改变,我跟大师兄从天到地,战了个平分秋色。
大师兄说,没想到你小子这么难缠。
大师兄说,对不起,我必须解决掉你。
为了正义。
我从没见他说过对不起,这正如他一定会放一个前所未见的大招一样可怕。
大师兄操纵无数代码,打入大地之中,蓦地瞬间,我感觉脚底重力似乎加大了无数倍。
好沉。
好一个无限重力流。
我们这边的程序员,要么被强大重力挤压变形,最舒服的也寸步不能动弹。
大师兄竟然还没有结束,他接着操纵无数代码,打入遥远天空之中,竟从无垠星海之中召来巨大陨石。
陨石当空,重力无限。
这两者相结合,他竟凭他一人之力,要横扫整个奇虎。
不愧是天下第一的旷世奇才。我承认,面对这样的攻势,我并没有什么好的办法。
但我也不后悔。
既然踏上这条路,我就没有打算过回头。
陨石从我头上落下之时,生死交错的瞬间,我仿佛又看到结衣的脸,像电影一般飞驰而过的场面。
我突然领悟到些什么。
我在那一瞬也打出无数代码,我打出的代码,跟大师兄的,一模一样。
复制代码,通常比较容易。
我脚下重力瞬间又加大无数倍,其他的程序员早已不堪重负,化为一摊数据流。而那个陨石速度越来越快,擦出巨大的热浪火花,空间都变形扭曲,周围一切化为粉末,消散无形。
我以为那个瞬间我已经死了。
而我在那一个瞬间,看到了在弯曲变形的前方,有一个时空的奇点。
时间是一个圆。
我靠近它,向死而生。
前方白光一片。
八丶
我睁开眼。
眼前是那个熟悉的酒馆。
我走进去,一个风情万种的女人转过来。
她问我,客官,你要喝点什么嘛?
完。
㈡ 知乎上有哪些有趣的程序员
程序员是什么
程序员是从事程序开发和维护的专业人员。程序员一般分为程序员和程序员,但他们之间的界限并不十分清楚,尤其是在中国。软件从业者分为初级程序员、高级程序员、系统分析员、系统架构师和测试工程师。

总结
所以程序员很容易消除,所以要学会总结。很多程序员都喜欢盲目追求一些编码技术,技术人员不管有多少种语言,学习代码写得更熟练,我们只能说他是一个熟练的移民工人,他永远不会有质的进步。一个好的学习程序员通常会总结他的技术水平,并对他的技术水平有一个很好的定位,这样他就可以提高自己。这将逐渐从程序员到软件设计人员,系统分析员,项目经理。
㈢ 为什么知乎中不少人认为“程序员应该用macbook”
编程你用新的MacBook?我建议你不要,新的MacBook因为超薄用的是Core M处理器,性能只跟11年低配版本的MacBook Air 相同,建议你买同价位的港版13寸中配Retina MacBook Pro
㈣ 为什么一线城市程序员薪资很高 知乎
科技人才缺乏,会的人少工资自然就高,程序员待遇还是很不错的,因为会的人少,待遇自然就高
㈤ 为什么知乎这么多人推荐程序员买HHKB键盘
因为逼格高。。。。
但其实这破键盘对于一般程序员来讲还不如随便找一个游戏键盘好用。。。
㈥ 狂人c程序员入门必备这本书怎么样知乎
这书别看了……讲得忒乱。C语言入门推荐看《C和指针》或者《Linux C编程一站式学习》。实在不行看谭浩强的《C程序设计》也凑合,经典的K&R版《C语言程序设计》是进阶读本。《C陷阱和缺陷》侧重C语言的使用误区,《C专家编程》部分内容跟UNIX操作系统相关。
(1)你在源代码中写a和'a'有什么区别?
你的程序实际上是写在txt文件中(.c、.cpp啥的都是无格式文本)
如果你直接在源程序中写a,则编译器把它当成是你程序中的一个变量;
例如你在程序代码中写一句"int abc = 100;",abc中的a被编译器理解成一个标识符/名称的组成部分。
如果你在源程序中写'a',则编译器遇到单引号把它理解成一个字符常量,这完全是编译器词法分析过程中的区别。
不管是a还是'a',你写在源程序文件中的内容都可以叫做代码的组成成分(如果不是资源数据)。
(2)'a'并非char类型,事实上它是int类型
这话说得不仅让人难以理解,而且根本就是错的。'A'是char类型常量无疑,注意区分术语integral type(整数类型,包括有符号或无符号的int, short, char)和integer(整型int),看英文书这个区别很明显,比如case子句都要求integral type,不一定是int类型。
(3)啥是ASCII码
0x34、'a'等都是二进制机器码的一种记录方式。程序编译之后,'A'和数值65的二进制码是相同的,所以有时用int类型的数值常量代替char常量能得到同样的结果(很多时候还牵涉到隐式类型转换,初学者先不管),这其实是不太规范的。计算机喜欢用机器码,源码是写给人看的,所以有些程序虽然机器码是正确的,但源码语义不明,也是不好的。
(4)
楼主还是换本书看吧,真心的。入门的话很多问题不必深究,先写程序跑起来,选教材最重要是作者讲述方式与你的理解方式一致。
㈦ 程序员往哪个方向发展比较好 知乎
取决于职业兴趣和自身能力。
程序员的大体方向分为4个,
有管理的兴趣,可以走技术管理路线;
只对技术有兴趣,向高级程序员或者架构师发展;
对程序员不感兴趣,可以试试产品经理方向或者系统工程师方向;
如果对IT业不感兴趣,找其它行业合伙做事。
非粘贴,希望有帮助。
㈧ 知乎上那个程序员winter是谁
winter,网名,互联网爱好者,人称知乎大神,回答过大量问题,以答题为乐,大量阐述过对程序的见解
他的名言:尔曹身与名俱灭 不废江河万古流
他一天的生活:早上9点左右起床,简单洗漱穿衣服大便,走路10分钟去公司。在公司工作到中午12点,去吃饭,如果是食堂、KFC或者必胜客,就点最贵的套餐,如果是高级的那种,就多点些主食。
下午开开会,写写代码,处理下紧急问题,批下流程什么的,差不多就到晚上了,6点以后去食堂吃饭的话,会有13元补助,所以我一般6点之前去,争取在6点之前买完,在一群死屌丝的复杂的目光注视下,对师傅说,不用等了,直接刷吧。
吃完饭7点多回座位,有时候玩两把三国杀,或者打几回桌上足球或者乒乓,多数时候,可以开始高效率地写代码了,这段时间会比较轻松,可以把白天落下的进度补一补,也可以写点自己喜欢的东西。视心情和工作量,搞到9点到1点不等的时间,回到家,根据时间早晚玩会游戏/看会电子书/上网吹水之后睡觉。
㈨ 什么才是程序员的核心竞争力 知乎
姚冬回答的非常好,我狗尾续貂的说几句。
我们都知道学习能力很重要,那么学习能力从何而来,除了去看书上课这种,如何在实践工作中学习成长?
我之前微博说了一个笼统的概念,什么是能力? 对待问题的态度,以及处理问题的思路和方法。
先说态度
你服务器偶尔出501错误,也许比例不高(知乎也出现过很多次),很多程序员,没错,是很多,假装看不见,不在乎,或者归咎于人品问题。 这就是态度问题。
再往后,负载高了或者其他什么原因,突然频繁出现501错误,不去追寻深入的原因,而是找各种借口, 什么IDC服务商不好,服务器品牌不好,操作系统不好,数据库不好,CDN不好,网络状况不好,web server不好,甚至,直接对Boss说我们被DDOS啦!(遇到过,帮他Boss找过多个安全专家会诊,最后发现根本不是DDOS,是程序员太烂。)
这就是态度,触目惊心,如果能对问题有敏感性,能知道对任何小的,轻微的问题有足够的敏锐度,你就有了一个快速成长的基础。对问题的敏锐度是非常重要的。很多性能或程序逻辑上非致命的bug,在不够敏锐的时候是发现不了的,但是一旦进入特殊场景就会骤然爆发,你多一点敏锐度,就会减少这种危机的风险。
第二个态度是解决问题的态度,有人对自己的解决方案信心满满,认为万无一失,但有的人就会多留一条后路;就好比你说我服务器要不要做安全加固,肯定要做对不对,要做到尽可能严谨和周全,但是你数据库保存密码的时候是不是还要加密?而且要随机salt,不就是防止万一依然有漏洞被人拿库怎么办么。程序也一样,以前写的一些服务端守护进程,有bug,会莫名其妙的终止,这个bug当然要定位,要修复,但是同时,写一个cron检查这个守护进程状态,一旦遇到终止给予自动恢复,这就是第二手准备,即便你多么不希望他执行,这个准备还是要做的。对问题 做两手甚至三手准备,也是优秀程序员,架构师的关键素质。
第三个态度是基于沟通与理解的态度,产品或运营提了一个不靠谱需求,一句话打回去当然很爽很威风,但是有没有仔细沟通分析过,这个需求基于怎样的实际诉求,这个实际诉求有没有更合理的实现途径,一句话“这个没法做,这个实现成本太高”,不是正确的沟通态度,而且,最优秀的产品,往往是实现了那些原本人们认为无法实现的诉求。
这样的态度,才有了一个持续进步的基础,下面说思路和方法。
优秀 的程序员和平庸的程序员,如果只看敲打代码的速度,我觉得是分不出来的,也许每人都可以一天写很多行代码,但是遇到问题后,平庸的程序员的解决效率,和优秀程序员相比就会有天壤之别。 所谓解决效率,不外乎对bug的分析、定位,以及 思考。
最基本的一条,看执行日志,看各种日志,web server的日志,数据库 的日志,慢查询日志,binlog日志,php的错误日志,等等等等,线上出问题瞎猜连日志都不看的大有人在。看日志不仔细不完整的也大有人在,你能去认真研究日志已经超越很多人了。
第二条,模块测试和断点分析,程序员一个坏习惯就是上来就写很大一坨代码然后再执行,不知道一个模块一个模块来写来测试,执行出了问题不知道设置断点,缩小范围逐步分析。断点分析非常简单,将整个代码中插几个中间输出,观察哪个环节出了问题,或者观察每个环节的系统开销,对调错和性能优化都非常重要,高手们大概认为这是ABC的东西,但是就这玩意我看到的大部分程序员都没有这个习惯。
第三条,错误信息 的理解和搜索,搜索引擎上有各种丰富的技术资料和技术问答,你所遇到的错误信息和错误提示,通常都能在网上搜索到,当然,搜索到后要结合你的场景认真思考,并理解透彻,而不是照猫画虎的去处理,否则可能这次运气好就蒙对了,下次运气不好又不知道怎么回事了。
第四条,不断总结归纳,对一个问题,一类问题,以及不同类型的问题,善于归纳整理,不断反思自己的问题,即便是不出bug的代码,你经过一段时间去回头看,也有很多思考不正确不合理的地方,有很多优化点,如果你觉得自己的代码一向牛逼,毫无破绽,那你一定是原地踏步,毫无进展。
关于 归纳总结,我说个案例
以前我们有个系统,请求量非常大,负载非常高,有个不错的技术经理来处理,他列了几个升级计划,都很靠谱,去执行了,效果非常好,然后我们跟进汇报的时候他来讲,做了几项升级,整体效果如何,然后我就批评了他。
我批评了什么呢?他是一起做的升级,然后一起观测的效果,那么这几个方案里,具体每个方案的实际效果怎样,对提升的帮助多大,他没有任何数据。所以对具体每个升级方案的价值和重要性,他没有任何概念。你正确的解决了问题,却没有认真的去归纳整理,你的收获是有限的。一起做升级不能说是错的,但是效果评估需要单独去做,而这个数据是非常有价值的,知识积累,不是你处理过的就一定有积累,而是整理过的。
大概就这些
最后重述一遍
什么是能力?
遇到问题的态度
处理问题的思路和方法
这就是能力
点赞的那么多,答谢各位,补充几条思路吧,是上面几个方法的具体扩充
补充1:善于提问,你能得到怎样的答案,取决于你提出怎样的问题。
你遇到问题,你应该知道,从哪里去问,去问什么。
我常见的一个测试题是这样的。
数据库目前挂了,我就是服务器,我不知道为什么挂了,你是一个优秀的分析师,现在我来做响应,你问我问题,你问一个问题,我回答一个指标,然后看你能不能定位问题。(当然,我会根据所假设的问题回答所有数据指标),比如你问我数据库连接数多少,问我系统i/o压力多少,或者问我慢查询日志里有什么,等等,善于提问的人就可以快速得到答案,而不善于提问的人,就会猜测一堆可能,最终却一无所获。
有个真实好玩的案例,有个兄弟公司(前段时间新闻出来,卖了好像十个亿的样子),开始的时候服务端数据库不够强壮,负载起来的时候会出现一些问题,就请我去把脉,我一看windows服务器,SQLserver (不要猜了,那是几年前,现在应该改了),我说这个我不会啊,然后人家那么热忱当我是专家,只好硬着头皮上,我连基本操作都不会怎么办,我就坐在那里问问题,开始他们说是不是这样,是不是那样,我说你们不要盲目下结论,你们要是知道结论就别来问我了,我问什么指标,什么日志你们就给我查什么,我就一样样的问,他们现场操作去查数据,我问一个他们查一个给我看,查着查着,他们的工程师说,知道原因了!果然和他们开始的假设完全不同。其实关键就是问问题的思路,他们一开始没有提出正确的问题。提出了正确的问题,他们很快自己就找到了原因。
补充2:善于划定范围,缩小问题区间。
前面提到的断点分析是一个非常常见的分析方法,但是很多场景,你甚至不知道是哪个程序出的问题,善于将问题范围化,也是一种归纳和分类的能力。
我曾在某个技术群出过一个经典测试,还记得以前微博上提到的一个经典面试题么。“从浏览器输入url到打开网页,中间经历了什么”,这是一个经典的综合认知的题目,基于这个题目,出一个更实战的场景测试是(这个场景其实90%的网站站长和游戏运营商都遇到过),”目前有用户反映网站或游戏卡,请问如何分析原因,以及当前优先级步骤。“。结果在这个群里,只有我徒弟说出了完全正确的答案(09年带过的)。优先级第一步是看在线用户数和当前访问数,对比历史,得到该问题目前的影响程度,来决定后续的优先级,以及减少分析范围。(这是意识问题)分析思路,分成三大块,前端,网络层,服务端。当然这三块可以继续延伸下去非常多细节,但是至少,能先把问题分成三大块,然后基于一些显见的分析方式快速排除其中几个部分,再逐步细化问题,而大部分人只是从一个局部去思考,讲了很多局部细节却没有完整的纲领,所以这就是差距。
先想到这些,咳咳。
转自知乎 曹政
