如果单从兴趣来看,其实我对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. 小修改,让mvc的验证锦上添点花(2)

    上一篇文章我们演示了通过对jquery.validate.unobtrusive.js做点小修改,如何给MVC的验证添点花 主要还是修改了onError与onSuccess中的这两个方法 这两个方法也 ...

  2. UML uml建模工具

    UML建模工具 一.UML的概念: 参考百度百科: https://baike.baidu.com/item/%E7%BB%9F%E4%B8%80%E5%BB%BA%E6%A8%A1%E8%AF%AD ...

  3. Python操作配置文件configparser模块

    在实际的开发过程中,我们常有操作ini格式和conf格式配置文件的操作,Python为我们提供了configparser模块,方便我们对配置文件进行读写操作. config.ini配置文件内容如下: ...

  4. kvm虚拟机扩展磁盘空间

    kvm虚拟机磁盘空间扩展与xen虚拟机磁盘空间扩展思路一致.原因在于xen/kvm默认的虚拟机磁盘格式为raw,所以方式可以通用. raw磁盘格式扩展思路如下 (1) 新添加一块raw格式的磁盘加入到 ...

  5. kvm虚拟化之kvm虚拟机克隆

    kvm虚拟机的克隆分为两种情况,本文也就通过以下两种情况进行克隆,克隆虚拟机为OEL5.8X64. (1) KVM主机本机虚拟机直接克隆. (2) 通过复制配置文件与磁盘文件的虚拟机复制克隆(适用于异 ...

  6. 经典排序的python实现

    具体原理我这里就不解释了,可以查看数据结构课本或者百度百科 这里只给出相应的代码(很简洁) 1 __author__ = "WSX" class sort: def __init_ ...

  7. 2016级算法第一次练习赛-F.AlvinZH的儿时梦想——机器人篇

    864 AlvinZH的儿时梦想----机器人篇 题目链接:https://buaacoding.cn/problem/868/index 思路 中等题. 判断无限玩耍: \(p\) 的值能够承担的起 ...

  8. (STM32F4) Timer 基本操作

    Timer (計時器) 就是慢慢數時間,在timer內部有一個計數器. 而計數器會數到Register的value當數值數到設定值Timer就會發起IRQ 而程式就會轉跳到中斷向量裡頭去執行想要做的事 ...

  9. 向指定url发送请求与获取响应

    string url = @"https://www.baidu.com"; //向指定服务器发起请求 HttpWebRequest request = (HttpWebReque ...

  10. Python——内部参数对外部实参的影响

    无论函数传递的参数的可变还是不可变,只要针对参数使用赋值语句,会在函数内部修改局部变量的引用,不会影响到外部变量的引用,而如果传递的参数是可变类型,在函数内部使用方法修改了数据的内容,同样会影响到外部 ...