做者 谢恩铭 转载请注明出处
微信公众号「程序员联盟」ProgrammerLeague
原文:www.jianshu.com/p/c2b85495c…程序员
如今 IT 行业愈来愈火爆,许多朋友都愿意入门「挨踢」,噢,不,当程序员。算法
那么问题来了,对刚接触这个领域的新人来讲,选什么语言做为第一门语言呢?这是很关键的问题,由于这决定了这位新人是「从入门到继续」仍是「从入门到放弃」。编程
我推荐:或者从 C 语言入门,或者从 Python 入门。设计模式
这里又得分状况来讲:微信
若是你选 Python 做为第一门编程语言,请看个人 最近迫切应学的编程语言 这篇文章,说的就是 Python 的好处和入门建议。数据结构
若是你选 C 语言做为第一门入门语言,虽然开始会有些「疼痛」,可是至久必成为你的帮助。请看个人 《C语言探索之旅》 来入门。架构
当年我大学时才接触编程,但一直没入门(能够参看个人经历:关于我)。数据结构和算法
总结一下 C 语言做为第一门编程语言的好处:编程语言
如今你看到的大部分编程语言都是借鉴了 C 语言或者用 C 语言写成的,好比 Java,C++,C#,Python,Go,JavaScript,Objective-C,Swift,PHP,Perl,等等。学习
可见 C 语言在被设计出来时是多么具备划时代意义。大部分如今所用的操做系统也用到了 C 语言,好比 Unix,Linux,Windows,Mac OS X,iOS,Android,等等。
能够说,C 语言影响了全球的计算机系统,套用指环王的经典台词就是「One language to rule them all」(意思是:一门语言统领其余语言)。
固然了,C 语言最初是用 B 语言写的,但今天却几乎没有人在用 B 语言了。可见 C 语言的飞跃,其源码设计之精良。
当时的程序员(如 C 语言之父 Dennis Ritchie)真的是超级厉害,我这种程度实在连远眺都看不到他们的项背啊。
C 语言确定比 Python,Java 之类难入门,可是比 C++ 简单不少。
我以为 C++ 不适合做第一门编程语言,太复杂,东西太多,基本就是「入门到放弃」,要学 C++ 最好等入门编程以后。固然你要学我也没资格反对。
相比之下,C 语言的难度适中,也没有那么可怕。最让人惧怕的指针,位移(嵌入式里面比较多左移右移,须要数学功底还能够,否则那些十六进制,二进制会让人头晕的),自定义数据结构,内存分配什么的其实也还好,熟能生巧。
C 语言在嵌入式领域算是举足轻重了,特别是涉及到比较底层的嵌入式,固然你说 Python 也能够用于树莓派这样的开发板,可是你不会 C 语言的话,通常去应聘嵌入式的工做仍是比较困难的。
如今这个时代,随着可穿戴设备和其余设备日益普及,嵌入式的前景确定不错。
我我的认为:人工智能和嵌入式是以后比较火热的领域。
要入门和提升嵌入式,能够参看个人这篇文章:什么是嵌入式编程?如何入门和提升?
做为程序员,若是你想要进阶为高级甚至伟大乃至史诗级别的程序员,必定得对计算机原理,编译原理等等有所了解。
C 语言虽然也算是高层语言,但相对于 Python,Java 等,C 语言更接近底层。
入门了 C 语言,你会对计算机的内存、寄存器等原理有必定了解(推荐以后阅读《深刻理解计算机系统》这本书,里面的示例代码是用 C 语言写的)。
若是有时间,最好也入门一下汇编语言,能够参看我写的文章:学习汇编对编程有什么帮助?如何学习
我那时就是先学了 C 语言,而后跟着清华大学王爽老师的《汇编语言》(那时是第二册,如今好像已是第三册了吧)学了汇编,超级浅显易懂,写得很棒。学完以后,发现对内存,位移,寄存器等等操做都有了拨云见雾的认识,会感受本身慢慢地领悟了编程。
这点我深有体会,我自从借 C 语言入门了编程以后,后面再学习 Java,PHP,C++(仍是有点疼痛的,谁让 C++ 这么庞杂),Python,Kotlin 等等就很容易了。
由于通过 C 语言的磨砺,你的编程思惟能力已经比较不错,关于数据结构和算法等能够经过作练习和我的项目来进行。
当年我一开始接触 C 语言,感到比较难,就退避了去学 Java,结果也不得要领,直到我后来转而去用 C 语言入门编程,学会了 C 语言以后,学 Java 变得顺风顺水。
以后你若是要进阶 C 语言,推荐看看《C专家编程》,C 语言之父写的《C程序设计语言》(不是谭浩强那本《C语言程序设计》),国人写的《C语言深度解剖》,《C陷阱和缺陷》。读完这些,作完里面的练习,你的 C 语言的水平就已经很不错了。
若是你不是作嵌入式等对 C 语言水平要求比较高的领域,那不必把 C 语言学那么深。
借助 C 语音入门编程以后能够学学 Java,Python,Kotlin,Go 语言(Go 语言被称为 21 世纪的 C 语言)等最近比较被看好的语言。
固然,PHP 这样「世界上最好的语言」也是比较简单的,PHP 的语法和 C 语言比较相似。
有一点须要注意,就是学习编程语言,千万不要贪多而不精。应该先学精一门语言,以后再去涉猎其余的。
毕竟编程语言之间,基本的逻辑,条件语句,循环语句,类或结构体,都是互通的。通常来讲,一通则百通。
有些朋友可能一门还没入门或精通呢,就想要走马观花般去学新的语言,这样最后什么也不能精通。
祝你们还没入门编程的能够早日入门,已经入门的技术日益精进(须要学学面向对象思惟,架构,设计模式,算法等)。
要知道如今 IT 行业但是薪资很不错的,并且将来前景绝对不堪忧,毕竟人工智能还要咱们来编写和操控。
好了,我去继续学习了,下次见。
才疏学浅,文章中如有错缪或漏说的,欢迎留言指正补充,我也会更新文章,不胜感激。谢谢!
微信公众号「程序员联盟」ProgrammerLeague
我是 谢恩铭,在巴黎奋斗的软件工程师。
我建立了程序员联盟的 知识星球,欢迎加入。
关于我热爱生活,喜欢游泳,略懂烹饪。人生格言:「向着标杆直跑」