我为什么选择了Python作为我的主要开发语言?

选择语言重要,你的想法更重要

其实python并不是我学习的第一门编程语言.在学习python 之前,我曾经做了好几年的前端工程师.而更早的之前,其实我是写java的,在java之前…

坦白的说,Python不是我唯一的主要开发语言, 工作中常用的开发语言还有javascript(nodejs)和rust.所以暂且算个标题党吧.

这20年都是在计算机和软件行业度过的.总是听到很多孩子在那里争论哪个语言更好之类的无趣的话题(请自行参考<<php是世界上最好的语言>>这本书).简单的说,适合你的,就是好的语言.

什么样的语言适合你?

性格决定语言

适合就是对你脾气的. 每一种编程语言都有自己的脾气,书面语我们一般叫做编程哲学.不同的语言编程哲学也有差异:

  • 有些语言事事需要你动手,你代码不写,他就是不干.就像那种属陀螺的人,不拨弄一下不转.
  • 有些语言事事替你操心.你一个print,他连pretty都给你加上了.
  • 有些语言很严谨, 该换行必须换行,该缩进的必须缩进,少个空格都不行.
  • 有些语言很随意, 换行也行,不换行也行, 有休止符也行,没休止符也行,这么写也行,那么写也行.
  • 有些语言有固有的模式: 要实现某种逻辑,代码只有固定的套路,千人一面.
  • 而另一些语言可能是炫技派的心头好, 我能把代码写成密文你信不信?

总之,这些语言之间的差别构成了各自的编程哲学.,如果你是个严谨的人的话, 你很大的概率会对一门语法随意性比较强的语言嗤之以鼻. 如果是看在工作的面子上,那自然是捏着鼻子上阵, 内心的方案可想而知了.而选语言就像挑老婆,外表固然重要, 但适合自己的才是最好的. 当然,你说我就是把程序员当做过渡性的工作,不打算干一辈子. 那也无所谓.你开心就好.

我的选择

需求决定选择

程序员这行当,我是以java入门的. 由于是第一门工作用的语言,所以只是看了流行程度就决定了.没什么特别的技巧.工作当中java给我的感觉就是够用. 基本上应用服务类的开发不存在障碍.后来转到前端方向上干了几年,主要是javascript. (一门相当灵活的语言.说他简陋也不过分,据说作者用了十来天就写出来了). 慢慢的,媳妇熬成婆. 做了leader, 更多的工作不是coding,而是设计.那么问题就来了,很多情况下,一个设计究竟怎么样是纸面上算不出来的,需要验证后才能确定. 怎么办? 我的选择是自己coding, 当时我用来选择的写后端的只有java和javascript(nodejs), javascript(nodejs)的回调显然会让代码的可读性恶化. 不适合复杂的逻辑(我特别讨厌嵌套). 而java虽然没这个毛病. 但是开发效率不是那么高效.coding的工作量太大. 于是决定学习一门新的语言,当时的提出的要求是:

  1. 开发效率要高. 代码精炼.
  2. 生态要大,要什么都能做,涉及各行各业的库要齐全,以满足拿来就用的需要.
  3. 灵活,自造轮子要方便, 留给diy的空间要大.

当时是go, ruby和python三者之间做选择. 纠结了一番选择了python, 其实我当初选择python的语言是考虑过python的运行的低效问题的. 即使有以性能著称的pypy, 也不是覆盖整个python生态的解决方案. 但实际工作中, 无论是作为设计验证的原型开发,还是日访问量几百万pv的中小型站点. 都工作的非常可靠(绝大多数网站的pv都是千万以下的).所以,python这个低运行效率的问题其实不值得考虑.

后记

可持续性发展

想在程序员这一行业走的远, 只会一门语言是不够的. 首先只会一门语言会很难了解其他语言中优秀的哲学和理念.更不要谈拿来提高自身编程方面的能力了.其次语言都有其缺陷. 一段时间流行的语言可能会在另一阶段被淘汰. 只掌握一门语言对于程序员职业来说风险太大. 多会一门语言多一门求生技能. 一般建议是2们语言作为主语言,一门精通, 一门熟练.平日工作之余,剩下的时间用来对这两门语言充电. 另外还需选择1-2门语言作为周末学习课程之用. 这些语言的选择上:

主语言必须是流行语言

主语言的第一作用是谋生,必须是有一定流行程度的, 你不能说我学一门python然后再学一门Ada语言.那跟你仅仅学习python一门语言没什么区别. 因为很可能你这辈子都找不到一个用Ada语言开发的岗位.区别一门语言的流行程度也很简单. 去招聘网站以语言名字为关键词搜搜岗位就知道了. 如果你是在中国, 不要直接去参考国际上的那个编程语言排行榜. 那是全球范围的统计.语言流行程度和国内的情况有很大差距.但是当做一个未来的流行趋势是参照是完全没问题的.

一定要学习一门相对低级的语言

相对低级的语言对于编程基本功的提升是非常有用的.而python不是一门适合入门的语言,因为它屏蔽了太多编程的复杂性.这会导致学习者对很多基础概念认知模糊甚至错误.而基础知识薄弱,是国内程序员最大的问题(我们太在乎速成了,基础知识基本上都是一带而过的).而这些基础知识,是他们在将来工作中分析疑难问题的不二法门.想走的远,就要练好基本功. 找一门低级语言,哪怕是周末学习那种,自己慢慢的去实现各种数据模型, 各种算法,精下心来思考为什么要这么实现,是否还有优化的可能? 这个过程一定要慢, 要理解的透彻.不会不要紧, 跳过去,学习另一个章节换换脑子.会了也不要跳过.再看一遍,或许你能有新的理解.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值