首页 程序人生 对程序员说点实在话

对程序员说点实在话

  1. 我个人是一个程序员,关注web、分布式和数据处理。
    我将web看做最流行的、天然跨平台的展现和可视化技术,将分布式看做程序协作、协作程序的最适架构,将数据处理看作需要基础、技巧、认知、视野以及领域知识兼而有之的事,所以做数据处理,会提升基础、技巧、认知、视野以及领域知识。
    这些都是废话,还挺绕,但理解废话,对我来说,不是那么简单的事。

  2. 我认为能力的提升来自厚积,所以对于基础的东西,应该保持持续的热情。
    认为基础应该包括但远不限于
    数据结构和算法
    算法
    网络(tcp/ip、p2p、http等等)
    计算机体系和操作系统(内存管理、高速缓冲与缓存、线程与并发、资源与争用、CPU周期、局部性原理等等)
    认为以上基础永远没有精通一说,至少在我这个智力层次看来。比如你看到严蔚敏数据结构了,挺好,你又看了算法导论了,更好,能看看普林斯顿的算法,你挺不错,你又看了些论文,而你确实又用vim、emacs、vs、eclipse或者sublime敲了,那你应该可以一眼就看出满世界的博客的算法文章中的纰漏和层次,那你还是有点功力了。

  3. 知识结构的重要性与项目经验会相互影响。同样的项目,类似的角色,因为知识结构的不同,带来的提升和总结也会不同,这种提升对于下一个项目或者更复杂的项目带来的裨益也会有所差别,更长的时间之下,这种差别巨大到值10W还是100W。
    有十年工作经验,还是一件事重复了十年,差别可能就在这里。

  4. 认为类似“精通java”之类的说辞是存在的,但不谈JVM是耍流氓。类库和框架的熟悉来自工程和项目,可以熟悉一个简单的API,也可以追着理解AOP,可以应用地很简单也可以很复杂。如果关注性能的场景,那么应该自觉地关注JVM。但是JVM是浩大的工程,所以理解它是一个长期的过程,所以精通是一件比较困难的事。但是很多常用的场景,比如BufferedReader和FileChannel、mmap都可以是I/O的一种选择,何者更加适合,往往要看虚拟机里面和操作系统做了些什么,才会理出最佳实践,附带的,对Xss、Xmx、directMemory之类的简单配置也会有更深的理解。同时有助于看到基于虚拟机的语言的局限,比如HBase的BlockBuffer本身是提高读取的效率的设计,但因为JVM的堆和GC机制,这个设计可能会拖垮HBase。
    这一点同样应该适用于C#&CLR。

  5. 工作了多年的人都会认为或者自恃自己在某些方面达到精通的水准,有的人的确达到了,但附带着会有些装、虚伪和极爱抖机灵,他不会和你好好地探讨问题。这种人可能会存在于朋友、同学、同事、上司当中,一个程序员不会活在独立的容器之中,除了在实力方面要保持自信和谦逊以及付出更多的努力之外,还要注重坚持自己的一些原则而不受一些不够正能量的企业文化、圈子文化影响,做自己,才能更好的对待技术,才能给雇主带来更佳的气场感受和实际价值。
    这个世界不缺乏喷子,有的喷子本身也很厉害,甚至比自己厉害的多,这是他们活着的方式,情绪控制不是什么技巧,你理解的越透彻,你就越能看清什么是喷子,什么是恨铁不成钢。

  6. 关于技术实用论,总有一种观点是没去过美国就不应该知道星条旗。比如,不是每个公司,每个程序员都会接触到大数据,但是人类在没有飞天的远古,就已经通过图腾和壁画来开启文明的探索和解读了,这种东西,其实是信仰的力量,说俗一点就是兴趣所在,再俗一点,就是机会总是留给有准备的人,愿意不愿意准备看态度和理解,准备了能不能够将来用得上,看机遇,实力和运气都挺重要,但运气你控制不了。

  7. 人类的大部分知识来自间接渠道,比如阅读书籍、观看媒体、道听途说,离开了学校,但并没有离开知识的媒介。好的知识来源,比好的学习方法更加重要,这通常也是牛逼的院校和不牛逼的院校的主要区别。有的学校的老师在微博还在成长的阶段就开始讲授社会计算了,如果你没有这个知识渠道,应该不会认识到ETL、数据挖掘和倒排索引的意思,可能你已经熟练的修改、添加、编译lucene了。
    但是,再好的知识,离开了实践,均不会得到升华,认为一个好的程序员,应该关注代码和实现,但应该摒弃简单copy原则,虽然copy大多数情况下对付工作够用了。私下里,一段关键代码写个十来遍真傻,挺蠢的,但如果每种写法有个思考和理解在里面,有选择地这么做了,再看设计模式和重构,哦,真是这么回事,用茴香豆的方式当傻子不是那么不堪忍受的事,至少理解了什么是错误,什么是差别,也给你创造了工作之外的提升场景。

  8. 很多人持这种观点,中国人,技术都是差的,也是写不出hadoop的,挣钱最重要,但自己又觉得自己很厉害。
    其实将写出hadoop和挣钱作为标准,这个观点本身就太局限了,人这辈子,钱当然重要,写出能用的hadoop还是写出mini操作系统还是mini虚拟机,都不必太当回事,阅读源码和自己实现所营造出的理解深度天上地下,这种愚公移山的做法,更多在于逼迫你去了解更多、更准、更深刻。大部分hadoop专家,其实都是仅仅看了源码而已,就已经能出书了,事实上很多公司在实际中也只是跑一些很简单、很成熟的挖掘算法,爱奇艺的工程师做线性回归也是实用即可,大部分公司还是在处理日志,有时候想了很牛逼的算法,还没有换成SSD重要,所以没那个环境,没那个条件,就不研究了?我想不是的。
    关于挣钱,我觉得,只要兴趣所在,能把事做好,钱自己就会来。收入上不去,往往是做的事情就不在高收入的那个区间,写程序很难出富翁。说实话,外围一天的消费可能就是你工资的好几倍,不用说外围的收入了。夜总会想玩的high一点不开两瓶路易十三,可能还会被小姐骂伪土豪,你不送你喜爱的红、蓝、绿牌花束,你都不好意思和她回小区或者宾馆探讨遗传算法。
    那么和外围一起探讨遗传算法的王总、李工的收入更不是写程序的可以比的了。
    所以不要太刻意地把写程序这件事和挣钱挂起来,局限了你挣钱的本事。

站心网

我个人是一个程序员,关注web、分布式和数据处理。我将web看做最流行的、天然跨平台的展现和可视化技术,将..

为您推荐

程序员职业发展与技能要求

程序员是从事计算机程序开发、维护和优化的专业人员。他们通过编写代码,设计软件系统,解决技术问题,推动技术创新。以下是程序员的一些关键信息:核心技能编程语言:掌握如Python、Java、C++、JavaScript等语言。..

程序员离职时删除代码注释算违法吗?

程序员离职前删除代码注释是否违法,取决于多个因素,包括雇佣合同、公司规定、法律条款以及删除行为的动机。以下是几个关键分析点:1. 合同与公司规定劳动合同或保密协议:如果合同或公司规定明确要求代码的完整性..

创造型职业程序员的无奈

编程是为数不多的一种既能满足个人爱好,又能赚钱的职业之一。烹饪是另一个这样的例子。在一般情况下,大多数职业要么不可能让你待在家里(例如医生和电工),要么你没有兴趣在家里做(例如清洁)。同样的,大多数好..

程序员副业探索之电商

目录一、小程序化妆品1.1 小程序准备(营业执照&微信支付&小程序appId)1.2 小程序开发二、拼多多电商三、跨境电商四、总结在腾讯广告工作期间,我主要负责小程序电商与广告业务,见证了互联网电商行业的剧变,特别..

谈程序员如何做好业务

前言技术能做两种事情,通过技术实现业务和通过技术支持技术。我们大部分时候做的是前者,养活我们的大部分也是业务。 近两个月,作为项目负责人角色从0到1经历了新项目的几个版本迭代,跨入了部分新领域,也有一定..

程序员增加收入的几种方法

在这个互联网飞速发展的社会,学会如何make money很重要。咱们是个俗人,赚钱才是社会生存的头等大事。这不是高山流水的世界,而是能力创造财富,对于程序员来说,更是如此。作为程序员,我们有更多挣钱的姿势,注意..

程序员跳槽到对手公司,被前老板设计陷害

这件事发生在2007年,我就职的第一家公司。今天把它整理写出来,希望它对程序员有一个警醒的作用。永远要记住,程序员的世界除了有代码,还有被套路。资深工程师的苦恼第一天到公司,是浩子带着我办理了入职手续。浩..

程序员如何提一个好问题

提出好的问题是在编写软件时的一个非常重要的技能。这么多年来我对此也算略有小成。这里有一些我用着觉得很棒的指导方针!开始我实际上是那种总是会问出愚蠢问题或“不好”问题的大信徒。我一直在问人们一些愚蠢并且..

我是李玉宝,我是个程序员!

听说今天我的名字很火,那我也来凑个热闹。在2015年的时候,我做过一次人生总结,当时写了:为了理想,我放弃了一切! 转眼到了2019年,说说最近一年多的一些事情吧!做的好的!坚持把权限管理框架OpenAuth.Net做了..

程序员失业日记1:工作五年,交接半天

最近发现越来越多的小伙伴被公司裁员,有的是因为公司业绩不景气被裁员,有的是因为压力太大离职。很多公司都在裁人、减员。找工作也比之前难。刚好去年我也被上家裁员了,正好做一个系列的日志,希望能帮到在找工作..

改善程序员生活质量的 3+10 习惯

一封离职邮件2017年的一天,代码伴随着手指极具节奏感地输出在IDE上,突然某Chrome插件弹出一封邮件提示:“今天是我在ThoughtWorks的最后一天”。遇到这种离职邮件,我都会点进去,一来看看是否是自己曾经共事的小..

倾听程序员的心声真的很重要

说到开发产品,没有人比程序员更了解产品。程序员知道产品的优点、缺陷、用途和潜在用途。说起这些,程序员了如指掌,如数家珍。在这个似乎无所不在的数字时代,倾听程序员必须要说的内容非常重要,而且也许比以往任..

助力程序员成功的几个好习惯

老实说,如果你google搜索“程序员的好习惯”这方面的内容,那么就会有很多大同小异的文章映入你的眼帘。但是今天我想从一个略有不同的角度来探讨这个主题。不是关于如何更擅长编程,而是如何使程序员更有市场竞争力..

倔强的程序员

对于程序员来说,大多数人公司都有技术和管理两条发展路线,通常在同一家公司,管理路线的发展可能性,要相对广阔一些;但是技术路线也有技术路线的好处,比如相对而言更依赖于硬实力,因而工作机会丰富。我相信有不..

程序员如何在当今就业市场中让自己脱颖而出

俗话说,钱不是万能的,但没有钱是万万不能的。可见钱对于生活的重要性。不管你从事什么职业,实现财务自由才能让你无所畏惧地应对挑战。但是还有一点是值得开发人员所关注的:如何脱颖而出与众不同。毫无疑问,软件..

领域驱动设计,让程序员心中有码(七)

-设计原则和设计模式,互联网开发者们共同的追求 前言多年来,笔者一直从事传统软件企业的软件开发和项目管理工作。笔者发现在众多的传统软件企业中,评判优秀开发者的标准往往是技能的熟练程度,基本上都是以梭代码..

如何成为一名成功的程序员

编程是一个仅靠兴趣仍不足以抵达成功彼岸的领域。你必须充满激情,并且持之以恒地不断汲取更多有关编程的知识。只是对编程感兴趣还不足以功成名就——众所周知,我们工作起来像疯子。编程是一个没有极限的职业,所以..

写作路上的这些小成绩,铸就了一个不平庸的程序员

01 好的写作平台可以加速我们的成长“路漫漫其修远兮,吾将上下而求索”,在写作这条漫漫长路上,我已经求索了将近5年的时间;在这5年时间里,有过兴奋,有过迷茫,但幸好,我未曾放弃。2014年的4月初,我在ITeye(..

程序员如何讲清楚技术方案

最近在评审技术方案,和代码review的时候,遇到刚入行的同学们,很多都讲不清楚技术方案。具体表现是:上来不说需求,直接说算法实现。台下一头雾水,根本不知道设计方案是否合理。描述完需求后,又直接看代码,看表..

排除万难,我终于入了程序员的坑

“恭喜你,成功的避过了所有的正确答案,选择了错误答案”。没错,我是一个数学专业的普通大学生,排除万难,我终于还是入了程序员的坑。1. 生活爆锤了我一顿我是一个平凡的人,人生也一直都是平淡且稀里糊涂的!像..

发表回复

返回顶部