我的2013——技术成长,从比赛到ThoughtWorks

技术的成长在有时候似乎会变得很快,特别是当我们开始领悟到某些东西的时候,一个个的项目或者比赛不断地加强了我们的能力,也使得我们技术成长得更快。


比赛

比赛有时候和技术相比就显得不是那么重要的,作为一个电子信息工程专业的学生,从软件->硬件->软件是一个很有趣的事情。如飞思卡尔之类的比赛让我们Hack生活有着更有意思的东西 ,有时候硬件比软件好的一点在于,我们可以用此来改变自己的生活。只是两者结合起来才是最强大的。

智能车

所谓的智能并没有想像中的智能,芯片也限定了我们能做的事,我们所做的有点类似于把一堆堆现有的知识放到上面去。我们的创新体现在哪?我们的车跑得更快了,你把那些东西分享出来了没有?有时候我们并不缺少那些技术,只是我们缺少了一个前进的方向。然而,对于我们的教育的培养方式来说,这也算是一个不错的创新。或许就是这些,让我觉得所谓的N13的小校,不会注重分享,有时候会是那样子的。(转载保留 Phodal's Blog Phodal's  zenthink

实力不足算是一方面,但是有时候缺少了更多的交流,所谓的交流会也只是一个形势。在这里应该谢谢陕西理工的学生和老师们,至少他们会分享东西与我们。而不会像我们所在的这个城市的某些重点校院。

技术的成长依赖于分享,至于为什么这么说,可以看看你身边的那些书,如果没有那些书,我想成长是不够的,除非你已经是大师了。别人分享了别人的东西给了我们,我们从中受惠,我们也应该分享我们的东西给予别人——《REWORK》启示录 招聘笔杆子——程序员为什么值得写博客。

智能家居

这个算是把自己在过去学的那些东西总结了出来,而后形成的东西。至于那些idea,现在我想一般的学生已经很容易可以做了。Android->Server(RESTful)->Browser(Ajax),写在博客上的那么多文章相信可以帮到大家。

  • Laravel RESTful快速部署指南(一)、
  • Django RESTful 使用tastypie
  • Django REST框架实现
  • Laravel+Angularjs+D3打造可视化数据,RESTful+Ajax

依赖于Ruby on Rails,PHP框架Laravel,Python WEB框架Django,很容易可以创建出一个不错的RESTful服务,当然JAVA也是可以的,只是对JAVA不是非常了解。当然,还有另外的神奇的一个,只是是跑在路由器上面的。。

  • Openwrt django,路由器上运行Django,基于DB120与Openwrt


与Linux

OpernWRT Linux 

这个系统就表现得很有趣,只是在去年的时候已经开始计划着使用这个系统,没有听过?很正常,这个是运行在路由器的操作系统,最近似乎被用在小米的路由器上面了。

在上面能干些什么?

  • 跑Python——Openwrt python,openwrt上使用Python
  • 当成服务器——Openwrt django,路由器上运行Django,基于DB120与Openwrt

总之他就是一个跑在路由器上的Linux系统,所以你在你电脑上能干的东西 ,在上面都可以。

Raspberry Pi

这个大家都应该有所了解,作为一个不错的廉价的Linux平台,他一直很给力,所以我们需要的只是结合上Arduino来玩我们的想法。不过,这次我结合的是openCV

Raspberry Pi OpenCV,在树莓派上使用opencv

一切都来得很快,很突然。

Android

写Android程序似乎没有以前来得有激情,写得也不多,边学边写,Android+REST client实现了上面说的那个简单的RESTful。

也用Android设备连上了Arduino,这一切来得很神奇,出乎了我的意料。

openSUSE

今年发布的最后一个版本是13.1,只是由于AMD Fglrx Legacy驱动问题,我还停留在12.2。几次的问题,我还是openSUSE的拥护者,你还在使用Ubuntu么?

  • opensuse 12.2 升级 12.3
  • Linux入门指引(一) 安装之前:一个基本的GNU/Linux系统的构成
  • OpenSUSE Ubuntu,使用OpenSUSE代替UBUNTU的若干理由
  • openSUSE grub rescue 修复经历 opensuse trying manual resume 修复经历

ThoughtWorks

这个算是今年中最有挑战性的工作之一了,也因为有了专栏《Ruby三日游》,ThoughtWorks是一个不错的公司,当然还有不错的入前培训——ThoughtWorks郑大晔校的一天。ThoughtWorks的面试很有挑战性,我的面试也有六轮,因为是校招补招的,想想那些校招的孩子比我舒服多了。觉得自己聪明,又对自己的技术有把握可以去试试,据说是全球最难的技术面试,在所谓分类在排行最难第二。第一呢?是另外一家咨询公司。

REWORK启示录

这是一个插曲,一个很不错的插曲,因为我们需要《重构》,所以我们也需要《REWORK》启示录。

读书

本来是不应试写这个的,只是做技术的不读书不算是真正的做技术,而这点之所以放在这里,是因为看的很多不错的书,都是在ThoughtWorks的电话技术面试之后。因为面试的时候,HR问了几本书是否看过,我就意识到这些书会在接下来的面试中会有一定的作用,不过我想大部分的书大家都看过了。只是因为我在硬件和前端玩久了,很少写面向对象的程序了,也就显得有点不行了,在这些书中有:

  • 《设计模式》,经典,我想这个就不多说了,只是一直放在书架了,因为没有那么好理解。
  • 《设计模式解析》能更自然地理解设计模式
  • 《Head First 设计模式》一本不错的设计模式入门书籍
  • 《Ruby设计模式》提到了经典的23种设计模式以外的Ruby需要的设计模式
  • 《C和指针》在Pair完后,意思到自己在这方面不足,可能和上面的主题没有多大关系。
  • 《REWORK》在那之前看的,一本有点逆向思维的书,值得一看。

以及在ThoughtWorks的郑大晔校看到的几本推荐书目,列出的只是我有的。

  • 《卓有成效的程序员》TWer在Intellij idea用快捷键对程序进行重构,这本书值得去了解。(ps:可以用Emacs重构么)
  • 《重构》一本好书,特别是当你不理解你程序的时候,你就需要这本书了。
  • 《UML精粹:标准对象建模语言简明指南(第3版)》公司的首席科学家Martin Flower写的,也是《重构》的作者,今天刚到。
  • 《敏捷软件开发 原则、模式与实践》Robert C. Martin写的一本好书。

其他的还有诸如

  • 《驱动测试开发的艺术》
以下是来自亚马逊上自己的订单,成长离不开书籍。
  • 《恰如其分的软件架构:风险驱动的设计方法》
  • 《机器学习实战》《机器学习:实用案例解析》《特征提取与图像处理(第2版)》
  • 《华章程序员书库:领域特定语言》《编程语言实现模式》
  • 《Clojure编程》《Ruby元编程》<计算机科学丛书:php和mysql web开发(原书第4版)》《精通C#(第6版)》
  • 《C++ Templates中文版》《Cocos2d-x高级开发教程:制作自己的《捕鱼达人》》
  • 《SEO艺术》
  • 《Hadoop权威指南(第2版)(修订•升级版)》《R语言经典实例》
  • 《程序员的思维修炼:开发认知潜能的九堂课》《编程珠玑(第2版)》
  • 《七周七数据库》《7周7语言:理解多种编程范型》
  • 《具体数学》

还有几本无关技术的书籍,我想大家都没兴趣,这里就不列举了。

等等。TDD、结对编程、重构等一直都是敏捷开发所需要的。


总结

小小的总结一下,TW的offer让我觉得有些惊喜,但是在那之后则是想学习更多的东西。大部分是因为之前写的程序都不是面向对象,软件工程的有些方法变得不那么适用,也因此需要重新学这些东西。反而,现在也有了更多的精力和时间去学习,因为会用得到,而且也需要。






你可能感兴趣的:(TDD,XP,Thoughtworks,pair)