‘壹’ 为什么码农辛苦
大家一提到程序员,首先想到的是以下标签:苦逼,加班,熬夜通宵。但是,但凡工作了的同学都知道,其实大部分程序员做的事情都很简单,代码CRUD可以说毫无技术含量,就算什么不懂依葫芦画瓢很多功能也能勉强做出来,做个多线程并发就算高科技了,程序员这行的门槛其实还是比较低的。(这里说的是大部分,有些牛逼的,写算法、jvm等的请自动跳过)
是不是觉得很矛盾,一方面工作不复杂,一方面却累成狗。有没有想过问题出在哪里?有没有想过时间都花在哪里呢?
对于我个人来说,编码还是一个相对轻松的活(我是负责公司it系统的,没有太多技术含量,数据量大,但并发量不大)。从工作到现在,我加班编码的时间还是比较少的,我到现在为止每天还会编码,很少因为编码工作加班。
大家写的东西都是一些crud的业务逻辑代码,为什么大家这么累,加班加点天天都是奋斗者?我从自己带的项目中观察中发现,大部分人的大部分时间都是在 定位问题 + 改代码,真正开发的时间并不多。定位问题包括开发转测试的时候发现问题和上线后发现问题,改代码的包括改bug和因为需求变动修改代码(后面专门开一贴说如何应对需求改动)。
所以说,simple is not easy。很多人就是因为觉得简单,所以功能完成自己测试ok了就算了,没有思考有没有更加好的方式。归根到底是因为编码习惯太糟糕,写的代码太烂,导致无法定位频繁修改频繁出问题。(后面我会详细讲一些我看到的大部分的编码问题。)
其实,对于个人来说,技术很重要,但是对于工作来说,编码的习惯比技术更加主要。工作中你面试的大部分技术都不需要用到的。工作中,因为你的编码习惯不好,写的代码质量差,代码冗余重复多,很多无关的代码和业务代码搅在一起,导致了你疲于奔命应付各种问题。
所以我作为SE,不管接手任何项目组,第一步就是制定代码框架,制定项目组的开发规范,把代码量减下去。事实上证明,这一步之后,大家的代码量能下去最少1/3,后台的问题数下降比较明显,大家的加班会比之前少。
‘贰’ 你见过最厉害的程序员是怎么样的
以前曾经做过十余年的编程,见识过不少程序员,其中有两位是比较厉害的。
第一位,J同学,非科班出身,粮食专业毕业的,之后在一个食品厂工作,因为比较清闲,于是他突发奇想,想考某个211的计算机研究生,就去买了书来看,但是要实践啊,他又没有计算机,就有空总去公司的电脑室蹭机器用,电脑室的人,就让他帮忙开发一个工资管理系统,不知道是不是想为难他,结果他研究生是没考上了,但是经过一个月的摸索之后,居然把工资系统给做出来了。让电脑室那些科班毕业的人脸上挂不住啊!
之后他就斗胆去了一个国内知名的企业应聘程序员,居然还给应聘上了,慢慢做到了华南区的技术总监,再后来他几个同事出来创业,高新挖走他。
他这个人就是传说中的怪侠,非常低调,朴素,不按时上班,不按时下班,工作效率非常高,爱抽烟,请教他什么问题,他一时想不出来的话,就去外面抽根烟,烟抽完了,回来就会有答案,反正非常神奇。
第二位,B同学,科班出身,211大学计算机研究生,当时是他的导师跟我们单位有来往,推荐过来的,我面试的他,惜话如金,听说他C语言非常厉害,但是当时我们做项目需要PB,他说他不会,我就说,那给你一个星期的时候,你回去学习一下,再来面试。一个星期后,再过来,给他一个小模块,很快就做出来,非常棒,之后,项目的技术难题,大部分都是他解决的。平时,他也不怎么跟我们来往,但是有事就做,也不打 游戏 ,按时上班,按时下班,非常讨厌加班。
遇到技术问题,下班后打电话给他,他不接的。有一次,我们第二天系统要上线,大家都在忙着测试,加班,他到点就走了,领导追到电梯门口,问他,XX哥,你走了,他说了一个字,是,就进电梯了。后来也是被高薪挖走,听说到现在40岁也还没结婚。
我们公司有一位非常厉害的程序员,基本上一个人当做一个排兵力使用。也就是说一个人写代码的效率基本上抵得上10+人的能力,一年随随便便写个几十万高质量的代码。这种人对编程语言的理解已经到了登峰造极的地步,且能够灵活自如地使用。
在自己编码能力强的同时,对架构的理解能力也是超强,一个大的系统能够很快地进行模块拆分,快速的定义不同模块间的交互接口,可以快速的安排任务下去。
另外代码的质量基本上没地说,导致跟着他的测试人员几乎发现不了Bug,这哥们在写代码的同时基本上顺手就把单元测试写好了,代码质量高的简直出奇。
当然了,至于学习什么新的开源框架或者新的技术架构,基本上就是2-3天的功夫,就可以全面掌握。
目前为止,公司一直当做宝一样供着。
我见过最厉害的程序员,是在2001年入职的一间香港电路板公司的电脑部经理,他也是最值得我尊重的程序员,那他最厉害的地方在哪里呢?
编程语言只懂Foxpro DOS版本,但所有的ERP流程,英文、管理方法说得滴水不漏,有一次和财务的同事聊天,才知道他的月薪达8万多。
很多程序员最怕大老板提问题,但在他的眼里,大老板提问题就是一个商机,多多少少都要老板加工资加设备。 高情商的表现就是无论下属或老板通通管理得服服帖帖,包括我自己,甚至老板还没有说话就己经知道老板的心思了。
老板分配的编程任务应期三天完成,绝对不过4天。软件开发效率的提高,自然要依赖下属心甘情愿的加班付出才行,做到这一点,真的是难能可贵。
最厉害也是我最佩的一点就是,40多岁了头发还没有一点白的迹象,每天高效率的工作,下班后就抛开工作的烦恼,尽情桑拿按摩享受。
我认为最厉害的程序员不是编程技术,而是如何利用编程技术,不知道你认不认同?
应该是读研时的学长,精通java和Python,毕业后进去微软研究院工作。
当时和他在一个项目组,他独立完成了教学平台语言分析模块,NLP 模块。我们团队任何问题都能很快给出解决方法,前端后端都擅长。
当时我刚接触linux,他就已经把Linux作为工作学习唯一的选择。经常用terminal 操作,敲起代码太帅了
诚邀,本人在杭州华为研究所工作,之前在一家创业公司工作过,公司里一个工作10年的大神,撑着整个创业公司,老板总能拿到某些项目源代码,不同语言的,c c++ .net java总之很多,给他,一礼拜就可以全懂了,所有语言基本都是1礼拜搞定(玩代码的都知道精通一门语言后学其他的特别容易,不外乎面向对象的,面向过程的,然后就是各种API )上手做项目,之前很多不懂的问题问他都可以从本质上分析得很明白,主要是基本上看几眼就可以知道哪里错了。或者大概方向,我后来去华为,都是他建议的,现在还在那公司的他听说是技术总监了,应该不怎么敲代码了。
核心的代码总是有那一两个程序员来实现的。比方说现在微信的一开始的核心代码。
比方说Linux的核心代码, 都是由林纳斯·托瓦兹编写的, 并且为了能够让开源社区的人一起进行开发, 又编写了Git版本控制。当你不满意某个软件或者系统的时候, 能够自己实现并制作出更好的也许就是厉害的程序员吧。一直到现在很多的系统分支都是来源于Linux的内核。
最后如何成为最厉害的程序员, 还是要学习基础核心的知识, 操作系统, 数据结构, 算法, 编译原理, 计算机网络, 在这个基础上学习编程都是为了更好地实现自己的心中所想。为什么这样写, 这样写会产生什么效果。 为什么Golang最近这么热, 为什么鸿蒙会被看好, 它又和其他的有什么区别, 就可以自我判断, 而不是见风就是雨。
最后希望自己也成为那个最厉害的程序员。
很久以前,我用win98的时候有次我系统崩溃了,因为我是电脑白痴,我朋友给我介绍了一个高手来帮我修电脑。
他看了一下电脑,问我有没有98的盘,我说没有。
他想了一下,叫我把固定电话拿给他,我想修电脑要电话干什么,但人家是高手,我也不好说什么,就把电话拔下来给他了。
他把电话线空着的一头接在电脑的一个插孔内,然后进入dos,就开始在电话上不停的按着键,他按键的速度异常快,但是只按0,1两个键,我搞不懂这有什么用,但也不敢问,看了半个多小时,他还是不停的按这两个键,我徐徐的有些困,我问他这东西要搞多久,他说要几个小时,我给他倒了杯茶,就一个人去隔壁睡觉了。
醒来的时候,一看已经过了4个多小时,我起身到隔壁,看见他正在98里面调试,过了一会儿,他说,你试试,我坐上椅子用了一下,真的好了,我当时也不懂电脑,谢过人家就走了。 后来我慢慢对电脑有了了解,终于了解,原来当时那位高手是用机器语言编了一个98系统,我后来问我朋友那位高手的下落,我朋友说前几年去了美国之后,杳无音讯....
五年前有幸在一家软件公司做产品经理。小的软件公司。坐标西安。招人还挺不好招的。虽然给的薪水还不错。但是真心不好招人。这种小软件公司没有名气。真正牛逼的人都不来。
百试几百人,包括做产品和前端的也算在里面。光程序员这块。有百分之六十的投简历的都是从某培训机构出来的。所以的项目经历。和待过的公司都是一模一样,有明显的人为的痕迹。
但是后来实在没有人手。招了一两个,差。差。差。真是差到极点
后来又经人推荐,招了一个,说是做安卓开发的。结果连个软件的心跳包都调不好。软件的升级这块都搞不定。最后还是我这个外行,逼着他。一点一点卡,才把软件升级这块稍微搞上路了。
说出来真是让大家笑话,华为的外包中软国际。有个孩子实在忍受不了里面的虐待,在里面工作了一年半。然后跳到我们公司。这个孩子,才是稍微让人可以用一下。就是起码。你给他的工作。他能完成。其他的人都是在摸鱼。因为这个公司的老板以前也不是做手机软件这块。没有资源,不认识人。
他是做电脑PC软件,到后面做BS系统多一点。其实这种没有技术含量,找的别人的框架。去修改。
普通人见不到最牛逼的程序员,最牛逼的程序员,一定是在最牛逼的软件或者互联网公司的深宫后院里面。还没出世的。就像当初的张小龙,史玉柱,裘伯君一样。
你现在能看的牛逼的,感觉牛逼的。都是因为你不懂这个。你才觉得牛逼。包括前几年比较活跃的黑客们,制造一些病毒。这都不是牛逼。包括熊猫烧香的李俊,普通人觉得他可牛逼了。但是真正的他出来后,去金山 360这种公司,提鞋别人都不要。
因为搞破坏不是牛逼。也不是自己水平有多牛逼。
我来讲一个我见过最厉害的程序员。
这个程序员是我第一份工作碰到的大牛,我的第一份工作在中兴通讯成都研究所,当时是做操作系统研发的。
我们当时经常会做一些培训和技术分享,那时候我才入职3个月,我发现公司里有个人每次技术分享时候,就很多人去听,并且会议室爆满,连站的地方都没有,然后我有次也去听了一下, 第一每次目睹大牛的风采,因此操作系统是最底层的研发工作,会涉及到内核这块知识,而linux内核知识特别抽象,看书根本很难看懂,但是这个大牛能把很难的东西讲的很容易理解,并且在会上面对大家的提问总是能对答如流,实在是厉害。
而后我通过公司里的老员工才了解到,这位大牛是自学成才的,他的文化程度才初中,破格录取到中兴通讯,当时是操作系统部门的技术专家,他都能自己编写操作系统,对各硬件都非常了解,也出了很多书。可见兴趣是最好的老师,让他能够在程序员中发光。
必须是ACM大神,楼天成,楼教主。不了解他的可以网络之。是个天才一般的存在。
几年前清华大学找同学玩,他那时是清华软件学院的学生,突然说要带我去见他的偶像,还说是最后的机会了,我们跑去计算机学院,当时博士正在答辩,通过在场的同学找到了他,他很腼腆的千呼万唤始出来。他们两在那里交流了半个多小时,最后互留了EMail,我跟他聊了些我专业的内容,他还蛮好说话。 后面还通过这位同学认识另一位ACM届大神,上海交大的戴文渊。我对编程略有了解,主要还是崇拜天才。
‘叁’ 秃头是不是都是牛逼的程序员
这个说法并不肯定
只能说算是一种误解或者是自嘲
从侧面说明了一个问题,程序员的压力蛮大的重复的搬砖,重复的动作,每天面对电脑辐射,哈哈,头发不掉才怪。
牛逼的程序元不一定秃头,秃头的程序员一大部分牛逼
哈哈希望你能理解,毕竟每个人都不容易人生在世。
活在当下,憧憬未来吧加油
‘肆’ 你见过最水的程序员是什么样的
本来是好好的程序员,硬生生让自己成为了“网管”。
1、公司电脑哪里出问题了,他就会在那里。他是工科大学毕业的程序员,编程玩得贼溜,甚至在刚到公司的时候,还曾经在公司的服务器后台放了一些自己开发的编程小游戏,点击就能够运行。那时候我有服务器权限,还曾经玩过他做的编程游戏,不管是从界面UI、运行流畅程度来讲,他做得都挺好的。
但是就是这样一个程序员,到了公司之后,却成为了一个“网管型”的员工:公司里行政办公人员大概有百来人,几乎每个人都有配置电脑,不过由于这些电脑都是“久经考验”的,所以时不时就会发生问题。而这个时候,不管是关机重启就能解决的问题,还是需要更换内存条、更换cpu之类的硬件问题,大家都会喊他来解决。
一开始的时候,他还会不适应,我一个写程序的,怎么让我来做这种事情呢。不过公司也没有太多需要编程的任务,所以他只能都接着,都去看看……
其实一个人毕业之后,多数都是难以从事自己之前所学专业的工作。甚至哪怕从事“相关”的工作,也可能与自己原先所学的不符。所以,是否能在先就业再择业之中做出一个好的决定,能够保持自己长期的发展潜力,而不被繁琐、机械的工作所限制,这是我们每个人都要思考的。
‘伍’ 黑客和程序员哪个牛逼
着名程序员,同时也是最早的计算机社区名人之一的 Eric Raymond 是这样定义黑客的,“聪明、有创意、思想开放,享受问题解决和学习,乐意分享知识高于一切的人。”
‘陆’ 程序员能干多久
跟别的职业差不多,一般都能做到40岁左右,除非是国企一直做到退休都可以。而且如果转型转的好的话 一直干下去也是可以的,比如说从程序员变成技术部门的管理者或者项目的管理者。企业的架构师之类的。
‘柒’ 程序员会跟传统技术工程师一样,越老越吃香吗
随着大数据的爆发,中国IT业内环境也将面临新一轮的洗牌,不仅是企业,更是从业人员转型可遇而不可求的机遇。
中关村,被称为中国硅谷,此间程序员比比皆是。然而一眼望去,大多数一线程序员的年龄均在20至30岁左右,40、50岁的人在这个行业内颇为罕见。相较于国外五六十岁仍奋斗在一线岗位的老程序员,国内为什么会出现这种现象?
国内四五十岁的程序员去哪儿了?
造成这种现象的原因是多方面的。首先,程序员的工作大致可划分为两类:开发和研发,相对应的岗位则是开发工程师和研发工程师。开发工程师直接为产品贡献代码,以达成产品功能为主要目的,有比较多重复性工作。而研发工程师则更注重研究工作,任务目标一般没有前车之鉴,多数情况下要靠自身研究创新。
在国内,大多数大型互联网公司的程序员被称作研发工程师,但实际情况是国内几乎没有研发项目,只能称之为开发。开发程序员的工作大多是重复性劳动,容易产生疲惫感,薪资也许在工作2-5年内能达到一个峰值,但较难提升,导致很多程序员最终放弃写代码,转行做了其他。
此外,程序员多处于长时间加班、熬夜和超负荷的工作状态,而年纪大的程序员往往在体力上疏于年轻人。若想继续在IT行业内打拼的程序员便只能追求成为更高技术水平的架构师或转至管理层这两方面寻求职业生涯的突破。一旦转型失败,也只能黯然退出这个为之奉献青春的行业了。一个行业内没有老员工,这其实是病态的。雷军曾在自己的一篇文章中提到,96年时美国主力工程师以30、40岁为主,国内开发的主力是35岁以下的年轻人,近20年过去,情况仍然没有转变。
但是越来越多的IT从业者发现,大数据技术来临之后也许这个现象就能有所改变。
大数据时代,程序员的春天?
首先,大数据从事的是开源工作,更倾向于“研发”,能够重新激起程序员研发程序的热情,职业生涯有了新的追求,这意味着大数据会成为值得程序员长期奋斗不断突破的工作;其次,由于大数据属新兴领域,专业人才比较缺乏,高端人才更是企业争抢的对象。薪资上升容易,职业发展潜力巨大。
《华尔街日报》称:数据已经成为一种新的经济资产类别,就像黄金和货币一样!鉴于大数据巨大的商业价值,大数据专家在企业非常受重视,阿里巴巴集团就已设立首席数据官岗位(ChiefDataOfficer),直接向集团CEO汇报工作。
在大数据行业内生存的时间越久,其经验也会越得到肯定,这也是大多数资深IT人士猜测大数据或将带来50、60岁的“老”专家的原因。面对如此光明而诱人的前景,很多IT从业者试图向大数据转型。
随着大数据的爆发,中国IT业内环境也将面临新一轮的洗牌,不仅是企业,更是从业人员转型可遇而不可求的机遇。如果将IT人士统一比作一条船上的海员,大数据就是最大的浪潮,借浪潮之势而为之,可成功从IT程序员转型成为大数据专家。
世界正从IT时代走向DT时代,未来是大数据的时代,企业最有价值的资产就是数据,你所拥有的数据越多你就越有说话权,因此未来企业里最牛逼的员工应该是和数据有关的职位,比如CDO(首席数据官)、数据科学家、数据分析师、数据工程师等,这些职位或将成为程序员又一个美好的出路。
首先我们来理解一下这几个职位。
CDO主要负责利用数据推进企业与社会的对话,挖掘企业海量数据中潜在的价值,并运营和管理好数据,为企业战略、营销和管理决策提供参考,CDO的能力不仅仅是大数据领域的范畴,他需要同时具有IT、市场营销、运营管理等综合素质。
“数据科学家是指运用统计分析、机器学习、分布式处理等技术,从大数据中提取出对业务有意义的信息,以简单易懂的形式传达给决策者,并创造出新的数据运用服务的人才。
数据分析师能洞悉一个方程式的商业意义,他们知道如何提出正确的问题,非常善于数据分析,数据可视化和数据呈现。
数据工程师是能运行基本数据模型,充分了解文件系统,分布式计算与大型数据库,他们是能提供可建模数据所需平台的人。“【以上三个职位的定义来源于互联网】
如何转型为大数据工程师?
那么,程序员如何转型成为优秀的大数据工程师呢?广州中星信息老师认为,主要是从两者所要求的能力上来分析。首先,大数据工程师是需要有计算机编码能力的,因为面对海量的非结构化数据,你要从中挖掘出有价值的东西,需要设计算法与编写程序去实现,而程序员最牛的能力就是编写简洁高效的代码,去实现人们许许多多美妙的梦想,编码能力越强的程序员越有可能成为优秀的大数据工程师。
其次,大数据工程师需要统计学与应用数学相关的能力背景,数据挖掘与分析是需要设计数据模型和算法的,应该说程序员是有这个基础的,我见过最牛逼的程序员一般都不是科班出来的,通常是数学专业,因此提高算法设计能力是程序员转型大数据工程师的关键因素。
第三,大数据工程师需要具备某一行业的业务知识,大数据的挖掘与分析最终都要服务于市场,并对产品的销售与企业的发展起到重大推动作用,那才是有价值的大数据分析,因此大数据是不能脱离市场的,它必须与某一行业的应用想结合起来才容易产生更大的价值,通常程序员都是在做某一行业的软件,经过多年的学习与磨练,对某一行业的业务知识是有积累的,因此从来这一点上来看,程序员是很容易过渡到大数据工程师的。
当然,以上都只是粗略的分析,真正要成为一名优秀的大数据工程师,程序员还需要更多的学习与努力。
在美国,大数据工程师平均年薪达17.5万美元,在中国顶尖的互联网公司里,大数据工程师的薪酬比同级别的其他职位高出30%以上。DT时代来得太突然了,国内发展势头很猛,而大数据相关的人才却非常地有限,在未来若干年内都会是供不应求的状况。
‘捌’ 很牛逼的程序员敲代码全靠脑子记么
写代码要有一定的英语基础,水平高的程序员因为写的代码多了已经把代码内化了,所以他们写代码随心所欲。
‘玖’ 有哪些话一听就知道一个程序员是个水货
有hover切换功能,不能直接换成png ,现在的官网取消了hover才换的png
首先,有些公认的水货,比如熊节,根本就是一个文艺编辑,就不用废话了。其次,有争议的,比如陈皓。这货的博客多年保持livelock状态。什么意思呢,就是看起来系统还是在跑,但没有任何有用功。常年都是给入门马农做科普的内容。这种属于大自然的搬运工,把搜索引擎里的资料编译一下就拿来做自己的内容。然后是比较隐藏的水货。比如陈硕。言必让读者看自己的书第几页。但他那本书纯属基础知识和常识列举。看几个man page和rfc就够了。另外,他的书里错误很多,言之凿凿的地方其实都是挂一漏万,把特例当公理。云风当属最隐蔽的水货。都是实打实的产品,代码,难题,分析。内容都是网络,高性能,并发,分布。但不幸的是,老子才是这方面的行家。就拿他最新那个所谓的乐观悲观锁来说吧,里面每个结论每个分析我都指出其不靠谱之处。还有其他一些水货,就不一一列举了。他们有如下显着特征:话题以程序科普为主。内容都是在其他它地方能轻易获得的,缺少自己的思想。问题分析流于猜测,不能达到问题本质。轻易下结论,下过多总结陈词。缺乏量化分析,以主观感受和特例作为依据。如果有不服的,欢迎讨论。我可以具体问题具体分析给你看,他们的思想有多毛糙,基本功有多不扎实。