大二正在自学C语言,求各位老鸟指导方向啊
小弟今年本科大二了,在自学C语言,大一的时候有学过C语言,不过没怎么认真学,大一下学期学了C#,也没怎么认真学就知道个大概,大二上学期学校没有语言课程了,也是那么忽悠过来的。今年过年回学校发现自己变了,我发现我不能那么浑浑噩噩的混日子了,我决定从开始学起,因为我知道只要学好了C语言学什么都会比较容易上手,并且学校ACM队也是用C语言参赛的,所以大二下半学期一开学我就开始学C语言了,现在已经看到指针,结构这部分了,然后我就在想学C语言以后能干嘛呢?在网上看了一下都说学C语言要学的很深入才能找到工作,什么才叫深入呢?反正我是准备这个学期学习基础知识,下个学期开始准备ACM大赛,开始AC题啦!我哥说一本ACM的证书比本科毕业证还要珍贵。。。。
可是问题出现了啊,我在网上查了一下关于C语言的工作是少之又少,所以我很担心以后找不到工作。我有个哥哥今年大四了刚刚实习完,他是学C++的,并且他学的很好,我就想我大三下学期的时候是不是和我哥一起搞C++呢?毕竟那个时候他都有工作经验了,也可以指导一下我的学习。可是又听说C++特别难学,所以有点纠结,本来是准备大三下学期开始学C++的,可是现在又有各种担心了,并且看了一下语言排行C++一直在下滑,所以我也在考虑是不是真的要去学C++?因为学校大一下学期有教过C#,现在C#的发展势头迅猛,估计再过几年就要成为主流编程语言了,并且现在C#的岗位越来越多但是人才少,我又有点蠢蠢欲动了,但是起码现在还是在专心学C语言的。
所以我现在纠结到底学什么语言好呢?
大家能不能根据我的情况给我点建议啊?迷茫中。。。。感觉有力没地方使啊。。。。
感激不尽啊!!!
[解决办法]
C学扎实的意思就是,不仅仅谙熟C的语法,还会一些常规的算法,甚至固定套路(在面向对象的语言中,也称为 设计模式)。
学C的最大好处在于,容易培养自己的底层思维,写程序的时候,会考虑内存、效率等。有了C的基础学习C++应该很快,再学java也不是很难。
java C++ C都学的比较通透了,就无敌了。
至于找工作,只会C是可以找到的,C在各种嵌入式领域广泛使用。
[解决办法]
想学好C,可以多看下Linux操作系统和驱动方面的东西,向嵌入式或者驱动方面发展,不过这个需要比较多的硬件知识和对Linux操作系统的理解。更高级的我也不懂,只能说这些,希望能帮到lz。
[解决办法]
计算机组成原理→DOS命令→汇编语言→C语言(不包括C++)、代码书写规范→数据结构、编译原理、操作系统→计算机网络、数据库原理、正则表达式→其它语言(包括C++)、架构……
VC调试(TC或BC用TD调试)时按Alt+8、Alt+6和Alt+5,打开汇编窗口、内存窗口和寄存器窗口看每句C对应的汇编、单步执行并观察相应内存和寄存器变化,这样过一遍不就啥都明白了吗。
对VC来说,所谓‘调试时’就是编译连接通过以后,按F10或F11键单步执行一步以后的时候,或者在某行按F9设了断点后按F5执行停在该断点处的时候。
(Linux或Unix下可以在用GDB调试时,看每句C对应的汇编并单步执行观察相应内存和寄存器变化。)
想要从本质上理解C指针,必须学习汇编以及C和汇编的对应关系。
从汇编的角度理解和学习C语言的指针,原本看似复杂的东西就会变得非常简单!
指针即地址。“地址又是啥?”“只能从汇编语言和计算机组成原理的角度去解释了。”
提醒:
“学习用汇编语言写程序”
和
“VC调试(TC或BC用TD调试)时按Alt+8、Alt+6和Alt+5,打开汇编窗口、内存窗口和寄存器窗口看每句C对应的汇编、单步执行并观察相应内存和寄存器变化,这样过一遍不就啥都明白了吗。
(Linux或Unix下可以在用GDB调试时,看每句C对应的汇编并单步执行观察相应内存和寄存器变化。)
想要从本质上理解C指针,必须学习C和汇编的对应关系。”
不是一回事!
不要迷信书、考题、老师、回帖;
要迷信CPU、编译器、调试器、运行结果。
并请结合“盲人摸太阳”和“驾船出海时一定只带一个指南针。”加以理解。
任何理论、权威、传说、真理、标准、解释、想象、知识……都比不上摆在眼前的事实!
不要写连自己也预测不了结果的代码!
英语也是一门计算机语言的说。
对学习编程者的忠告:
眼过千遍不如手过一遍!
书看千行不如手敲一行!
手敲千行不如单步一行!
单步源代码千行不如单步对应汇编一行!
[解决办法]
坚持学某一门语言,不会存在找不到工作的,某一门语言不会某一天突然从工业界消失的,而且精通一门语言和了解几门语言,前者应该更受欢迎。c语言在嵌入式领域广泛应用,所以要多看看UNIX操作系统,驱动等,就像4L说的。共勉