.NET,或者说C#软件工程师的疑惑,求解答

.NET,或者说C#程序员的疑惑,求解答
楼主从事.NET技术开发,准确说是C#研发,项目一般是做的监狱或者劳教的安防系统。经验来说也就3年吧。
3年从一个小白到现在,感觉怎么说呢。虽然不能说感觉没学到什么东西,总觉得现在什么都可以做,什么都能做,但是却感觉像什么也不会。
感觉有点很迷茫的感觉,楼主不是什么高材生。学历准确来说也就初中水准吧,虽然说有中专大专什么的,但是成教这破玩意,谁都理解。不用上课也能过
楼主也没学过C++之类的,更对数学英语一窍不通,一路走到现在除了在培训机构学C#的时候认真学了以外,几乎就是一个不学无术的人。
最近感觉自己是否有点太过差劲了,就想补一下知识的养份。买了本C#的书,参照网上的建议买了本《代码大全》,又搞了本Uinty3D看,但是最后就迷茫了。我到底该学什么?
或者我到底算什么程序员?是“C#”程序员?还是.NET程序员?二者有什么区别吗?凭借我现在的技术我足够胜任我的工作了,但是我觉得不够,又不知道该如何,从哪里去深入,去精进。
我甚至不知道所谓的托管和非托管,API到底该从哪里去学习,我精进的话需要什么?


在这里对看完内容的朋友你,致予深深的感谢。同时也请务必指点一下迷茫的我。感激不尽。
------解决方案--------------------
入行研发是自学还是培训的?
LZ目前的情况应该是大多数问题都能独立解决,但可能停留在知其然而不知其所以然的状态(在下之前做研发时就是)

分析自己是否真对技术感兴趣,会花时间去仔细研究某个框架或新技术的应用。。如果是,就继续技术呗。。不是就纠结了

以上,一点小建议,不喜勿喷.NET,或者说C#软件工程师的疑惑,求解答
------解决方案--------------------
代码大全 的第二章给我很大的启发 让我明白怎么去学习别人是如何思考问题的
说一下我看过的书把

你必须知道的.net
C#高级编程(选看)
CLR via C#

以上是.net的基础

操作系统之哲学原理
汇编语言 王爽

以上是底层的

Thinking In UML
Head First 设计模式
代码大全(选看,其实代码大全是一本很大一部分是讲怎么做事情的书,而不是一本讲技术的书)

以上是讲 分析和设计的

分析两个开源项目
nopCommerce
orchard
------解决方案--------------------
lz状态:知其然而不知所然。
C#和Java都是抽象层次较高的编程语言,经过了很多层次的封装,底层的细节基本都透明了。
想要在IT这领域走得更远,底层的知识最好还是要知道,不说精通,但至少应该有所涉猎。
1.计算机基本原理
 冯•诺依曼结构,补码,总线,运算器、存储器,控制器、指令等等概念
2.操作系统
线程,进程,同步、互斥,等等
3.数据库
这个应该经常用,也有一定认识的了~
4.算法和数据结构
经典的数组、队列、链表、二叉树、通用树,基本原理可懂?这些其实都是实现更高级的对象封装的
5.汇编语言
这是更底层的了,是计算机编程语言的根基

6.就是代码大全、设计模式等通用的设计架构等技术,还有机器学习、大数据等等,是更加广阔的世界。
仅限于C#这种编程语言,是很狭隘的,建议多学习一些通用的内容,那些内容与编程语言无关,任何一种编程语言都可以实现,这样才能更加实用,更加有价值。
大学的计算机教学计划,都是遵循上面的内容,学好基础课,这是关键。
只有拥有牢固的基础知识,才能走得更高更远!

------解决方案--------------------
我觉得还是立足于当前,积极的去解决现在工作中的问题。如果没有问题可以解决,可以尝试找出更加优化的方案。
我记得有一本书,书名记得不是清楚,好像叫《大师是如何炼成的》,是一个老外写的,可以参考。
其实C#, .Net众多语言中的一种,可以尝试看看那些开源语言,例如Python之类的。
还有一句老话,叫近朱者赤。可以关注社区里面活跃的技术大牛,多和他们沟通,相信你一定可以进步很快。