程序猿的自我修养

程序猿

最近在看到很多人问一些基本的东西,或者说一些资源、一些简单问题等,其实很好找到答案,在这里总结一下自己1年工作经验的学习经历。

一、善用搜索引擎

搜索引擎对于程序猿屌丝来说最熟悉不过了;但在实际使用中,你会发现经常出现 “我擦,我怎么没搜到” 这种问题,以下做了几点建议:

1、摒弃百度

对于习惯了从小从教科书开始学习的我们来说,”有问题找度娘” 这似乎是铁律;而对于谁对谁错漠然在此不想加以评论,我只能说根据经验和实际使用,百度真心不如Google。

其实每个搜索引擎并没有绝对的好与坏,只是相对于使用场景,对于搜索代码错误、框架教程等强烈建议选择 Google,因为百度你会发现10条里9条是 copy 过来并且没有加以验证的。而对于本土化资源,如搜索周边公园、小吃、公交等等,Google绝对鞭长莫及。

关于如何使用 Google,请看我博客教程,至少我认为程序猿不会爬墙是种耻辱,因为我们应该是最容易接触世界的人!

2、合理组织关键词

虽然我们使用同样的搜索引擎或者百度,但你会发现有些东西,别人能搜到你还是搜不到。。。你感觉这世界不怎么友好。。。

其实以程序员的角度理解搜索引擎,问题就简单了;搜索引擎在搜索东西时也是先建立网页索引和关键字,然后去匹配;而且有些人往往忽略这个问题,搜索问题时往往是这样的 “XXXX在XXXX时候为什么会出现XXXX错误?” ;可想而知这基本是没什么结果的,因为你的关键字(搜索内容)太长了,搜索引擎会通过空格做分词操作,为了精准匹配,如搜索 “XXXX(某个技术名词如框架) (错误关键字/技术关键字)” 效果会好得多;简单的例子如下:

错误搜索案例:”Spring怎么在XML里配置事务切面?”
正确搜索案例:”Spring XML 事务切面”

3、中英文切换

百度不经常用,至少 Google 是这样的:当你的搜索词语中出现中文的时候,并且你的 Google 账户也是设置的语言中文,那么 Google 会优先索引中文网页,如果中文并没有很好地解释时,我们可以尝试全部使用英文来搜索,这样你会看到很多老外的回答。这个技巧也适用于你不想看英文内容时,可以试着在关键词里加入中文。

4、善用 Google 翻译

Google 翻译其实还是很强大的,当我们在中文索引中无法找到答案时,可以搜索英文,并使用强大的 Google 翻译,进行全文翻译,如下:

关键词搜索:

关键词搜索

Google 全文翻译

Google 全文翻译

二、善于搜索资源

伟大的互联网给予了我们强大而丰富的分享资源;而获取方式对于程序猿来说,也是个必修课。

1、百度云分享搜索

普遍的,我们大多是资料存放在百度云中(至少我);而对于云盘,其实我们是可以加以利用的,比如张三给李四分享了资料(公开方式分享),其实我们也是可以借机看看的:

Chrome 下载油猴插件(Tampermonkey)

下载油猴插件

安装百度云脚本 脚本仓库地址

搜索脚本
搜索脚本

安装脚本
安装脚本

百度云搜索资源
百度云搜索资源

2、网站搜索

当云盘搜索无法满足我们的实际需求时,可以尝试再资源分享网站搜索,有很多资源分享的网站放置大部分共享的教程等,以下列出了一些:

  • Java 1234 主要分享各种视频资料
  • Github 众多分享项目在此
  • OSC@Git 国内的开源平台,有很多教程 Demo
  • Coding 没怎么用过

当然,更多的资源网站不一一列举,还有很多 比如 极客学院(推广免费体验会员,IDM可抓取视频下载)、慕课网(不怎么去)、北风网(收费且离谱)等等,自己发掘。

3、万能X宝

当你穷途末路找不到好的资源时,千万不要忘了 “马云爸爸”;万能的X宝除了枪支弹剩下的一般都有,当然包括我们的学习视频:

淘宝搜索

三、保持进取

1、保持好奇心

虽说好奇心害死猫,但是猿类一般不会死,反而会变得更聪明。要保持良好的好奇心,多加入一些 Java 交流群,平时尽量把看电视剧的时间放在看看 OSCina、CSDN、Github 之类的IT网站上;每当别人讨论技术或者 CSDN等新闻提到新技术的时候,没听过的一定要 Google 一下,因为技术总归不会去主动找你,努力增加自己的知识广度

2、学会自我优化

在工作中,每当我们敲完一段代码时,如果时间允许;那么就不要抱着以完成任务为目标的心态去写代码,多思考怎么实现更优雅;经常对自己的代码进行 review;做一个 “完美主义者”(量力而行)。

3、专注偷懒

不管大家怎么说,我们必须承认,程序猿每天都在试图偷懒;对于冗长的代码,尽量思考怎么去 “偷懒” 完成它,不要造轮子,做重复工作,因为程序员天生就擅长 “偷懒”,否则不会有 for 循环这种玩意。

4、合理工作

永远记住:不是你做的越多就越好,也不是努力就一定成功!

工作固然是重要的,但是从面试的角度来说,我们常常会关注一个很重要的因素:”你有几年工作经验?”;我们是否真切的思考过面试官为何问这个问题?

答案很简单,但是做到的不多。当然问你工作时间就是想评估你工作中学到了多少。但是工作时候并不会让你学习的,毕竟 “公司 不是 学校“;所以合理的安排时间就显得尤为重要,如何每天空出一部分时间让自己 “拿着工资学习” 这就取决于你的时间把控;这并不是要你1天干完的活拖到2天,那只能证明你无能,而不是你聪明,努力权衡好修改方案和最优的时间规划才是王道。

最后一点就是努力尝试,当工作中一个功能需要你来完成时,首先你应该考虑用到的技术,同时必须关注当前是否有解决这个问题更好的技术;如果有,那么评估好工作量,大胆去尝试吧,毕竟你为公司带来了价值,公司除了给你钱以外,还得让你成长。。。你的工资远远小于你对公司的价值。

四、学会忘记

当你了解的很多的时候,你会发现 “知识无止境,根本学不完” 这个道理。当然有两个选择,一是啥也不学了,二是学了然后忘掉它。

我只能说我的计策是学了,然后 “忘掉” 它;在忘掉之前一定做好记录。。。

人脑子不是计算机,所以根据 艾宾浩斯遗忘曲线 来说,忘的速度跟吃饭喝凉水差不多,这时候做好笔记显得更重要;多锻炼写笔记总结,或者写一写博客,当然不要抱着给别人看装X的心理去写;写的时候要想着怎么让自己忘了时候快速的想起来,当你写完以后反复看几遍,如果感觉这个技术短期用不到,那就勇敢地 “忘了” 吧;作为标准猿类,很多技术我们不必全部都会,但是有人跟你提起的时候必须知道它是干什么的,如果现在要用,那么必须能快速找到资料并学会它,这是一种能力。

未完待续,欢迎补充……


程序猿的自我修养
https://mritd.com/2016/03/08/programmer's-self-cultivation/
作者
Kovacs
发布于
2016年3月8日
许可协议