原文链接:

http://mp.weixin.qq.com/s?__biz=MzA5MjYyNzY1OQ==&mid=2650901947&idx=1&sn=89af64d3b0dec01587f14aab15e62b9a#rd

 

40 分,60 分,90 分

原创 2016-05-27 汪海 汪海的实验室

背景

最近在微博上看到有人说,找工作太难了,面试官要求还高,才大三就问会不会这个框架那个框架的,并且表示平时项目机会少, jQuery Bootstrap 这种基础框架基本够用了,而现在为了找实习不得不被逼着学一些时髦的名词。

看到这段话,我不禁想起以前和公司的同学们说过的『任务』和『打分』的事情。

在此提前郑重声明,本文纯属个人观点,
胡编乱造不讲道理,没有任何科学依据。

打分

如果一个任务,满分是 100 分,完成这个任务可以得到多少分?

40 分。

是的,一个任务,如果只是完成任务提交代码,那就只能得到 40 分。

对业务做分析,对代码做优化,查阅资料寻求最优解,将已知任务做到极致,可以得到 60 分。

熟悉开发过程中涉及到的技术细节,围绕知识点进行扩展和了解,思考总结整个过程中存在的问题并逐步优化,可以得到 90 分。

40 分

40 分是最基础的得分,衡量标准是:任务是否完成。

要点

主要有以下几点:

业务理解透彻。清晰的了解任务的难点和重点
自我测试充分。各种情况考虑周全,做好自测
代码质量过关。所有代码均是自己当前阶段的最高水平

1. 关于业务理解透彻,很多的时候,是不是和人沟通的问题?

2.自我测试充分,我想,这个也很难。一般开发并不是以TDD来开发的。还需要配备专业的测试人员。测试越充分,需要花的时间也就越多。

举例

比如任务是:爬取微信公众号的文章。40 分大概是这样的:

输入1个公众号名称,输出公众号最近的10篇文章和它们的阅读数、点赞数、评论列表。
输入10个公众号名称,输出所有公众号的所需内容,解决搜狗反爬虫问题。
输入1堆公众号,每隔1分钟爬取一次,持续5小时,解决验证信息过期的问题。
这些是爬取任务中的基础问题,全部解决才算是完成任务。

60 分

60 分是及格分,除了完成基础的任务需求外,还进行了一些深度上的探索。

这些深度上的探索,如果就业务来说,一般是不够在上班的时间内完成这项任务的。

每一项扩展,都需要去自己动手实践,需要去查阅资料,像这样的深度和光度也是一个难以平衡的地方。

要点

主要有以下几点:

熟悉涉及的技术细节。完成任务是一个很好的学习渠道,在开发过程中会有机会接触到很多新鲜事物,不要放弃任何学习的机会。
对比学习寻求最优解。在开发的过程中做好调研,比较各种解决方案的优劣,寻找最合适的解决方案,并学习其他解决思路中的可取部分。
举例

比如任务是:爬取微信公众号的文章。60 分大概是这样的:

了解爬虫系统常见的问题,比如模拟 ua 、同步 cookie 、解析 dom 等等,并且熟悉这些常见问题的解决思路,了解各种解决思路的优劣。
清楚常见的反爬虫手段和应对措施,比如封 IP 和代理池、比如验证码和打码平台,查阅相关资料和其他人的分享学习相关内容,对比总结。
尝试使用不同的编程语言和可用于爬虫的工具,比如 PhantomJS 、Scrapy 等等,对比学习不同语言和框架的适用场景,总结通用部分和各自的独有特点。
阅读业务相关的开源优秀源码,学习常见的爬虫技巧,培养良好的编程习惯,并将学习所得应用到项目里。
思考当前业务代码中的不合理部分和可优化部分,及时优化代码中有时间有能力优化的细节。
这些完成后,就这个任务而言,所能做的基本都已经做的很好了,这个任务也就算是及格了。

90 分

接下来就是 90 分了,主要是基于任务相关的技术点,进行广度上的扩展。

要点

主要有以下几点:

对涉及知识的扩展。围绕任务不断展开逐步发散,举一反三地了解、学习、再了解、再学习,对技术细节进行扩展和延伸,对所学内容进行思考和总结。
对开发过程的总结。回顾任务中的问题和收获,总结整理,提高自身能力,提高学习技巧,每一次任务都是自身学习的机会,不要完全沉溺于业务本身。
举例

是不是又以为我要举爬虫的例子了?

嘿嘿嘿,我不举。

以我们最近在做的智能炒股软件为例,90 分大概是这样的:

了解当前所用的跨平台解决方案,对比 PC 端 Electron、React Native、wxPython、Xamarin 等方案的优劣,在学习 Electron 的过程中了解 NW.js ,在学习 NW.js 的过程中了解 node_bindings ,在学习 node_bindings 的过程中了解…
了解项目中所用的前端框架,把玩 VueJS 、 AngularJS 、ReactJS 等框架并了解各自特点,在后面工作中可以根据业务选择合适的框架,在学习 VueJS 的过程中了解 Ember、Polymer、Riot、WebPack、Gulp、Grunt、Bower、Babel、ES6、Rollup…
了解股票的基础技术指标,熟悉 MACD、KDJ、BOLL、EMA 等常见技术指标的用法和计算公式,了解如何使用 JS 进行数据运算,接触并了解 numpy、pandas、scikit、tushare、ta-lib 等库,查阅 npm 中的相关类库情况,思考 Python 为何适用于大数据运算,对比 C++、NodeJS、Python 在不同数量级数据处理任务中的表现…

应该来说,这个90分的话,花的时间就需要比较长了,上面提到了每一个技术都去学习,业余时间还有吗?

所以这90分算是一个资历分,相当与在一个领域兼具了相当的广度和深度。

小结

好了,以上,就是我心中的40分、60分和90分。

实际工作中,做到60分已经相当不容易了,但是还是必须要以90分的标准要求自己。就算是做到了90分,还有3分天注定呢。何况有些人连40分都打折扣。

各位,加油吧。

瞎掰

有人吐槽应届生找工作太难,有人纠结要不要出国但是又怕太苦,有人感慨世事无常技术圈变换太快跟不上脚步,有人埋怨面试官要求太高似乎针对自己,有人不解为什么自己上了这么久的学打了这么久的工但是还是毫无长进,说到底,都是懒。

懒得追求卓越,懒得苛求完美,心中没有必胜的信念,眼里没有求生的渴望,不淘汰你淘汰谁?

其他

你不觉得好奇吗?

为啥没有100分?

因为怕你骄傲呀。

微信扫一扫
关注该公众号

读“40 分,60 分,90 分”的更多相关文章

  1. 利用条件运算符的嵌套来完成此题:学习成绩> =90分的同学用A表示,60-89分之间的用B表示,60分以下的用C表示。

    利用条件运算符的嵌套来完成此题:学习成绩> =90分的同学用A表示,60-89分之间的用B表示,60分以下的用C表示. import java.util.Scanner; public clas ...

  2. 根据考试成绩输出对应的礼物,90分以上爸爸给买电脑,80分以上爸爸给买手机, 60分以上爸爸请吃一顿大餐,60分以下爸爸给买学习资料。 要求:该题使用多重if完成

    package com.Summer_0417.cn; import java.util.Scanner; /** * @author Summer * 根据考试成绩输出对应的礼物, * 90分以上爸 ...

  3. 学习成绩>=90分的同学用A表示,60-89分之间的用B表示,60分以下的用利用条件运算符的嵌套来完成此题:C表示。

    # -*- coding: utf8 -*- # Author:wxq #python 2.7 #题目:学习成绩>=90分的同学用A表示,60-89分之间的用B表示,60分以下的用利用条件运算符 ...

  4. 利用条件运算符的嵌套来完成此题: 学习成绩>= 90分的同学用A表示, 60-89分之间的用B表示, 60分以下的用C表示。

    题目:利用条件运算符的嵌套来完成此题: 学习成绩>= 90分的同学用A表示, 60-89分之间的用B表示, 60分以下的用C表示. 程序分析:(a> b)?a:b这是条件运算符的基本例子. ...

  5. 代码实现:利用条件运算符的嵌套来完成此题:学习成绩>=90分的同学用A表示,60-89分之间的用B表示,60分以下的用C表示。

    package com.loaderman.Coding; import java.util.Scanner; /*利用条件运算符的嵌套来完成此题:学习成绩>=90分的同学用A表示,60-89分 ...

  6. 推荐收藏:100道Linux笔试题,能拿90分以上的都去了BAT

    本套笔试题共100题,每题1分,共100分.(参考答案在文章末尾) 1. cron 后台常驻程序 (daemon) 用于: A. 负责文件在网络中的共享 B. 管理打印子系统 C. 跟踪管理系统信息和 ...

  7. 获取数值型数组中大于60的元素个数,给数值型数组中不足60分的加20分。(数组,for循环,if条件判断语句)

    package com.Summer_0420.cn; /** * @author Summer * 获取数值型数组中大于60的元素个数 * 给数值型数组中不足60分的加20分 */ public c ...

  8. CCF 201712-4 90分

    90分,不知道错在哪里了,dijkstra算法,用一个数组的d[i]表示以i点结尾的小路的长度,以i点为中心扩展时,若下一点为k,如果i->k是小路,则 d[j] = d[k]+M[k][j]; ...

  9. Splay(区间翻转)&树套树(Splay+线段树,90分)

    study from: https://tiger0132.blog.luogu.org/slay-notes P3369 [模板]普通平衡树 #include <cstdio> #inc ...

随机推荐

  1. IdentityServer4目录

    一.介绍 二.快速入门 三.主题 四.端点 五.参考 IdentityServer4是ASP.NET Core 2的OpenID Connect和OAuth 2.0框架. 它可以在您的应用程序中启用以 ...

  2. 关于H5在移动端架构的优化设计总结

    各大互联网公司采取的策略 一.百度移动前端首页 1. 对于首屏的静态文件css/js,在上线前全部编译直出到HTML文件中:整个首页的渲染只需要一次请求: 2.使用缓存:把不变的js/css/html ...

  3. BZOJ.4245.[ONTAK2015]OR-XOR(贪心)

    题目链接 从高到低位贪心,判断答案的该位能否为0. 求一个前缀和sum.对于最高位,答案的这一位可以为0当且仅当至少存在m个位置满足sum[i]在这一位上为0. 注意sum[n]这一位必须为0. 如果 ...

  4. Codeforces.297C.Splitting the Uniqueness(构造)

    题目链接 \(Description\) 给定一个长为n的序列A,求两个长为n的序列B,C,对任意的i满足B[i]+C[i]=A[i],且B,C序列分别至少有\(\lfloor\frac{2*n}{3 ...

  5. pwcrack--一款集合多种md5解密的工具

    项目开源地址:https://github.com/L-codes/pwcrack-framework Ruby2.5+ (tested with Ruby2.5.3 & Ruby 2.6.3 ...

  6. webstorm更改字体大小

    webstorm是一款不错的开发软件,一起来看看webstorm怎么更改字体大小. 1,打开该软件后,点击上面菜单栏的“文件”/File,找到其子菜单中的“设置”/Setting,点击打开. 2,在新 ...

  7. poj很好很有层次感(转)

    OJ上的一些水题(可用来练手和增加自信) (POJ 3299,POJ 2159,POJ 2739,POJ 1083,POJ 2262,POJ 1503,POJ 3006,POJ 2255,POJ 30 ...

  8. ITxlab倡议启动“互联网X大脑”计划

    导语:"互联网X大脑"计划由ITxlab(互联网X实验室)联合科学院相关机构.基于7年以来取得的研究成果,倡议建立的互联网与脑科学前沿研究平台,吸引不同领域专家进行科学研究和成果交 ...

  9. 如何在IntelliJ IDEA中使用Git .ignore插件忽略不必要提交的文件

    参考  https://blog.csdn.net/qq_34590097/article/details/56284935 最近初学Git,而且在使用的IDE是IntelliJ IDEA,发现IDE ...

  10. SRS流媒体服务器安装配置

    SRS全称Simple RTMP Server,定位是运营级的互联网直播服务器集群,是一个非常简单就可以推送rtmp视频流的服务器. github主页:https://github.com/ossrs ...