zoukankan      html  css  js  c++  java
  • 论语言思维的差异

           大学是计算机专业,学了很多语言,底层的像汇编语言,高级的像JAVA,但是学了这么多语言,是不是语言都是一样的,相通的?一直都很困惑。

           自从读大学,读研究生以来,自从工作以来,一直纠结不清,该学哪个语言。然而,我想的还是我想的,工作需要哪种语言还要学哪种语言。

            但是这些语言真的就是工具吗,没有差别吗?

            首先,语言分类:低级语言,高级语言,脚本语言,web语言

            刚开始工作用的是php语言,脚本语言,做web开发,简直是利器,开发后台和web特别适合,学了php之后,掌握了一些设计模式,理解了所谓的架构。开始觉得语言只是一门工具,但是写php时,很少考虑内存泄漏,会考虑到性能,这时一般加缓存就可以,没有看到些php扩展的。对MVC的思想也比较清晰,路由,正则表达式也清晰起来,get/post驾轻就熟。似乎会用了,似乎成为了一个合格的web开发人员。

            有一天,我开始研究服务器起来,像apache和nginx,记得研究生一个同学,经常说要写一个服务器,搞得我莫名觉得高大上,可是写php这段时间,c/c++已经被抛到九霄云外了。自己已经慢慢适应了web开发的模式,对客户端,对网络通信,对算法和数据结构早都不记得了。

             语言是相通的吗?带着这个疑问,我转向了c++开发,面试了很多公司,一般都是c++笔试题,我开始认识到web开发语言和c++开发语言的区别。

             web开发语言比较成熟,很多解决方案网上都有,这样就会让人进入一种误区,就是我已经找到解决方案了,没有去深度探索了,而c++就不一样,面试时,会问到,数据结构,会问到内存池,会问到状态机,会问到time_wait,而这些作为一个web开发人员很少会考虑的,对的,c++需要造轮子。

             c++真的有那么高大上吗,记得大学时,写c++,很少写过一个大型程序,而且写起来很困难,无从下手,不知能写什么,自然对框架和设计模式理解不了,可是做web开发一下就明白了,这就是语言的差异,导致的思维的差异。

             曾经读过些关于黑客的书籍,那些黑客经常用的语言,就格外的推崇,比如python,c/c++等,开始觉得以后要在c++领域好好耕耘,但是现实是这样吗?有多少公司还在用c++,为了效率,为了减少成本,很多公司不会纯粹写c++了,即使面试的是c++,进去也很少有机会写c++,像游戏领域就是lua写业务比较多。

             写了那么多,究竟语言有差异吗,语言的思想相通吗?

             我觉得不同的语言的确有差异,并不是仅仅表现在语法上面,还表现在为解决问题而设计的思想上面,如果有人和我说语言是工具,我觉得对一半错一半,语言这个工具表现思维的侧重点并不一样,就像php学好了,c++并不一定学的就好,低级语言更容易接近本质,c/c++学好了,对高级语言理解学习起来更轻松,更容易写出高质量的代码,这一点上,php和c++表现出的思想是不一样的。

             所以,无论学什么语言,不要纠结于语言层面的差异,更应该专注于对问题的解决,在解决问题的过程中,去思考本质,去抽象逻辑,时常复习一下计算机的基础知识,能让你看的更远,比如数据结构,操作系统,网络,这些都是内功,这些学好了,才会一览众山小。

            

  • 相关阅读:
    重温spark基本原理
    hive拉链表以及退链例子笔记
    org.apache.hadoop.hive.ql.exec.DDLTask. MetaException错误问题
    skywalking部署
    【机器学习实战】第5章 Logistic回归
    【机器学习实战】第4章 基于概率论的分类方法:朴素贝叶斯
    【机器学习实战】第3章 决策树
    Apache Spark 2.2.0 中文文档
    Apache Spark 2.2.0 中文文档
    Apache Spark 2.2.0 中文文档
  • 原文地址:https://www.cnblogs.com/xshang/p/7358517.html
Copyright © 2011-2022 走看看