简单介绍一下自己和目前的工作

我是黄峰达,常用Phodal这个ID活跃于网络~~。自小开始接触软件编程,毕业于西安文理学院电子信息工程专业,资深硬件爱好者,偶尔搞搞移动应用开发,人工智能等等。喜欢写技术文章,分享研发收获,长期活跃于CSDN、SegmentFault、Github等网站。个人喜欢的语言是Python和JavaScript,但是从工作上使用的Java语言学到的知识是最多的

现在是ThoughtWorks公司的一名软件开发工程师,又称为Consultant,主要工作是Web开发。至于工作的内容就不是很方便透露了~~。如果你熟悉我司的Martin Flower的文章,你就知道我们是乙方啦。

详细写写你是如何走上编程的道路

小学时,镇上的学区(即镇上的所有小学)会举办计算机比赛——虽然是山区农村,但是也要参加。那段时间,整天在学校机房里玩DOS,不用上课,不用做作业——学生时代最爽的时期。

小学时期的比赛:

  • 四年级, UCDOS下的五笔打字比赛

  • 五年级,使用Logo语言的比赛。

  • 六年级,Windows 95、Windows 98上的Office操作比赛。

初一的时候就是QBASIC的比赛,初中的后来就是用小霸王(家里穷~~,买不起电脑),用Game Basic——游戏编程。当时年少无知,写了各种Goto语句,觉得很屌。

高一的时候小霸王被玩坏了,基本就不玩电脑~~。高二的时候,在学3D游戏编程。接着,家里攒了点钱、借了点钱就给我买了个电脑。随后发现GUI编程时候的需要更深入底层的基础,就学Linux内核去了。在搞3D建模的时候,发现一个人搞3D游戏的难度太大了,就没继续了。等高中毕业的时候,发现大学的计算机专业好像没啥有意思的,就去学硬件了。

大学,就是各种焊电路了——最有成就的莫过于拿元件焊了个可以正常使用的电话。因为学校不好找工作的时候,投的硬件公司全都直接被拒了~~。然后发现软件公司工资高,而且好找工作。我的意思是:不看学校,就改找软件方向的工作了。

编程上遇到的问题,你都是怎么解决的?

大部分的问题都是小问题,都可以Google解决啦。偶尔遇到一些比较复杂的问题就是看源码了——因为前端框架都是使用开源的框架,所以就是到GitHub上看历史提交,然后理解,再修复。

还有一些问题就是选择自己造轮子啦。

有没有写过一些黑科技(狂拽酷炫屌炸天)程序?

我觉得最近我在写的Growth就属于狂拽酷炫屌炸天的程序。 Growth是一款专注于Web开发者成长的应用,涵盖Web开发的流程及技术栈,Web开发的学习路线、成长衡量等各方面。在这里,你将通过不断检验自己的学习成效,形成属于你自己的独一无二的个性技能图谱。在这里你可以了解到:完整的Web开发,运维,部署,维护、如何写好代码——重构、测试、模式、遗留代码、遗留系统的形成。

广告打完了,说说正题——它是用一份代码构建移动、桌面、Web全平台应用。代码的核心是基于Ionic框架,它是一个混合应用框架,基于Angular.js和Cordova封装。因此,这份代码是可以直接在浏览器上运行的,于是乎我就写了一个脚本来自动部署这个静态网页到AWS S3上。同时,通过Electron框架来封装成桌面应用。最后对特定的屏幕进行一些处理,这样就完美了。

由于原先的规划是拿一年的时候来写这个应用,现在只过了1/6大家有兴趣可以来参与。项目的GitHub: https://github.com/phodal/growth

推荐一些书籍或者编程大杀器给大家呗,加 1W 个推荐理由

编程大杀器就是Growth,推荐新手程序员都去试试。

至于编程书籍,大家可以看看我的GitHub进阶书单:https://github.com/phodal/booktree。我写几本不错的推荐给大家:

  1. 《重构到模式》 这本书的中文名字应该叫《重构到模式》!!!重构代码到设计模式就这么简单。它开创性地深入揭示了重构与模式这两种软件开发关键技术之间的联系,说明了通过重构实现模式改善既有的设计,往往优于在新的设计早期使用模式。

  2. 《持续交付:发布可靠软件的系统方法》 这本书讲述如何实现更快、更可靠、低成本的自动化软件交付,描述了如何通过增加反馈,并改进开发人员、测试人员、运维人员和项目经理之间的协作来达到这个目标。

  3. 《浮现式设计:专业软件开发的演进本质》 浮现式设计是一种敏捷技术,强调在开发过程中不断演进。软件本身就不应该是一开始就设计好的,他需要经历一个演化的过程。

这三本书很具有启发性,大家有空可以去看看。

哪些好的习惯程序员值得拥有?

暂时,只想到了下面这三个:

  1. 使用快捷键。这是我到ThoughtWorks学到很重要的一点,以前在学校的时候偶尔使用快捷键。现在变成了一个快捷键强迫者,加上原本的打字比赛的时候练就的手速,操作起来就比较快。

  2. 写博客。总的来说,写博客对我的成长很大,不仅仅可以提高影响力,还可以改善技术人员交流不够的问题。

  3. 写脚本替换重复操作。这是我最近感触最深的,以前能力不足的时候就只会手动去做,现在就开始写脚本来实现功能。

能介绍一些你最喜欢的软件和硬件吗?

最喜欢的软件好像就是Emacs,只是因为RMS发起了GNU项目,而这是GNU项目的最早作品。并且Emcas的架构很不错,底层是C语言,顶层是Emacs Lisp。

因为我是搞硬件的,硬件方面首选就是Arduino和Raspberry Pi,我有各种Arduino的开发板,加起来有十几块。还有5块Raspberry Pi开发板,听说Raspberry Pi 3已经出来了,等涨工资了再去买一个。

对哪方面技术的发展比较看好?

觉得AI很棒,但是门槛挺高的——需要花费很高时间和精力。最近一直在玩Oculus,感觉VR也不很不错。不过,我们最近做了一个Web RTC和Oculus结合的业余项目,但是发现虽然很看好,也没有比较好的应用场景。

请推荐一些程序员专用的追妹子 or 汉子大法。

去看看我女朋友写的《极客爱情》。



欢迎关注我的微信公众号(Phodal):

03-05 23:02