中国程序员真的过多了吗?(转载)

楼主:专注IT 时间:2019-08-25 11:00:23 点击:190 回复:0
脱水 打赏 看楼主 设置

字体:

边距:

背景:

还原:

  联网发展越来越快,大浪淘沙,不学习,不努力,没有真才实学的程序员终究会被淘汰。


  如果小伙伴想进入软件行业,不必为程序员过多而担忧,这个行业永远不缺人,永远缺人才。
  网景创始人、硅谷著名的天使投资人马克•安德森曾说过一句话,叫做“软件吞噬世界”。这句话其实很一针见血地描绘出了我们这个时代的真相。
  软件行业人才需求扩大,随之而来的是进入这个行业的人数激增。
  市场的需求加大,进入行业的人增多,浑水摸鱼的人也便随之增多了。

  


  中国的程序员是否真的过多了呢?


  是否过多其实就看一个指标就行:行业平均工资水平。


  从业人员供大于求了,价格肯定会降下来的。


  而实际情况是,这个行业的平均工资水平远高过其他传统行业。



  就目前,从整个行业来看:

  ​

  为什么有那么多质量参差不齐的培训机构?因为市场需求太大了。

  国内的程序员需求量到底有多大?大得绝对超乎我们的想象。

  程序员是否供过于求了?远远没有,并且在未来可预见的十年甚至二三十年内,可能都不会供过于求。

  ​程序员素质参差不齐,鱼龙混杂:

  ​
  码农确实很多,干这行的确实很多,但肯动脑的人不多。更多人还是属于码农的层面。


  不仅动脑的人少,连动手的人都少,很多人基本上就是伸手党,有些东西连百度一下就能知道的东西自己不肯解决。

  不主动学东西,基本的工具不会用,找API不会找,给源码不知道怎么看。


  简历上写做过 A, B, C, D,还是最近的事儿,一问三不知。


  写代码没节操,简单到同一个项目基本代码规范和风格都做不到。更别说设计模式了!


  乱用版本控制。拿git来说,不会开分支,不会rebase,不会解决冲突,还有push失败了不看原因就不管了等等。

  
  可以不懂具体的技术,但起码知道通过什么途经了解,会用搜索工具以及代码工具,有最基本的概念。但很多人连这个都达不到。



  别看学计算机的这么多,真正能干好这一行的不多,而且学计算机也不等于编程。



  “不管是什么学历,不管是不是科班出身,希望小伙伴们能像一个工程师一样去思考问题,去做事,而不是把自己仅仅定位成一个coder。”



  没错,工程师是一个脑力劳动者,coder只是一个体力劳动者。



  程序员的价值,不单单局限于在屏幕前的有节奏的敲击键盘进行编码,还应该在于拿到需求之后的思考,分析,建模。



  编码只是我们工作的一个环节。



  coder或者码农,更多应该是程序员这个群体用来自嘲的词,而不应该成为外界对我们这个群体的定义。



  以下是一名程序员可以发展的几个方向,列出来与大家共勉:



  01深度方面



  一个工程师要往高阶发展,必须同时强化几个技术能力:


  【设计能力】懂的如何利用分层、面向对象、设计模式等设计组织代码。


  【编码能力】熟悉所使用的语言的语法特性,知道怎么用一两行代码代替初级开发者十几行甚至上百行代码。


  【工程能力】学会如何快速构建工程,学会如何构建可读、可扩展性的工程,学会如何避免埋坑给后人。


  学会如何与人协作维护工程,学会如何保证工程质量,学会如何权衡利弊,甚至学会如何在困难面前妥协。


  【抽象能力】初级开发者通常会等到逻辑重复时再抽象封装(甚至怕拖进度或者懒惰而放弃)。
  而高级开发者通常一开始写出的逻辑就为了以后的重用,并且深知一开始多付出的思考设计时间最终都会因为复用得到回报。


  很多开发框架就是一步步抽象/埋坑/优化而来的。


  【架构能力】一个业务系统如何划分模块,模块之间如何写作通信,每个模块的技术选型如何做,系统细节如何规避问题等等。


  【优化能力】学会如何评估、分析、提升系统性能。优化途径很多,产品功能优化、业务逻辑优化、基础技术优化、操作系统底层硬件的优化等等。


  02广度方向



  开发过程基本上离不开操作系统、存储、网络、webserver等等配套设施,因此这也是高阶必备技能。



  一旦业务系统出问题了,必须要能快速定位解决(不一定自己解决,但要知道找到哪个负责人来解决)。



  比如存储mysql, 高级开发者会懂的利用索引、利用分表分库提高查询性能,懂的负载均衡和灾备提高性能提高可靠性(虽然是DBA的工作,但了解了有助于出问题时排查)。



  比如缓存,高级开发者懂得如何有效且最大限度利用缓存系统提高应用性能。



  比如http, 初级开发者往往只懂得http网络请求就只是一去一回两个包,高级开发者会去深究网络七层模型、会深究http请求的各个环节(DNS、三次握手等等)



  比如web前端,学习如何依靠浏览器缓存、CDN缓存、压缩代码、合并文件等等提高前端性能,学习如何进行前端安全攻防。



  03软素质



  懂的团队管理,项目管理,沟通技巧等等。



  那些想逃离程序员这个职业的程序员们,你们的想法应该被尊重。



  但是以上的这些,如果自己没有想过,只是写了几年的“增删改查”,就觉得已经触及程序员的天花板了,真的曲解了程序员这个职业。



  程序员,是个很有话题性的群体,同时也是个很有创造性的群体。



  程序员是这个世界上,为数不多,可以把想法转变成现实的职业之一。



  那些看似动动嘴皮子的工作真的比程序员的工作轻松吗?



  不要忘记,人永远比代码复杂!​​​​

打赏

0 点赞

主帖获得的天涯分:0
举报 | | 楼主 | 埋红包
楼主发言:1次 发图:2张 | 添加到话题 |
发表回复

请遵守天涯社区公约言论规则,不得违反国家法律法规