java,在路上

来源:互联网 发布:淘宝店铺宣传片 编辑:程序博客网 时间:2024/05/09 00:38

详见链接: http://mrpeak.cn/blog/training/?utm_source=tuicool&utm_medium=referral

以下来自上述链接内容,摘抄如下,以自勉。

基础的牢固


基础很重要,比掌握几个新的api重要,比掌握一门新语言重要,比多做几个简单的app重要,也比你想尽办法通过面试重要。程序员的基础包括操作系统,数据结构,计算机网络,数据库这些大类,算法可以选择性的了解些。这些课程大学都会仔细教,培训却不会,培训会教你做界面,怎么上线app,怎么去通过面试。但这些基础直接决定你接受新知识的速度,决定你了解技术概念的深度,决定你以后这条技术路可以走多远。如果只能对培训出来的程序员们提一个建议,那就是利用一切可以利用的时间去咀嚼这些基础概念。第一遍不懂看第二遍,查阅所有相关的资料从不同角度去理解,任何技术概念百度google都可以找出n多相关技术文章,只要你驱动力够强一定能搞明白你想要了解的事物,哪怕是零基础起步。这些基础是你和四年大学最根本的差距,弥补的过程会比较痛苦,但这是唯一的途径。

知识体系的建立


技术人员都要有自己的知识体系,上面提到的基础是横向的广度,把这些基础和具体技术相结合,然后深入发掘就是深度,深度和广度构成一个T字形结构。建立这个结构是知识体系建立的开始,之后技术上的成长无论是广度还是深度都是T字形的不断生长,持续挖掘深度就成为专家,不断拓展广度能成为更好的架构师。我之所以强调基础的重要性,就是因为有了牢固的基础才能形成自己的知识体系,才能明白自己当前的缺陷短板在哪,才能制定清晰明了的技术学习计划。几年前看到过一句话觉得很有道理,说一个好的程序员应该是:know a lot about a little, know a little about a lot, 是同一回事。

对待技术的严谨


技术问题和自然语言不同,对于技术,一种表达 只有一种意思。一旦思路确定下来,用代码表现的技术容不得半点模糊,少一点考虑就多一个bug,所以对待技术问题需要一丝不苟的严谨。我刚毕业那会面试, 大公司出题都十分强调边界条件的考虑,基本思路大家都会有,但能否把问题考虑周全,将所有的边界条件理清楚就不是人人都能做到的了。我现在面试的时候除了 考察基础知识之外,还会问一个(就一个)简单的算法题,题目真的很简单,几乎人人都可以找到思路,但重点在于把所有的边界条件确认好。

重视业务的磨练


我接触过一些的iOS程序员,他们或多或少都有一到两年的工作经历,也做个好几个app,规模都不大但业务涵盖面却不小。虽然有这些业务经历,但却没有支撑这些业务的技术功底,你问他app的登陆token机制是怎么样的说不出来,用https为什么更安全也不了解,有些模块不是自己写的就不清楚。做业务其实是个完善上面提到的知识体系的好机会,一个业务要做到完善,让用户感受不到瑕疵的程度其实非常困难,各种边界条件的考虑,安全性,流畅度,省电,流量,crash率,和其他模块的交叉等等。所以请重视每一次业务的锻炼机会,想得要比产品经理更深入,遇到要填的技术坑不要偷懒,不要因为赶进度就降低质量放过自己成长的机会。


0 0
原创粉丝点击