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 条回复
Andiry
2015-08-03 07:22:44 +08:00
不是吐槽楼主,只觉得英国一年硕士是真水。这六门课放在国内只能算是本科一年级入门的程度吧,居然放在postgraduate来上。。。
aiguozhedaodan
2015-08-03 07:33:05 +08:00
学制2年内的硕士的话…
国家电网是这样,前提硕士是在教育部认证的国外大学
如果本科211以上,硕士学历承认
如果本科非211,国外两年以内的硕士均不被承认
还有一些其他关于什么时候毕业算哪一届的琐碎规定
各省局会有轻微差异
i8s301a
2015-08-03 08:03:59 +08:00
很好奇楼主是怎么跨专业申请到英国的计算机postgraduate的,愿闻其详,谢谢。
allan888
2015-08-03 08:08:44 +08:00
还有就是吐槽一下,英国才多少学校,英国的top20和“事实证明金光闪闪的学历确实有用“感觉很矛盾啊。
des
2015-08-03 08:17:26 +08:00
楼主说的fullstack 和你们理解的那个不一样吧。
建议楼主花一点时间去学习一下一门语言深层次的东西,而不要一味地求多
zmj1316
2015-08-03 08:22:27 +08:00
“这个安卓项目在百万行代码左右,1.5g源代码,c语言和java用ndk交叉编译,是个通讯软件,只有我一个人负责开发。”
吓尿了

@em70 虽然代码行数比上过的课靠谱,但作为衡量标准还是有点欠缺,当然如果lz真的写了这么多实力肯定不差。
em70
2015-08-03 09:00:48 +08:00
@zmj1316 我只是觉得他学习方式是对的,他可以不依赖其他人自学项目所需的任何新知识,这是程序员最重要的技能,有没有浮夸成分并不重要,至少比之前跟我扯需不需要上培训班的人强得多。当然也没什么可炫耀的,任何一位合格程序员都有这种能力。
Honwhy
2015-08-03 09:08:54 +08:00
楼主代码数量那么多,不见得是件好事。对此我早有体会了。
sox
2015-08-03 09:39:31 +08:00
把自己的经验强加在别人身上,为什么非得推到重来,就算也是一种成功。
deving
2015-08-03 09:44:25 +08:00
深有同感,当时在android官网学习那些东西,校招面试的时候被问到四大组件,我表示不懂,然后股东被pass了
deving
2015-08-03 09:47:14 +08:00
@blacktulip 确实,如果楼主30+了,会比较励志一点,25,也就是大学毕业生的年纪,再说楼主是研究生,在年龄在外语上比国内很多大学毕业生有优势
tabris17
2015-08-03 09:51:21 +08:00
重来是谁?漂亮吗
Vladimir
2015-08-03 10:01:34 +08:00
我也是大学毕业后半年才转的程序啊,的确不算晚//安慰自己
lsmgeb89
2015-08-03 10:07:07 +08:00
请问,楼主是一个人用了 23 个月写了百万行代码?
mlhorizon
2015-08-03 11:03:51 +08:00
从楼主的帖子来看:
1、英国的研究生课程好水,乱七八糟一通入门,哪条经络都没打通。
2、英国的研究生思想好纯洁,经历了初夜,就以为自己是xxoo大师了。
tracyone
2015-08-03 11:04:09 +08:00
论吹牛逼的重要性…楼主吹得好,随随便便就fullstack,1g代码里面有多少是根本不要怎么改的代码?
yongzhong
2015-08-03 11:10:13 +08:00
'重来'是谁?
learnshare
2015-08-03 11:12:23 +08:00
百万行是一个人写的?AOSP 的 Java 代码才有多少
xihesi
2015-08-03 11:40:11 +08:00
感觉英文是弊端,英文基层好,学习进度很快
cpp255
2015-08-03 12:46:05 +08:00
百万行代码左右,1.5g源代码。一个人,我得写多久啊

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

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

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

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

© 2021 V2EX