给编程初学者的一点建议.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
给编程初学者的一点建议

如何学习编程? 遇到很多初学者问了类似的问题,今天抽空出来写点东西。 下面列举了关于计算机的主要领域及其流行的编程语言,仅针对目前的状况有效,另外还有一些冷门的、偏门的、邪门的计算机行业均没有列出: ●移动开发:Android(安卓)java、IOS(苹果)Objective-C swift? ●桌面开发:Qt(C++)、C#(界面脚本化趋势,C++不再那么流行了) ●网页前端:JavaScript、Html5、 CSS、Flash ●网站后端:PHP Java ●游戏引擎●游戏●游戏服务器:C和脚本,C++渐渐少了 ●操作系统:Windows、Linux 都是C语言和少量汇编 ●嵌入式系统:C语言和少量汇编 ●编译器●多媒体:SDL 纯Cffmpeg 纯 C,webrtc的核心部分(DSP, codec)纯C ●●数据库:MySQL (核心纯C,外围工具 C++),SQLite 纯 C, PostgreSQL / BDB / unqlite 纯C ●高性能服务:varnish, nginx, redis 等新的高性能网络服务器都是纯C开发的 ●分布式他动态语言 ●●大数据:kafka, hadoop, storm, spark 都使用 Java ●云存储:openstack swift python, hdfs java, 还有不少方案用 go 先确定自己将来的发展方向,“兴趣驱动、学以致用”,根据自己的目标选定一门合适的语言。关于常见语言的优缺点: C C语言是编程语言中的常青藤,她如同圣母玛利亚一样支撑起这个世界,世界上有许许多多她的信徒。一般人与C不能直接对话。只有积累了足够的修行者才会被允许与C交流。NO GOD! PLEASE NO!!! NOOOOOOOOOO…更长的回答是: C++是地球上最蠢的语言,没有之一。所有面向对象语言都应该有运行时的自省机制,知道自己是个什么类的对象,C++没有,真的,你不会那样用它。为什么?因为C++简直会把人蠢死。 我举个栗子:写一个C的编译器还算简单,你甚至可以用C写一个关于C的工具。而C++呢,基本上是不可解析的,所以如果你想写一个很牛逼的工具来----比如帮你重构你的代码,又或者告诉你虚函数的原型,你不得不依赖别人的工具集,因为你除了在脑子进屎的情况下是根本不会去写一个C++的解析器的,而市面上所有的C++解析器都很傻逼。 让我们理智一点,你用C写的最大的东东可能就是一个操作系统。其实操作系统并不是很大,真的(我指操作系统的内核)。你用C++能写的最大的东东是…也是操作系统。好吧,你并不满足。让我们说,再大三四倍吧,或者10倍吧。但是操作系统内核最多也就,啥,一百万行源代码?所以你用C++写的最大的系统也就一千万行代码,再大的话那就尴尬了,真的,这玩意你没法控制,就像你做噩梦梦见凤姐在和你XXOO… 亚马逊之前一直工作的好好的,后来引入了C++,噩梦就开始,有一次,亚马逊的核心工程师描述他们的代码库时说:我们圣诞节的代码量是五千万行,那是九个月前,而它以每季度八百万行的规模增长,可怕的是增长率本身也在增长,妈呀!这是一座很大的屎山,绝对是你见过的最大的山,每次你想修复一个bug,你的工作就是爬到屎山的正中心去… 难听的话是说多了点,用C++的人可能杀死我的心都有了,而如果你把它玩溜的话你会觉得自己特牛,你总是被诱惑把你知道的所有的东西都用上,但那太难做好了,因为从一开始这个语言就太狗屎了,最后,你会弄得一塌糊涂,因为你很能干。 2004年,国内一个叫“云风”的游戏程序员给新人布置了一个实现内存分配器的作业,批改作业时,他经常边看人家边问:“不够C++啊,你能不能100% OOP?1%的C都不留”。后来,云风接手一个项目,这个项目之前是另一个C++大牛开发的,他不屑于使用C+脚本,而当他要把C++类导出给脚本时,他设计了一套牛逼的系统,lua自动生成机器码,去调用C++的各种类,没有错,就是C++版本的cffi或者ctypes。他为调用vc的类写了一套机器码生产,又为调用gcc的类写了一套代码生成。那位cpp大牛写完后四处炫耀他的成果,后来他离职了,项目上线一而再再而三的出现无可查证的问题,盘大的代码自生成系统深深的把他给恶心到了。Java是过去10年计算机行业里发生过的最好的和最坏的事,一方面,Java 把你从 C++ 编程的很多枯燥易错的细节中解救出来了。没有数组越界了,没有 core dump 了。抛出来的异常能让你精确定位到出错的那一行代码,而且 99% 的时候都是正确的那一行出错了的代码。对象们在需要的时候能智能地把它们自己打印出来。等等等等。另一方面,除了是一种语言,一个虚拟机,一个巨无霸的类库,一个安全模型,一个可移植的字节码格式,Java 还是一个宗

文档评论(0)

138****7331 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档