感谢融云的新春礼包 -- 暖暖冬日,雪中送炭

江南孤鹜 发表了文章 • 1 个评论 • 128 次浏览 • 2021-01-21 09:53 • 来自相关话题

昨天收到一个高大上的礼盒,以为里面装着一件古董打开一看,惊呆了。。。正好美国最近大动乱,啥都不缺,就缺这件防弹背心,顺便还可以防寒保暖。以后深夜撸代码,就可以穿着这件背心了。哇咔咔。。。谢谢融云的惊喜

昨天收到一个高大上的礼盒,以为里面装着一件古董

打开一看,惊呆了。。。


2.jpg


正好美国最近大动乱,啥都不缺,就缺这件防弹背心,顺便还可以防寒保暖。

3.jpg

以后深夜撸代码,就可以穿着这件背心了。哇咔咔。。。谢谢融云的惊喜

和50万优质程序员一起成长——程序员客栈招聘

是团团呀 发表了文章 • 2 个评论 • 254 次浏览 • 2020-12-31 18:15 • 来自相关话题

关于我们:简介程序员客栈,中国领先的技术新人力、技术开发交易平台。我们拥有全球最大的中文技术人才库。在做好用户隐私保护的基础上,持续数据治理打磨技术信用,对程序员的了解理解数据化。不断推出线上开发、驻场工作、招聘猎头等业务产品,帮科技企业提供技术新人力解决方案... ...查看全部

关于我们:

简介

程序员客栈,中国领先的技术新人力、技术开发交易平台。

我们拥有全球最大的中文技术人才库。在做好用户隐私保护的基础上,持续数据治理打磨技术信用,对程序员的了解理解数据化。不断推出线上开发、驻场工作、招聘猎头等业务产品,帮科技企业提供技术新人力解决方案,为程序员提供各式工作机会。

我们和顶尖技术组织、技术公司、优秀程序员一起研发先进生产力工具、软件、框架、系统、语言,总结新技术理论,布道先进技术产品,帮助企业数字信息化。


使命

程序员客栈的使命是为程序员服务,当好程序员的经纪人;布道先进技术,帮助企业数字信息化。


工作地点:浙江省杭州市余杭区海创科技中心(地铁五号线创景路)


我们的需求:

  1. PHP全栈工程师(我们希望您前后端都懂一点)

    1、基于业务需求实现后端功能设计和接口开发;
    2、持续优化服务性能、提高安全性;
    3、积极推动前后分离重构、框架改进、代码规范化;
    4、参与产品业务、需求评审,共同推进产品技术的发展。
    岗位要求
    1、具备丰富的Linux下开发经验,熟悉shell/awk/python/php等语言;
    2、具有3年以上PHP开发经验,3年以上互联网项目经验,能够独立完成项目开发及现有项目二次开发;
    3、熟练PHP语言开发,有主流 PHP 框架(如Thinkphp Laravel) 的使用经验,并了解其实现原理及优缺点;
    4、掌握Redis,Elasticsearch等NoSQL技术,熟练MySQL的开发设计和调优;
    5、能适应和远程团队线上沟通;
    6、良好的沟通能力、抗压能力、推动事情落地能力;
    7、熟悉前端技术,了解nuxt、vue;
    8、优先考虑:
    1)了解vue、node.js、ssr等;
    2)有电商项目经验;
    3)有远程团队开发协作经验;


      2.前端开发工程师

      工作职责
      1.负责相关项目的web、H5前端开发;
      2.按时、高质量地实现产品需求和UI视觉效果,乐于通过技术改善用户体验;
      3.主动学习新技术,主动沟通工作进度,主动发现和推动问题的解决;
      4.负责前端技术文档的维护、更新;
      5.维护原有项目的前端代码,积极推动前后分离重构、代码规范化;

      岗位要求
     1.全日制本科及以上学历,专业不限,一年以上前端项目开发经验;
     2.熟练掌握Web前端基础(HTML/CSS/JavaScript)、了解浏览器兼容性及相关调试方法;
     3.深刻理解Web标准,对前端性能、可访问性、可维护性等相关知识有实际的了解和实   践经验;
    4.熟练使用主流JavaScript框架、熟练Vue优先,具备一定的ES6、ES7知识
    5.熟悉webpack,了解前端工程化,模块化,前后端分离优先;
    6.熟悉SSR&SEO,熟悉Nuxt优先;
    7.有NodeJS 服务开发经验,有以下任意一种Express/Koa/Egg服务开发框架使用经验优     先;
    8.有技术追求,喜欢研究新技术、开源项目,乐于学习和分享;
    9.具有良好的沟通能力、团队合作意识,主动性强,有责任心;
   加分项:
   1)了解并使用过php;
   2)有电商项目经验;
   3)有远程开发协作经验。

【IT八卦】没有手机的古代人是如何通信?

大兴 发表了文章 • 0 个评论 • 105 次浏览 • 2020-12-07 12:00 • 来自相关话题

没有手机,古代人如何通信,我们一起说说关于古代人通讯的那些事今天,小编正躲在空调房里玩着手机,此时异地恋的男友给小编打了一个视频电话。作为一个已经异地谈恋爱两年,有着半年已经没有见到人影在高原服役的的男友的小编当机立断的点开了视频。不过好景并不长,刚腻歪了一会... ...查看全部

没有手机,古代人如何通信,我们一起说说关于古代人通讯的那些事

今天,小编正躲在空调房里玩着手机,此时异地恋的男友给小编打了一个视频电话。作为一个已经异地谈恋爱两年,有着半年已经没有见到人影在高原服役的的男友的小编当机立断的点开了视频。不过好景并不长,刚腻歪了一会儿,视频那头传来了集合的哨子声,小编的男友也只能匆匆挂断了视频集合去了。小编我看了看手机,靠在沙发后面叹了一口气,这时脑海里浮现了这么一个问题:古代人没有手机,没有电子邮箱,没有各种APP,那么他们靠什么通信呢?今天就让我们一起说一说关于古代人通信的那些事儿。

在远古时期,人们的力量与大自然相比是十分弱小的,为了能够活命,为了能够更好的生存,这些远古人经常是一群群的聚集在一起生存,有着自己的地盘,靠采集果实和狩猎为生。每当发现了一些可以食用的果实,或是有毒致命的果实,人们都通过喊的方式来告诉自己部落的同伴一起来采集或是记住下次不要采集这种果实。每次狩猎时,人们都是通过喊叫的方式去恐吓动物,使一些小动物变的胆怯。

以便获取食物来源,或是为了吓走一些想要抢走劳动成果的其他动物。另外当凶猛野兽袭击的时候,人们可以通过喊叫来震慑这些野兽,为自己赢得宝贵的逃跑时间,也可以通过此方式来告诉自己的同伴有危险来临了。喊叫出的声音的大小和长短程度都代表着不同的意思,我们现如今复杂的语言体系也是从当时的喊叫进化过来的,毫无疑问的可以这么说,喊叫是最原始的一种通讯方法了吧。

这种通过喊叫来传递信息的方法至今我们仍在沿用,比如一个人在楼上,另一个人在楼下的时候,交流方式可还得靠喊叫啊,毕竟老祖宗留下来的东西不能丢不是吗?除了光靠喊叫的这种传递信息的办法之外,还有一种很方便的方法就是铛铛裆的敲了。在喊叫之后出现的方式应该是敲敲敲了,用鼓槌击打鼓面,用不同的声响和频率传达不同的意思,也就有了一鼓作气这个成语的由来了,由于怕对方也知道自己敲鼓的所表达的含义。

于是就设计出不同的击打方式。不过小编想了想,好像这种方式我们现在依然在使用。这让小编想起了自己的学生时代了,有时候自习课想要偷懒睡一会儿,又怕班主任的突然袭击,便会跟自己的同桌相约定班主任来了敲几下桌子给自己提个醒。除了铛铛裆的敲的方式之外,还有一种对暗号的通信方式,暗号除了文字,还有吹笛子、弹琴、吹箫各种各样奇怪的方式,这种对暗号的方式经常存在于秘密情报的传递之中。

也经常在武侠电影和武侠电视剧中看到这样的情况,你个普通老百姓可是用不到这种暗号方式,太累了。当然这种通信方式各国部队、间谍机构现在仍在使用。不过小编一些,学生之间好像也会使用这种对暗号的方式诶。还记得小编读大学的时候,觉得食堂的饭菜难以下咽,于是自己买了个锅自己煮饭,但是这可是违纪品,总是怕查寝的,后来寝室里的几位姐妹也纷纷购买了电锅,每天设立一个暗号口令。

一旦门反锁后有人敲门就要对暗号口令,靠着这种方式,小编的锅和自己的其他3位室友的锅安安稳稳的度过了它们的四年大学时光。我们看古装剧的时候是否会注意到这么一个细节,每当皇上在大殿上想要传达什么口信的时候,都会讲口信的内容告诉自己身边的贴身太监,让他把这个口信通过一个个传递到大殿之下。有时候传下去的口信就那么几个字,费事又费力,还浪费口舌。

说实话,小编以前上学的时候老师有时候就喜欢玩传话这个游戏,每次到了最后一个人那里,传的话肯定是变味了,甚至十分的搞笑,真的不知道古代会不会有这种类似的情况发生。除了这两个人肉手段之外,在周幽王时代也出现了烽火狼烟传递消息的方式了。一说起周幽王时代,所有人都会想起周幽王烽火四诸侯只为博得褒姒的微笑,当时为了传递有敌军来犯的消息便会在边境的高墙上设立岗哨。

一旦这些岗哨发现有敌军入侵之后,便会点着烽火台上的燃料,释放出滚滚黑烟,表示有外敌入侵,见状所有的岗哨就一个个的点燃了烽火台上的燃料,信息就这么被传递了。后来人们发现之前说到的这三个传递信息的方式太繁琐,费事又费力,有时候还会发生话被传错了的风险。于是人们开始利用各种各样的动物来传递信息。最早用动物传达信息和书信的人应该是苏武了吧。

他在牧羊的贝加尔湖畔用鸿雁像汉朝传回了所有人被匈奴扣押了的重要的信息。除了鸿雁传书之外,最普遍的还是飞鸽传书了,当然也有人用鹦鹉、狗、青鸟等动物来传递信息的。除了各种各样的动物,古代人还用放飞风筝和孔明灯来传递消息的,更为甚者,还有人将写好的信件放在荷花灯或是竹筒里,让它们顺流而下去传递消息。总是用这些原始的办法传递信息总也不是个事啊。

统一六国之后的秦始皇修建了全国统一的驰道,设立了驿站,专门用来传递官方重要文件和重要信息。此时纸还没有被发明出来,人们把需要传递的信息都写在了竹签上,再把竹签放进竹筒里,两端密封防止被人偷看。或是用木头雕刻两个一模一样的鲤鱼,鲤鱼中间是挖空的竹签的形状,需要传递信息的时候,就把竹签放进鲤鱼的凹槽里,再合上用绳子牢牢的系住。

在打结的地方再沾上黏土,这样再也不怕被偷看了,或许这也是鱼传尺素这个成语的由来吧。到了唐代出现了官邮,类似于我们现在的中国邮政,只不过大部分是为官方服务的,整个官邮是以唐朝首都为中心向周围辐射,每隔30里路就有一个驿站,供人休息换马,除了陆路也发展出了水路驿站,利用河水和船传递信息。到了宋朝出现了普通邮递、快递和加急快递。

元明清三个朝代都是沿用宋朝的模式,中国邮政的雏形就这么出现了。看了古代人通信方式,小编突然觉得自己生活在现代真的很幸运。有手机,有WiFi,有各种聊天APP,若是想要联系,信手沾来,比以前不知道要方便多少倍呢。


什么是真正的程序员?程序员版的《小王子》,过于真实!

木土走召 发表了文章 • 0 个评论 • 74 次浏览 • 2020-11-05 14:41 • 来自相关话题

这篇文章的原文来自:A Little Printf Story翻译:HelloGitHub-削微寒作者仿照《小王子》中的情节,通过小 printf 遇见的不同类型的程序员,最后悟出什么才是真正的程序员!第一次翻译有很多不妥,欢迎留言指正。1我很幸运在我出生的年... ...查看全部

这篇文章的原文来自:A Little Printf Story

翻译:HelloGitHub-削微寒


作者仿照《小王子》中的情节,通过小 printf 遇见的不同类型的程序员,最后悟出什么才是真正的程序员!第一次翻译有很多不妥,欢迎留言指正。

640?wx_fmt=png

1

我很幸运在我出生的年代里,这个世界还没有被计算机和电子游戏淹没。我有幸能够与朋友和小伙伴们在外面玩耍,玩我们自己发明的游戏。

在我们心里我们都是大英雄,我们会拿一根树枝当弓箭、枪、剑或当望远镜,知识不能当成回旋镖,因为一旦你扔掉树枝,就必须自己去捡。

640?wx_fmt=png

后来我长大了,就告别了这些幼稚的游戏。孩子都觉得大人很酷,所以你作为大人就不能把松果当作手榴弹,或假装自己有魔法。最终我们都会慢慢长大,长成大人应该有大人的样子。

不过,我依然觉得我有一个非常幸福的童年。

后来我开始玩电子游戏,有时还会玩电脑。曾经我们都想生活在游戏的梦想世界里,然而梦想虽然美丽,现实却很残酷。每当关掉游戏回到现实生活时,我们都会感到些许沮丧。

其实大多数视频和游戏都有一个弊端:你不需要创造力,只需要单方面地回应。十几岁的时候,我开始接触即兴剧。演即兴剧的时候你可以和其他人沟通,你可以去创造,还可以假装外界不存在。

640?wx_fmt=png

当然,魁北克的即兴剧院略有不同,附近有一个溜冰场,人人都喜欢打冰球。

2005年-2008年,我考入大学开始学习多媒体,最终有机会接触编程的工作。我觉得编程很神奇!编程富有创造力,而且我还可以通过编程赚钱!

我设计了第一个自己的游戏,也因此备受打击。

640?wx_fmt=png

有人告诉我:“这算不上一个真正的电子游戏。这只是一个HTML表单。你应该使用数组处理文本和选项,那样会更好,你的代码需要整理下。”

我有点沮丧,为这个游戏编写了11个文本页面,让玩家“选择你的冒险”。但我意识到如果我想创造大家心目中的好游戏,那么就必须学习。

我必须学习“真正的编程”。我不再使用图形界面工具包中的JScript外,开始学习更好的技术,比如PHP。所以,我学习了PHP,还学习了Javascript。

在学习真正的编程技术时,有人告诉我PHP很糟糕,他们建议我试试看Python。于是,我学会了Python。

真正的程序员需要掌握更高级的编程技术,而Python的Lambda远远不够,对面向对象的编程的支持也不理想。后来有人告诉我下一步读一读《计算机程序的构造和解释》(Structure and Interpretation of Computer Programs,简称SICP),因为它是计算机科学的圣经。

640?wx_fmt=png

于是,我成功地入坑。

现实世界中真正的程序员都会C,所以我开始看K&R的《C程序设计语言》。我在本地大学报了一个培训班,一边上班一边学习。

真正的程序员需要了解数据结构和数学,所以我也学了一些,程序员需要不断学习还需要掌握流行的算法,所以我也开始阅读相关论文和书籍。

后来,不知什么时候我开始接触Erlang,并开始了这方面的职业生涯。我还写了一本书。奇怪的是,没有人质疑我是一名真正的作家、撰稿人,还是真正的插画家。我甚至还找到了一份教Erlang的工作,尽管我从未在生产系统中使用过Erlang。

天知道是怎么回事。


2


因为工作的需要,我需要满世界飞,教授别人我从未做过的事情,每个人突然开始相信我是一名真正的程序员,但其实我的工作与编程并没有太大关系。

有一天,参加完一个会议后,我在机场等飞机时一边疯狂地打字。突然,一个奇怪而又温柔的声音传入了我的耳中:

“请您帮我设计一个系统!”

“什么?”

“帮我设计一个系统!”

我惊讶地抬起了头。环顾四周,我看到一个孩子一脸渴望成为开发的样子,他说我可以叫他“printf”,我觉得这个昵称很傻很搞笑。这个小屁孩的样子就像下面这样:

640?wx_fmt=png

“我不懂计算机,但是好像你很懂。我想写程序给别人用,写编程的博客给别人看。请帮我设计一个系统!”

这真是一个奇怪的请求,当时我已经有20个小时没睡觉了,我怀疑自己的理解或感受可能有问题。我告诉他设计一个系统非常难。

我不知道他想做什么,如何处理错误,应该支持多少读者,他想把服务器托管在什么地方,我获得的信息太少,所以我无法设计一个系统。

“没关系。你随便设计一个就好了。”

于是,我画了一个下面这样的架构图:

640?wx_fmt=png

他看了看,然后说:“这个系统不够好,重新设计一个。”

于是,我又画了一个:

640?wx_fmt=png

然后,我给他大概解释了一下这个系统的运行原理。

我的这位新朋友礼貌地笑了笑,然后说:“这跟我想要的不太一样,这个太复杂了,有很多我不需要的东西。”

我感到有点不快,我的这个系统设计考虑到了冗余、监控、备份、缓存以及其他减少负载的机制,还有法律保护的外部支付处理器、故障转移、易于部署等等。我本来可以收取相当可观的咨询费!我没有耐心了,于是就画了一个这个:

640?wx_fmt=png

然后说:“这就是你的设计。你想要的系统都在这个黑盒子里面。”希望这个糊弄的答案能让他走开。但我很惊讶地听到他说:

“这就是我想要的!”

就这样,我结识了这个名叫printf的小家伙。


3


很快我就了解了这个小家伙的作品。他的代码库中只有一些小程序、简单的表单页面、简单的命令行工具。这些作品没有什么特别之处,而且来得快去得也快。

后来,他开始研究一个用到了多个模块的大程序,其中需要套接字、访问磁盘、与真正的数据库通信。第一次构建成功并正确运行后,小printf高兴的不得了。但这个程序还不够好。

它需要重构、更好的测试、文档和分析。在运行了一段时间后,某天早上这个程序突然崩溃了。

后来又接二连三的崩溃。

配置错误,日志没有实行轮转,磁盘速度不可控,网络断断续续,出现Bug,编码混乱,数据库需要整理,事务会被挂起,证书会过期,CVE漏洞也会显现,各项指标都会出问题。

640?wx_fmt=png

这个程序一塌糊涂。

小家伙跟我说:“其实我什么都不懂!我应该根据自己的需要来做的,我以为编写一个华丽的系统会很骄傲,花了大量时间来修复,这个程序有点得不偿失。不过,我知道这是个了不起的作品。”

一天早上,他决定离开办公室。他在晨曦的照耀下,眯着眼睛说:“再见。”他放下了一团糟的小服务器,想去看看外面的软件世界。

小服务器的日志不断积累,直到硬盘被填满。


4


640?wx_fmt=png

他去了一家公司,寻找经验丰富的开发人员,希望能够获得一些提示和帮助。

他遇到的第一个人是一位非常自豪的高级工程师,他似乎充满了优越感。

640?wx_fmt=png 

他说:“你是来学习的?欢迎来我们公司,我是一位专家。”

“专家?”小printf问道,“那是不是说你可以编写任何东西?”

“没错!” 专家答道,“几乎什么都可以。但我只编写有价值的程序。我不会在琐事上浪费时间。有很多程序我从未写过,但我可以很轻松地写出世界上所有的程序。”

“那你能帮我改进我的系统吗?”小printf刚开始描述他的服务器,就被这位专家打断了:

“不好意思,我看不出这样的意义。”

“为什么?”

“经验。我擅长编写我编写的东西,而且我喜欢编写我擅长编写的东西。通过努力在我擅长的领域提高我的水平,我就可以变得越来越有价值。无论你称之为就业保障,还是适者生存,这就是我的努力方式。”

“那么为什么你不愿意帮助我?”

“我花时间帮助你意味着我需要花费精力去帮助他人进步,对我来说这是一个失败的策略。最佳的学习方式是学习我的方法:努力奋斗,自力更生。这有助于塑造你的品格。”

“但是这种方法看起来效率并不高……”

“你可以去学校上学,或者也可以自学。这种做法为的是让懒惰的人趁早退出,并让那些真正肯努力的人留下。如果我们容忍浑水摸鱼的人,那么我创造的工作价值也会贬值。”

“你觉得你的同事对你没有帮助吗?”

“没有太大帮助。我一个人干会干得更好,而且也不会分心。每当我被迫与他人合作时,我们做出来的东西就无法正常工作。每次我都很愤怒地接过他们的工作,然后用更理智的方式重写一遍大多数的代码,然后就可以正常工作了。”

小printf很惊讶自己遇到了这样的一位专家,似乎他对帮助别人非常不感兴趣,而且对他人的技术力不足感到非常恼火。有点伤感的是,这个人将自己的视野缩小到了他非常熟悉的一个领域,他的所作所为只不过是自己给自己制造困难!

“我明白了……我想我很高兴你不愿帮助我。”小printf说。

“你什么意思?”这位精英人士问道,似乎他的价值观遭到了鄙视,“难道你不觉得我的工作很有意思吗?”

“是很有意思。只不过你把我当成了累赘和烦恼,我只是想让你帮助我,而不想让你痛苦。”

说完这话,小printf起身迅速离开了。这位专家意识到自己的所作所为似乎已经超出了就业安全,甚至有点拒人千里之外了。


5


640?wx_fmt=png

小printf继续他的旅程,这天他走进了一间办公室,里面坐着一个男人,周围堆满了精装书籍,封面上画着巫师、龙、分形几何和数学图形等奇特的图片。

小printf说,“先生,你的这些书好棒啊。”

“谢谢。这些都是程序员必读的书。没了它们,你就算不上一位真正的专业人士。”

“这么说来,我不算专业人士了,”小printf说,“你最喜欢哪本?”

“哦,大部分书我还没读过。”

“这么说,你也不是一位优秀的程序员?”

“我不是。”这位开发人员自豪地说:“事实上,我是一名糟糕的程序员。”

“好可惜,”小printf说,“会变得越来越好。”

“你听说过达克效应吗?”对方问道。

“没有,什么意思?”

这是一种认知偏见。意思是说能力欠缺的人有一种自我优越感,错误地认为自己比真实情况更加优秀;而真正有能力的人则往往会低估自己的能力。”

“所以,也就是说如果我觉得自己变得越来越好,那么实际上我可能一点也不优秀。”

“是的。确切地说。你可能很差劲。而我说我是一名糟糕的程序员,根据达克效应,可能是因为我低估了自己,这证明我是一名优秀的开发。你明白吗?”

“也许吧?”

“这是因为自我否定是开发人员的优秀品格。在自我感觉良好的那一刻,你会放松自己,停止提升自己。”

“这是不是意味着自我感觉良好的那一刻,就是你走向失败的征兆,你应该感觉不好才对?”

“对。但是,为此你需要说所有的东西都很差劲,即使你不知道怎么解决。这样可以显得你更聪明,但是没有太多贡献。”

“什么意思?”

“假如我在网上看到一个我不喜欢的项目,那么秘诀就是指出所有的错误,但不提供任何详细信息。你可以巧妙地指出做这个项目的人是白痴,但不要惹上麻烦。”

“这对大家有什么好处?”

“这些人知道自己走错了路,对他们来说就是好处,而我还帮他们指了出来。虽然这种方法有点欺骗性行为,但是没人知道他们在做什么,而这只是我的做事方法。”

“如果有人请你帮助,但你无能为力的时候,该怎么办?”

“这时候,你可以说一切都很糟糕,你有很多工作要做,还需要改进其他的东西,要尽量保持悲观,让他们自力更生。

“这么说来,你只需要装腔作势就行了?你就是这样应付困难的吗?你就是那种假装自己不称职的人,让那些什么都不懂的人感觉一无是处;你就是那种在不胜任的工作上假装无所不知的人,让那些努力提升自己的人倍感挫败。”

“无论如何,这跟能力没有太大关系。声誉才是最重要的。人们喜欢雇用朋友,而不喜欢的和不重要的人会被优先解雇;你要是想改变系统,就会成为不受欢迎的人

这一切只是一场社交游戏。

整个行业就是这样,或许学术界也一样,尽管我不清楚,但那有什么关系呢?这一切都完全取决于你认识谁,你怎样推销自己,怎样打造自己的个人品牌,不是吗?这就是你得到工作机会的方式。”

“如果必须自我感觉很糟糕,还要让别人感觉也很糟糕,才能做好工作的话,那我就不想在这个行业工作了。“小printf说着,走了出去。


6


640?wx_fmt=png

午饭时间,小printf打断了一个人,他一直盯着屏幕,似乎忘记了吃午饭,旁边的三明治早就凉了。

这个人似乎非常忙碌,也许他知道自己在做什么。小printf问:

“如果主数据库失败,那么从数据库也会失败吗?”

那个人说:“你运行的一切早晚都会失败。”

“即使那些向你汇报失败的系统也会失败吗?”

“对,即使那些系统也一样。所有大型系统,在任何时候都处于部分失败的状态。”

“那为什么我们还要建立可靠的系统?”

这个人不知道,因为在那一刻,云服务挂了,那个无法显示的页面也想知道这个问题的答案。

小printf又问了一遍,“那为什么我们还要建立可靠的系统?”

而那个人一直在忙着处理生产环境的问题,这个孩子的纠缠和吃不到嘴里的三明治让他非常恼火,于是他不耐烦地说:

“根本没用。反正编程都是垃圾。”

“哦!”他叹了口气。

随后便是静寂的沉默。

640?wx_fmt=png

小家伙带着一丝不满说:

“我不相信。程序很脆弱,但程序员可以让它变得更好、更有用。”

那个人没有回答。此时,他已经打开了文档,想了解如何从头开始创建整个集群的新副本,情况似乎越来越糟了。

“你真的相信可靠的系……”

“不相信!”那个人说,“不相信不相信!我根本不相信可靠的程序!不会再相信了!所有程序都是垃圾!我脑子里只有这些,因为我现在处理的系统就是个垃圾。我费了九牛二虎之力让它运行,你看见了吗?这个垃圾就是努力的后果。

小printf愣了一下,十分震惊地看着对方。

“这就是努力的后果?你说话的方式很像一个‘真正的程序员’”。

小printf又说:

“你把这一切都搞混了。世界上有成千上万的程序,多年来它们一直在不停地运行、失败,一直都没有变过。

而人们也一直使用它们,需要它们。而且我知道,一些程序只会在一台笔记本电脑上运行,而有时一个很小的错误会在不知不觉间毁掉整个社区。你认为这些都不重要吗?”

那个人没再说话。


7


640?wx_fmt=png

小printf访问第四个公司时,遇到了一个人,他的电脑屏幕上贴满了便签条,甚至都看不出电脑是什么牌子。

“motor-mvc,quadrangular JS,GoQuery,goteor,一些听上去像日文的东西……”

“嗨,”小printf打断了他,“你在做什么?”

“alchemist,bongodb,mochascript,walktime.js,portasql……”那个人继续。

“你在做什么?”小printf再次问道,这次声音更响亮了。

“哦,我正在尝试新的框架、工具、数据库和语言。”

“哇,你的工作速度好像很快,也许比10名程序员加起来还快!”

“是的!其实这个行业变化得非常快!”他看了一眼手机,继续说,“看!cardboard.io框架刚刚发布了3.5版本,破坏了与3.4的兼容性,结果社区中产生了4个分叉!我必须尝试所有分叉才能知道选择哪个!”

“那你学到了什么呢?”

“我喜欢尝试新东西。如果不随时了解新东西,我这辈子就得写COBOL或MUMPS了。你要做的是赶上下一波浪潮,走向浪潮之巅!”

“这有用吗?”

“当然!我在Rails壮大之前就发现了它,在node.js流行之前就开始使用它,而且我还用过redis、mongodb和riak的第一个beta版!我还是第一个使用vagrant的人,后来还带头切换到了docker上,当然,现在我们都在用unikernel了……”

“哇,这一切都是最先进的技术,这样做有什么好处吗?”

“并没有。Rails壮大时我已经开始尝试下一个了,这样才能不被时代落下。其他的也差不多。现在我开始准备放弃unikernel了。”

“我明白了,”小printf说,陷入了沉思。“这些框架帮你解决了什么问题?”

“哦,我确保我们不会使用无法发展壮大的东西,这样公司就不会在没有未来的技术上投资。这个工作非常重要,因为如果不这样做,就无法雇佣到合适的人,除了那些落后于时代的老家伙,而你真正需要的是那些充满干劲的人,那些喜欢新事物的人。”

“真有意思!”小printf说。

“其实很困难!在创业领域,想要招人就得用很好的技术来吸引他们!否则你就会陷入落后状态。没有人想落伍。”

小printf插了一句:“不,我不是这个意思”,然后他继续说,“我说的有意思指的是,本来工具是为我们解决问题的,但对你而言,工具本身已经成为一个问题了。”

那个男人默默地站在跑步机办公桌前,而小printf则离开了房间。


8


640?wx_fmt=png

小printf的下一站遇到了一个疲惫的员工,她正在愤怒地敲键盘,面前有几十个东倒西歪的空咖啡杯。

“嗨,”小printf说。

她并没有停下来,而是继续疯狂地打字。

“你好?”小printf再次问道。

她停了下来,从桌子上的抽屉里拿出一瓶液体喝了一口。

她说:“我的工作非常糟糕。我是开发运营。刚开始一切都好,我的大部分工作是开发,偶尔需要调试东西,但随着时间一天天过去,这份工作变得越来越糟。我开始到处救火,然而灾难不断发生。虽然我解决了大部分问题,到处创造小奇迹,还保证他们赶上了最后期限。”

“有人帮你吗?”

“没有,问题就在这儿。到处都会出现小麻烦,由于我要不停地解决这些麻烦,没办法专心做开发,所以导致了更多的麻烦。现在我整天都在救火,我讨厌我的工作。”

“为什么你的老板不想办法?”

“因为我很擅长自己的工作,而且长时间以来我一直能设法让事情得到控制,所以每个人都习惯了。当你经常创造小奇迹,人们就会习惯。然后你就要不停地创造奇迹,否则他们会认为你根本不胜任你的工作。”

“听起来很伤感。”

因为你是最熟悉这些麻烦的人,你只能承担越来越多的工作,直到你的老板雇用别人来做你心爱的工作。如果你不愿意让别人做你的工作,那么你得到的回报就是做越来越多你不喜欢的工作,直到你的所有时间被占据。这时你的工作已经毫无乐趣可言了。”

“你很不幸,”小printf说。

她的寻呼机再次响起。

小printf在路上对自己说,“她会被其他所有人嘲笑,被资深专家、被最好的开发、被喜欢新鲜事物的人嘲笑。然而,她是他们当中唯一一个似乎能帮助别人的人。也许,那是因为她考虑的不是自己,而是别人。”


9


640?wx_fmt=png

在大楼的一角,小printf找到了一个带大窗户的大办公室,从办公室可以欣赏到本地的美景。办公室里坐着一位老绅士,桌上摆着大量的文件。

当小printf站在门口时,老人惊呼道:“来了一位开发人员!快进来!”

小printf注意到窗玻璃上写满了很多字。在白板笔的帮助下,外面的世界被大量圆圈、箭头、圆柱和云形符号遮住了。虽然不明白为什么他需要画云彩,因为窗外就有真正的云彩,但整个图看上去很有意思。

“这是什么?”小printf指着窗户问道。

“哦,这个?这是我们的生产系统!”老人说,他根本没有注意到小printf问的是窗外的世界。“我是一名软件架构师。”

“什么是软件架构师?”

“软件架构师大概就是知道怎样才能最好地构建和协调大型系统的组件,让它们能很好地融合在一起的人。这个人必须了解数据库、语言、框架、编辑器、序列化格式、协议,还有封装和关注点分离等概念。”

“这真有意思!”小printf说,“我终于找到了能回答我所有问题的人!”他瞥了一眼架构图,问:“你的系统给我留下了深刻的印象。它的运行速度快吗?”

架构师说:“我也不知道。不过应该很快吧。”

“那么代码怎么样,写得好吗?”

“我不知道。”

“用户满意吗?”

“我恐怕也不知道。”

“但你是软件架构师呀!”

“没错!但我不是开发。我的工作不是编写模块和类,也不是组合各种库。软件架构师太重要了,不能把时间都浪费在代码上。但他会与程序员和开发交谈,问他们问题,为他们提供指导。如果出现了大问题,架构师就会介入。”

“为什么呢?”

“因为我们更有经验。我们对系统以及什么好用、什么不好用的了解得更多。然后,开发人员可以成为我们知识的延伸,生产出色的系统!”

“但是,如果不参与代码,你怎么知道事情进展顺利呢?”

“我们相信开发人员。”

“所以你相信他们能够正确地实现你的想法,但还不足以提出他们自己的想法?”

这句话明显触动了软件架构师。“我猜我可能漏了点东西,”他终于承认了。“问题在于,虽然你要求他们实现一个想法,但并没有好的办法去测试或验证这个想法……”他沉思着,低下了头。“有时候,似乎软件架构师的工作既不是软件,也不是架构。”

小printf离开了房间,离开了大楼。


10


640?wx_fmt=png

小printf到在外面遇到了一个人在为慈善机构募捐。

“嗨,”那个人说。“你想不想帮帮别人?”

“帮助别人可能会让我感觉好一点,”小printf回答说,“我一整天都呆在办公室里,结果现在比以前更困惑了。”

“啊,我明白了。这些人都是开发者。他们并没有什么用,是吧?他们喜欢说他们正在改变这个世界,事实上他们的说词很成功呢。”

“那为什么感觉这么别扭呢?”小printf问。

“他们最出色的工作往往是将一些人的工作变成程序,或者让每个人更悠闲的休息。软件正在蚕食这个世界,也在改变世界的面貌……但在深处却是同样的旧世界,扭曲的世界。你感到别扭的原因是,以这种方式改变并不意味着事情会变得更好。我们依然有同样的缺陷和问题,同样根深蒂固的漏洞。”

“那我怎样才能感觉好一些?”小printf显然很焦虑。

那个人想了一会儿,然后让小printf和他一起帮助别人,因为他觉得这样能让小printf的感觉好起来。那个下午,小printf把他的问题和冒险经历告诉了那个人。经过长时间的沉默后,那个人说:

“人们的那些游戏,人们追逐并沉醉其中的角色和荣誉,人们从解决错综复杂的问题中获得的短暂愉悦,那些都是短暂的快乐。但最终,如果你没有解决任何有价值的问题,如果你忘记了共同奋斗的人们,那么永远也不会有真正的满足感。”

“也许这并不是什么问题,也可能是个问题,而且等你长大以后,也可能没办法从你的工作中找到这种满足感。你可以为了工作而工作,可以为了钱,也可以为了快乐而工作。这都没关系。只要你能在生活的其他地方获得满

如果再给我一次机会,我希望我从未学过编程

徐凤年 发表了文章 • 0 个评论 • 60 次浏览 • 2020-11-04 14:39 • 来自相关话题

我是一名程序员。你可能会觉得我是专业的软件工程师,但实际上,软件工程不只是一个专业,还是一种生活方式。连帽衫、乒乓球、吃不完的零食和苏打水……都是这种生活的一部分。但虽然这个职业可以给人带来那么多回报,我还是要坦白一件事:有时我希望自己从来没有学过编程。怪癖自... ...查看全部

我是一名程序员。你可能会觉得我是专业的软件工程师,但实际上,软件工程不只是一个专业,还是一种生活方式。连帽衫、乒乓球、吃不完的零食和苏打水……都是这种生活的一部分。但虽然这个职业可以给人带来那么多回报,我还是要坦白一件事:

有时我希望自己从来没有学过编程。

怪癖

自从我开始学习编程以来,就再也不能像以前那样轻松地浏览网页了。我无法再平静地接受在各种网站上遇到的各种 bug。每当有奇怪的事情发生时,我的好奇心就上了头,然后就会打开浏览器开发工具开始调试网页。

尝试提交表单时出现加密错误消息?看到这样的错误,我会深入 JavaScript 控制台,查找错误消息,深入研究源代码,并仔细观察进进出出的网络请求。页面 UI 看起来有些过时,或者页面布局很漂亮?不管怎样,我都会调整浏览器窗口大小,检查页面响应屏幕尺寸的能力。什么?你竟然选择了 Comic Sans 字体?我可能永远不会再使用你或你们公司的产品了。

微信图片_20201104143349.jpg

请不要使用 ComicSans

职业生涯

觉得我的这些浏览习惯很怪异吗?这还不算啥,我和其他软件工程师的对话会让你印象更深刻的。总体而言,工程师往往固执己见。我们的血液中流淌着迂腐的基因。你喜欢使用空格还是 tabs 缩进代码?你更喜欢 Vim 还是 Emacs?Chrome 还是 Firefox?

聪明点的人会问到,这些对话“真的重要吗?”。Bikeshedding(在琐碎细节上浪费时间)是确实存在的现象,大家都需要经常反省。

微信图片_20201104143403.jpg

xkcd——真正的程序员

随着越来越多的公司采用敏捷方法,我们还得时常考虑在 Waterfall、Scrum 或 Kanban 开发生命周期之间权衡取舍。我们所有人都喜欢鄙视 Waterfall,毕竟这是老式的低效率公司所使用的遗留品。但是 Scrum 与看板之战还在继续。

你竟然是 Scrum 的信徒?我敢打赌,你为了满足那些 time box 会仓促提交混乱的代码,才能在冲刺结束之前赶上假想的时限。

微信图片_20201104143416.jpg

说到敏捷,故事的重点在哪里?时间尺度?努力?复杂性?风险?这些都有?你我可能会花费几小时时间来争论每个定义的优缺点,最后还是无法达成共识。

在某些时候,这种争论可能会演变为更多的 bikeshedding,但能够相互理解和有效沟通是至关重要的,其中就包括了对我们日常使用的术语达成共识。

前端开发带来的争论又是数不清的,其中最典型的是:“我们要到什么时候才会放弃对 Internet Explorer 的支持?”我必须在“讨厌 Internet Explorer,想要放弃它”和了解还在用它的客户需求之间找到完美的平衡点。

微信图片_20201104143428.jpg

持续学习

持续学习是每一位开发者必备的能力,因为技术形势日新月异。每月都有成百上千的新库和框架发布。JavaScript 倦怠不是什么幻觉,“学不动了”也不仅仅是调侃。

我得花一天的时间配置 Webpack、Rollup 和 Babel 以使用最新的 ES6+ 语法,而旁人听我这么说就像在听天书。Angular 和 AngularJS 截然不同?LitElement、Svelte 和 Stencil 似乎是很有前途的 Web 组件解决方案?Deno 可能是下一个 Node?听着都像是谜语。

当有人问我做什么工作时,我总会蹦出来一堆术语:“我通常使用前端技术,例如 HTML、CSS 和 JS。有时我必须使用 PHP 或 SQL,但我更多是 MEAN/MERN 栈开发人员。有时我使用 Heroku 之类的 PaaS 技术,还有时我会使用 AWS 或 GCP 之类的 IaaS 提供商。”

微信图片_20201104143437.jpg

个人生活

在业余时间里,我读的书干货十足,例如《干净代码》《重构》和《领域驱动设计》。我不是在看教科书,就是在阅读里面写着可疑建议的文章,或观看一些编程教程。关于编程的播客更能吸引人,这样我就能在路上听某人谈论写代码的方法,然后我又可以花一天时间谈相关话题了。

除了在线获取内容外,软件工程师还会花费大量个人时间来在网上创建内容。我个人的兴趣是构建简单的应用和游戏,其实没人看得到。这是浪费时间吗?也许是吧,但的确挺有意思的。


微信图片_20201104143447.jpg企业 BS 生成器应用

事实是

可事实是,编程给了我创造和创新的机会。它帮助我将创意变为现实,让我几乎从零开始构筑了很多东西。软件工程使我能够解决有趣而艰巨的挑战,理想情况下还能让人们的生活更轻松一些。编程使我的思维更具逻辑性。编程让我有机会不断学习,我还能以编程为职业获取薪水!

事实是,我喜欢编程。

参考阅读

https://hackernoon.com/i-wish-i-never-learned-to-code-7a1m3wwx

你收到GeekOnline加油包了吗

江南孤鹜 回复了问题 • 7 人关注 • 7 个回复 • 312 次浏览 • 2020-09-08 17:35 • 来自相关话题

【告急】首批Geek Online加油包已发放完毕!但是……

梅川酷子 发表了文章 • 4 个评论 • 194 次浏览 • 2020-09-02 14:31 • 来自相关话题

我错了,我真的错了,我应该给自己留一份加油包的,是我错误的预估了大家参与活动的热情,导致我现在都没有杯子喝水了,导致我现在都没有鼠标垫可以用了,……看着活动帖里大家还在持续不断的参与,我们不得不告诉大家一个消息,第一批100份 Geek Online加油包,在... ...查看全部

我错了,

我真的错了,

我应该给自己留一份加油包的,

是我错误的预估了大家参与活动的热情,

导致我现在都没有杯子喝水了,

导致我现在都没有鼠标垫可以用了,

……

看着活动帖里大家还在持续不断的参与,

我们不得不告诉大家一个消息,

第一批100份 Geek Online加油包,在我们收到厂家发货的不到7天里,已全发放了!

不得不说,你们有点厉害啊!

还有很多人至今没见过加油包长啥样,来,发出最后一份加油包时,拍了几张:

3593db8fe2bf00e3731466fdd986130.jpg

喏,90*40超大超厚锁边定制鼠标垫,承包你整个桌面

b06da5b432dd96fb3be1e84653ebe3f.jpg

酷炫黑色哑光马克杯,雕刻社区LOGO,倍儿有身份,倍儿有面

(你们收到货的,都给我晒图来!!!)

我们已和工厂联系加单100份,所以,还没收到货的小伙伴,别急嗷,有有有,都有都有!

另外,不仅有加油包,社区其他活动也在同步进行中,


Geek Online 2020 编程挑战赛:https://hackathon.rongcloud.cn/

致敬1024全民趣味赛:https://jinshuju.net/f/kifSsw

社区有奖征稿计划:https://geekonline.rongcloud.cn/article/145


不说了,我去发最后一个加油包了(T^T)

产品经理在我手里,一个赞捏一下

梅川酷子 回复了问题 • 2 人关注 • 1 个回复 • 209 次浏览 • 2020-08-31 18:41 • 来自相关话题

晒一晒,融云年中大促直播抽到的奖品

孤狼小九 发表了文章 • 6 个评论 • 97 次浏览 • 2020-08-28 17:04 • 来自相关话题

晒一晒,融云年中大促直播抽到的奖品没错,我就是那个欧皇,欧皇就是我.直接上图,最珍贵的2件物品:    另外秀一下这个加油包与上次抽奖没发完的,如下图:

晒一晒,融云年中大促直播抽到的奖品

没错,我就是那个欧皇,欧皇就是我.

直接上图,最珍贵的2件物品:

    

WechatIMG14.jpeg

另外秀一下这个加油包与上次抽奖没发完的,如下图:


编程太无聊?来当导演吧~

融云那些事 发表了文章 • 22 个评论 • 3019 次浏览 • 2020-08-06 15:44 • 来自相关话题

对不起~十分抱歉地通知你——当看到此贴的时候,你的“码农”生涯也许就快结束了~曾经~你为之脱发不止的 PHP~JAVA~C,都将离你而去~那个充满名利的娱乐圈,已经敞开了大门从此,你将失去自由,因为每时每刻都有狗仔跟拍~所以~你只能被逼无奈的开着法拉利,带上蛤... ...查看全部

对不起~十分抱歉地通知你——

当看到此贴的时候,你的“码农”生涯也许就快结束了~

曾经~你为之脱发不止的 PHP~JAVA~C,都将离你而去~

那个充满名利的娱乐圈,已经敞开了大门

从此,你将失去自由,因为每时每刻都有狗仔跟拍~

所以~你只能被逼无奈的开着法拉利,带上蛤蟆镜~(也许身边还有一个当演员的女朋友)

因为~你将成为一名~大导演!

 

都说“码农是最具有艺术天赋的群体”~

虽然那一句“hello world”深深地禁锢了你们的肉体,但你们的灵魂永远属于斯坦尼!

我敬爱的“猿”类们——

看着那些自以为是的外行,永远以“格子衫、地中海、单身狗”来固化你们

难道,你的愤怒还要继续隐藏在“//”之后吗?

 

事情是这样的

上半年,融云为展现其“实时音视频”的产品优势,

寻找了多家创意公司甚至影视公司拍摄宣传片~

但他们对开发者真实工作场景的无知,让我们愁眉不展

正应了那句——再牛逼的编剧,也编不出开发者的人生轨迹~

所以,与其让别人“瞎黑”,不如让程序员来“自黑”~

~融云重金邀请不仅会编程,而且还会编剧的“开发文青”

为其全新升级的“实时音视频”编写或执导产品短剧——

 

不是谁都能参加——仅限开发者(不懂编程的,请绕道~)

 

周期还比较紧张——故事大纲选拔截止到20208月31

 

不玩一二三等奖——同时选定10部优秀剧本

 

你最想了解的那些俗事——

1. 选中者将获得5位数或以上的酬劳//别多想~不会超过7位数;

2. 你最想和哪位女演员聊剧本,我们来协调(除奥斯卡影后~);

3. 也许还能参加个电影节,蹭个红地毯,对着镜头说声“hello world”;

 

激动完毕,先看看需求文档吧——

1. 结合开发者真实工作场景,撰写有共鸣度、有笑点(有泪点也OK)的故事;

2. 在故事中,巧妙植入融云“实时音视频”产品优势(植入的越巧妙越好);

3. 单集故事时长控制在3-5分钟;

4. 如果还会画“分镜头剧本”,那就更完美了!

5. 创作者必须保证故事原创性,如出现版权纠纷,由创作者自行解决,融云无连带责任;

 

这次的开发路径是由我们设计的——

1. 开发者先将原创故事的大纲发到本帖的评论区;

2. 融云将对大纲内容进行挑选,选中后将私信与作者沟通详细剧本;

3. 作者将剧本发至指定活动邮箱,融云将安排专业的编剧顾问配合作者对剧本进行优化;

4. 剧本优化后,融云将根据作者(此时应称为“导演”)的要求协调拍摄所需的有关资源;

5. 确定拍摄时间、拍摄地点,并如期拍摄制作;

6. 影片将在B站等视频网站进行首页置顶播放,融云还将协调影片参加相关的评选活动;

 

不知道有木有把事情说清楚,

如果少侠有疑问,可在“评论区”留言,我们将及时解答~

最后,来个“定场诗”收尾——

编程生涯苦无岸,需求文档似高山;

Java&C+亦无趣,秃顶单身格子衫;

日复一日无牵绊,是否也想起波澜?

索性挥毫三千字,当个导演来玩玩!

乐哉!乐哉!

 

(融云“实时音视频”产品功能详见“融云”官网~)


友情链接