首先推荐你精进理论知识,数据结构和算法,不说精通,但绝对要了解。
其次,根据你的兴趣和爱好,选择方向。
c/c++主要针对底层系统,以及对速度和性能要求较高的软件,比如3d绘图,数据库,操作系统,网络服务端等等。
JAVA针对手机平台,以及网络方面的应用开发。
python,php,javascript等脚本语言适合web开发。
也可以做DBA,学数据库。
总之有很多种,你自己上网去查,这里就不累述了。
当然,掌握一门甚至多门语言,不代表就万事ok了。比如你用c++开发图形图像类软件,那么你必需对图形图像的相关理论知识有所了解,又如用java开发网络类程序,你必须对计算机网络,Tcp/ip协议有所了解,要开发文件系统,就必须对操作系统的有所了解。
如果需要参加实际的项目,那么你还要学一些框架类的知识,比如.NET框架,J2EE框架,MFC框架等等,从事图形学,你得学习OPENGL,DirectX等等。只有掌握了相关框架的API这样才能够构架大的系统。
总之呢,给你的建议就是:数据结构+算法+你感兴趣的方向
其中,你感兴趣的方向=相关理论知识+具体的实践语言+对应的框架API