看了一篇讲述Windows程序员前途的文章有感而发转过来

转自 http://www.cjjjs.com/paper/gzsh/201649141143294.aspx


  在文章《自述内心深处的感想:深入精通学习和广泛学习了解的较量问题》中,我给自己定下了一个方向,继续深入学习Windows系统。末尾也提到了我的顾虑,其实这个一直都是众多从事Windows编程工作的程序员心中的一个心结。
    这个心结在我内心也经常翻滚,似乎就是一个魔咒。之前还不太明显,倒还好。在看了文章《一个LINUX狂人的语录:深入了解linux,学习linux终身受益》的疯狂抨击之下,我的心理防线似乎几乎崩溃了。加之现在的市场情况和发展态势,让我们更是不由深深为Windows担忧,更是为自己学习Windows今后会不会随Windows一起废弃。
    正是这些因素,导致想好好学一下Windows脑子里或者别人嘴里冒出了各种说法,还在学习Windows?Windows都没落了呀,还学它干嘛?你没有看到Windows市场都在萎缩吗?没有看到移动市场的需求的膨胀吗?学这些没有用的,找工作都不好找了。你看看Linux,这个大公司也在用,那个大公司也在用,嵌入式、手机都在用,又稳定又强大,市场也越来越多了。
    当然还不止这些,不过这些都够Windows程序员或者学习Windows的人受的,每一个都是赤裸裸的现实,让你无言以对。但是你又想学一下,但是又好像生不逢时一样,学还是不学,这是一个问题!!!在自己没有想清楚的情况下学了,在这个过程中,总是不得劲,稍微一个风吹草动就让自己内心激起波涛汹涌。正如看到那个狂人语录之后,我内心也崩溃了。
    怎么办呢?学还是不学,转还是不转,又是当前需要面对的问题,无法逃避。想不清楚,这个梗就永远过不去。这个影响是很大的,千万别小看了。如果没有想清楚,你无法使尽全力的学习,所以即使在学习,在从事Windows编程,也无法达到预期的效果。就算放弃,也是心有不甘,而且对于转换平台到Linux,依然还是不得劲,总是左顾右盼的,心里始终都定不下来,导致脚踏两条船,收获平平。
    时间精力都花了,但是一无所获,终究也会打击自己学习的热情,甚至最后难受到放弃编程,就感觉编程就是一个地狱级的世界。加上编程工作的方式,都让很多人逃离。很多人外行人和伪兴趣的程序员总觉得编程工作枯燥无味,更是让很多程序员打起退堂鼓,就感觉程序员工作就是一个大坑,无尽的Bug和无尽的痛苦。在加上学习上发展上的各种不确定,看不清楚,想不清楚,终究在一个外力的干扰下防线崩溃。
    既然这么多人都抗战在同一个心理防线上,却没有一个做出了引导,将这样的一触即崩溃的心理释放,正确的引导到健康的路上。这个抵抗过程却是很艰辛,不仅要学习大量的技术知识,要克服各种困难,还要抵抗外界、内心的各种残酷的打击和讽刺,在外界的辛苦和内心的煎熬之下,可以让很多人中途崩溃,最后放弃编程工作。当然,程序员如果技术达不到很高境界,拿的收入也不会太高,总是有一个封顶的。然而,你想想谷歌最厉害的程序员,薪水自然不会低了。不是程序员这个职业拿不到高薪,主要是看你能力真的能够达到那个层次。人家程序员技术水平超神后,可以深入浅出分析一个架构,可以解析操作系统,我们这些大众程序员,能解决业务就很不错了。难道你还幻想以自己这个水平拿人家的薪水吗?
    我这里分析我内心的想法,将最深处的想法,全部说出来,希望能够引起更多程序员的共鸣,也希望找到一个正确的出路,引导自己继续前进。给那些还在苦苦挣扎的程序员一个参考,这样就不会觉得做程序员,或者Windows程序员很痛苦很纠结了。
    一点不夸张的说,当我脑子想着学习Windows的时候,马上就联想到了Windows系统的市场份额退缩,不仅是Windows系统的市场份额的退缩,更多是移动市场的大规模膨胀,导致PC市场的退缩。然而Windows在PC目前还是占据绝对优势,只要有PC需求,Windows就还有存在的理由。
    而看那些满嘴说Linux好的人,不停的打击Windows编程没有前途的人(包括程序员),自己电脑还是用的Windows,或者在Windows上写代码,然后上传到Linux上编译。你说Windows没前途,你自己又是如何对待的呢?你可能会说,我只是在Windows上写一下代码,并不是做Windows开发。但是我想问,你用的Windows上的开发工具是不是Windows上需要用的呢?你平时的生活操作,不还是在Windows上完成的,你所用的东西,难道不是其他Windows程序员开发出来的吗?只要有人用,不就是市场吗?这个和自己手里拿着苹果手机却不停的骂苹果手机一样的。让人真的无语。
    我也清楚,因为移动端的火热,抢了很多份额,然而,PC却无法被移动端替代。我个人还是喜欢电脑上工作,手机上最多娱乐娱乐,强劲一点的需求,不好满足。而且那么小的屏幕,能干嘛,就是能办公,效率从何而来。要看个电影,你叫一大伙人看你那个小手机屏幕吗?如果说娱乐,我也更偏向于PC,游戏、办公,开发都选择PC。
    而移动最大的优势就是移动性。因为这个特性可以随时随地的娱乐学习和生活辅助等,但不是随时随地的办公哦。成天迷恋于手机,基本上都成了低头族,无时无刻不盯着手机,一刻不带手机就觉得心慌。这是移动便利带来的一大特点,各种低头族的悲剧,太多了。
    然而不管怎么样,真正的工作办公,或者处理量稍微大点的,还是要转移到PC端。既然是PC端,Windows的优势还在那里。这是无可辩驳的。
    而谈到Windows的工作,虽然市场还在退缩,但是依然有很多市场。其实我们没必要担心Windows系统倒闭。如果真的有一天Windows系统倒闭了,IT界必然也发生了很大的变化,甚至有点革命性的意味,自然到那个时候,风云变幻,谁还能不有所改变呢?
    所以,只要现在Windows有市场,就可以了。有Windows的工作需求,就可以了。对于程序员来说,够了。你一个人的工作需求,不需要一个庞大的市场来满足你。好比你一个人,也只需要一日三餐,一个晚上只是睡一张床,何必要求巨量的食物和超多的床的市场呢。够你发挥就行了。想其他的真的有点多余了。如果真有哪一天,竟然找不到Windows的工作了,那就转行吧。世界都在变,大家都在变,也不是你一个人在变,你又有什么好恐惧的呢?
    Windows开发的需求在变化,只是换一个开发环境罢了。更何况,在中国的迭代也不是那么容易的。老早微软就放弃支持XP了,中国现在还在普遍使用XP系统,哪些设备使用的系统,也不是那么容易更换的。中国的更新脚步实在太慢了,中国系统开发也还在看齐xp,微软的win10都非常普遍了。
    我们有充分的必要学Windows,而且也是能够找到工作的。不过你可以看看招聘的需求。Windows因为使用了很多年,学习资料都很多了,学习Windows的条件很好,Windows程序员也似乎饱和了,所以,找Windows的工作,通常要求也是很高的。所以你要是想学Windows编程,那就尽管学习吧,而且要学好。如果你学的不怎么样,自然生存就很难了。市场的饱和自然技术要求就更高了。如果你不努力提高技术,想随大流随便混一个工作,做什么都混不好。
    所以,要学Windows就要学深入,必须深入,否则你的竞争力就不强。自然学好了,依然薪水也很高。而冲击的就是Windows系统本身,不停的深入。Linux因为大家不怎么熟,现在能够熟点的都似乎有点优势,不过长期来看,能力还是需要的,靠简单入门混工作的话,不是可行的。所以,学linxu的话,也需要好好学。
    如果喜欢Windows上的开发,那就义无反顾的开发吧。只是自己要清楚,不要停留于肤浅的简单应用开发,而是要不断的深入学习。不过真到你学习深入到系统内核编程,再到内核实现设计之后,Windows和Linux只不过就是现代操作系统的两个版本而已。深入到系统内核设计实现的程度,还有什么系统的选择问题吗?
    所以,如果在技术上寻求不断的进步和提升,尽管选择一个自己喜欢的系统开始学习,不断的深入。存在就是合理的。既然你现在做开发的系统有需求,那就是合理的,就有必要好好学习。我们最多就是穿越一个系统,最后驾驭于系统之上。最怕的就是沉迷于系统本身了。这样你的发展就和系统发展相关了。如果你凌驾于系统之上,你就超神了。
    我在Windows编程的学习,还只达到Windows内核编程基本水平,也就是在内核编程能站住脚,一些基本的内核编程是可以应付的,然而再复杂一些的技术,或者全景看内核编程,我就不清楚了,我需要继续学习。如果克服了这个阶段,那就上升到Windows内核设计实现层次了。再上升就是操作系统设计实现。这样就驾驭于Windows系统之上,也可以顺带把Linux系统搞深入了。
    如果此时在Windows上有一定的积累后,然后转入linxu,然后从各种基本的命令敲起,那不是又从头开始了。那何时能够达到驾驭操作系统的层次呢?这无疑给自己的学习路程加长了很多距离。还有,不同的操作系统只是在具体实现细节和方案有所差异,基本的通用的道理都是一样的,这个可以看操作系统理论书籍。所以,你必须要熟悉一种操作系统的具体实现。既然Windows有很多资料,那就先借助Windows爬到Windows内核设计层次再说吧。
     因为Windows是不开源的,所以内核代码我们不知道,所以也给内核设计实现细节的学习阻断了去路。不过此时,可以看Linux内核设计实现。此时你看Linux内核,根本不需要你会命令,你只关心内核的设计实现了。直接跳跃到内核,而如果你转入Linux再走这个过程,恐怕没有那么容易到达内核层次吧。就算你贸然去看内核代码,根本就看不懂,就算看内核剖析的书,也是云里雾里。
    所以借助你熟悉的继续学下去,是更加明智的选择。这也是长期发展的比较好的选择。至于工作,能找到就行了,至于市场,不是程序员太关心的事情。而且学习的过程是不断提高自己的能力的过程,只要认真学习了,不同的系统基本模式都一样。最坏的情况就是你学Windows到一半,微软宣布放弃Windows了。你自然还可以将你学习的技术转到其他平台学习时对比学习,也会加大促进你学习理解,这就是一个能力,提高了学习能力。再或者,你可以用你学到的核心技术,自己造一个微型系统,那不适合更好。
    当你真的练就大神了,你只是静观其变,以静制动。如果你只是混混工作,我也没有什么好说,如果你只是挣点工资,其实程序员工作不是很好的选择。如果你没有兴趣,更是没有必要选择Windows。所以,我也算分析清楚了,继续学习熟悉的Windows,不断的深入,也在这个学习过程,将那些并不为人所熟知,只有大神知道的东西,尽可能用通俗易懂的语言表述出来,分享在C++技术网中,希望给更多的学习者指路。因为虽然看上去Windows学习资料那么多,然而大神级别的人并不多。因为很多关键技术,宝贵经验,并没有人愿意分享出来。看似学习来容易,实则并不容易。
    那么想清楚了,管他什么市场,管他什么Windows使用量,只要我高兴,我喜欢,而且我有更远的目标,只要朝着这个目标不断的学习,不迷恋肤浅的Windows编程,我又有什么担心的呢?

你可能感兴趣的:(杂项)