基于程序员的修养的认识

      好久没有写博客了,可能前两年忙着做别的事情了,跳槽,学习,工作,最近工作还好,有时间写写最近两年的一些技术积累和自我认识。

      从刚毕业的乳臭未干的粪青,变成了现在一个中年职场老员工,其实也就工作了六年多,但是收获还是颇多的,最近从小公司,到中型公司,在到两位马老师的公司。从做写游戏逻辑到后台服务搭建,核心底层代码修改,线上维护,到后来做分布式机器学习,搜索,现在在搞大数据平台。整个过程经历了很多,也遇到了很多人,其实主要有俩个公司老大对自己影响很大,一个是完美的,一个是阿里巴巴的,前者不仅教会了最近如何学习,思考问题,解决问题。后者教会了自己如何创新,走在业内前沿,现在想来也可能和俩个人的学历有关,毕竟后者是个北大博士。

     整个程序的发展历程就和internet发展历程及其相似,主要说一下技术点,主要有以下几个方面:

    后台服务期开发:

         1 网络

            常见的tcp,udp,http/https协议简单认识,包括抓包和底层一些原理实现。

         2 数据库

            常见的mysql,nosql,ttserver,redis等,还有分布式数据库等

        3 linux一些调试和代码性能分析工具

           包括一些常用工具,gdb,ps,strace,ltop,top,lstrace,perf top,mpstate,iostat等

        4 语言层面

            主要是c/c++/java 一些需要编译的语言,里面主要有一些语法特性,包括模版,反射,c++11特性

            脚本层语言python/lua,主要有很强的依赖库,基于虚拟机的脚本机制,以及底层调用框架的理解。

        5 并发行

           多线程,多进程,协程,锁,条件变量,还有各种池

  机器学习:

       1 数学功底强,

       2 单机版机器学习,可以用c++实现复杂的数学公司

       3 分布式机器学习,不仅要对算法有深刻的理解,还要对分布式框架有深刻的认识,两者才能很好的结合。(难度系数2.0)

从上面发现,这些都是很基础的,其实还有其他很多设计模式,语法糖等,从其中里面往下走都会是一个很窄的区域,很深,并且业内没有几个人能做到通吃,基本能做到,我知道的,基本现在不是vp就是总监以上了,写过的框架代码,也不知道被多少人膜拜过和分析过无数次,甚至已经超越了作者本身的认识。

      感觉程序员越来越像生活中开面馆的人一样,你如果在某一个技术点发力,需要要有工匠精神,多年来做一件事,而不是这个做俩天换一个,最后会发现自己什么都平平,如果做上leader那另当别论。

你可能感兴趣的:(源码学习,服务器,linux,学习)