我太不同意这样的学法了,那是那些不了解C语言的人。
开始学习不在于多,而在于精.
初学者不要过多停留在语言与工具的表面.学习一门能深入底层的语言,最好的选择是:汇编,C,C++.我感觉C/C++足以,汇编用于调试和嵌入汇编就可以了.我选择的是C语言,因为它入门简单,深入难,需要数据结构和算法支持,这样能更好的学习数据结构和算法.
初学者不要使用Java,VC++的MFC,VB,那样会很危险的.如果无深入底层,停留在语言表面过久,不利于初学者未来的发展和继续学习.对! 你可以用JAVA编程,你可以用MFC做出东西,你也可以用VB程序.但是一些比较底层的东西你一点都不知道,连汇编的调试也不懂,程序BUG在那里也不知道.那永远只是一个熟练使用锤子的工人,难道你不想成为建筑工程师吗?楼房是你构思的,图纸是你画的,而不是建造楼房中的一个不起眼的埋头工作的工人.
深入底层学习大概: C/C++ ->数据结构->编译原理
数字电路和汇编语言->计算机组成原理
操作系统->Linux内核
自己再动手写一个比较简单的内核.
为什么要学习内核.why?因为内核是一个学习软件工程最好的摸版,有很多技巧,技术,是C/C++课本上无法学到的,这主要是把理论知识总结起来.为什么要自己写一个简单的操作系统内核,大家也知道,没有什么比实践更容易理解.等你把简单的内核完成的时候,你的计算机组成原理,操作系统,Linux内核, 数据结构,C语言,汇编会得到一个更深层次的理解.
这些东西,是那些只能玩玩 VB,VC++,JAVA的低级程序员能理解的吗?这就是为什么有些高级程序员,只要看看的VB的书,不用两三天就能掌握的原因.你叫java程序员来试一下.
所以说,成为了高手,基础打牢靠了,学什么都简单.比起你今年学个java,明年又学个VC++.最后没有一样能学好.不如把时间用来打好基础.
希望各位能给未来的软件产业作出贡献. 希望大家多多支持Linux和开源软件.
我也是一名正在学习中的大一新生.我之所以能有这样的思想,真的没有什么好好奇的.那是我从以前的各位大师身上吸取的思想.我也正在为成为高手而努力.
想为成为高手而努力,就不要把时间浪费在打游戏,打牌,弹吉他等一些事情上了,我们计算机学院的学生都是网游成风,我真为他们担心,更为中国未来软件的产业担心.
一、自1970年起,软件开发进入了软件工程阶段。
二、软件工程的目标是:在给定成本、进度的前提下,开发出具有适用性、有效性、可修改性、可靠性、可理解性、可维护性、可重用性、可移植性、可追踪性、可互操作性和满足用户需求的软件产品。追求这些目标有助于提高软件产品的质量和开发效率,减少维护的困难。
三、对于C语言的学习,主要是掌握编程的基本思想。一般而言,不需要很深(在校期间恐怕也没有更多精力学得太深)。但也要根据未来的职业方向。C语言面向过程、面向底层、面向机器。略显过时,但是在嵌入式开发领域,其依然是编写简洁、高效代码的强有力工具(每一种工具都有其独特性和针对性,所谓“尺有所短,寸有所长”,要看做什么项目)。
四、要想成为优秀的软件工程师,最重要的不是编程语言,那只是语法问题。最重要的是编程思想、算法逻辑、数据结构这些抽象的东西。或者说,软件工程师其实更适合数学专业。因为高效率的算法才是软件设计的灵魂。
如果要从事软件编程的话学好c语言是必须的 教材上的是些基础,学好这些基础是必然的。因为c语言又是其他高级语言的基础,只要把c掌握了,其他的入门就更快,学得也更快。因此把c 学深点好些!
教材上的东西是远远不够的!
我也是软件工程专业出来的, 其实就语言来说能够有一门掌握的比较好就可以了, C or C++ 都无所谓, 你将来从事的工作可能都会有需要, 这个要看个人兴趣,我目前的工作就是纯C的研发,所以上学时如果有时间的话(除了正常上课和玩游戏之外),需要着重的对编程语言进行更进一步的学习,相关的书籍网上随便找, 学吧孩子, 你有很多时间的!
如果更偏重C++, 那么C的语法、教学中的一些算法、编程规范等等还是需要掌握的
为了学C++的话语法学好就行了,系统调用之类的不用学