---- 新智元报道 来源:知乎等 编辑:小匀 【新智元导读】码农圈的明星人物——王垠,一个三次博士退学,被微软全面封杀的计算机天才,每离开一个地方都发文「声讨」,清华、康奈尔、印第安纳伯明顿、谷歌、微软都无疑中招……他话题不断,从中国去美国又从美国归来。那么,他到底是一个愤世嫉俗的孤傲天才?还是一个哀而不伤的理想主义者? 如果说,随遇而安偏于随和的庸众心态,那么一定有人就偏于孤绝的英雄心态。 这句话放在王垠身上最合适不过了。 他先后就读于四川大学、清华大学,后又相继取得了清华、康奈尔大学、印第
洋洋洒洒5500多字,讲事实,摆道理,引经据典,论证了爱因斯坦在116年前提出的狭义相对论约等于「民科」。
一直使用linux学习工作已经两个月了,能坚持下来很不容易,现在则制定这linux的服务器教案,希望帮到实验室的小伙伴一块学习下去,坚持下去。
当时觉得这篇文章对 Rust 语言的分析太偏颇,但是王垠说这篇文章会一直更新。这几年也有不少新手在群里引用王垠这篇文章对 Rust 的看法,或者直接问我,我原以为过去五年了,王垠应该对文章里对观点有所更新吧,然而并没有。
一、有些事情难以回头 开篇我先表明自己的立场:同时使用 .Net 和 JAVA,但更加偏爱.Net。原因很简单: .Net语言更具开放性,从开源协议和规范可以看出; 语言更具优势严谨; 开发工具 VS 更具生产力; 然而 Java,C# 的职位比率在4:1,虽然这不是什么问题,因为求职竞争的比例更大(JAVA中更多的刚培训出来的),但话说回来,对于C#求职而言,会面临更加狭窄的企业选择空间。 Java同等职位,国内的待遇比.Net稍高。这里为 .Net 说声不平,.Net开源程度更好,架构体系更成熟逻辑
王垠更新了文章,加入了Optional跟Union比较的内容,所以我也来更新一下。垠神认为Optional并没有什么卵用,Java8的Optional我不是很了解,不过看他写的样子,应该是个用了泛型的容器类,而且从他举的例子来看,确实没什么卵用,不管是报NoSuchElementException还是NullPointerException都是运行时错误,的确换汤不换药。至于他说Swift的Optional跟Java是一样的问题么,我觉得还是有待商榷,之前我也说了强制解包语法!是为了兼容OC类库,毕竟Swift这个语言主要还是为了做iOS开发,总是有些历史包袱。如果不滥用!的话,Swift的Optional还是个不错的特性。至于垠神说的在类型外面包一个数据结构会导致程序变得复杂,比如Java的Optional如果要安全使用的话,就得先判空(x.isPresent())再取对象(x.get()),这确实很蛋疼,还不如直接用原先的类型,使用前先判空就是了。想比之下Swift的if let跟guard let就好很多,判空跟取值一步到位,若为空就取不到值,若不为空就直接取值并赋值,干净利落。
编程界有一位传奇人物——王垠,介绍一下他的退学经历,对,你没听错,退!学!经!历!: 2006年,从清华大学计算机系退学,在水木社区BLOG上发表了《清华梦的粉碎--写给清华大学的退学申请》一文,此时离博士毕业还差一年; 2008年,从美国康奈尔大学计算机系退学,在网上发表《Cornell 感受》; 2012年,从印第安纳大学伯明顿分校计算机系退学,以一篇文章《对博士学位说永别》,彻底告别了学生生涯。 这里插一句,就在我写这篇文章的时候(写的时间有点久...),王垠的博客又更新了一篇文章《微软的秘
为了维护世界的和平,为了童鞋们的电脑少挂几次,为了俊俊学长不总被骚扰 ,于是,就有了本贴,
rust 的学习曲线比较陡峭,在开始学习之前建议看看王垠的这篇文章 《如何掌握所有的编程语言》,地址如下:
规则一:每天晚上七点,固定学习时间,一律到讨论组里报道。一周允许有两次缺席,我自己记录在案,一周内有四次以上未到,则剔除出组。
这是上个月一个读者小郑私信我的问题,我一直置顶着,想不清楚该怎么回答他。最近又遇到三四个读者问我类似的问题,不得不认真思考一下了。
对特定网站进行站内搜索是找资源,查内容的必备技能, 但并不是所有网站都有站内搜索功能, 比如 当我在扯淡 (王垠的博客,界面简洁,观点有趣) , 就没有站内搜索功能。
有人看了我之前的文章『Swift 语言的设计错误』,问我:“你说 Java 只有引用类型(reference type),但是根据 Java 的官方文档,Java 也有值类型(value type)和引用类型的区别的。比如 int,boolean 等原始类型就是值类型。” 现在我来解释一下这个问题。
喔,看到这个标题千万不要以为我要写和王垠前辈一样的内容啊,嘿嘿。不过在这里还是献上王垠前辈的那篇文章的链接吧:完全用 Linux 工作[1]。
我记得和同事吃饭的时候大家在一起讨论,什么样的人可以称之为牛人,有人当即就提出来,对于我们这样做工程的人来说,谈何牛人呢?真正牛的人应该都是那些搞研究的大拿们。还有人说,这样说也不甚准确,只是牛人的比例和程度不同:
摘要: 单元测试应该是程序员的必备技能,而真正的编程高手应该善于把握单元测试的粒度。
大一之前一直用的XP,那时刚开始学C,用的turbo C 2.0,蓝色屏幕,界面老式古典。
我想,不管过去的一年过的怎样,大部分工程师们对开年的的工作和生活都应该是有所憧憬和计划的,我也不例外。
我想,不管过去的一年过的怎样,大部分工程师们对开年的的工作和生活都应该是有所憧憬和计划的,我也不例外。 只不过我选择了把吴军(https://zh.wikipedia.org/zh-hans/吴军_(
100本前端书籍下载|前端全套视频下载 对的,我这里要讲的不是如何掌握一种编程语言,而是所有的。 本文作者王垠,代表作《完全用Linux 工作》,著名软件工程师。 如果你存在以下的种种困惑,那么这篇文章也许会对你有所帮助: 你是编程初学者,不知道该选择什么程序语言来入门。 你是资深的程序员或者团队领导,对新出现的种种语言感到困惑,不知道该“投资”哪种语言。 你的团队为使用哪种程序语言争论不休,发生各种斗争。 你追逐潮流采用了某种时髦的语言,结果两个月之后发现深陷泥潭。 程序语言一直是很重要的话题,这个情
据说ChezScheme是最快的神级编译器,一秒钟几百万行,王垠说的2秒内编译自身绝不是夸张(看这里《揭秘Chez Scheme》,Scheme中文社区)。ChezScheme由美国印第安纳大学的Kent Dybvig博士发明,后来卖给了思科CISCO,作为内部绝密的编译器工具来运行苛刻的计算任务,现在已经开源,仓库地址是https://github.com/cisco/ChezScheme。有关如何开始使用Chez Scheme,请看官方的文档:Chapter 2. Using Chez Scheme,有关Scheme的使用入门,这里推荐一本中文翻译的《Yet Another Scheme Tutorial》,这是一本面向初学者的温和且循序渐进的Scheme教程。目标读者是仅有些许编程经验的PC用户。
入职半年,进步并不是想象中的那么大,虽说在任何地方工作都其实是靠自己的努力、对技术的钻研,达到熟练、进而开拓其他领域等,还是需要不断的“偷懒”, 能使用编程语言实现的东西尽量编写脚本完成,而不是被一系列杂乱的事影响对工作的完成和自己的进步。 最近的总结输出也不够多,其实是没有刻意的创造练习的机会,对自己掌握知识是不利的,看上去总结输出很耗费时间,但是当“输出总结”公布在互联网上,其实它就成为了一个作品,是作品就有好坏、就有影响力强弱。“作品”事实上扮演着见证者的角色,你的进步或是你的退步,你的关注点等 鉴于
最近刷Github,发现大量的面试题收录仓库,且关注度很高,这种现象很容易理解,程序员通过跳槽提升薪资,而跳槽需要面试,刷的面试题越多,面试成功的概率也就越大,跳槽就是为了涨工资,赚钱嘛!不寒碜~
本期节目请来了一位特别嘉宾 Kathy,她不仅仅是一名四年经验的 Emacs 拥趸,而且还是一位留学英国的经济学在读博士。
今天读到朋友圈评论:“中国最充满前途的年轻人们都聚在被称为“创业导师”的中年男人们周围,一起彻夜不休地燃烧生命,只为了在一轮又一轮如何送外卖、洗车、搭讪陌生人、借高利贷、联接电饭煲和冰箱的挑战赛中搏出更好的名次...” 而大洋对岸那边很多巨头公司的创始人,他们骨子里并不是商人,而是geek。热衷于创造新奇的事物,热衷于解决难题,是geek的天性。科技,在这一刻,非常残忍地拉开了国与国之间的差距。 Judgement Day Bon Jovi - New Jersey 今天将迎来了人机大
很多编程初学者至今还在给我写信请教,问我该学习什么程序语言,怎么学习。由于我知道标题问题的答案,所以总感觉这个问题是如此“低级”,一直没来得及回复 : P 可是逐渐的,我发现原来不只是小白们有这个问题,就连美国大公司的很多资深工程师,其实也没搞明白。
封面由ARKie智能设计助手生成 Ant Design 最近发布了 antd.sketchapp : 使用 skpm 构建工具,基于 React Sketch.app 及 Ant Design ,实现了 antd.sketchapp ,可以很方便的把 Ant Design 的前端代码转化为 sketch 文件。类似的基于 Material Design 我们也可以实现一个 MD.sketchapp 。antd.sketchapp 更大的意义在于其是一套设计系统更新的工具,可以快速对 Sketch 已
出品 | OSC开源社区(ID:oschina2013) core-js 作者 Denis Pushkarev 今日发表了一篇长文《So, what's next?》,他表示原本只是想介绍自己正在积极
本文首发于 https://robberphex.com/go-generics-maps-slices/
很多编程初学者至今还在给我写信请教,问我该学习什么程序语言,怎么学习。由于我知道如何掌握“所有”的程序语言,总是感觉这种该学“一种”什么语言的问题比较低级,所以一直没来得及回复他们 ? 可是逐渐的,我
我们是程序员,但我们不必只是某一门语言的程序员。 编程语言 今天跟大家聊聊编程语言这个东西,“第二”只是个泛指,想必多数开发者也都掌握了不止一门编程语言。 我真正开始编程是在大四实习的时候,开发主要用的是Java,Web方向。但那会公司比较小,既要学着写后端又要学着写前端,所以JavaScript用的也算熟悉。但在那会的我看来,这两者并没有太大差别。也没有太多关于面向对象、函数式这些编程范式的概念。后来我开始做Android,对Java和面向对象编程的理解日益加深。 后来我接触到了爬虫,从正则表达式到j
在讲"Java是解释执行还是编译执行?"前,先理解一下什么是解释执行,什么又是编译执行。
---- 新智元报道 来源:FAIR 编辑:yaxin 【新智元导读】让AI学习东西很容易,但是如何让它学会忘记或许是一个难题。近日,Facebook的研究人员就提出了一种深度学习算法:Expire-Span,教会AI忘记「琐事」。 忘记,是最好的释负。 你还记得去年今天吃的什么吗? 只有那天是特别的日子,我们或许才会想起。 忘记日常琐事,就可以为长期记忆留出空间。 与人类记忆不同,AI神经网络会不加选择地处理所获取的信息,并记住每一个信息。 当前的AI机制过去常常选择性地专注于其输入的某些部分
对的,我这里要讲的不是如何掌握一种程序语言,而是所有的…… 很多编程初学者至今还在给我写信请教,问我该学习什么程序语言,怎么学习。由于我知道如何掌握“所有”的程序语言,总是感觉这种该学“一种”什么语言的问题比较低级,所以一直没来得及回复他们 :P 可是逐渐的,我发现原来不只是小白们有这个问题,就连美国大公司的很多资深工程师,其实也没搞明白。 今天我有动力了,想来统一回答一下这个搁置已久的“初级问题”。类似的话题貌似曾经写过,然而现在我想把它重新写一遍。因为在跟很多人交流之后,我对自己头脑中的(未转化为语
作者通过一些简单的例子,阐述在编程面试中排名前10算法的相关概念。由于完全掌握这些概念需要更多的努力,因此这份列表只是作为一个介绍。文章从Java的角度看问题,包含下面这些概念: 字符串 链表 树 图 排序 递归 vs. 迭代 动态规划 位操作 概率问题 排列组合 由于篇幅限制,具体的概念分析请阅读原文。 1、 王垠:面向对象编程和函数式编程的问题出在哪里? 作者此前曾写了一篇《对函数式语言的误解》的文章,他将面向对象和函数式并列,看上去似乎各打五十大板,但对面向对象的批评比较简单,就是面向对象总是要实现万
这两天正在构思这个“三维度”逻辑编程语言的设计系列的下一篇该怎么写,正好在上一篇《用写文章的方式写程序--“三维度”逻辑编程语言的设计(1)》有位叫做 dwcz 的朋友回帖说:
很多编程初学者至今还在给我写信请教,问我该学习什么程序语言,怎么学习。由于我知道如何掌握“所有”的程序语言,总是感觉这种该学“一种”什么语言的问题比较低级,所以一直没来得及回复他们 :P 可是逐渐的,我发现原来不只是小白们有这个问题,就连美国大公司的很多资深工程师,其实也没搞明白。
golang-learning-one.png 第一期 接触 GO 语言大概一个多月了,最近项目需要使用 Go 语言进行相关的开发。所以需要学习。 一个月的接触大概已经知道了 Go 语言的语言特性。接下来就是不断的练习和深入特殊特性。 为了更好的总结和创造刻意练习的机会,将Go 语言的相关文章成体系的学习,特意简书开文集, 进行 Go 语言的学习。 文章相关说明 一直以来都有一个特别大的误区,以为准备好了才动手,这其实是不对的,因为你自己都不明确什么才叫准备好,又或者什么时候准备动手。 项目相关的人最近也是
首先,需要明确的是,用 Java 通常构建多线程安全的程序 “非常” 困难,如果还没有体会到 “非常” 的话,阅读《Java Concurrency in Practice》(中文名叫做《Java 并发编程实战》,在我的书单里面,我认为它基本是最好的系统介绍 Java 并发的书了)可能可以改变你的看法。
第一次打美赛就用了latex,比赛前刷了各种博客,学习了1天就上场。美赛期间全程扮演不同角色,就是打杂的,大家都是第一次参加,都很累,不过我是最累的,两天两夜没睡。建模,编程,latex写论文全程参与。用latex写论文真的是太爽了,闲着也是闲着,不如把latex好好学习下,方便以后建模比赛提高速度。总结下其他博主的笔记
有人听说我想创业,给我提出了一些“忽悠”的办法。他们说,既然你是程序语言专家,而现在人工智能(AI)又非常热,那你其实可以搞一个“自动编程系统”,号称可以自动生成程序,取代程序员的工作,节省许许多多的人力支出,这样就可以趁着“AI 热”拉到投资。 有人甚至把名字都给我想好了,叫“深度程序员”(DeepCoder = Deep Learning + Coder)。口号是:“有了 DeepCoder,不用 Top Coder!” 还有人给我指出了这方向最新的,吹得神乎其神的研究,比如微软的 Robust Fi
代码写完会运行一下看下效果,开发的时候我们更多都是通过 dubugger 来单步或断点运行。我们整天在用 debugger,可是你有想过它的实现原理么。
核心思想:把自己像产品一样打造,就像张一鸣经典语录:run company as a product
这个月,是 Go 语言正式发布 10 周年,这也是 Go 作为开源编程语言和构建现代网络软件生态系统的 10 周年。
本文主要讲述了Java编程语言的起源、发展和贡献者,以及Java社区的一些情况。主要包括Java语言的诞生、发展和标准化,以及社区中的贡献者和Java技术的广泛应用。
随着深度学习技术的广泛使用,人们对于如何自动对神经网络结构进行设计产生了浓厚的兴趣,研究人员希望能够通过数据驱动的方式对模型结构进行搜索,更加自动地找到能够拟合当前任务的最佳网络结构。
1)jvm有很多种,其实jvm是一个标准,sun做的那个叫hotspot,作者就是后来v8的作者lars bak,其他公司也做过jvm,其中做得比较好的有bea的jrockit,其他的包括ibm的r9,apple的jvm等在内,都做得不行,所以jvm主要是整合淘汰掉这些做得不好的jvm(s),整合成一个统一的openjdk。
领取专属 10元无门槛券
手把手带您无忧上云