不一定是从 C 语言开始
现在编程语言的发展方向是越来越对开发人员友好了,语言也越来越容易被人理解,但是牺牲的就是运行速度和内存使用和编程人员对底层的操作自由。但是现在的硬件水平比十年前有飞跃式的发展了,早已性能过剩,所以大部分情况下不需要考虑内存和运行速度,像在嵌入式领域就对内存管理十分严格。
1、想快速上手写项目:
上手的话肯定是高级语言更容易上手,高级语言第一很接近人类语言,第二框架够丰富第三不用做越界检查和内存释放。想快速上手写项目,高级语言更合适。比如你想写个 web 后台,那么你用 python 的 django 框架,一个月你就能从小白到搭建一个完整的项目出来。但是如果你用 C 的话,我想没个半年就别想了吧!
2、写前端
个人觉得写前台的,初学时不需要学习 C 语言的,学习 C 语言反而会拖累前端的学习进度。前端主要是 js 需要一定的 C 语言基础。但是 Javascript 的难点不在它的语法上,而是在他的浏览器兼容性上,这点是万恶的微软搞出来的。Javascript 和 C 的难点是不一致的,所以没必要去学 C 语言。Javascript 要记住的东西非常多,而且条例不是很清楚,一般感觉比 C 语言用起来还麻烦。最难的部分是 CSS,布局这点比 Javascript 难的多,浏览器兼容性更令人伤心,毕竟 Javascript 还有 jquery 等框架可以使用,但是 css 就没这么幸运了,除了某些 css 属性可以通过 jquery 等框架屏蔽兼容之外,必须要手动调试。
但是最好从 C 语言开始
既然前面都说了那么多那为什么又说最好从 C 语言开始呢?
1、明白程序运行背后的原理
你在用 C#、java 的高级语言 New 一个对象的时候你有想过背后计算机做了多少事情吗? 当然绝大大部分情况下我们是不需要去考虑的,但是你要是会 C 语言的结构体,会 C 语言的指针,那么你就不会在 new 对象时以为同名就是同对象了,就不会搞不址传递和值传递的区别了。
2、程序猿的一生并不都是在别人的框架上去写代码,到一定程度,程序猿想有更长远的发展,都会考虑去做架构师。而架构师需要接触到更底层的东西,说到底层我想没有目前没有比 C 更好的语言了。
3、会 C 语言的你一定会比其他人更优秀
学习编程已经不再是少数计算机专业人员的事情了,就如同计算机深入到我们生活的每一个角落一样,学习编程的人也是越来越多。由于现在网络信息资源丰富,大多数人都选择了自学。我自幼自学编程十余年,多少积累了一些经验和方法,想通过这里给这些初学的编程自学者一些个人的建议。建议一:自学也需要看书自学只是说没有专门的老师手把手教你,并不是说连书本都可以不要了。有人天天来问我一些很基础的概念问题,我问他:“这些概念书上不都写得很明白吗?”他解答:“我没有书。”如果没有书,那么你很难在脑子里形成一个较为整体性的认识,所有了解到的知识都是支离破碎的。且不说大多数人没有精力解答你这些问题,即使解答了,很多东西也不是三言两语就能说清的,很多高手说出来的都是他们自己的理解,这些理解或许很有意味,但也许费了你半天的脑子却怎么也搞不明白。一本书,即使不是什么经典之著,它也可以向你提供一个大体完整的框架,成为你自学过程中的一个向导。这里要说的是:网上电子教程资源丰富,看看无妨,但手中至少应有一本印刷的书——毕竟网上的教程鱼龙混杂,其作者也许并不精通此道,很难分辨其质量好坏。建议二:学编程更需要实践书是有了,可是整天抱着书也不成。编程最怕的就是纸上谈兵,我看到有的初学者,看完了大半本书,和我说起循环函数来头头是道,却连编译器长什么样都没有见过。真要他写几行程序,便是错误百出。我的建议是,无论你涉及编程的时间是多么地短,无论你目前学到的知识多么地少,你都应该不断地尽自己所能去编写一些小程序——即使是把书上的“Hello, World!”亲手输入进去运行一遍,都能让你的编程能力有着极速地提高。建议三:编程是创造,不是默写有人甚至打算用题海战术来学习编程——这完全没有理解编程的内涵。仅仅通过“欣赏”别人写的代码也无法学好编程。有一点需要明白:编程是一个创造的过程。编程的意义在于:通过程序的形式,教计算机如何去完成一项任务。写代码只是形式,真正重要的是如何完成特定的任务。学习别人的代码固然是很有用的,可以学习别人的思想;但是如果仅仅是记忆了一些别人写好的代码,就希望能通过拼拼凑凑成为自己的程序,那是基本不可能的。我的建议是:在自己编写程序,进行创造的过程中,借鉴前人程序中的思想方法——而不是整天处于复制粘贴的状态中。建议四:好习惯要从开始做起所谓“不以善小而不为”,等坏习惯养成了,再改就困难了。因此,类似写程序要注意缩进、为变量和函数起有意义的名字、大小写的使用、行末分号的注意等等,要从一开始做起。很多人对这些善意的提醒不屑一顾,觉得多此一举,浪费时间。其实,如果真的能严格地去做,它们反而可以帮你节省许多时间。建议五:不必太刨根问底“打破沙锅问到底”确实表现了一种钻研的精神,不过我还是建议初者学,有的时候,不必太刨根问底。编程的相关知识都是盘根错节交织在一起的,大多数问题深挖下去会越说越复杂,对于知识掌握不多的初学者来说,只能是越来越糊涂。很多东西,时间长了,随着知识了解得深入,自然而然会明白。就像刚刚学英语的时候,你知道“goodbye”是再见就足够了,难道非要把这个 good 和再见的关系先弄个水落石出吗?作为初学者,最重要的是尽快地能全面地了解整个知识的全貌,在单独的知识点上,暂时不需要太深入。可以等知识经验丰富之后,再回头来研究。