生活,未来和代码

时光荏苒

两年了,已经写了两年的代码了。

不知不觉,却也来去匆匆。

当年是因为非常的愤怒,然后去学的开发。

说起原因,其实挺感谢当前的。

那个时候懂得不多,又挺想融入学校的一切。就参加了创业赛什么的。

参加的时候很辛苦,写了50页的word。还整理了好多PPT,还做了很多的调查,查了很多的资料。

到比赛的时候,真的是技不如人。真心很佩服他们的奇思妙想。

然而比赛一个月后。

我看到他们一个个从来没有翻过计划书,从未身体力行去执行。

他们在酷跑(手游),他们在战斗,他们在睡觉,他们在翘课,他们在打情骂俏,他们在嘻嘻哈哈。

愤怒

大写的愤怒。

你他妈有那么多改变世界的计划,你倒是做啊!

你他妈有那么牛逼的点子你倒是做啊!

后来,我学了这些。

Learning something

那个时候真的是愤怒驱动着我去做一些事情。

去看视频,去写代码。

只有一个我。

那个时候大部分时间是在慕课网看视频的。

一开始是从HTML学起,然后看了CSS。差不多是结合着看的。

JS当时是真的看不懂。

然后走了PHP,当时为什么不学Java呢?

因为当时接触的只有PHP.而且开发环境搭建绝对是个相当要命的环节。

Java的环境当时对我来说最难的就是写Path变量。

完完全全一窍不通。没有人帮我。

相比之下。wamp环境挺容易弄的,只是下载个软件就好了。

一发不可收拾。

因为有一点儿C++的基础,写PHP也不至于完全不懂。

那些内置函数的功能真是挺难记的。

后来也是慢慢写练的还行吧。

这个阶段JS功力其实几乎也是没有。

那个时候前端用Bootstrap,后端手写的PHP做了个评教网站。在学校的程序设计大赛上拿了二等奖。

然后大概是年初,2014年末。都可能吧。学了ThinkPHP。

当时真是对我有着绝对性的提升。我完完全全没有想到过有这么多Amazing的功能已经给我内置好了。不用我重复编写。而且其中大部分的代码比我自己写的质量要高很多。

很兴奋的用了ThinkPHP。现在虽然早已忘记了语法什么的。然而还是非常的感谢。

后来就把很大一部分精力放在了JS上。那个时候发现了JS的魅力,只要英文过关,几乎没什么不认识的。写起来也是顺风顺水。

好像突然间就自己全都会了一样。

现在再写什么JS其实也没什么太大的困难了。甚至特别喜欢写JS(单纯的喜欢ES6)

这个阶段之后,慕课网就去得不多了。可能多的时间是在laracasts

看了laravel5的教程,正式的开始了laravel的学习。

到现在,一直在用laravel。

laravel在设计,思想,代码质量,甚至文档等等方面完虐ThinkPHP。在学习一些之后果断转了过去。

这里还是得澄清一下。ThinkPHP对我个人提升非常的大。可以说是飞跃性的。非常感谢这套框架。

如果是初学者,我会建议在学习基础知识之后,自己手写一个网站,之后试一下ThinkPHP。

laravel可能并不属于初学者接触的东西了,因为有很多其实初学者挺难理解的地方,也有很多初学者根本体会不到的东西。

那么就到了现在。

语言选择困难症

在入门阶段,我接触的语言不多:

Java, PHP

因为开发环境的难度问题,还有学习资料的获取的难易程度,我一直潜移默化的在学PHP。

后来学的差不多了就接触到了很多其他的东西,其中对我冲击最大的就是Ruby

很多文章在抨击PHP,所有人都在黑这世界上最好的语言

写Ruby的总说优雅,简单。当时尚未接触laravel,也对MVC了解不多。

中间断断续续看了Rails,却一直害怕Ruby语法不过关而一直不敢用。

现在想想真是大错特错。Ruby的语法也许是所有语言里最简单的了。

我依旧记得那个yield把我吓得不轻。其实到现在也没有清晰地理解到底是什么意思。因为用的不多。

因为害怕,所以没有学好Rails。

不过幸好不怎么亏,至少了解了一点儿MVC什么的,为后来的laravel和Angular的学习打下了不错的基础。

至于Python,从头到尾都没怎么用心的学。也就写写慕课网上的入门课程的代码。

至于为什么。。。我想可能是因为当时PHP够我用的了吧。

Node是断断续续学的。直到最近才真正的敢用起来,不过还是不敢在正经的项目里用。

Node很新,JavaScript很棒。我之前说过,我挺喜欢写JS的,所以有时候就爱写一些。

用Node可以做很多事情。网站,爬虫。

最近写了一个App的Server端,就是用Node写的。运行起来挺不错的。

而爬虫不太给力。因为非阻塞异步的特性,整个循环不敢跑起来。写过一点儿,却一直不敢用。

JS学的时候大概有一个月左右精力是在Angular上的。当时纳闷了,为什么后端的MVC要用到前端,这前端怎么用啊?

后来渐渐的学懂了一些。

然而Angular语法差不多都学好之后,却没有正式的用过。之后是各种基础DOM的学习。之后是React

关于jQuery,在前天之前,我一直是鄙夷的态度

  1. 为什么要做那么多的兼容性工作
  2. 自己手写的性能更好吧
  3. 库太大
  4. 别人都说不好
  5. etc…

然而,昨天。

我们的项目用的React前端的。出了兼容性bug。苹果设备bug,安卓设备正常。

退回到jQuery方案,完美运行。

Projects

中间断断续续做了挺多的东西的

iamhele.com

这是我的个人博客,可以说是经历时间最长的一个项目了。

从开始就做的这个。

我记得是去年写的,大概十一月份买的域名和虚拟主机。

前端用的AmazeUI的模板,然后后端是自己手写的PHP。

那个时候是在新网买的各种东西,然后备案用了挺长时间的。大概是一月份上线的。

那个时候写个文章其实是挺费劲的,各种富文本编辑器都不懂,也不怎么会调。

那个时候也根本没写几个文章。其实就是做着玩的。

说实话,真的挺自豪的。

我终于能做出一些什么东西了。

后来学了Bootstrap和ThinkPHP,立刻就做了改版。也都上线运行了。

然后学了Symfony,一个非常好用的PHP框架。之后也是立即用来改造博客。

可是。因为Symfony学的并不好,有很多东西都不懂,比如MVC,而且对于Symfony的部署很头疼。

新网那个是FTP上传代码的。

后来学了laravel,大概是用了半个月把后端改造成了laravel,大概也是那个时候,我觉得我对PHP已经有了一定的理解。

然后学了Angular,等懂的差不多了之后就用来改造博客了。

这个分支和Symfony是一样的结局。因为后来有了其他的什么事情(忘记了),这个分支就一直放在那里,没有继续写下去了。

哦,对。那个时候投向了Github pages的怀抱,用Jekyll倒腾了博客。就是这里,后来几乎一直是稳定的在写博客,就像这一篇。

超喜欢Markdown,所以写起来感觉挺好,也就愿意写点儿什么东西。

这个主题是用了happypeter的一些课程的样式,我做了一点点儿的修改,看起来更舒服一点,也稍微做了一些响应式布局什么的。

最近,在考虑把iamhele.com做成简历的样子。用React做的。

目前也是在写,项目在这里:iamhele,把后端移除了。

评教网站

这可能是我做过的第一个正经的东西吧。

因为参加了学校的程序设计大赛,然后在寒假用了大概两个星期写出来了一个评教网站,包含了搜索,添加教师,点赞,评价等等功能。纯手写的后端。

当时也是挺自豪的。

当然,现在看来就是一坨屎。

代码写成什么样?

大概是这个样子的:

<?php
$foo = $_GET['foo'];
mysqli_query($con, "select * from table where foo=$foo");
?>

就差写个eval了。

既不安全又不优雅。当时就是这么个状态。

然而整套写出来之后对我个人的鼓励是很大的。

当时把这个项目传到了Github上,前一段时间删掉了。可能太误人子弟了。

daxuedogs

这是我和朋友现在在做的一个项目。

laravel做后端。

我遇到了很多的坑,有的还特别的深。

这一块现在先不说了。将来会专门写一篇遇到的坑的文章。

看一下这个项目

App for XiaoJie

这是用react-native做的一个小东西,专门给女朋友做的。

目前因为react-native项目中的一些代码有问题,我看到有人commit解决了这个bug,然而作为懒癌晚期的我准备等下个版本之后再去解决这个问题。

后端用的是Node写的,数据库用的mongoLab的免费服务。

js-markdown

自己写的一个小东西,用来实时转换markdown到html的东西

因为当时富文本编辑器的坑对我写文章造成的影响太大,所以自己动手实现了一个简单的转换器

用ES6写的。

项目地址

zhihu crawler

这几乎是我目前为止做的最好的东西了,然而到现在都是半成品。

受到别人的启发,我想我也能写个知乎爬虫吧。

然后就动手去做了。

大量用到了设计模式方面的东西。现在真感谢当初学的设计模式什么的。

PHPStorm的自动补全震撼到了。

可以说这个项目如果没有PHPStorm,我根本记不下那么多的Interface, class, methods

后来的结果是比较惨的。

获取到了两百万的索引数据。然后账号被封了。

具体数据只拿到了一万左右。总是会出现解析错误和内存爆掉的情况。多线程也遇到了相当大的问题。

这个项目目前在停滞中。

而我比较惊讶的是,竟然真的有人star了,也有人fork了。

我当时看到有人star的第一想法是

卧槽,我得去改代码

总不能让别人拿着丑陋的,不能用的代码去做事吧。

相当激励我。

目前获取索引是正常运行的。差的是具体资料的获取。

Girl friend and Social

你胡说,程序员哪儿有女朋友!

我是在写代码之前勾搭到女朋友的。

实话实说。 自从写代码以后,社交能力下降的特别厉害。

跟女朋友玩,她老是会说我不懂眼色,不会说话。

然而她不知道的是,在高中的时候,我在班里也是人缘不错的。

其实在写代码之后有考虑过人际关系这些东西。

我发现我有点儿看不懂。

程序世界是这样的

let foo = 0;

if ( foo === 0 ) {
console.log('403 forbidden');
}else {
console.log('200 OK');
}

然而现实世界是怎样的呢?

通融一下嘛~ (顺手塞两包烟)

然后这个foo就变成1了。

难以置信!!!

其实到现在我仍旧不能理解。为什么世界是这样的。

然而它就是这样。

可能我情商低,社交能力差就是因为不会说那句通融一下吧,也不会做塞两包烟这种事吧。

Future

我有个朋友已经去阿里干活了。

整天在知乎也看到各路大神在GFMBAT什么的工作。

很羡慕

我想我很难去这些地方了。

数据结构算法能力不高。

ACM也没做过。

半路出家学的程序。

用的还是备受嘲讽的PHP。

三本学生。

哈哈,谁知道未来呢。

明年大四总要去试试吧。

好好做自己的,给未来更好的选择机会吧。