如果说中国的程序员技术偏低,原因可能在这里 - 幽灵~ - 博客园



如果说中国的程序员技术偏低,原因可能在这里 - 幽灵~ - 博客园

首先来说一个高级程序员并非靠自己读几本书写几万行代码就能练就的,我更关注于低层的环境,也就是程序员实实在在的工作环境。因为程序员的高低还得从实际的工作来衡量,而非其它。所以我想说的是,中国的软件公司的性质直接导致程序员的水平的高低。而我所说的软件公司,不是指某个或者某几个,而是指主流的软件公司,大众型的软件公司。所以我希望那些已经步入一个理想的公司的程序员理解我这篇文章的定位。

软件公司的无偿加班对程序员的影响:

国内的软件公司中程序员是常常加班的,每日加,周未也常加。基于这种性质,出现了一种很莫名其妙的现象:每天程序员的实际下班时间总是要晚于规定下班时间,至于晚一个小时还是两个小时还是更多这就另说,总之,程序员这份工作,如果按时下班反而自己感觉自己像是做贼似的。表面上公司并没有强迫谁加班,但实际上在潜移默化中有一种威慑力,要求你要多为公司工作几个小时,而且表面上你所工作的这几个小时还是你自己愿意的。正因为是"自己愿意的",所以公司更有理由认为是无偿的。

还有就是周未加班,一般周未加班是因为"忙"(关于这个带引号的"忙",见"软件公司的'忙'对程序员的影响")。但周未加班一般是无偿的,至于法律所规定的那种"偿"就更尝不上了。不过一般公司是这样规定的:周未加班可以倒休。关于倒休,一般是周未的班真的加了,倒休却遥遥无期,原因很简单,公司"忙"嘛!

这种情况对程序员的影响:消极、软弱无主见、虚伪、对前途渺茫。

软件公司的"忙"对程序员的影响:

软件公司的"忙"其实有时也是真忙,从原因来说,软件公司认为是程序员(其实也有其他员工,但本文不涉及讨论)造成的,程序员认为公司造成的。而根据"一个巴掌拍不响"原则来看,应该是公司与程序员合作不协调出现的恶性循环造成的。深层原因大家自己研究去吧。不过从我这里的表象来看,这种"忙"有这么几点,这几点如果不代表大家的意见,大家可以补充:

**项目开发与计划脱节,表现为项目开发慢于计划。

**突如其来的事件。

**为某种说不清道不明的原因,像是作秀。

**假忙。

**真忙。

上面说的第一种情况最常见,这涉及到软件工程的话题,其实也是软件公司做不大,程序员水平提不高的核心。而"软件公司做不大"已有前辈文章《浅谈:国内软件公司为何无法做大做强?》中说过了,而"程序员水平提不高"本文所言即是,所以这个原因大家读完这两篇自己体会吧。

上面说的第二种情况也常有,比如偶尔赶个标书,比如客户那里突然出现了BUG,急着去改等等。

第三种情况就很让人晕菜了,有点无病呻吟的感觉,比如不知道从哪里冒出一个会议,开到个七八点;

第四种情况很特别,也比较常见,大家同室坐、彼此各自心。一片共同耕作的美好景象,但果实见不到两颗豆呢。这可是大家齐心虚度时光。程序员可以拿出这个时间提高自己吗?当然不可以了,你表面上还是得干活呢。

第五种情况就不说了,因为这是正根。

总之软件公司是"忙"的,一般是以上三种"忙",偶尔这三种都没有了,第四种就马上出来的。

这种情况对程序员的影响:混乱无序、怨由心生、虚伪做作、学习时间少。

软件公司的流程不规范对程序员的影响:

无像样的需求、无像样的设计、没有测试、没有文档、没有维护(所谓维护也大都是客户测试出BUG来改一改)。

其实说到需求这一块也并非完全是软件公司的问题,大多数情况下,客户也是根据程序员直接上来编码后暴露出来的问题才渐渐明白自己的需求是什么的。

"什么都没有"的问题在于,什么也不清楚,如果写一堆以不变应万变的代码,第一,时间不允许,第二,难度太大。要是稀里糊涂去实现,扩展与维护性又差,整个一堆豆腐渣工程,总之是没法下手。长了一堆"打铁"技巧,神不像神,程序员不像程序员的。

这种情况对程序员的影响:无规划性、代码质量低、手忙脚乱、技术永远停留在"打铁"水平。

软件公司对程序员员工的"全能型"要求对程序的影响:

装系统、修打印机、写文档、编代码、见客户、扫地搬桌子、接网线,在国内软件公司中程序员做什么事都有可能。单单说技术方面,也是要求事事能做,看一下招聘要求就知道了。

这种情况对程序员影响:术业无专攻

软件公司的工资拖欠对程序员的影响:

很悲哀,这是存在的。我向来认为一个员工与公司合作的最底线应该是按时按量发工资。但很多公司打破了这个底线。一个朋友开玩笑地说过:"家庭有钱,谁干程序员呀!"这话虽只可信一半,但是从国内情况来看,程序员的生活质量还是不高的,工资的拖欠直接影响到程序员的心态,甚至影响到程序员的生活。

这种情况对程序员影响:低调、迷茫、心态不稳、思想徘徊、生活困难。

软件公司对软件开发的要求对程序员的影响:

软件公司对软件开发的要求一般是实现即可。如果说写一个和记事本一样的程序,公司感觉程序员应该在一天内搞定;如果写一个WPS,公司也就感觉程序员应该在两到三个月搞定。这不是浮夸,事实就是这样的。公司所着眼的点在于"就这么一点功能",而非在于"怎么实现这'一点'功能。

这种情况对程序员的影响:开发难度大、维护难度大、压力大、难沟通。

软件公司的承诺对程序员的影响:

国内软件公司一般实际行动能力差,但没理难说话,他们也知道自己没理,所以比较爱承诺,把实际问题抛向以后解决。然而承诺也只是口头的,有一点"我以人格担保"的意思。不过一般情况下,国内的程序员还是比较有忍耐能力的(从上文来看不忍耐还能混吗),但公司层面的"人格"却是不可信,多承诺少兑现,员工面试时听到的说话到干了两年走了都没做到的事根本不少见。然而路遥马乏力,日久人变心,这样的结果往往是使公司与员工走入恶性循环。

这种情况对程序员的影响:不满、被动、拿不起放不下、进退两难。

结论:

消极、软弱无主见、虚伪、对前途渺茫、混乱无序、怨由心生、虚伪做作、学习时间少、无规划性、代码质量低、手忙脚乱、技术永远停留在"打铁"水平、术业无专攻、低调、迷茫、心态不稳、思想徘徊、生活困难、开发难度大、维护难度大、压力大、难沟通、不满、被动、拿不起放不下、进退两难。

上面这些短语概括了程序员的性格、心态、生活环境、工作环境等方面,它们就像毒素一样,日久能把一个健康的程序员毁掉。在这样的环境下,还问为什么你的技术这么低?太搞笑了。


Read full article from 如果说中国的程序员技术偏低,原因可能在这里 - 幽灵~ - 博客园


No comments:

Post a Comment

Labels

Algorithm (219) Lucene (130) LeetCode (97) Database (36) Data Structure (33) text mining (28) Solr (27) java (27) Mathematical Algorithm (26) Difficult Algorithm (25) Logic Thinking (23) Puzzles (23) Bit Algorithms (22) Math (21) List (20) Dynamic Programming (19) Linux (19) Tree (18) Machine Learning (15) EPI (11) Queue (11) Smart Algorithm (11) Operating System (9) Java Basic (8) Recursive Algorithm (8) Stack (8) Eclipse (7) Scala (7) Tika (7) J2EE (6) Monitoring (6) Trie (6) Concurrency (5) Geometry Algorithm (5) Greedy Algorithm (5) Mahout (5) MySQL (5) xpost (5) C (4) Interview (4) Vi (4) regular expression (4) to-do (4) C++ (3) Chrome (3) Divide and Conquer (3) Graph Algorithm (3) Permutation (3) Powershell (3) Random (3) Segment Tree (3) UIMA (3) Union-Find (3) Video (3) Virtualization (3) Windows (3) XML (3) Advanced Data Structure (2) Android (2) Bash (2) Classic Algorithm (2) Debugging (2) Design Pattern (2) Google (2) Hadoop (2) Java Collections (2) Markov Chains (2) Probabilities (2) Shell (2) Site (2) Web Development (2) Workplace (2) angularjs (2) .Net (1) Amazon Interview (1) Android Studio (1) Array (1) Boilerpipe (1) Book Notes (1) ChromeOS (1) Chromebook (1) Codility (1) Desgin (1) Design (1) Divide and Conqure (1) GAE (1) Google Interview (1) Great Stuff (1) Hash (1) High Tech Companies (1) Improving (1) LifeTips (1) Maven (1) Network (1) Performance (1) Programming (1) Resources (1) Sampling (1) Sed (1) Smart Thinking (1) Sort (1) Spark (1) Stanford NLP (1) System Design (1) Trove (1) VIP (1) tools (1)

Popular Posts