很多人在大学里之所以会选择计算机为自己的专业,并不是因为自己对计算机和编程有兴趣,而是因为计算机是“热门专业”,在毕业之后也浑浑噩噩地找了一份工作进入了这个行业,做着自己并不喜欢的事情;还有一些人则是毕业之后找不到工作,然后看到一些培训机构的广告就去报名学习编程,希望广告上描绘的“月薪过万”不只是一场梦。于是就有了越来越多的“代码民工”,在形形色色的大小公司做着又脏又累的工作,只为了“混口饭吃”。
我并不想批评这些人,毕竟在这个大环境下有着太多无奈,逼得我们无从选择。对于这样一些只想找一份好工作的人,是被骗到这个行业中来的。仔细回忆一下,这些年来我们看到的业界新闻,了解到的互联网公司文化,大部分都是有关诸如 Google, Facebook 等国外公司的;我们平时学习和使用的技术,几乎都是国外发明的。这让我们深信互联网就是那样美好,那些激动人心的东西触手可及,但请你关上电脑出门好好看一下周围:这是在中国。互联网没有国界,但互联网公司有。Google 和 Facebook 这样的公司看上去离我们很近,我们每天也使用它们的产品,但国内的互联网公司可能要几百年之后才会有那样的气质和文化。所以如果你不幸误入了这个行业,还是及早打算改行或者转型做管理比较好,这样就不需要再学习自己并不喜欢的“枯燥”技术了。
对于那些“真的”对技术有兴趣的人,要么去做一个同时具备软件设计能力的开发人员,也就是富有创造力的 Hacker;要么去做一个自得其乐的研发工程师。虽然环境恶劣,但是任何东西都挡不住真正的热爱。在这个几乎人人都把金钱作为衡量标准的社会里,你真是得到了上天的眷顾,不仅能够以自己喜欢的事情谋生,而且收入还过得去。
Hacker 是适合创业的,因为他拥有创造一个产品的全部能力。电影《社交网络》让很多以写代码为生的人产生了幻觉,Facebook 创始人传奇般的经历好像在向全世界宣布:世界是程序员的。很多人只是激动地看到扎克伯格的技术能力,但是却忽视了他的软件设计能力和对产品细节的重视程度,好像只要埋头编程就可以做出 Facebook。除了优秀的技术能力之外,扎克伯格的思考能力和创造力同样出类拔萃,可以感受得到他眼里的世界是不一样的。我们的工程师又有多少人对生活中的事物有独特而深刻的理解呢?独立思考也应该是 Hacker 的必备技能。
很多工程师都觉得自己会编程,只是缺少一个“好的 idea”;很多非技术人员则觉得自己有一个“好的 idea”,但是缺少编程能力来实现。要做一个产品,好的 idea 和实现它的能力缺一不可。然而,我们可以看到最后成功的往往是那些非技术人员,因为他们可以清楚地看到编程是一件可以学习的事情;而工程师们则往往天真地认为好的 idea 靠的是“灵机一动”,不会有意识地培养自己的观察能力和想象力。很多好的 idea 都是来自于平日对生活的敏锐观察和思考,然后这些点在某个时候忽然连成了一条线,把它简单地归结为“天才”是懒惰的做法。
“成为一个 Hacker”和“做研发”,很难说二者哪一个更困难。Hacker 在技术上可以不是一流,但他运用技术创造产品的综合能力肯定是一流的;而研发更注重技术上的造诣和理解程度,关注的是深度而不是广度。如果想要做研发,那么就要好好把基础知识研究透彻,比如数据结构、算法和网络协议等,不然很容易就会遇到瓶颈。我遇到过的每一位研发工程师都是技术上的大牛,在很多技术问题上都有非常深刻的见解;他们会从本质上分析问题,而不只是纠结于语言细节。
如果你想要通过自己的作品改变世界,那么就好好提高一下编程之外的能力,做一个好的 Hacker;如果只想埋头技术,就应该选择去做研发。不过,无论是想要做一个 Hacker 还是一个研发工程师,都需要长年累月地不断学习和思考。听上去好像非常辛苦,不过每一个热爱技术的人应该都会把学习和思考当作一种乐趣,而不是一种苦役。如果你无法享受学习和思考的乐趣,那么还是不要在技术这条路上走下去了,你会活得特别累,并且毫无幸福可言。
在这个充斥着“代码民工”并且缺乏“技术文化”的国度,我们只是关心怎么样可以活得更舒服,似乎忘记了编程本身所具有的迷人色彩。Joel Spolsky 说过,许许多多的人选择编程,首要的原因就是,他们宁愿将自己的时间花在一个公平有序的地方,一个严格的能者上庸者下的地方,一个只要你是对的就能赢得任何争论的地方。此外,我觉得选择编程还可以获得最大限度的自由和独立。因为找工作的时候只需要凭借自己的编程能力,所以不需要见人说人话见鬼说鬼话,不需要去结交权贵达人,不需要去为了所谓人脉去混圈子,也不需要看到邮件列表里有领导的邮件就去“顶”。平日里写写代码,其它时间喝酒吃肉,只交性情相投的朋友,武侠小说里的畅快适意也不过如此。这种独立和自由是极为宝贵的,你可知道有多少人在醉酒之后哭喊“安能摧眉折腰事权贵,使我不得开心颜”?
所以说,编程这件事情关乎公平,关乎自由,关乎美。而作为一个拥有编程能力的人,你可以亲手创造美。只有艺术家才可以创造美。希望有越来越多的人可以真正领会到编程的魅力所在,喜欢上这种艺术。正如 Raymond 所说,软件设计和实现应该是一门充满快乐的艺术,一种高水平的游戏。你需要用心。你需要去游戏。你需要乐于探索。
分享到:
相关推荐
此外,还有一些 java 程序员选择自己创业,成立工作室或公司,开创自已的产品和事业。这些选择都表明,java 程序员的职业前景是非常广阔的,可以选择多种不同的发展道路。 因此,对于 java 程序员来说,职业前景是...
随着互联网行业的快速发展与变化,越来越多的程序员选择走上创业的道路。然而,创业并非易事,特别是在一个充满竞争和技术快速迭代的环境中。本文将深入探讨程序员创业过程中必须克服的三个关键挑战:模式关、管理关...
除了上述传统的技术、管理和创业路线之外,还有许多程序员选择了跨领域的综合性发展路径。这意味着在掌握专业技能的同时,还要学习其他领域的知识,如数据分析、人工智能、区块链等。这样不仅可以拓宽自己的职业视野...
在深入了解VB.NET之前,我们先探讨一下为什么会有这么多VB程序员选择转向VB.NET。从文章中可以看出,作者之所以喜欢VB,主要是因为其可视化编程环境、简洁的语法以及丰富的控件支持。然而,随着软件开发领域的发展,...
薪酬指南是程序员选择职业时的重要参考依据,本报告提供了重庆地区程序员职位的薪酬指南,从中可以了解到不同公司类型对薪酬的影响。例如,外资企业的薪酬水平最高,达到184,138元,合资企业次之,为142,394元,地方...
2. 职业感悟与成长:作者通过比喻将程序员选择开发工作比作修炼“辟邪剑法”,这可能是在形容编程需要极高的专注和牺牲,以及在初期职业生涯中获得的成就和满足。但是随着时间推移,这种热情和满足感可能会因为行业...
软考 即 计算机技术与软件专业技术资格(水平)考试 。 全国计算机技术与软件专业技术资格(水平)考试(简称...初级资格:信息处理技术员、网络管理员、程序员、网页制作员、信息系统运行管理员、电子商务技术员。
- 租房与自有住房比例:报告指出,程序员群体中有20.9%拥有自己的住房,而超过六成(61.5%)的程序员处于租房状态,其中35.6%的程序员选择一个人租房,30.9%选择与他人合租。这与其他职业群体相比,程序员的自有住房...
颜色选择器是程序员在进行界面设计和开发时不可或缺的工具,尤其对于前端开发者而言,能够准确地选取并应用颜色至关重要。这款"程序员必备颜色选择器"软件提供了实时颜色选取功能,帮助开发者快速获取屏幕上的任意...
程序员选择活字格的原因有很多,包括: 1. 提高开发效率:活字格可以帮助程序员快速构建应用程序,提高开发效率。 2. 降低学习成本:活字格提供了视觉化界面,降低了学习成本。 3. 跨平台支持:活字格支持多种操作...
随着技术日新月异的变化和个人能力的不断提升,每位程序员都会面临多重选择。本文旨在从不同的角度探讨程序员可以选择的职业路径,并深入分析每条路径的特点与挑战。 #### 专家级程序员 对于对特定技术领域充满...
然而,从提供的辞职报告范文中可以看出,Java程序员选择离职的原因可能包括以下几点: 1. **部门地位和资源不足**:在某些公司,IT部门可能被认为相对不重要,投入有限,这可能导致工作效率低下,程序员无法充分...
2. **公司环境与个人成长**:报告中提到公司在技术提升和职业发展方面的支持不足,可能是程序员选择离职的一个重要原因。良好的人际关系和开明的工作氛围被赞赏,但并未能弥补其他方面的不足。 3. **工作经历与贡献...
每个数据结构都有其独特的特性和应用场景,理解它们的优缺点有助于程序员选择合适的数据结构来优化代码。 在面试中,数据结构和算法的知识往往是评估候选人技术能力的重要标准。例如,排序算法(如冒泡排序、快速...
理解这些数据结构的特性,能够帮助程序员选择最适合解决特定问题的数据结构,从而提升程序的运行效率。 智力题部分可能包含了一些逻辑思维和数学问题,这些题目通常用于面试中测试候选人的逻辑推理能力和问题解决...
在描述中提到的案例中,该程序员选择了一条偏离初衷的道路——使用WordPress一键部署网站。这种做法虽然能够快速搭建一个功能较为完善的网站,但存在以下问题: 1. **技术栈不匹配**:WordPress基于PHP开发,与Java...
【程序员个性电脑桌面壁纸】这一主题,其实涵盖了两个主要方面:一是程序员文化,二是电脑桌面壁纸的个性化选择。这两者都是IT行业中与个人工作环境和精神风貌紧密相关的元素。 首先,我们来谈谈程序员文化。程序员...
在IT行业中,头像往往代表了个人在网络世界中的形象,对于程序员这个特殊的群体而言,选择一个合适的头像是展示自己专业性和个性的重要方式。"程序员专用头像.zip"这个压缩包文件,显然为程序员们提供了丰富的选择,...
8. **个性化设置**:提供多种主题和字体选择,满足程序员个人喜好。 在【³ÌÐòÔ±¼Çʱ¾】这个文件中,我们可以预见到它包含了程序员在工作过程中积累的各类代码示例和经验总结。这不仅有助于个人的成长...