看你要开发的软件是拿来干什么的而定。
比如你开发一个图书馆的管理系统,那肯定需要有很强的数据库理论知识。如果你开发的是游戏,那么你还需要去了解游戏引擎比如dx或opengl。如果你开发的是基于单片的程序,那么你还需要去学一点单片机编程和汇编。如果你开发的只是一个网站,那么根本可以不用c语言,直接用java什么的再弄个小型数据库几下就搞定了。如果你要开发c\s结构的程序你还要去学点网络协议。如果你开发的软件是做视频、音频处理的那么就去学点多媒体的行业标准。如过你的程序是在windows下运行的,那么Windows的SDK你得去学学,也就是vc\MFC什么的。如果是Linux的话就还有linux的东东。而且如果这个软件你一个人做不下来的时候你就需要去学学怎么管理一个团队,怎么设计一个项目,这也就是传说中的软件工程。
虽然上面一口气说了很多领域,但肯定不全也不可能全。但是这些东东都是建立在数据结构、计算机组成这些基础之上的。试想一个不懂数据结构的人去学DX,几乎是个不可能完成的任务。所以基础是很重要的。
不过我个人认为最重要的东西不是什么具体的技术而是学习的方法。当你对整个信息系统工程有了一定的了解你就会知道一个软件需要什么了。当你接到一个数据库的项目时对方要求你用MySql而你一直用SqlServer怎么办?马上去学MySql当你有了sqlserver的使用经验后你就会发现其实MySql也一样。所以最重要的东西是学习。
希望能对你有点帮助。有什么问题继续补充吧。
C#比较快 主要要学点界面编程和数据库方面的 还有Socket通讯的