程序猿的自我修养
最近在看到很多人问一些基本的东西,或者说一些资源、一些简单问题等,其实很好找到答案,在这里总结一下自己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 全文翻译
二、善于搜索资源
伟大的互联网给予了我们强大而丰富的分享资源;而获取方式对于程序猿来说,也是个必修课。
1、百度云分享搜索
普遍的,我们大多是资料存放在百度云中(至少我);而对于云盘,其实我们是可以加以利用的,比如张三给李四分享了资料(公开方式分享),其实我们也是可以借机看看的:
Chrome 下载油猴插件(Tampermonkey)
安装百度云脚本 脚本仓库地址
搜索脚本
安装脚本
百度云搜索资源
2、网站搜索
当云盘搜索无法满足我们的实际需求时,可以尝试再资源分享网站搜索,有很多资源分享的网站放置大部分共享的教程等,以下列出了一些:
当然,更多的资源网站不一一列举,还有很多 比如 极客学院(推广免费体验会员,IDM可抓取视频下载)、慕课网(不怎么去)、北风网(收费且离谱)等等,自己发掘。
3、万能X宝
当你穷途末路找不到好的资源时,千万不要忘了 “马云爸爸”;万能的X宝除了枪支弹剩下的一般都有,当然包括我们的学习视频:
三、保持进取
1、保持好奇心
虽说好奇心害死猫,但是猿类一般不会死,反而会变得更聪明。要保持良好的好奇心,多加入一些 Java 交流群,平时尽量把看电视剧的时间放在看看 OSCina、CSDN、Github 之类的IT网站上;每当别人讨论技术或者 CSDN等新闻提到新技术的时候,没听过的一定要 Google 一下,因为技术总归不会去主动找你,努力增加自己的知识广度。
2、学会自我优化
在工作中,每当我们敲完一段代码时,如果时间允许;那么就不要抱着以完成任务为目标的心态去写代码,多思考怎么实现更优雅;经常对自己的代码进行 review;做一个 “完美主义者”(量力而行)。
3、专注偷懒
不管大家怎么说,我们必须承认,程序猿每天都在试图偷懒;对于冗长的代码,尽量思考怎么去 “偷懒” 完成它,不要造轮子,做重复工作,因为程序员天生就擅长 “偷懒”,否则不会有 for 循环这种玩意。
4、合理工作
永远记住:不是你做的越多就越好,也不是努力就一定成功!
工作固然是重要的,但是从面试的角度来说,我们常常会关注一个很重要的因素:”你有几年工作经验?”;我们是否真切的思考过面试官为何问这个问题?
答案很简单,但是做到的不多。当然问你工作时间就是想评估你工作中学到了多少。但是工作时候并不会让你学习的,毕竟 “公司 不是 学校“;所以合理的安排时间就显得尤为重要,如何每天空出一部分时间让自己 “拿着工资学习” 这就取决于你的时间把控;这并不是要你1天干完的活拖到2天,那只能证明你无能,而不是你聪明,努力权衡好修改方案和最优的时间规划才是王道。
最后一点就是努力尝试,当工作中一个功能需要你来完成时,首先你应该考虑用到的技术,同时必须关注当前是否有解决这个问题更好的技术;如果有,那么评估好工作量,大胆去尝试吧,毕竟你为公司带来了价值,公司除了给你钱以外,还得让你成长。。。你的工资远远小于你对公司的价值。
四、学会忘记
当你了解的很多的时候,你会发现 “知识无止境,根本学不完” 这个道理。当然有两个选择,一是啥也不学了,二是学了然后忘掉它。
我只能说我的计策是学了,然后 “忘掉” 它;在忘掉之前一定做好记录。。。
人脑子不是计算机,所以根据 艾宾浩斯遗忘曲线 来说,忘的速度跟吃饭喝凉水差不多,这时候做好笔记显得更重要;多锻炼写笔记总结,或者写一写博客,当然不要抱着给别人看装X的心理去写;写的时候要想着怎么让自己忘了时候快速的想起来,当你写完以后反复看几遍,如果感觉这个技术短期用不到,那就勇敢地 “忘了” 吧;作为标准猿类,很多技术我们不必全部都会,但是有人跟你提起的时候必须知道它是干什么的,如果现在要用,那么必须能快速找到资料并学会它,这是一种能力。