入职一月的一点感想
非技术方面:
1. 要特别注重熟悉业务与人际沟通
入职一月来,最大的感受就是要注重业务熟悉与沟通。这并不是说技术不够重要,而是,在公司里,在工作上,熟悉业务并能顺畅地与同事沟通和协作,显得尤为重要而且首要。通常,在技术方面不会出太大问题,因为总有高手把关,而业务与沟通容易成为瓶颈。技术方面,主要利用业余时间来学习, 而在工作之时,便是技术的应用与业务的处理。要深入理解和评估自己所从事的业务的实际意义,尽最大努力去完善它。
2. 职业素养与责任心
既然是工作, 就要有职业素养,按时按质按量完成工作任务,保持高度的责任心。 不要受不好好工作的人的影响。 事实上, 各有得失。 你的”得“看不到(掌握了新东西,工作有成就感,对职业发展有控制能力),失是可见的(失去了安逸); 别人的”得“是看得到的(清闲轻松), ”失“是不可见的(挥霍了光阴,没有收获知识和技能,如果不依靠别人就很难有更好的待遇)。 每天晚上回来反省下,哪些地方做得不好,怎样去改进; 哪些地方可以自动化,提高效率; 哪些事情有现成成熟解决方案,可以直接使用而节省时间和经验成本。
3. 思考需求, 确认需求
现代软件开发,最迫切解决的问题不是技术问题,实现功能,而是需求问题。 用户需要什么,社会需要什么,需求是否捕捉准确,首当其冲。 正如某位著名的人士所言: 提出一个好的问题,比解决这个问题更有意义; 提出一个好的需求,比解决这个需求更重要:会有上千上万的人能够解决它,但是只有一个人能够提出它。因此, 在学习技术与业务的同时,要特别注意思考需求, 在实现业务的时候,要特别注意确认需求。这个需求是否是用户真心喜欢的,提出这个需求的背景和假定是什么,解决这个需求将产生怎样的效益。 只做最需要做的事情并将它做到最好。 在需求捕获和确认上不下工夫,粗枝大叶,最终的结果就是返工,导致大量的时间、人力和资源成本。
技术方面:
1. 遇到问题要想办法解决
遇到的问题越多,解决的问题越多, 能力便越强。 遇到的问题少, 解决的问题少,无论有怎样的决心,也飞不出菜鸟的级别。 因此, 一定不要回避问题, 正视它, 解决它。问题是通向进步的阶梯。
2. 精一通百,触类旁通
初学者常常纠结于精度和广度的问题。 这里的“精一” , 并不是指 技术, 而是指以技术为支撑的领域业务探索; ”通百“才是指技术。 也就是说, 根据自己的实际情况选择一种期望精通的行业和领域业务, 比如云平台技术, 平台应用开发, 社交网站, 网站设计,搜索引擎,语音智能,电子商务(政务)等,—— 真正能做好其中一种,达到领先水平, 都已经很了不起了, —— 然后, 将各种语言和工具都看成一种手段, 结合自己所领悟的思想和理念,去阐释自己对这个行业和领域业务的理解。这是宏观层面要思考的事情。
不沉溺于某一种特定的语言或工具,尝试使用各种语言或工具(当做好玩),了解其适用场合。在大脑意识中,不存有对特定语言或工具的固执的偏袒。兼容并蓄。
触类旁通是指要用一种悟性来学习。 比如有 C 的基础学 Java , Shell , 有 Java , Shell or Perl 的基础学 Python , 在对比与联想中学习新语言。各种应用框架提供的是什么模型,需要怎么做来切合框架隐含的模型与理念,这些模型与理念有哪些优缺点,在快速上手的过程中,悟性显得很重要。
学习采用做小项目和试错法。 首先自己设定一个有实际意义的小项目, 调查下当前有什么自己想做的而别人没有做或没有做完善的事情(这个事情也可以在平常细心加以观察和积累),然后在完成小项目的驱动下不断应用和试错,来学习和掌握一门语言或框架。当然,这种方法并不能使一个新手马上变成高手, 但应该能使一个新手准备好开始进阶。
完成新手入门后, 就要进入进阶阶段了。 这一步需要非常投入,细致专注地修炼,才能有所精进。 入门要快而粗, 进阶要细而慢。 路漫漫其修远兮。 要努力,莫强求。
3. 从多个角度多多思考,思虑周全
对于小程序,通常的做法是一次性读入内存,逻辑通常直观简单,但也容易养成不考虑内存和性能的习惯; 但是对于真实世界, 往往数据量都是异常大的,一次性读入内存,很有可能将服务器挂掉, 因此, 是“程式大忌”。 这也说明, 凡事要多思考, 从多种角度来思考, 多提问多求解,这样才能提升自己的技术解决能力。 提升技术能力并不单纯是靠多掌握几门语言、框架或工具的。解决能力才是关键。
4. 学习计划
重要而紧要的部分集中在一周左右搞定(通常是入门型,适合项目需求), 重要而不太紧要的部分靠每天积累(进阶型,适合长期发展)。 分阶段分层次, 切记贪多求全。以切合需要为准绳(当然,你可以根据自己的喜好确定自己的准则)。 对自己用过的模块和代码,一定要彻底研究详知其里,不要浅尝辄止。