小弟我想问下这些知识是不是做为一个C++软件工程师都有必要去学的知识

我想问下这些知识是不是做为一个C++程序员都有必要去学的知识?
c、c++、Linux c、网络编程、多进程 、多线程、数据结构、数据库、脚本语言(主流shell)
 大家好,我想问下这些是不是都是有必要去学的?我有一个朋友说最好要把这些学完,学完了之后以后找工作才比较好早,我想问的是情况是这样子的吗? 
------解决方案--------------------
个人认为不是这样的 看你要去哪个公司了  多数的东西都是在工作中学习的
------解决方案--------------------
算法+数据结构=程序,作为程序员,数据结构和算法你肯定是要学的。语言呢只是工具,你可以主学C++,辅以C语言,学一门脚本语言是有必要的,像python、perl、shell,我学的是python。系统方面(进程与线程、互斥与同步、死锁、进程间通信,页表,虚存)、数据库方面、网络方面(TCP,UDP...)都需要去了解,因为它们并不是各自独立的,但你可以往一个方面深钻。

可以看看这篇文章:http://blog.****.net/lsldd/article/details/13506263
------解决方案--------------------
我感觉都要有一定的了解,当然在工作中逐步学习
------解决方案--------------------
找工作.....有目标吗?没有明确目标的话随便找个高校的计算机专业或者软件专业的培养方案照着去学。

个人觉得目前Java程序员最容易也最适合批发培养,先学Java,再学学Android开发,就可以去个小公司了,现在需求也挺大。在这个过程中,你根据工作需要可能会涉及到网络、线程、数据库等等。