Python 和 C++ 如何选择?
程序员文章站
2022-06-05 18:10:30
...
大三狗,想要大四找到一线城市工作,主要方向是linux下编程,有linux c编程经验,最近一直在纠结是学c++还是python,请求各位解答,小弟拜谢…
基本上找工作的时候也别抱着『我会XXX』就妄想这辈子只靠这个语言工作。 两个都学,并且还要学Python的C API。这样就可以任意互相调了。 28原则吧 80%精力学习c++ 20精力学习一门脚本语言
主要看楼主以后方向吧 如果是网络安全python肯定需要 如果是游戏可以先学lua
光学习语言是不行的 多看看优秀的源码的 openresty skynet stl
对于python可以先过书 几天搞定一个高级话题 如装饰器 迭代器 协程 元类
学一门学累了 看看csapp 算法导论 挺好 要完成一些成规模的项目,软件架构与性能都必不可少。C++正是为此而生,在尽量不牺牲性能的情况下,提供高层次抽象所需的功能。毕竟C所缺少的命名空间、高级数据结构等,使其完成大规模项目是有一定困难的。
不过C++并不是解决该问题的唯一方案。很多其他方案并不专注于同时确保两点,而是将目标集中于更好的软件架构,以及可以接受的性能。Python、Lua等很多语言都是如此。而同时,对于要求性能较高的部分,或者与系统结合紧密的部分,则是交给C模块去处理。这样的思路对大型项目是很有利的,架构方面因为有高级语言的支持而得到了更好的抽象,更容易实现复杂的逻辑。而循环次数较多的部分则交给C去处理。尤其是引入高级语言后,可以迫使人们将传递的数据交给高级语言,而不是C里随处使用全局变量。
所以,以实用的角度讲,Python+C是更好的选择。另外就是C++为了寻求性能与架构的折中而不得不引入很多概念,这些概念使得C++比C要复杂很多,同时其对架构的支持能力却又比高级语言查一截。
总的来说,我的建议是:
1. 学Python,反正很快
2. 学好C,结合具体的系统与函数库
3. 学Python与C结合的方法,比如Python的C模块、Cython、Swig等多种方式
4. 学一点C++语法,毕竟还是有一定概率会用到C++的库,但不要在那些奇怪的C++功能上浪费时间 语言有什么用处?不依附平台、需求和project,语言没有任何价值。
所以不要纠结什么c++、ruby、python、php之类的该如何选,要看你的职业规划、看你的需求和项目。 由c++入python易,由python入c++难 “人生苦短,我用Python”。不过,不要浮躁。
---------------------------------------------------------
语言只是做事的方法,你要专注于要做的事情本身。你应该根据实际需要选择合适的技术去学习。如果是想做网站后台,做爬虫,做系统管理……肯定python更好。如果想做游戏,做操作系统级编程,显然c++好很多。
而且,python和c++并非水火不容。两者都是c语言系的,基本语法差别不大,而且在python中的关键部分可以嵌入c/c++/java程序片段。没记错的话,python也被称作一种“胶水语言”。
-----------------------------------------------------------
从笔记本上摘几句相关的话供参考:
C和C++都有“开发人员过多精力放在人机对话上”的问题,而python好一些,代码逻辑密度更大,OO也比C++更容易。 语言不是女朋友,你可以有两个的~
回复内容:
有等答案的功夫python就学完了。 基本上只要是靠谱的公司都不是看你现在会什么语言才要你的。基本上找工作的时候也别抱着『我会XXX』就妄想这辈子只靠这个语言工作。 两个都学,并且还要学Python的C API。这样就可以任意互相调了。 28原则吧 80%精力学习c++ 20精力学习一门脚本语言
主要看楼主以后方向吧 如果是网络安全python肯定需要 如果是游戏可以先学lua
光学习语言是不行的 多看看优秀的源码的 openresty skynet stl
对于python可以先过书 几天搞定一个高级话题 如装饰器 迭代器 协程 元类
学一门学累了 看看csapp 算法导论 挺好 要完成一些成规模的项目,软件架构与性能都必不可少。C++正是为此而生,在尽量不牺牲性能的情况下,提供高层次抽象所需的功能。毕竟C所缺少的命名空间、高级数据结构等,使其完成大规模项目是有一定困难的。
不过C++并不是解决该问题的唯一方案。很多其他方案并不专注于同时确保两点,而是将目标集中于更好的软件架构,以及可以接受的性能。Python、Lua等很多语言都是如此。而同时,对于要求性能较高的部分,或者与系统结合紧密的部分,则是交给C模块去处理。这样的思路对大型项目是很有利的,架构方面因为有高级语言的支持而得到了更好的抽象,更容易实现复杂的逻辑。而循环次数较多的部分则交给C去处理。尤其是引入高级语言后,可以迫使人们将传递的数据交给高级语言,而不是C里随处使用全局变量。
所以,以实用的角度讲,Python+C是更好的选择。另外就是C++为了寻求性能与架构的折中而不得不引入很多概念,这些概念使得C++比C要复杂很多,同时其对架构的支持能力却又比高级语言查一截。
总的来说,我的建议是:
1. 学Python,反正很快
2. 学好C,结合具体的系统与函数库
3. 学Python与C结合的方法,比如Python的C模块、Cython、Swig等多种方式
4. 学一点C++语法,毕竟还是有一定概率会用到C++的库,但不要在那些奇怪的C++功能上浪费时间 语言有什么用处?不依附平台、需求和project,语言没有任何价值。
所以不要纠结什么c++、ruby、python、php之类的该如何选,要看你的职业规划、看你的需求和项目。 由c++入python易,由python入c++难 “人生苦短,我用Python”。不过,不要浮躁。
---------------------------------------------------------
语言只是做事的方法,你要专注于要做的事情本身。你应该根据实际需要选择合适的技术去学习。如果是想做网站后台,做爬虫,做系统管理……肯定python更好。如果想做游戏,做操作系统级编程,显然c++好很多。
而且,python和c++并非水火不容。两者都是c语言系的,基本语法差别不大,而且在python中的关键部分可以嵌入c/c++/java程序片段。没记错的话,python也被称作一种“胶水语言”。
-----------------------------------------------------------
从笔记本上摘几句相关的话供参考:
- 『你不应该“嫁”给任何特定的技术,而应该有足够宽的技术背景和经验基础,使自己能针对特定的情景选择好的解决方案。』——《程序员修炼之道》
- 『我永远不会用自己的技术来定位自己,而是用我已经做过的和我将要做的事情来定位自己。技术只是一种做事的方法。』
- 『软件开发界有很多这样肤浅的专业人士,这些人以“专业人士”为借口,只知道一门技术。』——《The Passionate Programmer》
- 『身为合格的程序员,扎实的基础+快速学习能力才是你最可靠的武器。至于何种技术,别担心,不过又是一种微风。』
- 『程序员就是程序员,写得出程序就是程序员。程序员不要在自己脑门上加太多修饰,什么C++程序员,什么Java程序员,什么Windows程序员,什么Linux程序员,这些加了修饰的程序员,其实不容易存活的。』
- 『学编程有点像修炼,心静神宁可以让学习更有效率,浮躁要不得。……不要贪多嚼不烂,一定要精于某一方面。』
- 『学以致用』
- 『学习是一辈子的事,不用着急。』
C和C++都有“开发人员过多精力放在人机对话上”的问题,而python好一些,代码逻辑密度更大,OO也比C++更容易。 语言不是女朋友,你可以有两个的~
上一篇: ThinkPHP令牌验证实例_PHP教程
下一篇: php artisan常用方法