25 岁推倒重来

2015-08-03 02:05:16 +08:00
 wohenyingyu01
23个月之前,24岁的我第一次用python写下了hello world。而如今我竟然是一个安卓fullstack工程师,而且iOS也在接手中。这个安卓项目在百万行代码左右,1.5g源代码,c语言和java用ndk交叉编译,是个通讯软件,只有我一个人负责开发。iOS平台也一样。突然想写一篇攻略,教大家怎么在25岁后推倒重来。

在大学之前,我对计算机没有任何基础。上大学之后,还是没有。大学学的是会计与法律,唯一和计算机有关的课是教我们怎么使用office 2003写简历。我本科学了5年会计,3年国内,2年国外。本科毕业在我24岁的时候我成功成为了英国top 20的计算机postgraduate,开始实现小时候的梦想。我之所以不翻译为研究生,是因为它只有一年,扣去毕业设计和放假的时间,只有7个月。作为一个对计算机零基础的我,7个月能到什么程度,大家可想而知。这7个月一共6门课,我觉得真正有用的是三门,第一门基础,教一些类似intel 8086的构架,汇编语言,加法器电路,半导体原理,二进制转换等,让我明白计算机的底层是怎么运行起来的。我当时写了800行的汇编对一个数组进行排序,还不支持3位数,最后发现其他人只写了300行,因为老师还提供了一个库我不知道= =。第二门python入门,教会我什么是编程,以及一些算法,比如冒泡法,从一本百万字的书中找出使用频率最高的前10个单词等,十分有意思。但是我当时还没有编译这个概念,还不知道高级的语言是怎么在底层执行的。第三门是java,虽然只有se这个部分,但是让我明白了面向对象的概念,明白了和脚本语言的区别,明白了编译这个概念,从此一发不可收拾。但是我当时特别痴迷与写出一个界面来(以为那样才算是一个程序),除了学校教的awt,swing,我还去官网自学了javaFX。其他三科,一个软件工程,只讲一些项目管理和开发模型的,UML之类,我没什么兴趣(我连代码还不会写呢)。还有一个电子商务,教你怎么在kickstarter上集资,怎么写规划,怎么申请创业资金,怎么开公司,基本没啥用。最后一科特别神奇,感觉是讲人机交互体验的,也没有教代码,只是空讲理论,界面应该怎么设计,系统应该怎么设计,按钮应该放那个位置,统计图应该选哪种。

这6科学完我的计算机学习生涯就结束了。今年2月我研究生毕业的时候,不知道什么是html,没听过mysql,没接触过c语言。最欠缺的是网络web这块,我甚至不知道什么是端口。我以first class最高学分等级毕业,回国过了年就开始找工作了。英国top 20计算机研究生一等荣誉学位,事实证明金光闪闪的学历确实有用。

今年4月的时候我开始了国内第一份实习工作,java安卓开发,百万级代码,我一个人。c语言的部分就几十万行,别说我没学过c语言,就算是安卓我也没接触过。没人带我怎么办?我先花了一周过了一遍c语言,到指针那块。然后翻墙从谷歌安卓官网的how to get started开始看起。当时我根本不知道我第一天学的东西在国内叫“安卓四大组件”。又过了2周的时候我基本可以开始开发了。但是当时公司有一个网管系统急需后端,又临时叫我去了,又是我一个人。这个项目其实算是外包的,但是由于配合这个系统的云平台在不断地改协议,所以需要一个人能够维护网管系统同步更新。这个网管系统是基于SNMP协议的,基于eclipse rap开发,osgi框架支持组件热插拔,代码1g左右。这是我第一次用eclipse(学校都是netbeans)。最搞笑的是,这个项目代码不对我们开放,在eclipse里面以一种target platform的形式存在。如果需要修改则直接继承父类过来重写。外包公司写了一个demo给我,没有文档,没有注释,没有源代码,完全一抓瞎,很多方法都不知道是干嘛的,只能照着写。参数都叫param,变量都叫value。后来开发完需要打包部署到服务器,我在eclipse的help里面找到的打包war包的流程,然后通过谷歌我第一次知道tomcat可以用来部署(顺带了解阿帕奇),第一次知道端口的含义,第一次见到了公司服务器,学会了许多Linux命令,第一次知道ssh可以远程,第一次用mysql数据库来存放网管的数据,第一次学了jdbc,第一次知道java的单例模式,没有任何人教我。这两个月有了我太多的第一次,每天都能发现新大陆。

现在我又回到了移动端项目,开始按照产品经理的设计文档开发。之前刚看完安卓的content provider,现在打算看animation这块。iOS也等着我开发,可是我还不会用swift写hello world。比起之前会计的枯燥无味,每天都能过的很有激情,也是在追随小时候的梦想。发出来希望和每一个想推倒重来的人共勉,只要你想学计算机,多晚都不迟。
6024 次点击
所在节点    随想
159 条回复
blacktulip
2015-08-03 02:08:47 +08:00
25 那么年轻,你这个例子实在无法得出「多晚都不晚」这个结论来
chengzhoukun
2015-08-03 02:10:40 +08:00
英国一年制研究生在国内含金量大么。。。
wkdhf233
2015-08-03 02:13:11 +08:00
@blacktulip 认识一个老爷子,退休后因为个人兴趣自学了几门外语。。每门都到了能直接啃对应国家史料书籍的程度。。老人家现在80多。。
regent
2015-08-03 02:33:32 +08:00
@chengzhoukun 国企还行,民企不鸟
scys
2015-08-03 02:45:22 +08:00
这个,加油呀~年轻有为是好事:)
scys
2015-08-03 02:49:34 +08:00
只想想吐槽,怎么每个人都可以随便说安卓全栈?
你深入过 JVM,触动过内核,替换过WebView,修饰过开机图片,提供过OTA服务,添加过驱动,配合过硬件电路?
看过这,感觉不是一个人干活能行。年轻加油~起码比我成就高多了-_-人比人呀~气不死我,哈
god
2015-08-03 03:21:33 +08:00
您一定花费了大量的精力和体力。。。

将来您会意识到可以更合理的将这样的精力和体力善加利用
GeekTest
2015-08-03 04:00:25 +08:00
高一狗路过留名,看来我还是学Python比较好,虽然那个LOGO看起来不怎么样
shippo7
2015-08-03 04:01:54 +08:00
很棒
freeindex
2015-08-03 04:02:42 +08:00
读了你的学习经历,深深地触动了我,让我觉得自己确实还是不够努力,为自己加油,感谢你的分享。
liuhk388
2015-08-03 04:20:12 +08:00
问一下 LZ 当时零基础的话是怎么申 postgraduate 的…
Andiry
2015-08-03 04:57:16 +08:00
看第一段吓尿了,以为用了23个月一个人写了个百万行的安卓项目出来
Andiry
2015-08-03 04:59:14 +08:00
另外你现在的状态离fullstack差得远,就不要乱用这个词了
Rorysky
2015-08-03 05:22:45 +08:00
我觉得 从未来社会发展趋势上说,更加需要 财会 的人才。。。
allan888
2015-08-03 06:18:46 +08:00
“今年4月的时候我开始了国内第一份实习工作,java安卓开发,百万级代码,我一个人。”
根本听不懂这句话啥意思。既然你是实习那百万行和你有啥关系?什么叫做你一个人?
em70
2015-08-03 06:23:18 +08:00
这才是一个程序员该有的打怪升级路径,推荐那些只会上培训班的人看看,楼主用的代码行数来衡量自己,不是上过的课。
echo1937
2015-08-03 06:24:28 +08:00
聪明人果然是学什么都快,楼主也非常努力,值得我学习。

不过楼主说的fullstack和大众通常认为的fullstack不太一样,

坐等楼下来普及什么才是真正意义上的fullstack。
theoractice
2015-08-03 07:06:12 +08:00
看完开头下意识地瞄了一下节点,发现不是酷工作才放下心。果然最近软文看多了。。。
woojuno
2015-08-03 07:09:44 +08:00
安卓fullstack是个什么意思?
theoractice
2015-08-03 07:09:59 +08:00
当然 LZ 的路走得很有前途,我只是吐槽我自己。。。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/210329

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX