• 关于毕业设计这段时间的感想


      本次项目开发历时两个多月,经历从无到有的过程。我也从毫无Android开发经验成长到详细了解Android应用层开发,其中给我感触最深的,一个优秀的软件工程师应该学会如何去找到解决问题的方法,并将问题实际地解决。

           Android开发的碎片化非常严重,其中从2.X到5.0,各个版本之间都有差异,而网络上大多数博文和书籍都是基于2.X版本进行讲解。由于某些原因,Google的Android开发文档的网站和下载SDK的网站都并不是那么容易上去。Android Studio使用的gradle管理依赖,而初学者根本无法理解这到底有什么用,这些都很容易让初学者掉入大坑,更别说在实际开发中语言层级的错误了。所以学会解决这些坑,是开发者绕不过去的坎。

           最开始学习Android的时候,我希望能看一本对整个Android应用层体系整体概括、局部细讲的书籍,以便在Java的基础上,尽快地进入Android开发实战的过程。而市面上的很多书籍同样都是各种大坑,它们其实并不是面向初学者,而是应该作为Android从业人员的工具书。一本书几百页,厚厚的一本,从SDK中的每个功能讲起,初学者可能看了一半都没有对Android的应用层开发产生一个整体的概念。我觉得这些书应该作为当开发人员需要用到SDK中某一模块的功能时,就去看它、学习它、使用它,所以我选择了《第一行代码》作为我的Android入门书,并且在较短的时间内看完了这本书。书中大部分的demo都有自己手打编译运行通过,只有自己实际去做了,才会理解为什么会这么做,才会懂得了这个过程中自己会遇到各种奇奇怪怪的错误。比如requestFeature(window.FEATUR_NO_TITLE)必须放在setContentView()之前才会正确地去掉标题,放在之后就会出错呢?其实在理解了Andorid的整个界面布局之后就会理解,在你设置的Android布局之外还有一层FrameLayout,而一层还包括了标题栏和content层,所以你也明白了设置布局为什么是setContentView了。因为它设置的确实是主体界面的布局,而不包括标题栏的。只有这些都融会贯通了,很多之前不懂的问题,你就懂了。在完成书中最后一个天气预报的Demo之后,我体会到了之前编程从未有过的快乐。那种快乐叫做创造了价值,获得了世界认可的快乐。所以在那本书的最后还告诉了读者如何申请Google市场账号,如何在市场上出售自己的应用,并不是因为钱,而是证明了自己的应用是有价值的,并且有人愿意付钱去支持你的开发。

           这段时间我还看了软件部落酋长Joel的《软件随想录》,这是一本由他的网志总结出来的一本书,写得非常棒。书中有谈到美国过去的计算机专业和现在计算机专业的对比,大学纷纷开始从非常难的C、C++转向了Java,作者认为这导致了大学生们和从培训学校出来的学生并没有区别的因素,还谈了计算机人才分为极客性和务实型。当然作者的观点不一定全部正确。大一大二的时候,我们每天做的编程就是在一个黑框里面打印出各种字符,然后研究++i++++这种东西到底是什么意思。当时我不懂这有什么用也对编程毫无兴趣,所以我大概一年写的代码可能也不超过500行。直到我写出了一个可以安装在手机上,并且每天提醒我天气如何的应用时,我才明白了是因为我创造了价值了,所以我热爱编程。这种思想影响了我一段时间,那段时间我觉得大学计算机专业的课程真是太蠢了,如果我能早点发现这种情况,也许我早就爱上了编程。

           不过当我开始写自己的项目的时候,我忽然又明白好像大学学习的课程并不是毫无用处的。当我写Android的项目涉及到多线程时,我很自然地理解了Android中多线程的设计。因为我在操作系统中学习过生产者-消费者模型,学习过如何去使用互斥量、信号量控制同步,所以我很自然地理解了Handle.、Message,学习过数据结构中的队列,所以很清楚MessageQueue是一种怎样的结构。就好像乔布斯说的那样,当年你学习那个的时候也许根本不会想到它的作用,但正是因为学习它,所以Mac上才出现了如此优雅的字体。我想即使我们只能用Java编程,也和培训班里的学生有很大的不同。

           好像讲了很多与项目实施无关的东西,不过这确实是我这段时间的心路历程吧。程序员是一个缺乏激励的职业,如果能把自己热爱的事情当成职业,我想一定能把它做好的。此次项目收获不仅仅是Android知识的学习,也弄清楚了我以后想做一个怎样的程序员。

  • 相关阅读:
    Socket开发框架之消息的回调处理
    Socket开发框架之数据加密及完整性检查
    Socket开发框架之数据传输协议
    Socket开发框架之框架设计及分析
    C#进行Visio二次开发之文件导出及另存Web页面
    Winform混合式开发框架的特点总结
    代码生成工具Database2Sharp中增加视图的代码生成以及主从表界面生成功能
    基于Metronic的Bootstrap开发框架经验总结(9)--实现Web页面内容的打印预览和保存操作
    基于C#的MongoDB数据库开发应用(4)--Redis的安装及使用
    基于C#的MongoDB数据库开发应用(3)--MongoDB数据库的C#开发之异步接口
  • 原文地址:https://www.cnblogs.com/fengmanlou/p/4515308.html
Copyright © 2020-2023  润新知