最近和一要好的哥们讨论技术发展,他大学不是计算机相关专业,工作后自学程序转行做的互联网。在电话聊天中,我们提到了遇到问题时如何解决时,他说比较喜欢百度搜索,看有代码的文章或者帖子,最好就是代码可以直接运行起来那种。这样的话他就可以直接拿来用,然后自己再花时间去理解copy的代码是什么意思,最终学会或者收获相关的知识。
通完电话,我在想一个问题,我这哥们的做法有问题么?从专业角度出发,是有问题的,作为一个合格的程序员,我们应该尽量避免直接用别人的代码。但是作为一个转行到互联网的技术新人而言,他的做法是没问题的,为什么这么说呢,我列了和他有关的一个现状:
1. 非计算机科班出身,毕业后转行互联网,计算机基础、软件服务、编程能力都是从零基础学习。
2. 由于是毕业后的转型,需要更快速融入到互联网公司,需要多做项目产出。
3. 工作中,快速解决问题让项目尽快发布,优先级远远高于————停下来思考问题。
4. 遇到的一些技术问题,如果靠自己完整的思考(注意,是完整二字),最终独立解决,不太现实,因为很多问题需要不同计算机领域的知识,比如网络、数据结构、操作系统等知识。
当我们不具备全部知识面和技术深度的时候,却还要为了满足工作所需快速的发布项目、赶进度,就没有办法有充足的时间去学习、去花大块时间思考一些问题,更多的工作方式只能是“快消费”模式,最快的搜索到解决方案,最快的嵌入到程序中运行起来,然后快速地去做下一个功能开发。那么,这种方式下,自己能够得到锻炼么?
我觉得是可以的,而且是可以很快成长起来的,通过这种方式可以培养一个人的实战能力,以及快速应对不同业务需求场景的能力。长期这种工作方式却是有弊端的:
1. 没有系统的去学习,是指哪打哪的方式,会导致自己的知识面、整个技能体系不健全。
2. 哪里遇到问题就看哪里,而且还是以快速解决为目的的学习,技术深度薄弱、不利于举一反三的思维培养。
做事情要注重广度和深度,并要持续思考如何打造更好的广度和深度。
这几年程序员的身份经历了一个转变,从最初的屌丝、令人鄙视的上海张江男张江女、找对象不找程序员、牛仔衬衣加拖鞋,等等诸多被人鄙视的特点,到如今,各行各业都转行加入互联网潮流,张江房价坐地而起的飞速发展。这一现状是好还是不好,我不做任何评价,我个人而言是非常欢迎各行各业的人去了解软件开发、学习软件开发的。对于这两年突然涌入了这么多互联网从业人员,大部分人都是上面提到的这种成长方式,最后只会培养一批又一批忙于应付写代码的人。
我不担心人多,我担心的是没有竞争力的人多。
就像一些传统行业那样,当没有竞争力的人变得多了的时候,这个行业不论景气与否,都会开始刺破泡沫。而畸形的发展导致的泡沫破裂,谁都逃不掉,覆巢之下安有完卵。
再说一个事情,最近再给新人做一些技术培训,每周会出一些不同方向的问题,目的是让新人知识面更全面,且具备更好的实战经验,这周的新人回答非常不理想。
其中一个题目是cookie和session的区别,新人的回答是session存储用户登录数据,可以判断用户登录状态,存储在服务器,可以通过cookie设置的sessio_id来确认session位置;cookie存储用户行为数据,和浏览器操作的特定数据,存储在浏览器。解释了一通,听完之后我问他,请你举个真实的例子,哪些数据可以存储到session,哪些数据可以存储到cookie。新人完全没有办法讲清楚,例子也说的很不合理。
对于一些技术,过于注重英文全称、难读的名词解释,而技术原理或者实现过程解释不清楚。我就说他,只会念这些词是没有用的,有些人无法念对这些名词,但他们会用很通俗的大白话给你讲出来,而你却不能。
这里我总结了几个点,值得我们思考:
1. 无法念对生僻名词,但是却可以给别人用通俗的语言讲明白的人,是最厉害的。
2. 知道一门技术或者一个软件服务的优点和缺点是什么不重要,你要知道他的优点是通过什么原理实现的,缺点是因为什么样的设计导致的。
3. 一切不以业务场景为前提的学习,学到的知识就没有办法快速应用到工程中去。
4. 时间分三种,一种时间注重结果,可以用来去解决、实现、达到或者完成;一种时间注重过程,是用来积累、反思、琢磨和沉淀;还有一种时间是用来浪费的。
这里推荐2本书,希望可以培养这方面的能力,思考快与慢我也没有读完,但是不妨碍推荐,确实不错。
1. 思考快与慢
豆瓣评分:8.2分
链接地址:https://book.douban.com/subject/10785583/
2. 学会提问
豆瓣评分:8.6分
链接地址:https://book.douban.com/subject/1504957/
有事问百度,我不敢苟同这一观点,我觉得百度不善于搜索技术的问题,建议还是用google吧。
上周在github上面看到了一篇文章,关于技术问题的请教和提问,帮我们梳理了非常棒的case。
提问的智慧
其中,还学到了几个有趣的缩写。
RTFM
Read The Fucking Manual 的缩写,译为中文大概可以是“去读那操蛋的手册”。一句话糙理不糙的话,直如当头棒喝,稍有觉悟的人听了这句话以后就能够脱胎换骨,成就一生。
GIYF
读手册是治根治本的方法,但不那么容易见效,而且许多知识没有人整理成手册。所以很多时候遇到急事,就不那么容易通过 RTFM 来解决了,这时我们要记得 GIYF。GIYF 就是 Google Is Your Friend,当遇到少见的代码编译错误号,连接数据库抛出异常,遇到一个没见过的英文缩写,或者在A机运行正常的代码在B机总是跑不起来,就是到了去探访 Google 这个朋友的时候了!
STFW 和 JFGI
这两个词,大概可以看作 GIYF 的升级版,语气更加严厉一些。它们的全拼分别是 Search The Fucking Web 和 Just Fucking Google It。Just Fucking Google It 也有一个专门的网站── http://justfuckinggoogleit.com/,里面的一句话道破天机:Someone thinks you are an idiot because you were too stupid to check Google before asking a question。无论你信与不信,去 Google 搜索能够解决你遇到的 80% 以上的问题,《Google 搜索引擎入门到精通》是程序员的必读书目。
小学生人头狗
果然还是shy总考虑的深
qrzbing
哇,感觉大佬们都好厉害。。作为一个信息安全的萌新我完全不知道做啥呢。。