百科问答小站 logo
百科问答小站 font logo



有哪些老程序员都知道对新手很有用的经验? 第1页

  

user avatar   charles-stone-cn 网友的相关建议: 
      

曾在大公司写了好些年程序,不过下面这些经验跟写程序可能没啥关系。

新人最需要快速掌握的,是职场规则。

流量预警:本文长度超过8页,新手9大技能树天梯系统,无图。

开卷有益,欢迎各位拉同学来看。

永远先想清楚,再去动手。

>>(我是不会说自己每周只敲一天代码的)

不懂要问!问之前先尽可能去查!

>>(萌萌地跑来问我的下属,是把我当作GOOGLE机器人助手还是书橱?)

求助之前要先自己尽力去解决,搞不定及时求助!

>>(上司和同事不是给你打杂的;事情搞砸了再求助毫无意义)

你脑子的想法,不通过口头特别是文档表达出来,它事实上不存在。

>>(写文档,写注释,写日程表,写计划表,写会议纪要……不说了)

公司的各种设计指南、编程规范、XXX规范要仔细学习

>>(否则去参加外面的培训公司接受培训需要花钱还不靠谱)

新技术是好东西,但自作主张用了,多半是作死,特别是自作主张用开源软件的家伙

>>(我手下要是自作主张用开源软件,最起码一个大过处分,不预警,直接通报)

各种接口不要随便乱改;花半天先把接口吵清楚再动手,有益无害。

>>(当年专职负责吵接口吵了大半年呢,每个人都眼巴巴看着你的感觉好奇妙)

公共配置项不要乱动,特别是配置库和编译器的

>>(出问题了找BUG找死人啊)

下面是9大技能树:如何XXX系列

★★★如何对待上司★★★

上面吩咐了做啥事,脑子好就记住,脑子不好就拿本子写下来,然后去做。

>>(反正最多说三遍,再不好好学习就打入冷宫)

安排的工作一般都要接;接不了的要清楚说明客观原因,而且要客气。不要在其他人面前拒绝。

>>(随便拒绝工作安排,基本都是作死;当着外人不给上司面子,这不是作死而是作大死)

如果工作安排不清晰,请主动与上司沟通,明确关键的时间点和交付物。沟通前自己要有预案。

>>(没有上司喜欢不带着脑子跑来问问问的下属的)

如果完成工作需要其他资源,先尽力协调,再向上司求助,并明确说明理由和已协调结果。

>>(他出面跟人撕逼需要子弹,不要让他自己到处找子弹)

上司的技能树和技能点分布,可能跟你完全不同

>>(自己那坨技能点不全是金子,别人的技能也不全是屎,世界主体仍是分工合作)

自己的工作可以求助,但工作主体仍然是你;每次求助都是偷师的机会。

>>(谁给谁打工?这很重要)

遇到例外情况,及时反馈给上司;确信自己有能力且得到授权的,可以同步开始解决,否则等指示

>>(不反馈那叫知情不报;不解决那叫消极怠工;自己乱搞叫越权行事)

事情进展顺利也要定期反馈进展;每日三省吾身,不要让别人逼着你写总结。

>>(老旧的Unix程序默认没有return,但你不是它。他跑来问的时候,心里是充满疑惑的)

是男人都会犯错(from DuangLong),但相同的错误不要一而再、再而三地犯

>>(上司不是你爹,他口水干了就会变得异常烦躁)

不要随便发脾气,更不要对着上司发脾气

>>(否则的话,很快就会通过惨痛教训明白:平等、自由都是相对的)

在绝大部分情况下,不要跟上司谈情说爱玩暧昧,搞基也不行

>>(除非你打算辞职)

不要当上司是傻逼;如果觉得他不是很懂,委婉地教会他。

>>(绝大部分情况下,后果是下属傻逼了)

我不排除有很恶心的上司,但你的上司是一种非常珍稀、宝贵的业务资源。

好好对待他,不要有意无意地滥用他、损耗他,尽量让他开心。

否则等到闯祸了,让爹妈来公司保佑你么?

比上司更能保佑你的是你的客户。

★★★如何对待同僚★★★

我知道一定会有人大叫着说:如今是平权时代,哪里有什么狗屁上司。

好吧。

一般情况下,把你的同僚当作上司对待——可以套用上面的大部分建议

>>(你敬人一尺,人敬你一丈。鬼知道什么时候同僚变上司)

工作要通过定期碰头协商分工和通报进展

>>(要不你单干吧)

答应了别人的事情要做到,要不就不要答应;

>>(做不到比拒绝的后果更严重)

有啥事情可能起纷争时,事先讲好道理,商议好规矩

>>(这一条是金科玉律!)

不要吝啬于分享经验,但不要随便发表看法

>>(大家都喜欢对自己有帮助的人。但看法么……说者无心听者有意)

一定要有几个死党,关键时刻可以帮你扛扛工作、通风报信;

>>(谁没有难处呢?但没人欠你的)

今天求助了别人,记得日后要还,晚还不如早还。反之同理。

>>(纸牌屋)

条数是不是很少?混过几年职场后,大部分人就挂在这几条上。

★★★如何对待业务★★★

业务不是编程,业务是钞票。

搞清楚自己的岗位职责;搞清楚跟你工作直接相关的周边岗位职责

>>(基本入门要求)

搞清楚业务流程,自己在其中的位置;

搞清楚公司靠神马赚钱,自己在其中的作用;

>>(最好的公司都是流程化运作的,没有也要理出来)

编程之余,多看看公司对应的商业和工程专业书籍

但请务必记住:业务不是学来的,是干出来的

>>(业务不是编程和0/1,业务是非常复杂的,它很难掌握但比程序的变化要少得多)

搞清楚你对老大,同僚,周边部门的价值;

搞清楚老大,同僚,周边部门对你的价值;

>>(不清楚这些,工作中怎么互帮互助 or 谈条件 or 撕逼)

经常跳出自己的岗位看问题,有极大好处

>>(否则很容易固执己见讨人厌呢)

要区分有价值的功劳和没有价值的苦劳

>>(否则白忙一场空)

干得好就可以多要钱,但要有理有据,最好的办法是拿好的考评

>>(连考评周期和规则都没有的公司,还是算了吧)

★★★如何对待编程★★★

脱离业务的编程毫无价值,除了毕业生

精通一门语言,最好是C和JAVA,脚本随意;其他的都可以类推。

软件程序质量的底线,是你知道你的程序和编译器到底都干了啥。

因此:程序语言中的高级技巧都是巨坑,如果没有十足的必要和把握,不要用。

编码注释是最好的文档?不全是,学会Office和MindManager,否则试下用编程表达流体力学。

熟记常用的调用接口(系统,数据库,函数库,中间件),其他的备好手册,不要费太多脑。

有括号,不要浪费脑子去记忆运算优先级。

更不要随便相信高级运算符。

让别人能看懂代码,否则自己也会看不懂。

时刻谨记性能和存储约束,它们可以交换;更可以跟钞票交换。

如果这两者严重受限,高级程序语言都是渣。

任何复杂的系统都可以分解,函数和有限状态机是最重要的概念。

类、对象不一定重要(想不到吧),模版、继承、派生很容易坑了你。

绝大部分的“跨平台”、“可扩展性”设计目的,大部分还是要依赖重构去解决。

更悲剧的是,很大比例的重构是由于这两类设计而导致的。

谨慎对待重构,一般来说初次重构的失败率高达50%以上,大多数情况下是质量问题导致失败。

所以,要做好3个版本的成本预算。

新人玩重构?百分之百失败。

函数、API、消息、通讯报文没有区别,都是接口

常用算法并不多,复杂算法要学好数学和库

开源软件不要乱用,其授权文件和律师团可能让公司破产,一定要问老板和律师!

商用软件收费并不仅仅是因为功能,还有性能和质量。开源软件的质量良莠不齐。

好好读编程规范!好好读编程规范!好好读编程规范!

不要依赖于DEBUG!事先想好软件逻辑可以节约大量的DEBUG时间。

硬件是会坏和异常的!服务器、配置库不说了,传感器和执行器同理。

人是会犯错的,而且很经常!做好代码和数据备份;检查输入,尽量控制输出。


★★★如何对待工具★★★

不能提高工作效率的工具毫无意义

工具是拿来用的,不是拿来炫技的

优先考虑测试工具,其次考虑编码工具,最后考虑代码检查工具

>>(理应如此,但实际上哪个好到手就先整哪个,呵呵)

工具本身是带缺陷的,要考虑潜在缺陷的风险和代价,否则会死得很难看。

开发系统集成的IDE最“好”用;纯编辑器请随心,注意保存配置数据。

一个需要大量配置才能实现功能的工具,要慎用。

优先选择收费的商业工具,除非实在没钱。

带有“云”系统的工具,呃,去与老大对话,观察他是否变成了大菠萝第一章的BOSS。

很多奇奇怪怪的小工具会做很多奇奇怪怪的事情,特别是安全类工具。留个心眼。

如果找不到合适的工具,自己写一个,注意性价比(哦,我们有个小小的工具团队)

开发环境几乎永远比客户的运行环境奢华,时刻记住这一点。

买一套你用得顺手的硬件外设,包括键盘、鼠标、显示器,这个投入相当划算。

(听说新浪的开发环境是众所周知的负面案例)

奇怪的键盘布局会降低效率,慎用此类逼格高的键盘。

有午休的开放办公室,慎用噼噼啪啪的键盘鼠标,否则可能导致你的脸噼噼啪啪作响。

Office是最应当掌握的非编程类工具,没有之一。

抛弃各种IM工具,回归到电话、短信和Email。还需要说理由?

努力变成你的老大最好用的工具,否则他会寻思着换工具,就像你寻思着换键盘一样。

★★★如何学习提升★★★

最好的学习,是工作中学习,学以致用。

因为这样目的最为明确,效率最高,正向负向刺激最强烈。

找个好师傅,默认情况下抱紧上司的大腿。

一天最多问他一次,逼着自己先想清楚再去问。

编码不是目标,实现功能不叫大牛。

一般对代码的优化集中在性能,可维护性,可扩展性,安全性和质量健壮性上。

大牛们就牛在这里。

不要把工作带回家!学习同理。

家里有太多分散注意力的事情,而且非常容易模糊各种边界和deadline。

某些公司有严格的信息安全管理制度,不可以在公司做自己的事情。

那在家里好好布置一个书桌书架,并尽量减少干扰。

出于集中精力的考虑,书桌上应当尽量简单,比如不要有妹纸和电视,嘿嘿。

每天2个小时的时间,把所有干扰都排除;要么就不学,要学就沉浸进去。

在家里做东西学东西,同样要坚持有特定目标,否则都是胡乱学,成不了体系出不了东西。

社区是好东西,但很零散,不能依赖。

官方手册和文档是最系统的,开源可看代码。

不要沉浸在具体编码中,理清目标,逻辑,流程,模块和状态迁移。更重要的是理清业务。

逻辑思维清晰、表达简明扼要、英文起码阅读无压力。

>>(沟通都成问题就不要谈提高了,真的)

写博客、上论坛撕逼、写教材、做培训讲师,对理清逻辑、提升表达和建立个人品牌很有帮助。

>>(好为人师不是错,知错就改好同志)

★★★如何对待租房★★★

首先请搜索此文章:

怎么花最少的钱提升出租屋的格调? - Charles Stone 的回答

其他:

房租不要超过工资的1/3(日后供楼也是同理)

跟谁一起租很重要,最好跟死党一起租房子,否则宁愿单住

作为程序员,房子要能摆下一张大书桌!

★★★如何对待妹子★★★

一般来说,公司里的妹纸更可靠

>>(只是相对论而已)

尽量找到共同的兴趣爱好

>>(找不到?迟早出事)

通过宠物勾搭,又快又多

>>(狗男女就是这么回事)

有花堪折直须折

>>(最好的兄弟会对你说:承让)

要学会怎么识别绿茶婊

>>(这是猛追三个月以后的else处理分支)

没有我的火眼金睛?带她去游泳

>>(咳咳,咳咳)

无论娶或不娶,0.03就在那里

>>(咳咳咳咳,不要淘)

把妹比搞革命更困难,革命尚未成功,同志就仍需努力

>>(身体是革命的本钱,把妹还要事业)

三观一致挺重要的

>>(这就是祖训的门当户对)

在打算跟妹纸共度余生之前,最好离开双方家庭同居一段时间

>>(独立生存能力挺要命的)

后代的家教质量主要取决于女方,妹子的学历越高越好

>>(要打我的妹纸们,有本事放开BB!)

有BB之后,要祈祷不要被丈母娘坑

>>(各种祖传秘方神马鬼,哈哈哈哈)

你是妹纸程序员?生娃要做好计划!

>>(这件事非常非常重要,特别是如果还想在事业上有进一步发展的话。毕竟最少有6个月事业和生仔不能两全,生完了还要奶几个月娃,挺辛苦的。所以,选择高强度工作的间隙,跟上司和同事打好招呼,自己的工作写好委托清单。就算是意外得子,也要趁着孕期早做准备。否则生仔去了工作一丢,周围这个怨念啊~)

★★★如何保持安康★★★

吃喝和减肥?

看这个吧:

什么样的食物满足好吃、顶饿、低脂低热这几项要求? - Charles Stone 的回答

饮食要规律,早中晚三餐都尽量都吃,多喝水

>>(胃病、胆囊炎、胆囊结石啥的,30多岁的人很多的)

保护好你的颈椎,关键是显示器要够高,用书垫高它或者买个升降支架

>>(颈椎病严重的话,手会废掉,不开玩笑)

保护好你的手指和手腕,椅子高度要调节好,键盘鼠标不要用太烂的。

>>(请自行搜索“脉管炎”)

保护好你的腰椎,可以考虑站立办公、站立会议、经常起来走一走。车上的座椅要调好。

>>(神马椎间盘突出啊之类的……)

保护好你的眼睛,夜晚的屏幕四周一定要有背景光,手机比PC屏幕更伤眼睛。

>>(长时间玩手机对颈椎也是大杀器)

晚上不要经常熬夜,基本睡眠要保证,否则白天精神会不好,同事间的印象会很差

>>(我是坏榜样)

找个女朋友有助于养生

>>(生活会变得规律很多,食材会丰富很多,体育活动更有动力,夜晚不会焦躁不安……)

锻炼这玩意是因人而异的,不要疯狂锻炼,关节受损极难恢复

>>(特别是登山、羽毛球、瑜伽,搞过头了非常容易受伤)

--------------------------

熬了10多年,能写的不太少。

欢迎准毕业生们提出各种脑洞大开的问题,呵呵。




  

相关话题

  Qt 为什么在桌面应用(Windows 平台)中不流行呢? 
  现在的编译器能把代码优化到什么程度? 
  你无意中发现过哪些图灵完全的系统? 
  如果一门编程语言中不允许对象(或结构体)循环引用,那么用它实现什么功能会比较困难? 
  自学 Java 怎么入门? 
  请问《计算机网络》《操作系统》《 组成原理》《 数据库》 学习的先后顺序是怎么样的,怎样学好? 
  程序员可以练成肌肉男吗? 
  灵活就业是不是就代表着中国失业人数全世界最低? 
  对于大型项目,静态类型是必须的吗? 
  大学四年如何成为世界级软件工程师? 

前一个讨论
为了一件三万八的婚纱和准老公吵翻了,我错了吗?
下一个讨论
女朋友突然变的很作,怎样能让她成熟一点?





© 2024-05-17 - tinynew.org. All Rights Reserved.
© 2024-05-17 - tinynew.org. 保留所有权利