俺第一篇文章说过,码工这个职业,是世界上唯一一个任人唯贤的职业。不管是白猫黑猫,只要有雇主要的经验就是好猫。
上回有网友问,想做码工没有经验,去考个证书怎么样。俺说证书不管用,要想办法获取经验。结果有网友义愤填膺的说俺误导,说什么获取经验需要时间,而且没有工作哪来的经验?
俺说,获取经验不一定需要太多时间,也不一定非要从工作上获取不可。
经验这个词,有两个意思。第一个是你内在的经验,就是说你做过什么,会什么。第二个是别人承认的经验,就是你放在简历上人家看了愿意给你 job 的经验。分清这两种意思很重要,因为内在的经验不需要有工作就可以获取,而且内在的经验可以转化为别人承认的经验。所以 IT 入门,首要的就是要获取内在经验。
俺第一篇文章说过,软件贵在软字。因为软,所以你不受时间空间的限制。只要你有一台联网的电脑,你要什么经验就能有什么经验,不用出门,不用上班。比如要学 Java,网上什么都有,而且什么都是免费的。语言,IDE,Server (web server,app server),数据库,源代码承储系统,以及无数 3rd party 的软件包,全部是免费的。还有无数的书,教程,论坛,开源的项目,等等等等。所以获取 Java 经验,不用有工作,也不用靠人。
学习 Java,在家里完全可以建立一个跟公司一样的开发环境,因为 Java 的很多东西都是开源的,商业的软件网上一般也有免费的个人版本。俺下面的清单里,Eclipse,Maven,SVN,Spring 都是开源的,而且在大部分公司都是 standard。
IDE: Eclipse
Source Code Control: SVN
Build: Maven
Framework: Spring
Web Server: Tomcat
Database: MySQL
Project: AppFuse
AppFuse 是一个 web 项目的框架。装上它,你就算有了自己的一个 Java 项目。AppFuse 用的 web framwork 挺多,你只要做 SpringMVC 就可以了。通过捣鼓 AppFuse,你可以获得以下的 Java 开发经验。
1. 搞懂 maven 怎么运作。
2. 会用 svn 来管理你的源代码。
3. 搞懂数据库的基本运作以及 Java 跟数据库的链接。
4. 熟悉 spring framework。
5. 搞懂 web application 的框架结构。
6. 搞清楚 web application 的流程 (web browser 跟 server 如何链接, server 跟数据库是如何链接)。
7. 学会用 eclipse。
东西很多,但是你不用精益求精,会些基本的东西就行了。比如 maven,怎么通过 maven 在项目里用一个新的 3rd party 软件包。比如 web application,如何再加一个 field (比如 employee 的学历),从前台一直到数据库。做软件的,有一个好性格是懒,需要什么才去研究,不然外面有这么多东西,要想全知道,非累死不可。即使是经验丰富的码工,也有很多基本的东西不知道的。
从无到有学习编程,最重要的是身边无时无刻要有一个答疑的人。俺老婆学 Java,前几次都是一两天就放弃了,因为遇到的问题太多。后来俺发现了 Yahoo IM,她有问题能立刻得到答案,才得以坚持下来。因为这个,俺一直把 Yahoo IM 当作俺的恩人。
以上的东西捣鼓两三个月,你就有了一年的 Java 经验。如果你用心,结果可能比真正上了一年班的人还要好。