学(选)什么编程语言 / 技术的迷惑[编程的日常]

昨天回答了一个问题「老程序员积累的经验优势会不会被新技术拉平?」,里面涉及到“技术日新,学无止境”式的感慨。知乎上有太多的软件生问“学(选)什么编程语言 / 技术好”的类似问题,其实我也是过来人,同样曾经面对过无数次的选择困惑。

当下的软件开发新技术太多了,选择的复杂度及诱惑力,远超出 20 年前只要选择 Java 或 C/C++ 就好的情况。我试着从自己心路来梳理了几条线,不谈什么原则,纯从“个人选择是个人的事情”的角度——其实就是问问你自己的心,你到底需要什么——愿者上钩,不愿者绕路:

  1. 面向工资编程。你只是为了工作赚钱吗?那就简单了,一是掌握 Java、PHP、C++ 这些主流的技术,不愁没职位;二是公司要用啥就学啥。专注久了、做久了,就一定能比别人做得好,最终水涨船高——这点对在校生非常非常之关键,克制自己的花花念头,专注于主流技术,不要朝秦暮楚,先捧牢饭碗才是第一要务,这时候不是谈眼界、谈情怀的时候,空谈误前途。
  2. 掌握新技术。新技术是一定要跟进的。(1) 其实任何程序员的初期阶段都应该是纵深发展,在自己当前的技术路线上不断深入、熟练,而跟进新版本功能其实也算是一种纵向深入“新”技术的方式。(2) 掌握其他技术栈对自己来讲也算是掌握“新”技术,无关乎这种技术是新出来的还是旧有的。但掌握新技术通常又有两种情况,即下述的第 3、4 两点。
  3. 掌握跟自己现有技术栈互补的新技术。这其实已经意味着写程序多年,逐渐横向拓展技术领域了。这种方式也是一种讲究实效的拓展方式,最终可以让自己的解决问题的能力大幅提升,领先他人。
  4. 为了兴趣或“狡兔三窟”而考虑,掌握不同方向的技术栈。比如当下很多 Python、PHP 程序员学习 Golang,一个很重要的出发点就是再储备一门技艺,以备不时之需,在必要时可以扩大职位选择的竞争力。兴趣是很重要的,是保持长期编程热情的基石;兴趣往往又会成为恶魔,太过随心所欲,不愿结合自己的职业发展考虑,这样的兴趣很容易让你堕落、让你玩物丧志——所以,需求结合现实才是理性的。
  5. 当你不再依靠编程来吃饭的时候,你的境界已经相当高了,这时候你可以随心所欲爱选择啥就选择啥了。向此境界努力奋斗吧,但在尚未到达此境界之前,还是要多考虑下现实。
  6. 方向确定后要有定力。现在碎片化的观点很多,不要轻易受影响,要有清醒的认识,降低焦虑感和浮躁情绪,方向选定后就坚定信心。
编辑于 2019-11-14

文章被以下专栏收录

    田园将芜胡不归,这里记录技术与生活——自己喜欢的编程技术,触动自己的点点滴滴感悟。 微博:@2gua