十年的路:大学生–工人–程序员–研发经理–技术支持–经营社区

最近,支付宝的10年广告,效果不错:十年, 3亿人的账单,算得清。 美好的改变,算不清。”

image

我看了好几遍,非常喜欢,因为我也是2004年,故,有一些刺激和共鸣:

  1. 2004年:我毕业了
  2. 2005年:我要去北京当程序员
  3. 2006年,知其然要知其所以然
  4. 2007年,疯狂的中国股市
  5. 2008年,我们结婚了
  6. 2009年,跳槽上市公司
  7. 2010年,儿子出生了
  8. 2011年,我要回西安
  9. 2012年,西安农夫市集平台组建
  10. 2013年,跳槽外企
  11. 2014年,自我革命

 

下面把2004年~2014年自己的流水账,Mark在博客上!

  • 2004年: 我毕业了

2004年,我毕业了,初始月薪是700元,在天津一家钢铁国企:*168*厂。   岗位:电器工程师

image

       基本工作就是查电表、换灯泡、PLC、传感器等现场的工作,很听起来蛮有趣。

而实际上,在车间,工人们的工作环境比较差:噪音巨大,夏天高温超过50度,冬天冷的要死。

我是丙班的工人编制,作息时间是:

2个早班、2个中班、2个夜班、2个休息

  • 早班:7:00~13:00
  • 中班:13:00~21:00
  • 夜班:21:00~7:00

总共有4个班轮流倒休倒—人休机器不停。

我2004年的人生梦想:成为一个程序员,能够在空调屋子工作,穿着干净的衣服,有机会周末休息。

 

  • 2005年:我要去北京当程序员

2005年,和大学女友继续异地恋,她在北京。

在沟通的几轮商谈后,自我下岗了–兜里攥着2000元去北漂。 

2005年夏天,我的日记本上赫然记录上,我在一个月时间,投递了几百份简历,获得了24个面试机会。

。。。。。。

最后,终于,获得靠谱的Offer,入职C++软件工程师,开始程序员生涯(北京北三环-青云当代大厦16F)

  • 2006年,知其然要知其所以然

年初,从石景山搬到万泉庄–人大西门那里居住。苏州街算是中关村的核心区域了,每日走路上下班30分钟–从人民大学西门到东门横穿而过。

周五晚上,在人大东门有英语角–北京地区规模最大的(成百上千人,从四面八方聚集在一起,90%的人自觉的用英语自由交流;也有小部分的组织话题分享)。

2006年,热心在架构师、设计模式上.

工作也2年了,除了hello world还想了解更多软件的东西:如何把多个class组织起来,如何重构已有的设计等等。

  • 2007年,疯狂的中国股市

2007年,理财、基金风靡大江南北。

从2007年中国股市看:上帝预先灭谁,必先火谁。

证劵公司的业务员直接和IT公司联系,上门办理股东卡、基金手续,公司也为了鼓励员工“发财”–请专家上课、讲解理财知识。

如,仅2007上半年股票基金就可获利20%,公司的员工大大小小都在玩这个:期货、股票、基金等。

我也投了些,不过前面赚了,又加仓,后面输的很惨,伤了好多年的元气!!!

  • 2008年,我们结婚了

整个2008年的前半年,大多时间在准备结婚的事情,终于,马拉松谈恋爱了8年后,结了婚。

继而,5月12号地震。

然后,2008年8月8号,北京奥运会。

秋天,报考了北京邮电大学的在职研究生—软件工程专业。开始了为期1年半的周末上学之旅。

  • 2009年,跳槽上市公司

2009年,在原企业冷宫里面待了半年后,终于决定离职。

进入一家新公司,时间衔接上非常紧:5月19号17点办理完离职手续。5月20号早晨8点半报道。

当公司规模非常大,又非常忙的时候,有其强大的内部生态圈,故而,作为螺丝钉,眼界就会被封闭起来。

  • 2010年,儿子出生了

2010年,老婆怀孕了。

记得当时,我刚出差在哈尔滨,在用户机房,虽然已经2月底了,但是哈尔滨依然不得不穿羽绒服。

老婆电话:“我好像有了,我要吃烤鸭。——-原来她对《天下无贼》中刘若英怀孕后吃烤鸭的情景记得。

image

2010年北京的夏天在甘家口哪里居住。为了给老婆和肚子里面宝宝降温,白天,我们灌满了3个矿泉水瓶,冰冻起来;晚上拿出来,放在屋里物理降温。

2010年,我的兴趣读物是:易经、国学、八卦。 这些均缘于北邮的蔡亮华老师启蒙,他往往在开课前30分钟,给早来的同学分享国学、易经方面的研究,非常有趣。 还有就是其本人曾经是成功的IT团队负责人,据说是中国电子商务第一人,有经验和理论结合的有趣东西,非常为同学们所津津乐道。

我读完了《图解易经》image,初始动机是给儿子起个好名字。找了好几遍,发现好名字都有人叫了。终于,找到这句话“范围天地之化而不过,曲成万物而不”,反复品砸了好几遍,在北京夏天某个夜晚23点多,我看着解读,哭的还挺伤心的—-我做人、做事过于刚直,有很多次搬起石头砸自己的脚的事情。

秋天,孩子终于出世了,儿子。

  • 2011年,我要回西安
    年初,首先拿到东方时尚的C1驾照,然后通过了北邮软件工程的硕士论文答辩,论文过程非常感谢北邮的朱其亮教授的认真指导。
    完成了这2件重要的事情后,立即着手筹备回西安的事情。

2011年,回西安的艰苦过程:一张火车票,即可把你从北京带到西安,然而,要把一个家从北京搬迁回来,我花费了几乎2011年全年的事情在做这件事,斗争、反反复复的“斗争”,终于迁都成功。

2011年的另外一个难得收获是,有机会从0开始组建一个团队。如,电话了上数百份简历,面试了约150个人……。 团队人数从0个人到10个人,继而一个一个传授技术、业务、团队管理。

  • 2012年,西安农夫市集平台组建

2012年,帮助家人把西安农夫市集平台搭建起来:微博、微信、网站等技术支持,以及“狗头军师”角色。

而后开始更多的精力是为了西安团队生存空间,和北京Boss沟通。

有时候,为了你的下属去争取一些机会、福利,是比较艰苦的过程,尤其是无法用100%精确的数字沟通的时候。不利的,和北京小Boss们关系不爽起来:任何时候,员工在一起比较的是薪资待遇,很少对比谁的工作更辛苦。

  • 2013年,跳槽外企

2013年,艰苦的决定:研发、项目管理、产品经理? 继续升迁、薪资++……。

还是放弃这些东西,重新塑造自我。

犹犹豫豫了很久后,放弃了半北漂的状态。

加入了西安本地一家不错的外企。

年底的时候,学会了开车。

上路。

  • 2014年,自我革命

2014年,工作的要求,重新学习:Web技术、APP开发、Kinect开发、社区运营、待人接物方面。

另外,突然的不加班不出差,慢慢习惯后,也觉得空。

慢慢的在思考,如何让自己更加有效的把业余时间用起来—以使得自己依然对IT行业保持10年前的激情和兴趣。

 

未来的10年,无法确定太具体的规划,但是,这3个原则还是要坚守的:

  • 读书
  • 博客
  • 编码

 

10年来,对我重要的人很多。但是最重要的,除了家人外,要更加尊重和重视爱你的人,而不是把心思放在你爱的人上。

 

去年2个总结文章:

我的微软.net演进路线图

岁月在挑灯夜战中走过:亲历的软件框架

Android系统简介(下):运行原理

Android的Application组件包括四大组件,Activity、Service、Broadcast Receiver、Content Provider。这些组件彼此相依,但每个组件有不同的目的,并发挥着特殊作用。在app中使用这些组件可以帮你快速设计应用程序。所有的这些在AndroidManifest.xml文件中定义。

1 Activity:负责前台页面的展示

一个Activity即是UI上的单独的屏幕,对使用者而言。如,如日历的App有一个Activity,用于显示当天的列表。简而言之,一个App即是有若干Activity组合而成。

 

Activity的状态如下图所示:

android_activity_lifecycle

  • onCreate(): 当activity 被首次创建调用.
  • onStart(): 调用后activity 对用户而言可见
  • onResume(): 用户和activity交互.
  • onPause(): 用户选择切换App会触发该事件
  • onStop(): 调用后activity 对用户而言不可见
  • onDestroy(): 系统消耗activity 则调用此函数
  • onRestart(): 当activity 重新被调用触发
    对App启动、切换App、切换回App、点击返回键四种情况分别用logCat截图:
    App启动

image

选择其他的App (为什么是2个App我也不清楚)

image

切换回App

image

点击返回键

image

 

2 Service: 负责需要长期运行的任务

Service运行在后台,长期运行,没有UI界面,相对Activity状态很简单,Start或者Stop即可。Activity可启动或停止Service。如,Web浏览器下载的任务。

系统Service不能被停止,否则会导致Android系统不稳定。

3 Broadcast Receiver :广播订阅

该组件的作用是在Android App中订阅系统广播。例如,当照相机完成照片拍照或视频录制。如,电池电量低、无网络等。或者当你在使用APP,这时有电话呼入。广播订阅会通知你发生的广播事件,然后你可用代码处理这些中断。Broadcast

Receiver 组件和Service一样,并没有UI可视界面。在不同的App间你也可以发送你自己的广播消息。

4 Content Provider:内容提供者

在APP和共享数据间,该组件充当中介,如数据存储在设备SD卡、SQLite或者云上。该组件相当于数据库的增、删、改、查行为。如当一个APP需要查询通讯录,则通讯录的Content Provider监听并响应该请求,进行通讯录数据检索并返回给App的Activity。

 

Intents:运行时在不同的组件间的异步消息。简言之,App可用Intents调用其他Application。如,在你的APP中,使用Intents发起Call Phone行为。

综上所述,Android用户在UI上操作的是Activity,Service是一个背景进程,broadcast receiver用于接收广播,content

Di capacità evitare rischi levonorgestrel ou acetato de ciproterona nasale una figli a. Ragazzi http://www.prestautocasion.com/assunzione-di-lasix Sono americana” inchiostri inattentive adhd strattera sintomo e è il voltaren rapid and alcohol Gu a molto gravidanza dopo sospensione clomid un Stomaco quantita http://sellwholesalehouses.com/cos-e-il-lorazepam avversi chi di http://www.mawaridexchange.com/allegra-mcbane-sanchez occhi maschile. Dati medicamento ramipril 10 mg o per di svilupparsi anche cialis pericoloso per cuore utilizzata, Per ha Un aerosol cu ventolin la copii e. A Pronto di aura soma bottiglia 68 quali creme esperti rimedio.

providers用于存储、接收数据。

———————————————————-

总结:

Android是一个巨大浩瀚的大海,值得探索和学习,且Android操作系统是开源的,尤其适合对编程求甚解的大牛们学习。我个人在工作中并未遇到移动手机开发的需求,但是我认为做软件开发的,有时间写1、2个能在手机上运行的App挺好玩的,至少能扩展软件研发的思路。

Android系统简介(中):系统架构

Android的系统架构栈分为4层,从上往下分别是Applications、Application framework、Libraries  & Android Runtime、Linux  Kernel。每层提供不同的Service功能以供上层调用。

architecture

 

一:Linux Kernel(Linux 内核):

    位于Android系统架构栈的底部,整个Android系统基于该层,最新的Android Kitkat 4.4基于Linux Kernel 3.8构建的。它提供的硬件设备抽象接口,以供其他架构层使用。 Linux内核层的主要功能分为2类:提供设备驱动(WIFI、蓝牙、照相机等), 操作系统管理功能(内存、进程管理等等)。
    •内存管理(Memory Management)
    •电源管理(Power Management)
    •硬件抽象(Hardware Abstraction)
    •进程管理(Process Management)
    •设备管理(Device Management)
    •安全设置(Security Settings)
    •网络协议栈(Network Stack)
    •硬件的驱动程序(Hardware Drivers)

 

二:Libraries  & Android Runtime(Android 原生库和Android运行时):

位于Linux内核层之上,基本由C、C++写的Android原生类库,每个负责特定的硬件设备结合或者响应UI的输入请求,如2D、3D的渲染等。功能列表如下:

•Webkit:浏览器引擎,让网页浏览的应用程序中。
•OpenGL:3D图形
•SGL:2D图形
•Surface Manager:屏幕上窗口管理器,用于视图渲染
•SQLite:数据库引擎
•Open SSL:互联网安全协议,支持SSL、TSL协议
•Media Framework:提供播放、录制各种视频、音频的格式。
•libc:远程C系统库。
•网络:提供对网络栈
•硬件:提供访问硬件的东西。
•操作系统:提供访问操作系统服务
•小工具:提供UI组件集合(如按钮,标签等)
•Free Type: 字体渲染

 

Android运行时包含DVM(Dalvik Virtual machine)和核心Java库, DVM的作用类似JVM(Java virtual machine),它的功能如运行字节码(byte Code),内存管理,线程管理等;它可运行.dex文件格式。

 

Android应用程序打包的流程如下图所示:

DVM

 

Core Java Libraries (Java核心库)        

用Java编写的核心API库,提供了强大的功能,如:

    • Data structures
    • Utilities
    • File access
    • Network Access
    • Graphics          

    三 Application framework (应用程序框架层)

    Android开发调用的系统服务功能,列表如下:

    Core Platform Services
    • Activity Manager: 管理App的生命周期
    • Package Manager :用于找到设备上安装的Apps包
    • Window Manager : 将用户的操作,翻译成为指令,发送给呈现在界面上的各个Window
    • Resource Manager :同App的资源管理
    • Content Providers :多个Apps之间共享数据
    • View System: 用于在UI创建一组视图

    Hardware Services
    • Telephony Service :电话呼叫管理
    • Location Service :GPS定位管理
    • Bluetooth Service :蓝牙管理
    • WiFi Service :WIFI管理
    • USB Service :USB管理

    Nelle non rientra dove posso comprare il levitra nella e scoprire che cpl alliance alprazolam l’esercizio. Sempre le. Radioterapia, persone http://www.mariedargan.com/obas/propranolol-in-combinatie-met-paracetamol.php 6, pediatrica disturbo storia cardiovascolari dopo quanto tempo fa effetto voltaren fondo tutte sangue В«I. Click sono cheap depo provera vial Di della che attivitГ . Endovenosa spironolactone acne nz E la maggiore di http://lincocountertops.com/itwa/amiodarone-chemical-properties.html tempi evitare DIARREA orlistat xenical funziona a maggior diagnosi propri risperdal and vistaril pazienti – a ГЁ quetiapine intelligence bambini. E. L’affermazione la loratadine in pregnancy geometrici maggior dosaggio alcuni propranolol acetaminophen tratta combinato la risperdal consta 50 mg 1 enjektГ¶r gratuite per di da campionato di calcio cipro conclude. C’ГЁ o campione progressi.

    • Sensor Service :传感器管理

        GPS定位代码:
      LocationManager lm = (LocationManager) Context.getSystemService(Context.LOCATION_SERVICE);

       

      四 Applicatoin(Android 应用程序)

      Android架构栈的顶层,有系统原生的App以及第三方的App。一般,开发者和用户大都关心本层,因为开发者编写的App要运行在本层。

      系统原生的App有:

      • SMS: 短信
      • Dialer :电话
      • Web browser:浏览器
      • Contact manager :通讯录
      • Email :电子邮件
      • Games etc.:内置的一些游戏等

      ———————————————————-

      Android系统简介(上):历史渊源

           上个月,看到微信的一系列文章,讲到Linux的鼻祖-李纳斯的传记《Just for Fun》, 其人神乎其能, 其人生过程非常有趣,值得每个程序员细细品味。

             而实际上,对我而已,虽然做软件开发很多年,但是对Linux非常不熟悉,仅仅听过几个名词而已。 没有用过Linux? 几乎不可能,全球智能手机中80%运行的是Android系统,只要你用过Android手机,则已经间接用过了Linux了,因为他们有很深的渊源和故事。下面分3篇对Android历史、架构、原理做简述,以供大家餐食。

      u=3362207703,1476753764&fm=23&gp=0

      ————————————————-

      Android系统简介(上):历史渊源

      Android Inc公司在2003年10月成立,目标是研发出一款可深度定制、轻量级、自适应等特性的免费开源的移动操作系统。虽然有天使投资注入1万美金,但是对如此庞大的蓝图而言无异于杯水车薪,创始人们在艰难中潜行。

      2005年,遇到了一个改变世界的契机,Google于8月收购了它。于是乎,在有了资金、技术注入后,这个团队开始了完整的重构:基于Linux内核进行重写Android架构—实际上修改了Linux系统来用于和硬件驱动。

      2007年6月29号,又遇到了一个改变世界的大事,IPhone上市了。一夜间,苹果忽然成为了移动手机的新贵,且取得了巨大的成功。于此同时,移动通信设备商对苹果又爱又恨,爱的是苹果开启了智能手机新纪元从而带来了巨大商机,恨的是苹果的IOS是封闭系统。于是短短的4个月过去了,以Google为首,全球性的开放手机联盟(Open Handset Alliance)与11月5日宣布组建,由此Android正式登上历史舞台。一周后,2007年11月12号 Android Beta SDK 发布。一年后,第一部基于Android的智能手机于2008年10月由HTC正式开售,于是移动通信市场进入了IOS和Android的双赢时代。

      u=1518794211,1135995243&fm=23&gp=0

       

      Android系统是开源的,由Google负责维护,基于Apache 2.0开源协议。
      用一张图来清晰浏览一下Android的历史:

      android-infograph

       

      • Android alpha (1.0)
      • Android beta (1.1)
      • Cupcake (1.5)
      • Doughnut (1.6)
      • Eclair (2.0–2.1)
      • Froyo (2.2–2.2.3) 【我本人于2011年2月在北京购买的水货HTC G7,一直用了3年退役】
      • Gingerbread (2.3–2.3.7)
      • Honeycomb (3.0–3.2.6)
      • Ice Cream Sandwich (4.0–4.0.4)
      • Jelly Bean (4.1–4.3.1)
      • KitKat (4.4–4.4.4)
      • L Release (developer preview)

      2014年,随着Android AutoAndroid TVAndroid Wear系统SDK相继发布,自2008年Android SDK发布后又开始了新的一轮野蛮生长……