绎[4]改:常见问题系列
本来昨天在写第四期,但是写着写着好像离题了,干脆重新写一篇好了。第二期过去也有几星期了,还没写完,感觉内容定太多了,像python指南最后都不得不分离出来。第三期的大纲早定好了,不过还是等第二期写完了再说。如果按照原定的计划,这应该是第七期了,不过现在正好跟学校的日程同步了,继续第四期也无妨。
二十三
经常有人问我很多回答过不知道多少遍的问题,关于个人的也好,关于计算机的也好,五花八门。所以想为了避免不必要的陈述,还是抽时间专门写一篇东西出来比较好。不过实际上这只是一个自问自答的游戏而已。鉴于问我问题的大多是学生,也就不多做假设了。暂时先写这么几个吧,以后需要的时候再更新。
Q2:想搞软件开发,如何开始?
对曰:首先,学好英语。无论搞软件还是搞硬件,英语不差的学起来也不会太费劲。其次,如果你有能力提升自己的英语水平,那想搞开发也不会太难。
讲正经的,首先选条路快速上手实践。此处先已Android开发为例(这也是我之所以最后决定把这些东西写出来的动机之一)。虽然我也才开始搞安卓,不过大体思路是有的,只是我的精力和时间很有限了现在,不能跟现在大一大二的比。首先要纠正一个误区是,搞安卓确实可以不用一开始就专门去学java的,但这要建立在你对编程语言有一个整体的认识上(比如你之前已经接触过了C++和javascript)。于是换句话说,有些java的基础还是要懂的,不过这个可以反过来学,通过其他较为简单的android项目代码来逆向分析。这个思路其实比较适合新手,然而大多数人都还是中规中矩从java到安卓。这样其实也有一定的好处,因为如果你后端还要用到serverlet的话,java基础的优先级可以高一点。但我觉得,这年头除非真的是有某些方面的考虑,后端不一定要用java,大可用一些node.js啦python或rails之类的,php或erlang也无妨。
类似的,如果你想搞web,我也会推荐你学php(虽然我自己还不会这个)。但是要注意,选择了一门编程语言实际上就是选择了一个技术圈子。国内的PHP氛围其实挺乱的,不太成气候(相对来讲,ruby圈的氛围还不错)。所以真要学php的话,也不建议从那些五花八门的国产视频教程入手。注意,这里我不是黑视频教程有多么低效,而是国内目前关于软件开发的视频教程总体质量还是有所欠缺,尤其是历史越久的,越少有改观。国外的视频教程也有些比较水的,但总体来讲那些经得起时间考验的也还是留下来了(而且你要知道国外付费的视频教程还挺受欢迎)。但是国外的视频教程也有个问题,那就是需要克服一定的语言障碍。这当然也是个学英语的思路,不过并非适合每个人。
说到视频教程,我觉得还是应该以文字参考为主。这里,实体书的重要性尤为突出。但实体书的质量也是参差不齐,所以涉及到一个技术类书籍挑选的问题。一般来说,一本书的封面印象对我的判断有很大影响。我不喜欢那种用着奇怪特效的封面,也不喜欢那种花哨的诸如21天学通C++之类的标题。再一个是书的厚度,一般来讲,入门参考不需要太厚的,即便有点深度的书,通常也没办法写得太厚。所以比较厚的书无非三类:类似字典一样的参考书但不怎么实用,或者就是凑字数来的,再或者是那种神级别的书但你根本没有看的必要因为多数情况要么看不懂要么根本看不下去。另外,外文翻译过来的书也要注意翻译质量,比如我就觉得《erlang程序设计》的第二版翻译不如第一版,于是我宁愿去看原版了。然后是看目录和前言,再就是看出版社,国内技术类书籍的出版社,感觉人民邮电和机械工业还可以,有些出版社因为老是出一些没什么用的水货,我现在基本上也是心里有数了。
文字参考方面,除了纸质书,电子文档也是很重要的,尤其是离线文档。年纪稍小的可能不太理解为什么以前那个互联网不太发达的年代反而会有那么多技术大牛,其实道理很简单,因为那时候离线文档更多,查起来更方便,于是经验积累也快。那时候的人不会花太多时间在线上讨论上,网速那么慢,还不如自己多花点时间动手研究下(关键还是动手)。反观现在,Photoshop的最新版早就不自带离线文档了,就算你网再快,也要等它一下加载时间,事实上这会让你很不耐烦,于是干脆不愿看帮助文档了。一旦形成了这样的印象,基本现在的adobe软件都有离线文档下载的功能,但大多数人都懒得再去专门下载了,还不如去看视频教程或者纸质书,于是这间接的导致了官方在线文档的质量下降以及翻译量的减少(要知道以前adobe和msdn的大多数中文文档都是人工翻译的,质量还算不错,当然后面用机器翻译跟国内用盗版也有一定关系)。
回到前面安卓和php的话题,说到离线文档,一般官方是自带的,比较流行的自然也会有人翻译,现在至少java和android的api文档肯定都有中文翻译版,但很多时候其实你会发现看英文原版会更直观一点。我以windows命令提示符里面的cd命令为例,很多人知道cd是切换目录,但如果直接告诉你,cd = change directory,是不是更直观点?而且很多人还不知道cd /d这个参数可以强制切换目录,不用一步步跳到上一级。你若问我cd /d这个参数是怎么知道的,其实很简单,cd /?就可以看帮助信息了,这个我初二的时候就知道了。当然现在也有很多离线文档工具,比如mac下的dash,以及windows下的仿制品zeal。
很多人都会说社区其实挺重要的,但我觉得,相比于线上社区,在校期间,和身边的人相处更重要。也许他们的能力不及你,或者有诸多你不能接受的毛病,但这就是现实,你可以改变,也可以去适应改变,一切顺其自然。有时候相反,当然,相反的,有时你认识的人越多,你会发现自己变得更渺小。而无论何种情况,最主要的还是交流,你不一定要跟身边的人讨论技术问题,但可以找些共同语言(除非实在没有的情况)。这可以让你明白为什么他们会变成今天的这个样子,以及为什么你们最终会走到统一个集合里。当然这个年代,交友也需谨慎,有坏人就会有好人,有好人就会有坏人,不要等毕了业还不知道怎么分辨是非,那就晚了。
软件开发上手都会遇到很多问题,其实归根结底就是动手太少。这里我不是要跟你讲知行合一,只是强调一点,无论你动不动手,不要忽略了学习和实践的过程中要多做总结。在这里我写这么多废话其实也是一种总结的过程,除了耗点时间之外,也没啥坏处。
最后,搞技术的,要多思考,多问,多动手实践,要多跟人交流,且心态谦卑。这其实挺符合我们学校的校训来着:学以致用。然而很多人,即便毕业了,也未必能搞懂。因为这只是一个问答环节,我就不多讲为什么我并不喜欢写代码以及我对未来的软件工程的看法了。
Q1:电脑出问题了怎么办?
对曰:首先,这个不一定要找我。你可以去找售后,或者找其他自认为技术很牛逼的人。因为找我的话,不一定能解决你的问题,而且可能比较花时间,比如就装系统而言,我基本不再用ghost了。而且有时候备份数据的时候,我还会花时间帮你把输入法词库也导出了。
电脑坏了,首先要分析问题的由来。逐步去排除问题的可能因素。有时候需要逐个去排除,有时候运气好也许能一下子排除好几个可能。随着经验的累积,对于一些问题便会形成条件反射,当然有时候思维定势也会困扰你,不过大体上来讲还是能普遍提高问题的解决效率。
原则上,能自己搞定问题最好都自己搞定吧,这个不分男女。而且很多情况你问度娘都会有结果,虽然不一定对也不一定靠谱。比如U盘数据被误删了怎么恢复,一般百度出来的方法也能用。有些问题,一般人在没有经验没有工具的情况下也是搞不定的。可能换个硬盘或者屏幕不是很难,但是如果主板电源的接触点出问题了呢,所以,如果是自己的电脑,敢于尝试不是什么问题,无非要付出点代价,可能是耗费你钻研的时间,或者是把主板焊坏了。如果是帮别人修电脑,尽可能的保守,能不重装就不重装;觉得速度慢的,如果对方能接受,那能换固态硬盘就尽量换固态硬盘。该细致的时候细致,该粗暴的时候就要简单粗暴。
修电脑,思路一定要灵活。比如对方的笔记本无线网卡找不到网络,不一定是系统问题。假如你一上来就认为重装能搞定,那如果对方的BIOS不小心重置了把WLAN禁用了你怎么办?结果你重装了N遍,最后也没能搞定,还浪费了时间(真实的故事)。所以这是个脏活,某种意义上不太适合女生,这也是为什么我觉得电脑出问题了,男生大多都能自己搞定的问题就不需要来找我了。换做我父母那个年代,男的要是不会点电工维修,家里的设备要出了问题那就尴尬了,道理其实是一样的。
很多搞IT或者学工科的,大多不屑于修电脑,这种不屑,就有点类似写代码的看不起做黑产的。然而最近xcode这么一来,那些中招的键盘猴全傻逼了。道理很简单,每个门道都有自己存在的意义,于是技多不压身。现在很多人经济能力适应的,都开始换mac了,然而大多数终归还是要用到windows,这就是现实。其实mac的系统也没多好,只是大多数人的使用水平还不足以见识到那些比较恶心的问题。我只是顺便吐槽,没有黑谁的意思。
Q3:上学期怎么不见你在学校?
这个其实没有那么复杂,老实讲我自己还以为自己休学了,其实并没有。简单说,我只是因为心理还是精神上有点问题,最后在今年年初的时候爆发了,他们管这个叫抑郁症,能活下来我觉得挺庆幸。后来就是调养了半年,然后,这学期看起来比较胖一方面是饭量大没锻炼,另一方面是药物的副作用。其实这就是一个比较滑稽的故事,很多人不明白当初我为什么要休学,其实我自己也讲不清了现在,如果要讲的话,又可以离题千里。直到今天,最初的那些问题还在延续着。在深圳的那段时间,我闲着没事,在亲人的介绍下,去了一家硬件公司做主板layout,干了两个月,因为一件事情我又想回北京了,但是好像没有太合适的理由。我觉得我喜欢上了一个人,那是七月,她毕业了,打算回去准备再考一次研。我的想法也很简单,就是想在她离开北京的时候送她一下。但是你要知道,一个已经工作了的人,想请一个不定长的假期有多困难,所以我想干脆辞职了吧。那个工作其实也没什么不好,只是从长期来考虑我会活的比较累。
然后我就回来了。虽然最后没能去火车站送她一程,在那之前还是一起看了场电影。情况差不多就是这样,现在继续跟大三,以前遗留的问题,我也不多想啦,先稳定下来再说。