如果单从兴趣来看,其实我对Linux内核,Android中间件的兴趣要高于WEB,何况还有这么多年的经验积累,何必从头探索一个新的技术方向呢?
    这里面原因是很多的,最核心的大概是以下4个点:
    1、当我看到Linux引入DTS解决板级配置硬编码,看到Android的Makefile写得如此灵活,看到git在管理大型工程上的优势 ,看到Linux的音频驱动框架写得如此优雅,看到Cortex创新性的硬件架构,甚至于看到我自己花了几个月在音频通讯算法取得一点小成就,都会醉心不已。我总是羡慕那些引入良好设计的天才们,衷心希望能一天天向他们靠近。
    可是事与愿违,虽然我越来越熟悉如何做出符合公司要求的产品,对于产品的理解也越来越好,但是技术上非但没有进步,反而一直在退步。大量的维护工作和重复开发耗尽了我几乎全部精力,如果你在这个行业,那么应该更能体会到,操作系统这一层及以下的工作,由于会导致性能问题没法像应用层那样直观地引用比较先进的软件设计模式,代码没写好更容易导致重复开发和后期的大量维护。
    实际上我认为我们的软件开发模式仍然处在远古时代(难以想像我在5年前已经开始用git管理我的所有代码,而直到离职时却还需要在工作中用vss配合别人工作),有一天我想通了这个问题:这其实是由公司的业务决定的,尽管是IT公司,但是由于产品技术复杂度太低,解决这些业务问题对能力要求实在太低,以致于对技术提升并没有多少帮助,也很难产生良好的技术氛围。
    在我毕业的时候,我希望可以靠兴趣工作顺便赚钱,实际上我也这么做了,而在这两年我却越来越焦虑,我发现自己正一步步变成为了赚钱而工作。那么换一家公司吧?找一家让我可以安心研究内核和拿高薪的技术型公司,在福州这地方其概率并不比当一个自由职业者高多少,可控性更低,于是就先尽量做自由职业者了;
    2、当一个自由职业者,就需要能够独立提供完整的服务,如果其他人不配合或配合不给力我就干不成事那我当不成自由职业者,只有做应用是最满足这个条件的。
    与之相比,嵌入式开发的要害恰恰在于离市场太远,就算有技术,没有产线、硬件、结构、应用的一系列配合,很难做成一件事,我唯一想到能独立完成的就是找一家培训机构,是把自己的嵌入式开发技术教给别人作为起点,而正如上篇所提到的,正好有WEB项目进来,就走上了WEB路线。
    3、而选择WEB应用而不是手机应用,是我对WEB开发本来就有兴趣,用它做过几个小网站;第二方面我十分厌倦不同平台要用不同的语言不同的开发包的模式,重复学习成本太高。PC跨平台要Qt,Gtk,而Android要Java,而iOS要ObjectC,时间一定会被语言、库、框架的熟悉给耗尽;第三方面是这几年WEB开发,特别是WEB前端的发展一年比一年猛,这主要得益于移动互联网的迅猛发展(2016年github stars数最多项目几乎清一色是WEB相关)。感兴趣的东西正在风口上,此时不进,更待何时?
    4、我认为嵌入式开发在HARD模式,而WEB开发则在Easy模式,至多Medium模式,从难到易,为什么不尝试下呢?
    于是,在后面几个月里,我走上了一条全新的技术路线——成了WEB开发的全栈工程师。

IT自由职业者的第一个月(下)——为什么放弃5年嵌入式驱动开发转到WEB开发?的更多相关文章

  1. IT自由职业者的第一个月(上)——何去何从

         2016年8月11号,我终于走完所有流程,拿到了离职证明,5年的嵌入式驱动开发工程师的职业生涯就此结束.走离职流程期间,陆续有同事和朋友问我,离职后去哪儿,我都是告诉他们:“还没想好,离了再 ...

  2. 机器学习英雄访谈录之 DL 自由职业者:Tuatini Godard

    目录 机器学习英雄访谈录之 DL 自由职业者:Tuatini Godard 正文 对我的启发 机器学习英雄访谈录之 DL 自由职业者:Tuatini Godard Sanyam Bhutani 是 M ...

  3. Matrix67|自由职业者,数学爱好者

    Matrix67|自由职业者,数学爱好者 介绍一下你自己和所做的工作. 我叫顾森,网名 Matrix67,长住北京的重庆人,目前没有固定的职业.一会儿当当码农,一会儿做做编辑,一会儿教教数学,一会儿写 ...

  4. Denny Zhang:一辈子做一个自由职业者

    程序猿訪谈录供稿 Denny是一个旅居美国的自由职业者,这是一份让人羡慕的职业,选择这个职业意味着他已经实现某种程度上的经济自由,能够最大限度的做自己喜欢的事情,对他来说,选择自由职业作为自己终生的事 ...

  5. 多测师讲解第一个月 _综合面试题_高级讲师肖sir

    第一个月综合面试题 1.  冒烟测试是什么意思?  对主要的用例测试 2.你们公司的项目流程是什么? 3.你们公司的bug分几个级别?  4个 4.你对外键是怎么理解的? 你会使用外键吗?给一个表添加 ...

  6. (linux shell)第一章--小试牛刀(下)

    文章来源: (linux shell)第一章--小试牛刀(下) 1.6 数组和关联数组 1.6.1 预备知识 Bash同一时候支持普通数组和关联数组.普通数组仅仅能使用整数作为数组索引,而关联数组能够 ...

  7. python基础练习题(题目 猴子吃桃问题:猴子第一天摘下若干个桃子,当即吃了一半,还不瘾,又多吃了一个第二天早上又将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩下的一半零一个。到第10天早上想再吃时,见只剩下一个桃子了。求第一天共摘了多少)

    day13 --------------------------------------------------------------- 实例021:猴子偷桃 题目 猴子吃桃问题:猴子第一天摘下若干 ...

  8. 调查显示数据分析已取代Web开发成为第一用例

    一项关于Python的开发者调查显示,编程语言现在主要用于数据分析,取代了之前的第一个用例Web开发. 去年秋天,由Python软件基金会和开发人员工具供应商JetBrains进行,2018 Pyth ...

  9. CentOS 6.6下 BCM4312 802.11b/g无线网卡驱动安装

    1.目前www.broadcom.com网站上最新版本为hybrid-v35,但此版本与2.6.32不匹配,无法识别验证密码,搜索网上说是要求升级内核,后根据http://www.dadclab.co ...

随机推荐

  1. asp.net core + 前端H5 页面视频站制作尝试

    .net core 2.1出来一段时间了,一直关注,前周花了半天时间学习了一下,特制作了一个视频小站(欢迎扫码体验): 页面首页效果如下: 播放页面效果如下: 部分代码: using ENT.IBLL ...

  2. MFC学习(二):消息映射

    1. 消息映射表的组成 宏DECLARE_MESSAGE_MAP,用在类的声明中,用来声明消息映射表. 宏BEGIN_MESSAGE_MAP,在使用类声明外,用来定义链接节点和填写链表节点中的数据,其 ...

  3. 设置CameraRollBrowseOptions的宽高

    在利用air的CameraRoll调取ios设备的相册时需要定义位置.我们一般这么操作 var crOpts:CameraRollBrowseOptions = new CameraRollBrows ...

  4. Struts2学习第4天--拦截器

    第1章     Struts2_day04笔记 1.1      上次课内容回顾 l  OGNL表达式 n  OGNL的概述 u  OGNL:对象图导航语言,是一门功能强大的表达式语言. n  OGN ...

  5. leetcode 42. 接雨水 JAVA

    题目: 给定 n 个非负整数表示每个宽度为 1 的柱子的高度图,计算按此排列的柱子,下雨之后能接多少雨水. 上面是由数组 [0,1,0,2,1,0,1,3,2,1,2,1] 表示的高度图,在这种情况下 ...

  6. MySQL5.7 mysql.user创建用户

    mysql -uroot -proot MySQL5.7 mysql.user表没有password字段改 authentication_string: 一. 创建用户: 命令:CREATE USER ...

  7. INSERT IGNORE 与INSERT INTO的区别,以及replace的用法

    INSERT IGNORE 与INSERT INTO的区别就是INSERT IGNORE会忽略数据库中已经存在 的数据,如果数据库没有数据,就插入新的数据,如果有数据的话就跳过这条数据. 这样就可以保 ...

  8. 树莓派 Raspbian

    备注,从右往左分别是:无线鼠标一个, HDMI转VGA接口一个,网线一根,小米充电宝电源线一个.树莓派Pi 3 一台,包括读卡器一个+32G class10 SD卡一块.最后俩个U盘作为备用里面有Ar ...

  9. <b>与<strong> <em>与<i>标签的区别

    <b>与 <strong>用在网页上都能使字体加粗,二者的不同是:<b>是物理元素 ;<strong>是逻辑元素. 物理元素强调的是一种物理行为.比如说 ...

  10. Linx 的组管理和权限管理

    Linux组基本介绍 在linux中的每个用户必须属于一个组,不能独立于组外.在linux中每个文件 有所有者.所在组.其它组的概念. 1) 所有者 2) 所在组 3) 其它组 4) 改变用户所在的组 ...