自我介绍

我叫唐佳诚,是杭州电子科技大学会计学院大三学生,也在一些创业团队作为全职工程师工作过,除了UI设计,算是一位全栈开发者,主要是专注于iOS移动端开发。平时喜欢参与开源社区的讨论,对新技术也很关注。Github不是很活跃,因为主要都在coding.net等国内Git仓库托管代码,目前和同学一起在搞创业团队。至于工作内容,当然是前后端都有啦。

编程道路

最早跟编程结缘就是在小学五年级的NOIP信息学奥林匹克竞赛,那时候使用Pascal语言作为编程语言,最初想要进入NOIP竞赛的目的就是为了能玩电脑,还有些课可以不用上,这也是我第一次接触编程。记得最初的时候还是windows98的系统,用着16位的Turbo Pascal,后来到了初中还是NOIP信息学竞赛,那个时候自学了C语言和C++语言,后来慢慢的才了解到Pascal语言作为教学语言的意义。等进入了高中,为了学习木马的编写而学习了MFC编程,当然,这在后来看来确实很傻,等到高中毕业,进入了大学,觉得会计也是很有意思的专业,所以就选择了会计专业作为本科专业方向。然后开始接触到了服务器后端编程和前端开发,乃至iOS客户端开发,非常幸运能够在大学中保有自己的爱好,并且为之努力学习,不至于空耗时间。

喜欢的软硬件

在软件上,我推荐一些小而美的开源软件,比如Parse-ServerTengineParse-Server是一个Facebook下属公司开源的一款基于Node.js的客户端支撑平台,无论是学习还是实际私有开发,都是非常好用的一款产品。Tengine是阿里巴巴开源的Nginx分支,在功能和稳定性上都有着很好的保障。

在硬件上,最为出名也是最喜欢的就是树莓派,在这种硬件研究上,最好还是需要有一个成熟的生态环境和社区,这样有助于系统的移植和使用。

黑科技

基于Node.js的开发的抢课系统,使用队列存储学生的请求,然后通过API帮学生选课,能够支撑很高的并发量,并且在一定的负载下保证更高的并发量,技术上并不是特别难,关键是想法比较创新。

推荐书籍

每个人在各个阶段所需要的书籍都不同,我就讲讲我自己的理解

  1. 在初学一门语言的阶段,需要一本经典的语言书。当然,如果是学习面向对象的话最好有面向过程的基础,C语言当然是必不可少的,C++更多的意义在于了解面向对象,实际中使用还是少的。

  2. 学会了语言,就要开始实际使用了,那时候就需要学习核心库或者框架,至少得到能自己查手册,了解有这个API,但是不记得如何使用倒没什么

  3. 到了这个阶段,就会觉得好像会碰到一些书上没讲过的问题了,那么Google is your friend,谷歌大法好,并且开始接触框架源代码

  4. 测试果然还是保质保量的好东西

  5. 自动化构建大法好,多读读持续交付敏捷开发吧

顺便说一句,基本所有开发都能归结到Unix环境开发,所以多读读《Unix环境高级编程》是很有帮助的,这也是我最近明白的。

程序员应有的习惯

我觉得,第一习惯应该就是编码规范,这个已经提过很多次了,编码规范很重要编码规范很重要编码规范很重要,重要的事情说三遍,业内规范的一般就是Google的规范,也可以到github上面找自己语言的热门项目,然后看他们是怎么写的代码。

第二习惯就是单元测试,单元测试很重要,一直都是老生常谈的东西,有了单元测试才能知道代码的问题可能出在哪里,但是不少朋友都不写单元测试,觉得烦,实际上这是必须的东西。

看好的技术

  1. React Native 我认为这是未来有前景的项目,Hybrid APP毕竟有性能等方面的问题,终归是原生UI组件性能更佳,就算不是React Native,也是基于类似思想的框架。

  2. Node.js 这是目前可以说最火的后端开发,高并发,JS运行时,都给它加了很多分,虽然有这些那些的不足,但是瑕不掩瑜,终究还是个很有前景的方向。

  3. Docker 我使用的是Macbook,所以是在Mac下使用的,在最初的版本中,Docker使用boot2docker作为Docker服务进程的环境,但是实际上boot2docker还是非常幼稚的环境,导致使用感受不是很好,现在换用了Docker-machine,并且提供了方便的选项用于指定registry仓库,Docker本身也开始稳定下来了,所以我认为作为开发环境非常方便

其实,走在编程路上,知道的越多,就越觉得自己贫乏,就像很多大牛,他们都是非常谦虚的,因为编程是一个很广博的领域,人力难以穷尽,所以就将屈原的名言相赠各位


03-05 23:02