8

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

 3 years ago
source link: https://zhuanlan.zhihu.com/p/91736314
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

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

☑编程 ☑读书 ☑翻译 ☑太极

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

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

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

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK