菜鸟程序员须知(1)
共 1980字,需浏览 4分钟
·
2020-11-29 07:28
在卖铁壳混了这么些年,抛开那些看起来唬人的title,俺其实就是一个靠写代码维持生计的程序员。虽然好为人师,但是真的要俺讲那些个云山雾罩的前卫新名词,还真讲不出啥。我们所处的这个行业,真真的日行千里,变幻莫测。不过,还在这么多年的实际经历用事实证明,那些都是术,真正的道一直都没有变。要说须知,可以说很多。
1》双基是所有学问起点
双基就是基本概念和基本操作。虽然名称上叫基本,其实要熟练并不容易。五路那个行业,只要双基搞定80%,就足以PK掉80%以上的同业竞争者。俺面试过很多人,C# 都会问什么是面向对象?什么是继承封装多态?Oracle 就会为DBMS_Profiler 的用途?这算是非常基础的东西吧?事实上能够说得清楚的凤毛麟角。都在说现在竞争非常激烈,其实在俺看来好像并非如此。双基搞定,就可以拿到俺的Offer,而且基本到同等经验的75分位。当然,也可能是俺们公司并非什么大厂,来面试的都是些小虾米吧。
2》英语是基础中的基础
每年都会有一批大专生到公司实习,绝大多数都是计算机专业的。专业修养先不说,但是英语是真的烂到家。但是写程序的,证明能不懂英语了?写的代码都是英文啊!而且前人写的代码,特别是一些大牛写的,都是英文。甚至连注解都是英文。你英文不行,写程序就是事倍功半。俺想出了一个所谓小红点计划,要求他们每天工作学习遇到的英文单词都记在有道云词典的单词本里,然后每天消灭提示复习的小红点。这种办法看起来有点Low,如果可以严格按照这个来作业,痛苦个半年到一年,自己这个行业的英文至少都熟悉,混口饭吃还是没啥大问题的。做到这个程度,至少遇到问题,会用英文查资料,而这是区别一个程序员水平的重要标志!
3》计算机基础不大重要
以前俺的部门叫MIS(资讯管理部),现在改为IIC(资讯创新中心)。这种部门的IT,虽然叫程序员,其实算是工程师而已。工程师玩的这些东西,都不是什么高科技。但是在学校是绝无可能学到的。从这个意义上上讲,在学校学的那些计算机基础,真心不重要。俺自己是工业工程专业的,在学校的时候,写程序最多算是业余爱好。混进IT这一行之后,也遇到正经软件专业的同事,但是感觉压力大的不得了。现在回头看,其实当时大家都在一个水平线上,都很菜鸟,都是啥都不会,都是从头开始。当然,如果在大学期间,有实际参与到一些真刀真枪的软件项目的话,就另当别论。这里说的不太重要的计算机基础,是指学校老师教的那些。好多老师也是打混而已。如果在学校踏踏实实的把数据结构,操作系统原理,PC原理,数据库原理这些基础知识学得非常扎实,那么在入职时候是非常有用的,很多人会被你降维吊打!
4》数学最好能高数及格
在参加工作后很长一段时间,都没有意识到数学的重要性。当然,读书那段时间,俺数学还是可以的。直到某一年,跟人合作搞一款MSA软件,才发现真是吃力。程序语言说到底,只是一个工具而已。即使很多算法,也是工具而已。用户真正要解决的问题,可能只是简单的加减法,也可能是涉及到高深的数学。以俺目前接触到的,高数至少要可以即可。否则,很容易在实战中被人蹂躏。学数学不大容易的,因为你很难靠百度一下,看几篇博文就真正解决问题,需要一整段的时间持续投入才能有点效果。所以最佳时间段是在上学的时候就搞定。参加工作后就很难有机会了。人生的每个阶段一定要把该做的事情做好,否则可能一步差,步步差。
5》普通智商也可以登峰
其实不光是程序员这一行,在绝大多数行业中,都很少有机会光靠智商能够碾压其他人。因为企业IT,接触到的都是大规模商用的技术,基本不需要什么智商,否则这种技术怎么可能大规模使用了?就像俺们用的C#这种语言工具写程序,你需要多高的智商吗?需要的是积累。不断的总结最佳实践,然后不断的实战操练,都会做出不错的成绩。其实学会一两门程序语言,真的只不过是职业生涯的开始,持续学习,深入学习,不断总结,不多做知识螺旋,才是可行之道!
6》学会百度也学会谷歌
在写代码的过程中,经常会遇到一些陌生的东西。微软官方的C# Guide,动辄几十万页,几乎涉及到整个程序世界的方方面面。而用户提需求,可不会管理懂不懂。所以,遇到看不懂的东西,非常正常。何况,随着MS的开源战略日益深入人心,各种各样的新东西层出不穷。即使是行业中的老鸟,也可能完全陌生或者一知半解。这个时候百度一下或者Google一下,就特别重要了。但是这有个前提,就是你的English,特别是本行业的English 要过关。Google很强大,但是要查到有价值的东西,至少要给她一个Key word吧。当然,由于某些原因,俺们这嘎达Google不大能用。不过,这对于一个程序员,应该不算是什么问题吧?
当然,还有很多其他的经验。后面有时间再慢慢讲!