IT核心技术与我,曾有交集

简介: IT核心技术与我,曾有交集

IT核心技术与我,曾有交集



最近中兴通讯被美国政府制裁一事闹得沸沸扬扬,被房地产虚假繁华迷幻了很多年的国人,突然发现虽然我们已经贵为世界第二大经济大国,却未能掌握很多重要的有科技含量的行业里的核心技术。一时间,很多文章分析中国人为啥掌握不了核心技术,从体制上,从国民性格上进行了多维度全方位的或深或浅的分析。笔者自然不放过这个热点,写过两篇文章,分析原因,并且为中国芯片事业未来能突破欧美的压制掌握核心技术献言献策。



笔者在IT行业打拼将近17年,IT行业的核心技术,中国至今一个都没有真正掌握(完全的彻底的自主知识产权)。笔者认为的IT行业的核心技术,硬件上是指电脑CPU,软件上是指PC以及手机操作系统,办公管理软件(如微软的Office),数据库软件(Oracle,DB,SAP HANA),广受世界各地程序员欢迎与使用的开源软件(比如Spring, Hibernate), 中间件服务器(比如Weblogic,Tomcat,Apache),ERP行业的高端核心软件系统(比如SAP,Oracle EBS等)以及其它各种系统级的软件系统。



回想17年工作生涯,我惊喜的发现,我曾经与IT行业核心技术有过交集!想起来那还是2001年刚毕业那会儿,毕业后进入一家美国软件公司在长沙的分公司,担任Java程序员。那个时候,Java大热,很多高校计算机相关专业的学生对其趋之若鹜,很多人大三大四就开始自学Java,少数人找到校外企业兼职工作机会,也是用Java编写各种应用软件。并且当时Java虚拟机‘一次编写,到处运行’的噱头宣传,让很多人对Java推崇备至。当时全球主流核心编程平台,除了Sun公司推出的J2EE平台(使用Java编程语言),还有知名的微软公司推出的.NET平台(编程语言是C#)。两大平台竞争激烈,各自有无数的程序员为之呐喊助威。J2EE平台的‘一次编写,到处运行’的特点,让只能在微软操作系统上运行的.NET平台,多少有点底气不足。但是基于微软操作系统强大的软件生态,.NET平台的受欢迎程度,使用范围,丝毫不逊于J2EE平台。



我入职的美资软件公司,总部在硅谷,是一个台湾籍美国人创办的,这家公司当时刚刚来湖南长沙成立分公司。然后就从我所在的学校以及长沙的另外几家大学里通过严格笔试面试招聘了第一批员工。新招聘的员工,全部都是应届毕业生,分成几个小组,开发组,测试组等等。然后从东莞分公司调入几个老员工来到长沙分公司,担任几个小组的组长,带领我们这些刚刚毕业的菜鸟们工作。



我是在入职这家公司后开始学习Java编程语言的,一些同事在大学读书期间就学会了这门语言,甚至还有一些小的项目实战机会。面对他们,我压力不小,拼命苦学,战战兢兢的通过了试用期,正式开始了这家公司全新的职业生涯。



这个公司规模不大,员工都是毕业2,3年甚至应届毕业生,技术实力算不上太强。但是公司要做的事情,可真是不一般,不是类似国内90%以上的软件公司做的那种技术含量不高的应用软件,而是一种可以说是系统软件的软件产品。这个软件,是一种软件平台的迁移软件, 要把基于.NET平台开发的各种应用程序,经过我们这个软件平台的转换,转换成使用Java语言编写的应用程序,这样就能在各种操作系统平台(Windows, Linux, Unix等)上运行了。这意味着,需要编写一个2个编程语言之间的转化器,同时需要使用Java编程语言实现.NET平台下的所有功能(所有的Class),即用Java语言重写.NET平台!这是一种系统级的软件产品,可真不是一般的企业应用软件!可以说在当时,全中国都没有哪家公司敢于干这种事情!也正是由于这家公司干的是这种看起来高大上的事业,所以也吸引了来自美国的风险投资。这使得这家公司好几年虽然没有获得客户没有收入,却能正常经营下去。



在公司工作期间,我有参与.NET平台下某个Package下的诸多class的迁移工作。我们要做的事情是,首先通过测试或者阅读.NET平台原版说明文件,了解到这些Class的作用,class里每个属性的用途,每个method的功能,然后使用Java语言编写一个相应的class,也定义相关的属性和method,但是功能要跟.NET平台里的class完全一样。除了使用J2EE平台里的class library, 我们还有使用支持Java的开源软件,这是我第一次听说与使用开源软件。感觉这个东西真是好,也很佩服这些开源软件的作者,觉得他们很了不起,一方面技术精湛,一方面很有分享精神。我们开发好的程序,交由测试组来测试,发现了bug,又被退回来继续修改,一直到测试通过为止。



在这家公司工作期间,笔者很是痛苦了一段时间,也深深感觉到这种系统软件真的是非常非常难做。.NET平台里class library的某些Class的method, 功能很强大,能考虑到各种场景。我们通过.NET平台的class library说明文字或者自己的一些测试,很难完全了解到它的功能,要么就是盲人摸象,要么理解偏了。经常自以为实现了相关的功能,开发好了,但是一旦提交到测试组,就发现还有很多bug。很多功能,就是天天加班加点,绞尽脑汁,抓破头皮,到处找资料问业界资深的技术大拿,都搞不定摸不透。你想想,微软的.NET该有多复杂啊,且是微软公司组织数千工程师经历多年努力打造的平台,岂是我们这些Junior的程序员能轻松摸得透的?常常百思不得其解无法实现技术突破的痛苦与窘境,让人十分郁闷沮丧,让人真的是异常难受,这让我产生了跑路的念头。



我在这家公司苦苦坚守了一年之后,决定寻找外部机会,很快得到了当时中国四大软件软件园之一 --- 创智软件园的offer。进入创智软件园之后,发现这家公司做的软件好简单,都是企业应用软件,主要是为一些大型软件公司的信息化建设提供软硬件集成解决方案。这种应用层面的软件,技术含量普遍不高,只要弄清楚了客户的需求,技术上要实现一点都不难。这才让我有些信心了,终于可以得心应手的开展工作,终于可以有点成就感了:自己参与编写的软件很快被客户很多人所使用,帮助客户提高工作效率与管理水平了!



后来所做的几年Java程序员,从长沙的创智软件园到广州的天河软件园, 工作期间做的软件都是应用层面的软件,技术含量普遍不高,这也是中国软件开发业界的真实现实。我再也没有遇到过如同第一家公司那样立志于做高端复杂核心的系统软件的公司了。后来改行做SAP咨询顾问,所做的工作,技术含量就更低了,学会了SAP软件系统的某个模块的技术与功能之后,就靠嘴皮子与客户打交道了。



总结下来,笔者17年IT行业工作生涯,只有第一年在第一家公司工作期间,工作最有挑战性,从事的是系统软件的研发,距离软件行业核心技术最近。从2002年以后至今,从事的工作,技术含量越来越低,距离IT核心技术也是越来越远。实在是人生一大悲哀与不幸!



相关文章
|
5月前
十大排序引出的问题()
十大排序引出的问题()
20 0
|
2月前
|
存储 安全 Java
容器【基本使用、索引操作、并集、交集、差集】(二)-全面详解(学习总结---从入门到深化)
容器【基本使用、索引操作、并集、交集、差集】(二)-全面详解(学习总结---从入门到深化)
34 0
|
2月前
|
存储 算法 安全
【Java编程进阶之路 02】深入探索:红黑树如何重塑哈希表的性能边界
JDK 1.8之后,HashMap引入红黑树来优化性能,当链表长度超过阈值(默认为8)时,链表会转换为红黑树,从而提高高冲突时的查询效率。同时,HashMap也采用了扰动函数来增加哈希值的随机性,使键值对更均匀分布,提升性能。
|
3月前
|
存储 安全 索引
容器【基本使用、索引操作、并集、交集、差集】(二)-全面详解(学习总结---从入门到深化)(下)
容器【基本使用、索引操作、并集、交集、差集】(二)-全面详解(学习总结---从入门到深化)
45 1
|
3月前
|
Java 索引 容器
容器【基本使用、索引操作、并集、交集、差集】(二)-全面详解(学习总结---从入门到深化)(上)
容器【基本使用、索引操作、并集、交集、差集】(二)-全面详解(学习总结---从入门到深化)
49 0
|
11月前
|
人工智能 算法 5G
带你读《智慧光网络:关键技术、应用实践和未来演进》——序
带你读《智慧光网络:关键技术、应用实践和未来演进》——序
|
JavaScript 前端开发 算法
日拱算法:两个数组的交集(I、II)
本篇带来两个数组的交集(I、II)之双指针解法~ 冲就完事了~
|
机器学习/深度学习 存储 算法
用图技术搞定附近好友、时空交集等 7 个典型社交网络应用
在你的社交网络中,谁和你关系亲密?谁又和你互动最多?谁和你有很多共同好友,彼此还不认识呢?本文,用了图技术来解决 7 个常见的社交推荐场景。
137 0
|
存储 算法 Java
【难点攻克技术系列】「海量数据计算系列」如何使用BitMap在海量数据中对相应的进行去重、查找和排序
【难点攻克技术系列】「海量数据计算系列」如何使用BitMap在海量数据中对相应的进行去重、查找和排序
227 0
【难点攻克技术系列】「海量数据计算系列」如何使用BitMap在海量数据中对相应的进行去重、查找和排序