返回 登录
0

一周极客热文:老程序员的下场

长期从事编程活动的程序员都期望在50多岁时能爬到一个足够高的职位,或者能顺利的退休。那你有没有想过,如果到那时你失业了呢?你会从衣食无忧沦落为无家可归。没有吓唬你,本文作者就是一个真实的例子。为了避免沦落为下一个作者这样的人,他给程序员以下建议:

1. 职场上往上爬,不要停。

2. 成为某一方面的专家——虽然保持足够宽的技术面也很重要,这样你才不会被淘汰。

3. 建立一个人际圈。扩大它。

4. 多样化你的投资。

5. 有工作时医疗保险一定要上,这方面不要出问题。如果你没了工作,没了钱,医疗保险也没有,这将会成为一个严重的问题。

6. 与人为善。但也不要犯傻。大部分你帮助过的人不会回报你。

提早打算,人生不如意十有八九。

一、 30岁后将发生的事情让程序员们惊恐

对大多数普通程序员来说,29岁之后的未来看起来会是非常的悲惨。年轻程序员受偏爱的原因是,老程序员会慢慢的疲倦于重新学习那些层出不穷的新技术。再有,更重要的,公司们喜欢招聘年轻的、没有经验的程序员来干跟他们一样的活儿,但给的薪水更少。这使得一些有经验的程序员选择晋升到管理职位,变成管理其他程序员的身份,不再实际参与编码。

如果你打算一直‘写代码’,那你就要准备好用不同的编程模式、不同编程语言’把相同的代码’写好几遍。没过几年就要重新学习工作上需要的大部分技术,这些不得不做的事情有时候会让人苦恼。因此,给年轻程序员的建议是:早做准备。

二、 自己动手写GC

有一天早上,事情多得我喘不过气来,自己就会想找点别的事情做,以便远离烦恼,这时我突然想写一个垃圾回收程序。

机器的内存不可能是无限的。所以解决办法就是,当程序需要分配内存并且意识到内存已经不足了,它开始进行垃圾回收。这里的“垃圾”是指那些已经分配出去但现在不再使用的内存。内存是不是“在使用中的”按如下定义:

1. 如果对象被作用域中的变量引用的话,那么它就是在使用中的;

2. 如果对象被在使用中的对象引用的话,那么它也是在使用中的。

查找及回收无用对象的方法有很多种,最简单也是最早的一种方法是“标记-清除法”,其定义如下:

1. 从根对象开始,遍历整个对象图。每访问一个对象,就把一个标记位设成true;

2. 一旦完成遍历,找出所有没有被标记过的对象,并清除掉它们。

通过百来行普通的C代码,就能实现一个标记删除的收集器。

三、 美国人看中国科技创新创业现状(5):大结局

在中国软件行业创新的需求并不强烈。中国对知识产权的保护总是纸上谈兵,无法落实。创业公司相互抄袭彼此的产品,分享和合作还没有成为文化的一部分。中国如果希望靠创新促进经济发展,必须加强知识产权保护,并出台反垄断法案。

中国的教育是一个严重的瓶颈——老师照本宣科,学生缺少学习动力,学校提倡循规蹈矩,一切以考试为目的。中国的教育并不鼓励独立思考和挑战权威,中国的教育还需要更多地培养学生的创新能力、思考能力和企业家精神。

中国的创业生态系统才刚刚形成,这里缺少有经验的创业前辈及有经验的工程师和高层管理人员。中国的创业者害怕失败,年轻人缺少一点冒险精神。人们对自己的公司缺少忠诚度。整个文化依然对失败者缺少应有的宽容。

不少创业者把投资人看成自己的老板,董事会和CEO都没搞清楚自己的定位。很多创业公司是风投驱动的,而不是创业者自己驱动的。

四、 让你惊叹的 Chrome 浏览器实验项目

Google的Chrome浏览器实验室展示了很多基于HTML5和JavaScript的创意实验项目,其中很多实验项目使用了前沿的WebGL技术。以下的例子很独特,让人惊叹:

1. WebGL Bookcase

结合 WebGL 和 Google Books API 制作的充满空间立体感的书架实验项目,可以旋转。

2. Evolution of the Web

这是一个基于 HTML5 技术制作的可交互的信息图,介绍浏览器和各种Web开发技术的发展史。

3. 3 Dreams of Black

这是一款WebGL巨作,简单来说就是一个基于WebGL技术的互动型MV,荣获FWA 2011年度大奖。

4. The Wilderness Down Town

这个是结合了谷歌地图的应用,用到了 HTML5 的Video和Audio标签,鼠标移动的时候那些鸟会“智能”的躲开。

5. 20 Things I Learned

基于 HTML5 制作的电子书《关于浏览器和网络的20项需知》,可以好好读一下。

6. WebGL Globe

WebGL Globe是一个开放的地理数据可视化平台,鼓励开发者使用代码创建自己的应用。

7. Cube

结合WebGL和Google地图制作的创意实验项目,让你在立方体空间里游览城市。

8. MapsGL

MapsGL采用了WebGL(基于网络的图形库)的新技术,以增强Google地图的体验。

9. All is not lost

一个基于HTML5制作的共享多窗口音乐视频,输入歌曲信息,让他们舞动起来吧。

五、 一份开源初学者的指南

能给开源项目贡献自己的代码是学习最好的途径,还可以提高自己的技能,何乐而不为呢?本文就来教你如何为开源项目做贡献。

六、 关于程序员开发效率的悖论

程序员看起来应该都是一帮非常高产的人。你总能看到他们在电脑桌前噼里啪啦的敲着键盘;他们焦急的等待会议结束,希望马上能回去编程。当被问起,他们总是说没有足够的时间编写出这些程序,需要立刻开始编码,这样才能及早完成。

看来,敲代码一定是最重要的事情了,不是吗?实际情况是,只有很小一部分的程序员的时间是花在写代码上的。如果一个程序员的所有时间都在敲代码,那他一定是在尝试不同的代码组合,直到找到好用的代码组合。

一项持续40年的研究表明,程序员的开发效率并不会随阅历的增加而增加。所以建议程序员:在把手放到键盘上前喜欢先计划代码如何写,这样会提高开发效率。

关于我们:

极客头条是CSDN推出的精品内容发掘平台,在这里可以发现、分享值得你关注的极客新闻。

如果你看到优秀的文章想分享,请点这里:【分享到极客头条】,或者直接在新浪微博@极客头条

评论