再也不能这么活 再也不能那样过

再也不能这样活 再也不能那样过引言“再也不能这样活 再也不能那样过 生活就得前思后想 想好了你再做”略知

再也不能这样活 再也不能那样过

引言    

“再也不能这样活 再也不能那样过 生活就得前思后想 想好了你再做”
略知一二起,从业三四年,项目五六个,加班七八点,读书九十本,方向已茫然。
这就是我这几年IT生涯的真实写照,我想,也应该是部分同行的状态。突然听到刘欢大哥的“再也不能这样活 再也不能那样过 生活就得前思后想 想好了你再做”,心里突然有很大的触动。程序员的出路,到底是什么?
下面是我最近的思考结果。

1.1行业分析
纵观整个IT行业,这里说的是正经的IT行业。之前通过一个哥们讲的故事,说问一多年不见得同学,

‘你现在做什么行业’

答曰‘IT!’

‘是吗,那咱俩现在是一个行业的呀,你具体做什么工作?’

‘听说过联想吗?’

‘听说过!’

‘听说过联想的thinkpad吗?’

‘肯定听说过!’

‘对,thinkpad上面用的螺丝钉就是我们公司生产的’

‘。。。。。。’。


闲话少叙,转入正题,IT行业可分为如下几类:

再也不能这么活 再也不能那样过

先说最底层,就是软件。做软件的公司,还可分为两类,一类做系统,如微软,redhat等,这里有一批的程序员,他们弄得是windows,linux内核,这部分人一般都是‘大牛’。另外一类做应用,adobe,oracle,其他的,没法列举,多如牛毛。剩下的就是嵌入式程序员,他们懂一些软件,会一点硬件,在这之间游离,在夹缝里生活的很好。我自己,号称是‘嵌入式软件工程师’,其实就是这牛毛夹缝里的一个毫毛,不是妄自菲薄,实事求是而已。你呢?

然后是程序的编译部分,如GNU组织的gcc,微软的vc,keil等。这里有少量的程序员,他们懂得,编译原理。知道如何把源码,经过词法分析,语法分析,语义分析,代码优化,代码链接,并转换成目标文件。这部分人是‘大牛中的大牛’,他们负责维护编译器,或者自己开发编译器,发明新的编程语言。这个行业里有为数不多的公司和产品,比如pclint,Testbed。这部分人主要在国外,国内也只有像龙芯,华为,还有其他可以设计IC的公司里。

 

然后是模拟器部分,这部分的程序员已经成精。他们知道如何将可执行文件进行分析,知道程序的每一条指令是如何执行的,他们可以虚拟出一个体系结构,让可执行文件执行。并可以获得程序执行的情况,给IC设计人员提建议。这个阶段的公司也有,比如VM,IBM,微软等。需要特别注意的是,这就是‘虚拟技术’,而当前‘云计算’的基础就是它。

 

然后就是FPGA部分,他们会verilog HDL(跟C很像),他们了解硬件,并从上面的模拟器程序员那里听取意见,然后设计IC,并进行仿真和验证。最终,他们得到了CPU,或者其他的各类芯片,接口控制器,图像和音视频控制器,存储器等等。把他们弄到一起就是SoC!这部分的公司也有,比如,intel,IBM,AMD,ARM。

1.2自己的位置
把上面的图,左转90°,就是金字塔。现在,我已经清楚了自己的位置,也知道了自己的努力方向。

1.3小结 希望能帮到同为程序员的迷茫的你
不能这样活
歌手:刘欢

歌词:

东边有山
西边有河
前边有车
后面有辙
究竟是先有山还是先有河
究竟你这挂老车走的是哪道辙
呦嗬嗬!
春夏秋冬忙忙活活
急急匆匆赶路搭车
一路上的好景色没仔细琢磨
回到家里还照样推碾子拉磨
闭上眼睛就睡呀
张开嘴巴就喝
迷迷登登上山
稀里糊涂过河
再也不能这样活
再也不能那样过
生活就得前思后想
想好了你再做
生活就象爬大山
生活就象趟大河
一步一个深深的脚窝
一个脚窝一首歌!

2楼funs9696昨天 23:36
目前还是在校学生,做硬件方面的东西,FPGA 单片机 sopc什么的,按作者的话说,我目前就是一个努力成为"牛毛夹缝里的一个毫毛"的存在.....=_=!!n不过文章中关于金字塔的理论不是很明白,按你说的FPGA这类的在金字塔的顶端了,不过这个金字塔底层的很多东西我都不是很懂,直接做FPGA岂不成了畸形发展??
Re: rill_zhen2小时前
回复funs9696n如果你仔细看的话,在FPGA和模拟器之间有一个松耦合的隔离带,从图上看就是只有一个箭头。个人认为,整个金字塔太大,不可能一口吃个胖子,必须找一个切入点。这个切入点有两个,1,从学习c语言开始。2,从学习verilog开始。然后逐渐渗透。n整个IT是一条大的产业链,作为个体的每个个人,是这个产业链上的一个分子。n还有,如果你现在做的是IC(FPGA方面的核心职业)的话,模拟器,以及编译原理,这两方面的内容最好是要了解的。n如果你现在还没感觉到你对这两方面的内容的缺乏会影响你的工作的的话,可能是用FPGA,就是把多个小芯片集成到一块,或者把它用作完成一些特定应用的模块。
1楼sandeziVIP昨天 15:54
其他语言处于这个金字塔的哪个位置,求教?
Re: rill_zhen昨天 16:11
回复sandeziVIPn我想说的是整个金字塔是一个链条,每一环都不可或缺。无论在哪一环,只要做得好,都可以有自己的一片天地地。在金字塔的底端,并不比顶端差,在顶端,也不比底端强。没有底端,是空中楼阁,没有顶端,就是破壁残垣。对于您的问题,现在的编程语言有成百上千种,恕我不能把所有的语言全画到图上。谢谢。