博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
开发者 发展 2 码路指南
阅读量:4981 次
发布时间:2019-06-12

本文共 16178 字,大约阅读时间需要 53 分钟。

  码路指南

一名优秀的初级开发工程师应该能够快速完成他人分配的工作,并且保证质量。

 

一名优秀的中级开发工程师不需要监督。他们可以自己提出代码设计的问题,并在设计讨论中发挥重要的作用。他们也是开发团队的主力。但是,他们在遵循“”和“”等理论方法设计系统时,可能会出现过度设计的情况。因此,有必要对他们进行进一步的指导和更高层次的监督。

高级开发工程师更多地为别人考虑,了解组织和客户如何工作,知道他们的价值所在。他们从来不会说“这不是我的工作”。他们的工作是提供问题解决方案,总是考虑他们的工作会为组织和客户带来什么价值,而不是他们会有多大的工作量。他们知道,构建优秀的软件,唯一的方式是改造理论方法,适应客户、代码库、团队、工具和组织的需求,在设计模式、库、框架和流程之间寻找平衡。

高级开发工程师清楚地知道,他们的主要作用是让团队变得更好。同时,他们也深知,领导不是权力,而是授权,不是命令,而是服务。

 

 

学习PHP的一般过程:

  1. 熟悉HTML/CSS/JS等网页基本元素,完成阶段可自行制作完整的网页,对元素属性达到熟悉程度
  2. 理解动态语言的概念,运做机制,熟悉PHP语法
  3. 学习如何将PHP与HTML结合起来完成简单动态页面
  4. 接触MYSQL,开始设计数据库程序
  5. 不断巩固,摸透大部分PHP常用函数,并可理解OOP,MYSQL优化,以及模板
  6. 完成一个功能齐全的动态站点

 

最近我一直在思考这个问题,想要找出提高创造力的办法。我发现把知识转化成创造力至少需要三个阶段:

  1. 学习知识;
  2. 消化知识,把转化为技能或者思想;
  3. 利用消化的东西去创造。

如果一个人的肠胃不太好,食物的营养就难以充分吸收,这个时候要做的是增强肠胃的消化能力,而不是吃更多营养丰富的食物。学习也是一样。如果你读了很多书 都没有能把书中的观点融入到自己的思想当中,那么就应该在思考和理解能力方面下功夫,而不是读更多的书。很多人就是一味往自己的大脑里塞各种知识而不愿意 停下来消化,结果就变成一个精神上的「消化不良症」患者。

 

可惜的是,肠胃的消化不良很容易察觉,精神上的消化不良却难以自知,因为自己可以不断从学习中得到成就感和虚荣心的满足,其他人也不会觉得学习是一 件坏事。在这个可以接触到无限信息的时代,这样的人可能会永远只满足于用知识填满自己,变成一个无所不知的「知道分子」。「知道分子」除了爱卖弄知识外, 大体上也是个很有用的人,是周围朋友的「生活小助手」,只可惜没办法成为创造者。

真正聪明的人都不会甘于做一个「知道分子」,他们在学习到知识以后更注重如何把知识变成自己的思想和技能,而不只是肤浅地去理解或者拿去卖弄。他们 的知识储备和阅读量可能并不是那么丰富,但他们会尽量榨干他们读过的每一本书中的营养。他们和「知道分子」的一个很重要的区别就是他们更乐于享受闲暇,而 不总是马不停蹄地给自己塞各种知识。孔子早就说过:「学而不思则罔,思而不学则殆。」 只有闲暇的时候才可以思考,才有可能把别人的观点和知识融入到自己心中。

创造

有了知识、思想、品味和技能之后好像理所当然就可以创造出好的作品,而事实上它们只是前提条件,和好的作品之间还有一个巨大的鸿沟。这个鸿沟就是本身。很多东西并不能通过语言和文字准确地传达,所以你不可能从书本、视频和别人的经验那里习得关于创造的一切,你必须亲自去创造才能真正了解创造的本质。那些你的眼睛和大脑没有学习到的东西,你的身体会在创造过程中习得,并且了解得更深刻。

 

把书本、视频等上面的信息转化成自己的知识很难,转化率很低;把学习到的知识转化成自己的思想和技能也很难,转化率更低;有了思想和技能之后还要可 以持之以恒、容忍不完美并且耐得住寂寞,聪明人往往不愿意为难自己。经过这样的层层筛选,最后能成为创造者的人很少。更为残酷的是,在这些创造者当中也未 必可以诞生出真正好的作品,天分和运气都是无法强求的东西(人类还真是可怜)。不过,我还是愿意相信:

The Future Belongs to The Few of us Still Willing to get Our Hands Dirty. 未来属于我们当中那些仍然愿意弄脏自己双手的少数人.

双方矛盾激化,广药状告鸿道,要求收回商标,理由是鸿道续租的合同是因为贿赂了广药高管才拿到的,所以(早在04年行贿案就案发,行贿方但弃保外逃,广药一直没有过分追究)。本来在国内求人办事给些好处是你知我知的了,但是广药就是揪着这点说事,而且还站在法律的高点,最终法院判广药胜诉,12年,鸿道不得继续使用王老吉商标。

 

于是我们看到,早在11年下半年,鸿道就预料到官司很可能要输,开始了改名“去王老吉化”之路。首先是包装上,一面仍然印着王老吉,另一面则印着加多宝几 个大字。这其实就是在暗示消费者加多宝就是王老吉,也为以后消费者发现王老吉完全变成了加多宝有心理准备。如果你还看不懂这暗示的话,那么紧随其后的电视 广告语“王老吉红罐凉茶改名加多宝”就是在明明白白告诉你了。

没过多久到了12年法院判决书下来了,加多宝是不能再使用王老吉商标的,包括广告中也不能出现王老吉字样,这时我们就看见,凉茶包装上两面都印着加多宝字 样了,广告语也改成了“全国销量领先的红罐凉茶改名加多宝,还是原来的配方,还是熟悉的味道”。你看,还是在强调加多宝就是原来的王老吉,只是换个名字 哦。

 

经常比过去,讲排场慕虚荣,对自己过去的同学朋友羞于提起现在的职位或收入,内心经常将自己与认识不认识的佼佼者做不切实际的攀比,攀比之后往往自惭形秽、自怨自艾、自我放逐,严重者陷入;生活没情趣、工作无效率,经常是心里着急行动却无力无效,就像人们梦中经常遇到的紧急情况:想跑迈不开腿,向动动不了,想说张不开嘴,人际关系不是冷漠就是紧张。

创业与打工,哪个风险更大?

创业与打工,哪个风险更大?许多人会想当然地认为,当然是创业的风险更大啦。其实,创业与打工都有一定的风险。很多说大的人,他实际仅仅是从金钱这个原始的角度来看待问题的,并没有从整个人生不同发展阶段的规划来分析。因为人生心理的快乐程度不能忽视,创业的人,是痛并快乐的,而打工的人则是快乐并痛着。

打工者面临的风险和压力是无处不在的。工作待遇低吧,自然是担忧了今天担忧明天;工作的薪水报酬较高呢,又担心因为工作的失误而影响地位和待遇,原因就在于薪水是别人给的,所以心里总会有一种不踏实感。

这也是实际生活中很多收入较高的人选择创业的心理因素之一,他们需要更大的心理释放,需要更大程度去,所以对他们来说,创业更有乐趣,风险因素则被这种乐趣带来的热情而击败下去,对他们来说创业风险远没有在公司占据高位时所具的风险高。

而当打工者失去工作之后,往往有一段时间的心理迷茫,自信心可能因此受损,对他寻找下一个工作带来无法抹去的阴影。而这个结果对人生的影响是巨大的。

在实际生活中,创业亏损后,大多数人宁可接受教训和总结经验,从头再来,而不愿意再去打工。这就说明,其实创业是得到了更多的价值性的东西,至少他还敢再来。可能他第一次创业的时候,还不具备这么大的勇气呢!

原“巨人”创业可谓败得倾家荡产吧,但是他依然选择创业,并且做得不错。未经历风雨,怎能见彩虹?但是喜欢创业的现象说明,创业过程确实可以让人们得到超出金钱范畴之外的东西。对他们而言创业的过程产生了乐趣,乐趣激发了热情,热情屏蔽了创业的风险,最终走向了成功。

 

打工好还是创业好?从某种程度上说,打工是在燃烧青春,当生病、年老不能工作时,收入会减少,生活就会没保障。创业不同,它是在建管道,为的是让收入如自来水管道中的水一样,不管什么时候,都能源源不断的流进来,并且惠及子孙后代,初期是辛苦的,后面是甜美。

创 业和打工只是两种生存状态,如果要说风险谁高谁低,那么就要因人而异,具体情况具体看待了。二十几岁的男人,千万不能创业者就是强人,打工者就是安逸之 人,而贸然地辞掉工作去创业。看看你自身的情况吧。如果你打工会经常挑槽,也许你更适合创业;如果你可以稳坐钓鱼台不挪地方,你也许更适合打工。总之,创 业和打工,风险共存,而风险因人而异

 

 

出现在他眼前的是一辆深蓝色的。 车主是一名娃娃脸的中国年轻人,声称自己名叫Jason。Hveem不禁问他为什么要做Uber司机,显然他并不缺这点“小钱”。Jason说,自己做租 车生意主要是为了认识更多的人,尤其是女孩子们。在他看来,深夜驾驶着豪车穿梭于北京夜店集中的区域,将能够令他成功搭讪到女孩子。

富二代们的存在不只是令政府尴尬那么简单,中国政府似乎认为富二代会对执政党构成一定经济甚至政治威胁。

统部近日发表的一篇针对富二代的文章警告说:“他们(富二代们)仅仅知道炫富,而不懂如何创造更多的财富。”一些地方政府也开始就这一问题采取措施,对富裕阶层展开再教育。报道,今年6月,70名中国大型企业的“继承者们”一起听了一场弘扬孝道的讲座,讲座尤其强调了中国传统价值观念对企业发展的重要作用。

接力中国青年精英协会于2008年成立,其宗旨是开创一个富二代们认识彼此的平台,因为他们在生活中很有可能面临着相似的挑战。按照规定,入会费是20万 人民币,而且会员必须证明其家族年均缴纳的税款超过5000万元。接力中国每年会举办几个论坛活动,组织富二代们听一些讲座,内容包括“如何合理避税及如 何令利润最大化”(一切行为都在法律允许的范围内,一位成员向我保证)。会员们还会参观彼此的公司。

 

在许多富二代们看来,他们同叱咤商场的父母之间的沟通也存在着一定的问题。“他们(父母)已经习惯于表现得残酷而毫无怜悯心,在商场上这是一种优胜劣汰,”Wang表示,“你真的很难和他们成为朋友。”

 

 

P 技术岗 M 管理岗

 

09年创业失败,欠了一屁股外债,被要债逼得狠了,一冲动卖了自己在清河的房子,卖的时候还安慰自己说现在地产泡沫厉害,明年还得跌回06年的价。

那会感觉已经涨上天了,40W多买的,卖了98W,这还是09年初的时候,到年底我看了一下大约涨到了140W左右。这时候我感觉我再也买不回来这套房子了。

创完业的人就是TMD不值钱,找了半年,找了,只能跑到天通苑跟人合租。那会才知道什么叫单间、主卧、隔断等专有名词。

 

以前看书说贫苦的生活可以磨砺生活的意志,扯TMD蛋,天天不够和你和合的那帮傻逼生气的。不是占厕所不出来,就是晚上不睡觉大吵大叫。这些生活上的小细节对人心情和状态影响还是蛮大的。反正我那个时候睡不好觉,满脸的包,还不能做饭,只能在外面吃,体重飙升,肚子特别大,我估计就是因为早晨得不到及时排便给憋的。

我住过自己的房,也租过房,还是合租房,回答这个问题还是有一定的体验的。关于在帝都租房或买房的差距,我一毛钱的经济账都不用算。只说一点事实: 普通人在租房的时候都会压抑自己正常需求,从空间到室内环境,从家电到厨具,我没有见过一个人在租房时还花大价钱购买自己喜欢的物件,除了服饰与电子产 品。不是买不起,是真的不敢买。

北京房子贵吗?贵!为什么还有人买?很多人不是因为明天可能会更贵,而是真的租不下去,如果租房能够具备50%以上体验,也不会有这么多人去高价接盘。或许这部分人,才是市场中所谓的刚需吧,看了组数据今年北京成交价格在150-250之间的最多,可能达到60%以上,现在还真是这批刚需要撑着这个市场。我认为,北京目前的没有太多的投资或投机需求了。

04年来京后比较顺利,05年购房实因家庭基础尚可,虽然也是小城市来的,但父母皆是本地中间阶层,这套是对我全款赞助。后期我自己装修过一次,按照自己的想法与风格,装修费用不便宜,这个是我自己出的。

卖房的事情没有和家里商量,其实当时和家里开口,还债的钱还是能拿的出来,实在不用此般伤筋动骨。只是当年都做出一系列的傻逼事情,更何况当年公司在经营过程中是赚钱的,后期钱被的朋友卷跑,我还替他签了好多外债,这才是债务来源。

这种纯当傻逼被人骗的事,我真的没脸和家里说,再加上当时处境,时逢房价下跌半年有余,国家两波救市政策也没把房价再推上去,我就信了这孙子的话。现在想来,则是屁股决定脑袋的傻逼行为,但是我当时确实对楼市坚决看空。

直到半年后,我才慢慢地开始直面生活,从低做起。创过业的人会觉得自己经营过公司,是个值钱的角色,但是你的价值只能在你的事业中有所体现。回到打 工的市场,在用人单位的HR眼里,你就是个眼高手低、极无性价比的求职者。招聘的岗位只需要你是经过专业训练的,有相关工作经验的,符合公司用人成本的。

所以,我当时没想明白这事儿,还觉得自己挺值钱的,乱要价,结果就是真的没有人要;后来为了求生存,只能改掉简历、自降身价,让性价比的光环重新加身的时候,才有可能在打工的市场上找到工作。

 

和其他朋友交流过,在帝都只要别把自己当人,挣个比平均数略高的薪资还是可以的。不把自己当人,意思不是说要狂加班,打多个工,身兼数职,这种矿工式的劳 作加成。而是别想站着挣钱这回事,我赚钱的手法一点也不高明,就是跪舔,当然这句话是个比喻。我长得不帅,那会肚子还挺大的(严肃点,别笑!不就是憋的 嘛)。说白了,就是极不要脸地联系客户,吹捧,玩人情这一套。毫无技术含量,就看你有没有耐心天天琢磨客户,然后落实行动。

 

另外一条路:换个房价便宜的城市。这个我也没法换,你们都知道,销售这工作,好不容易攒下的客户底子,真经不起换城市的折腾。所以我只能死皮赖脸地留在北京,给首都人民添堵。

 

现在,凭借自己过去几年的不要脸,交了个首付,有朋友也说,你这个倒霉,买啥赔啥,会不会买了就大跌。

我的回答是:不后悔。在我眼里有自己的住房是生活,而不是投资。

我体验过拥有后,失去的感觉。

我 想就算是我有很多钱,把钱放到理财或基金,只用收益就能租到二环大房,那我依然不会租。我怎么知道钱在别人手上,他们会不会跑路。我受不了这种不安稳的感 觉,相反,每天累个半死,踏实地工作,平稳地生活是我想要的,这真不是投资问题,是生活。更何况,对我来说还有点自我救赎的含义。

 

 

阿里面试人的评分 P5

思考过多还可能会让人一直沉浸在自己的思想中。有些人非常喜欢规划,于是就在脑海中一直不断规划,考虑各种情况,幻想不同的结果,然后发现动手去做还不如 幻想有乐趣,而且思想中已经做过一次的事情,现实中就懒得再做一次。这是精神上的手淫,比肉体的手淫危害更大,慢慢思想就会只关注它自己制造出的幻象,对 现实世界再也没有兴趣,像一个活在梦中的人。随之而来的是完美主义和快速厌倦。想象中的事情总是完美的,即使不完美,那些缺陷也都是确定的,带着这幅图景 去做事情总会失望,而且他们善于思考,会比常人更多发现事物的缺点,最后承受不了,半途而废。

在思想家看来,行动家之所以坚定勇敢,大多是因为无知:如果他能看到更多情况,决不会那么做。可正是因为这样,最后往往有意想不到的结果,那是幻想 和规划无法抵达的。哥伦布当初大大低估了地球的围长,这个误算造成了他的执着,最后才发现新大陆,如果当时一切计算正确,环球航行可能会拖到多年以后。思 想家总想考虑周全,找到最短路径,然后再去做,可计划往往没有变化快,最短的路可能根本行不通。我们连明天发生什么都无法知晓,凭什么相信自己的预测呢?

功绩属于行动家,耻辱也属于行动家。他们坚定不移,行动卓有成效,建造了许多东西,但方向一旦错误,也会带来许多灾难。战争、大屠杀、宗教迫害…… 大都是由一群狂热相信自己想法的人造出的,这时思想家的犹豫和多疑就变成优点,它们可以除掉灾难的萌芽。反思之所以被不断重提,也是因为它在必要时可以充 当刹车。思想家们以此为责任,也在这里找到慰籍,可惜忠言逆耳,他们往往在灾难发生后才得到荣誉。

 

当确定自己喜欢一件事情,比如园艺,去做就是了,不要去怀疑它的意义,而是要相信它有意义。「为什么要做园艺而不是其它?」,这样的怀疑只会破坏乐趣,也没有任何益处,意义无法得到解答时,只能悬置这个问题,全神贯注地做事。宗教信仰之所以可以给人安慰,就是因为它不允许怀疑,然后信徒就能安心听神的指示生活。有类似的信念才能做好事情。

事实上,一个人就算再热爱一种事物,也会经常感到枯燥,但在经过一段时间回头看,还是会认为自己热爱它。「热爱」或「喜欢」并不是一时情绪,而是经 历许多之后的一种复杂情感,它更接近于平淡而不是兴奋,所以才能让人日复一日地专注。发现一种事物的缺陷之后还是愿意努力去完善它,比起冷嘲热讽嗤之以 鼻,需要更多的智慧和美德。

如果仔细罗列行动者需要的品质,会发现和宗教信仰要求的品质差不多,所以在宗教热情普遍缺乏的今天,热爱工作可以让人得到幸福。人们全神贯注地创 造,日复一日地劳作,终于在其中发现了神性。这比浪漫爱情更吸引人,也更持久,因为没有一个爱人可以承受那么巨大的热情,把全部心思都放在对方身上的爱情 往往会以悲剧结尾。

适度的反思对生活有益,过度反思则只能带来焦虑。幸福和平静也不是靠反思获得,而是靠日复一日的劳动和创造性的工作,即使行动者刚开始并没有享受到乐趣,但只要持之以恒,精神面貌也会发生变化。「拿出有信仰的行动,自然会有信仰」,行动和习惯拥有改变精神的神奇力量。

 

在计算时代,数据首先是流动的,根据一定的算法在流动。比如Twiiter,微博,Facebook,微信,微淘各种都有信息流 Feed。其次,信息根据自己的价值,意义,发布信息的人等各种因素,决定了自己的生命周期。比如我发布一条微博,可能几个小时就被信息海洋淹没了,没几 个人看到。而李开复老师发布一条微博,就有成千上万的转发,数亿人看得到,并且成为讨论的话题,微博也通过自己的“赞”机制影响着信息的生命周期。无数条 评论也在给这条信息更多地附加价值。

我很喜欢动漫,以前也疯狂爱上一部叫《Gundam OO》的动画,里面提到的一些概念,我都觉得是未来的趋势,比如量子型演算系统,太阳能发电系统,宇宙轨道电梯什么的。前段时候看到IBM研制的量子型计 算机,我就觉得很激动:终于要来了。我们现在大部分用的计算机都是电子计算机,目前电子计算机的计算能力差不多已经到瓶颈了,你看intel的CPU制造 工艺,到28纳米差不多已经是极限了,为了提高计算能力,只能走多核路线,比如双核,4核,8核……但是这也会遇到瓶颈。量子计算机终究会普及起来,因为 它是大规模计算的基础设备。

在计算时代,如果你的模式还在处理静态的数据,那么很可能在数年间,你就会接到死亡通知书。比如最传统的报纸,报纸就是静态数据的典型,一但印刷出来,数 据就“冻结”了,无法流动,无法让人们交流,无法成为话题,无法评论,无法收藏(也许还会有人剪报吧?),这样的数据,在计算时代将几乎没有价值。比如传 统报纸报导一条新闻:“某某发生交通事故”,然后呢?然后就没有了,数据不再发生变化,死在那了,计算时代的用户,对于这样的静态数据,就象是对着一具尸 体,是没有多大的兴趣的。

窃以为 full stack 不是那么简单的事情。当然,不同的地方可能有不同的标准,且听我慢慢道来。

既然大家都在以 Web 为例,那我也说 Web 好了。不过事实上 full stack 也有可能是其他方面的。

租个 VPS ,从装系统配环境开始,然后拿个 PHP/Python/Ruby/Node.js 什么的写个后端(少不了用一些框架吧, 后端框架多如牛毛,不说 PHP , Python 用个 django 、 Ruby 弄个 rails ,都挺方便吧),再给它撸个好看的页面(表现层多半也会用个 bootstrap 之类的,如果设计能力强一点的话就用一些更轻便的 helper frame 然后主要自己手写;逻辑控制层高端一点弄个 backbone 甚至 angular 之类搞个重 AJAX 、带前端模板及路由的新潮 HTML5 应用)。弄好以后上线,性能出问题了,看看日志 Google 一番调调参数,甚至多买一两台 VPS 来弄个负载均衡什么的。再要不,我们换成实体机,然后顺便玩玩网络和虚拟化什么的?

运维 后端 前端 深入

为了创业,去全栈

Facebook 的众多海报当中,有一张写的是「任何一个 Facebook 的问题,都不是别人的问题」。有问题,你就需要去评估是否值得解决。如果值得解决,你就应该着手去解决,而不是假设公司内会有另外一个人比你更合适解决这 个问题。这时候很可能你就需要去做你从来没有做过的事情,需要学习你原本可能完全不懂的技术。如果你是个专门做数学模型的博士,加入 Facebook 原本是打算做搜索结果优化的,结果发现这不是最急需解决的问题,JavaScript 性能才是最需要解决的问题,你怎么办?如果你以为 Facebook 需要的是你做数学模型的经验,那你就错了。Facebook 需要的是你完成博士学位的学习能力。你从来没做过 JavaScript 并且觉得 JavaScript 很恶心?正确的做法是立即在网上买几本 JavaScript 入门的书连夜看完,然后着手分析性能瓶颈并且解决。在你完成手动优化后,你还可以思考一下能否把这做成自动化,例如说在代码提交时分析 JavaScript 语法树并且指出可能成为性能瓶颈的地方,又或者说从用户浏览器那里收集性能数据扔到 Hive 然后再从中分析产生瓶颈的特征。这些都可能涉及到一些你没有做过也没有学过的东西,但问题摆在那里你就需要去解决,而无论这要求你去钻研什么。这就是我所 说的学习能力。

而且成为了 FSD 有一个巨大的好处,那就是成为了 FSD 那就意味着你具备了单人创业的能力

成功,唯有积累,没有奇迹。要成为 FSD,也是没有捷径,靠的是吃苦和经验积累。

提高员工参与度的方法:

  1. 外围的事情,可以由“民主”决定。
  2. 日常的工作,比如Code review也可以由员工参与。
  3. 指定规则前,征询大家的意见。

激发员工的责任感:

  • 第一个要素就是:自己以身作则。自己处处率先垂范,不管怎么样的员工都会慢慢跟上。
  • 光环理论:如果你希望员工做到什么,就要去表扬他们,好像他们已经做到了。员工主动维护这个形象的力量是很大的。

IT技术团队员工的特点

  1. 高学历,知识密集型,技术立身。
  2. 人际关系简单,摩擦大多数由技术产生,相处也比较容易。
  3. 需要较高的自由度。经理的职能不是强迫人们工作,而是让人不自觉地工作 。一是希望完成任务之后能做自己的事情,二是希望以自己的方式完成工作。
  4. 发展前途。没有发展前途,就会离开。
  5. 敏感,流动性大。

关于招聘的考量

  1. 技术能力满足基本要求。
  2. 做事风格与团队匹配。
  3. 沟通能力。
  4. 工作努力。

员工的本性很重要,将来的塑造过程中很难改变。

心理要约,是指公司级管理者与员工达成的约定,特别是没有明文规定的,彼此在内心达成的一致。

领地,可以通俗的理解为“地盘”,员工都有自己的“领地”,比如座位空间,其负责的工作等等。 应该尽量尊重他们的“领地”。

 

互联网经济大部分都是建立在人类的欲望之上的:

  • 我要看视频,于是有一大堆视频网站。
  • 我要打游戏,于是一大堆网游。
  • 我要购物,于是有一大堆电商。
  • ……

可以说,任何互联网产品都是为了满足人类的欲望(需求)而产生的。

互联网有毒

我们必须要注意这么一点,互联网对大部分人来说是有毒的

为什么这么说呢?首先,你要知道,什么东西对你最重要,那就是时间和注意力,这两样东西是你有所成就的两个必要条件。

不恰当地使用互联网,你的时间、注意力就会被投入到一个无底洞,从而让你无法发现你需要去做的那些正确的事,或者发现了又没有足够的时间与精力投入,其结果就是一事难成。

也就是说:

  • 如果你想在编程有很深的造诣,那么最好把游戏卸载了,不要关注那些游戏直播,也不要关注那些游戏信息,你要做的是每晚每晚都去练习编程,去Github拿一些优秀的开源项目代码回来琢磨,理解各编程大师的想法;
  • 如果你想在数学有所建树,那么就不要老是刷微博、看SNS Feed流,留意那些可有可无的八卦信息,你要做的是每晚每晚努力去专研数学,体验思考的乐趣与想通问题带来的满足感与成就感;
  • 如果你想钢琴弹得很好,那么就不要老是玩手机,各种娱乐应用,也不要因为想放松而去看连续剧,你要做的是每晚每晚努力去练习钢琴,因为你想把琴练得很好,那么你心里最好只有琴。

之前一直关注一个叫“萌娘百科”的网站,就是做一些生活常见事物的萌化,比如“服务器娘”“百度娘”什么的,然后配上可爱的图和有趣的调侃,感觉很有意思,每一个条目都体现了他们对生活积极的,思考和看法。我是比较欣赏的。

人无癖,不可与之交。做一个有意思的人,做一些有意思的事,这很重要。

多数人不是因为他们的能力不够而挫败。他们失败是因为把能力分散到太多的方向上。

我们脑袋里的想法越多,就越难抵制诱惑,去专注和执着于一个目标。 

在互联网内容中每日浸泡的我们每个人,思路就象一只跳来跳去的猴子,一会想这个,一会想那个,而训练自己集中注意力就是要驯服这只大猴子。

 

软件开发工程师(SDE,or Developer)是我们大多数软件开发人员的职业称呼。既然是一个职业称呼,其身份与职业自然有密不可分的关系。作为一个开发工程师,其主要职责是在有限的时间内开发出具有实际实用价值的应用程序。

这里面至少包含两点。

其一,开发目标。开发工程师的开发目标是使用,没有使用价值的程序是没有意义的;

其二,开发成本。既然是职业称呼,开发工程师的工作往往由商业因素驱动,其开发特点突出表现为大量的功能需求和有限的成本。因此需要开发工程师具备在各种需求(包括时间成本等等)之间寻求平衡的能力。

程序员(Programmer)常常被简单地被归结为一群追求技术的狂热分子,他们更多地由兴趣驱动,开发一些有挑战性的东西。这样说也许并不确 切,但毫无疑问,程序员这个名称给人更多的技术感和理想色彩,以至于很多人把他作为自己引以为豪的称号。我也喜欢自诩为程序员,甚至很多IT公司那些数年 未写一行代码的技术主管也喜欢自诩为程序员。

程序员开发习惯的一个显著特点是追求极致:最新潮的方法,最小的二进制文件大小,最少的代码量,最强大的功能……时间?唔,开发时间从来不是程序员工作的决定因素,它甚至根本不被考虑;执行时间倒是个重要因素,所有程序员听到这个就像猫闻到腥味一样。

 

即便存在Coder这样的职业,只是从事将设计翻译为代码的“体力”工作,他们的工作也仍然是举足轻重并值得尊敬的。任何一个成功的软件项目,除了得益于其成功的设计,编码的质量一样不可或缺。

如果你真的领导着一些商业性项目开发,你应该会深深体会到编码质量对一个项目举足轻重的影响,而一个编码质量令人放心的开发人员在任何组织里都不会是简单的Coder角色。

再次强调,不管是SDE,程序员,还是Coder,我尝试做出一些定义并不是为了让你从无数开发人员当中区分出谁属于哪一类型。恰恰相反,我认为对于绝大多数开发人员而言,他并不是一直扮演某一种角色,而是在不同时候,不同的方面,表现为不同的角色。

 

 

但人们这么表达的时候可能并没有意识到常说的这种兴趣是一个不怎么靠得住的驱动力。这种兴趣往往是一种一时的好奇心,而不是与自己性格特质相契合,可以用来给生命解闷的那种兴趣。

总的来看,兴趣可以分为两个层次:一个是浅层次的。比如看到一个游戏比较酷可能想玩玩,看别人写博客,自己也写几篇;另一种则是深层次的。比如:爱因斯坦你不让他思考,他可能感觉活着就没什么意思了。

 

人和人之间的体力往往相差不大,但智力的差异却往往不可以道里计。所以一个经验丰富的老农半天种一亩地,一个不太熟练的忙和一天大致也可以搞定一亩地。

我个人感觉,越是靠近体力一端的工作越不可能兴趣驱动,而越靠近智力一端的工作越可能是纯兴趣驱动。恰如我很难相信干重体力活的人是因为兴趣一样,我也很难相信爱因斯坦不去做以色列总统而选择继续研究物理不是因为兴趣。

基本上讲,35岁以前要把需要花大量时间,比较硬的技能,学习曲线陡的技能掌握,具备工作所需要的所有主要技能,而35岁之后则主要关注知识的更新和某些软技能。

学习时添水战术效率真的很差,每次点一根火柴烧水,一亿年水也烧不开一壶。同时,比较硬的技能往往是需要大块时间投入的,但年纪越大时间越呈现为碎片化,越难搞定硬的知识 —— 先天就容易造就添水战术。比较软的技能,则可以用碎片时间来学习,比如:提高PPT的制作水平,提高表达能力。

如果能够安排好自己的时间和软硬知识的关系,那么就可以在特定基础上做积累,小步前进,使自己的价值越来越高。从这个角度看,年轻绝对是一种债务,大多数人必须在他没完全结束前,还掉所欠的东西。

那么具体来讲那些东西是比较硬的,要在35岁前搞定呢?这因目标而异,但下面这些项目应该具有非常高的通用性:

  • 精通一门最常用的语言
  • 了解一个最常用平台的基本机制,比如:内存管理、线程机制等
  • UML图和面向对象分析设计方法
  • 设计原则,如:职责单一等
  • 设计模式
  • 《代码大全》里讲的一切
  • 精读一个知名的,但有点规模的程序。这点上要感谢开源项目给我们提供了这么多优秀程序。但要谨防好高骛远,动辄挑战Linux内核,精读是关键。
  • 累积一定的代码量,比如:独立的完整做过一个数万代码行的东西。这里的关键是完全自己打造,一定不要拷贝粘贴。
  • 掌握基本算法和数据结构(可以不自己写,但至少要知道其复杂度和区别)
  • 养成一种清晰的编码风格
  • 有自己的专业(金融、高并发网站,图像处理,TTS等)

 

假设说一个人的学习已经聚焦,并且学习的内容和自己实际参与的项目也相吻合,那么是不是就没有问题了?很不幸,答案仍然是否定的,在任何一个子领域里,仍然需要进一步去考虑“博”与“专”的均衡。

 

与此同时,把一个API研究的再透,也是低值人群,因为这种深入理解和单纯会用某个API相比,从创造价值的角度看,差别不大。

这也就意味着对于大多数软件开发人员而言,要去寻找广博与精专间的均衡点:既不能闭上眼睛,也不能就用显微镜来看世界。而这一均衡点的价值则可用反木桶原 理来说明:木桶原理说的是桶里的水是由最短的一块板决定的,但考量人的价值时却是适用于反木桶原理,即人的价值往往由最长的一块板决定。

考虑博和专的问题不能离开产品开发进行考虑,前面曾经提到过,产品开发往往和公司的现金流绑定的更紧,能为现金流贡献力量的技术才是有价值的技术。 而产品开发本身事实上对博和专的程度提出了最基本的要求,这种要求往往具有迭代的特质。为了形象的说明这一点,这里举一个通用的例子来进行一点说明:

在第一次跌代里,往往需要达到两个最基本的目标。第一个目标是可以为产品贡献自己力量,但代码质量普通。这个目标如果达不到,一个人会失去自己的存在价值。

这时候最少需要了解某种语言(比如:C++)、某个平台(比如:Windows)、某个IDE(比如:Visual Studio)和某些业务相关 的知识(比如:打印体系)。这个范围可以尽可能圈的小点,但用到的则要学透。比如:不管接触到那个框架,都要去了解它的内存机制、线程机制、异常处理组件 构建和国际化处理这些全局性的机制,而不能只是了解某个接口怎么用。

这并非是很高的要求,没有这些就变成了“靠运气编程”,写完程序后还要祈祷他能跑起来。了解这些之后就可以负担起部分开发工作,否则的话只能做旁观者,没法参与到实际工作中来。

第二个目标是把事情做好,并能负担些层次更高的工作。这时候要比较深入的了解面向对象、结构化方法、设计模式、理解设计原则,并能把它们用好。至少要能判定,这个程序写的好,那个程序写的不好,同时面对需求能把工作进行下去。

完成上述两个层次后,可以有两个方向可供选择。

1. 可以进一步考虑专的问题,比如在特定领域里把知识深化下去。

2. 可以把博再推进一步,比如:熟悉专门领域的专业知识、熟悉多种既存框架的特性、熟悉提高用户体验的关键点。熟悉多种既存框架的特性的具体含义是:

设计某一种解决方案时,首先要考虑的就是是自己开发还是使用现有的模块。一旦决定使用现有的模块(包,框架等),那就要进一步考虑究竟用那个。

做这类工作时,如果没有一定广博的知识,做选择的时候就会特别的艰难。

学习软件工程的时机与必要性

简单来讲越是没实践经验的人越不适合学习软件工程,越需要规划整体把握全局的时候越需要学习软件工程。

 

学习失去焦点

而避免“失去焦点”这一陷阱的第一关键则是分类:对软件开发进行分类,对软件所关联的知识也进行分类,形成自己的大局观和整体视图。

学习与实践相分离

“扮猪吃虎”这事儿小说里看着很爽,但挪到现实里来很容易让人掉到学习陷阱里。更可怕的是,现实里有这种心思的人其实也还很多。

有时候会看到这样一种现象:很多人自学的东西和工作中用的东西完全没关系。比如:一边用着C#做Web开发,一边自己学习着C/C++做嵌入式。

这事并不一定不对,只能说非常危险,很可能会导致那样都没有高度。我们得承认当人生被错位的时候,往往只能这样来改变命运,这是没办法,也是正确的。但首先要认识到这样做是相当低效的,低效到一定程度后对的事情也并不一定有结果。

对薪资不满意应该是程序员希望跨界的一个原动力,但收入和年限正相关,与语言非正相关却说明单纯从功利角度看跨界并不明智。因为假设一个人Java语言用过三年,C#用过三年,总的来看收入水平更可能处在三年的水平上,而不是六年的水平上。

 

解决艰难问题时,天分很重要;解决复杂问题时,练习很重要。所以软件开发的学习过程中,实践很重要,纯理论知识的权重较低,当然基本的算法复杂度还是要明白的。

这也就意味着脱离项目实践的学习投入产出比往往会差。比如说:编程中常见的多线程问题。如果单纯从学习的角度看,创建线程本身并不复杂,掌握各种线程同步 方法(事件、信号灯、互斥量等)也并不复杂。写简单例子的时候,也很少会出错。但一旦落到具体的场景下,虽然多线程的本质没变,但没经验的人几乎一定会在 涉及多线程的代码上导致一会儿出,一会儿不出的问题。

再比如说:你可能看了很多设计的书,但从来没有从头到尾写过什么程序,总是在既有代码上修修改改,或者只是完成几千行代码的小工具,那么你的设计知识是很难融汇贯通的,也还是无法很好的承担大系统的设计工作。

这点上有一个旁证,根据统计最多的Bug是由新手导致的。这从侧面说明,能做和能做好之间的鸿沟需要大量的实践来填平的。

在这样一种前提下,期望先选个工作,再自己学习,努力转行这样的想法是损失很大的。单纯从增值效能上看,解决这点很简单,除非必须放弃当前的工作领域,否则要以当前参加的项目为根基展开学习,这样才能比较好的调和学习和实践。

而除非一个工作领域过于偏狭,大多时候在编程语言(C#→C/C++)、不同领域间(图形处理→地理信息系统等)穿越损失可能更大。

 

 

增值、读书与大局观

单纯从达成某一目的而言,读书往往非是绝对必要条件。

秦始皇把书一把火烧了,刘邦项羽一样造反并取得胜利。但读书无疑的可以加速一个人增值的过程,记不得是谁说过:实践无疑是人类最好的老师,但只靠实践来认知世界无疑也是愚蠢的。这是非常精辟的。除此之外,要想培养大局观,那就非读书不可。

每个人的亲身经历,在大的时空背景中往往只是一个简单的截面,这一截面中绝不会包含可以归纳出所有真理的事实,因此只依赖于自身的实践也就必然限定 了一个人的视野。 这一点随着一个人的责任范围变大往往会体现为一种制约和限制。所以培根讲:有实际经验的人虽能够处理个别性的事务,但若要综观整体,运筹全局,却唯有学识 方能办到。 

即使从实践来看也是如此,要想培养出一种,那就非读书不可。而大局观往往是成为将帅之才的必要条件。

路径一:由程序员而架构师

路径二:由程序员而CodeGuru

路径三:由程序员而纯管理

机关

现在在国土资源部门负责信息方面的管理工作,工作内容嘛,几乎不怎么从事开发了,最多就是偶尔改下原有系统/网站的代码。然后就是负责局里的一些大 大小小的信息系统事务,日常维护,与其它机关单位打交道……等等。怎么说呢,感觉就是一枚不断运转的齿轮,辅助局这个大机器的每日正常运转。 机关单位里虽然不像开发公司里那么忙,但也不是很多人想象得那么清闲,大部分时候还是挺繁忙的。

1. 网站的Android客户端

2. 魔题库

 

我的成功秘笈是:

  • 首先要对编程感兴趣,能从编程中得到乐趣。一定要让它足够有趣,因为你要保持你的兴趣长达十年。
  • 与别的程序员交流;阅读别人的代码——这比看任何书或参加培训课都重要。
  • 实践。最好的学习乃实践。俗话说:“编程的至高境界一定要通过充分的实践才能达到,而个人的能力可通过不懈努力获得显著提升。” (p. 366) “最有效率的学习需要明确的目标,适当的难度,知识回馈,并容许重复或修正错误。”
  • 如果你愿意,花四年学习大学课程(或者再加上读研)。这将给你赢得某些工作机会,并给予你在该领域的深层见解。但如果你不喜欢学校的学习,你同样 可以在工作中获得相似的经验。无论如何,单靠书本是远远不够的。“学习计算机科学不会让你成为编程专家,如同学习绘画和色彩理论不会让你成为画家一样”。 这是埃里克·雷蒙德(Eric Raymond)说的,他是《新黑客字典》(The New Hacker's Dictionary)的作者。我雇用过的最优秀程序员,只有高中文凭。但他开发过许多伟大软件,有自己的新闻组,通过公司认股赚的钱就让他买下了自己的 夜店。
  • 和其他程序员一起参与工程项目。在某些项目中担当最优秀程序员,在另一些项目中充当最差劲程序员。充当领头羊的时候,你要测试你领导一项工程的能 力,并用你的视野来激发他人;如果在项目组中垫底,就应该学习其它牛人在做些啥,以及他们不喜欢做的(看他们把哪些活让给你做)。
  • 继续别人的工程项目。去理解先前程序员写的程序。学习如何理解并解决先前程序员没有考虑到的问题。思考你的程序该如何设计以便让之后的程序员更容易维护。
  • 至少学6种程序语言。其中包括一种支持类抽象的(Java和C++),一种支持函数抽象的(如Lisp或ML),一种支持语义抽象的 (Lisp),一种支援声明规范的(如Prolog或C++模板),还有一种支援协程的(Icon或Scheme),另外一种支持并发的(Sisal)。
  • 记住,在“计算机科学”里有“计算机”一词。理解计算机执行你的代码的时候花费的时间。比如:从内存中取一个字(考虑有无缓存未命中情形),连续从磁盘读字,或者在磁盘中定位。
  • 参加语言标准化工作。这可能是有关 ANSI C++ 委员会,也可能是决定你编码风格是两格缩进或四格缩进。无论如何,你要知道其他人对语言的喜好程度,有时还要想想他们为什么喜欢这样。
  • 知道自己应该在何时脱身于语言标准化。

我觉得我现在就挺好,在事业单位里,钱多事少离家近,在环境优美的珠海舒舒服服过活,没事就自己折腾下技术,有空就自己捣鼓下项目,写写博客什么的,为啥 一定要背井离乡到北上广拼呢?不是说去北上广拼不好,而是生活有很多种选择。为啥做IT就一定要努力去比过别人?努力去超越别人的技术,努力去超越别人的 月薪,这就像跑马拉松一样,太累了。

1一个正规可以帮到很多人的网站,一个月大概12K收入

2 股票,去年回报大概相当于全年薪水

1. 热爱你学习的东西

2. 阅读与之相关内容

 3. 尝试。但不要太艰难

4. 找到一位老师(外加一个10倍速规则)

 5. 学习历史,学习现在

6. 先易后难

7. 回顾你学过的东西

 8. 你就是你最要好的5个朋友的平均数

9. 多多益善

 10. 找到你自己的魔鬼计划

 

转载于:https://www.cnblogs.com/dqxu/p/4905111.html

你可能感兴趣的文章
LeetCode 题解之Add Digits
查看>>
hdu1502 , Regular Words, dp,高精度加法
查看>>
SpringBoot在idea中的热部署配置
查看>>
MyEclipse连接SQL Server 2008数据库的操作方法
查看>>
JS验证图片格式和大小并预览
查看>>
laravel5.2 移植到新服务器上除了“/”路由 ,其它路由对应的页面显示报404错误(Object not found!)———新装的LAMP没有加载Rewrite模块...
查看>>
编写高质量代码--改善python程序的建议(六)
查看>>
windows xp 中的administrator帐户不在用户登录内怎么解决?
查看>>
接口和抽象类有什么区别
查看>>
Codeforces Round #206 (Div. 2)
查看>>
**p
查看>>
优先队列详解
查看>>
VS2012 创建项目失败,,提示为找到约束。。。。
查看>>
设计类图
查看>>
类对象
查看>>
[Voice communications] 声音的滤波
查看>>
软件建模——第9章 毕业论文管理系统—面向对象方法
查看>>
[SDOI2008]洞穴勘测
查看>>
Difference between Linearizability and Serializability
查看>>
IDEA使用操作文档
查看>>