V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  mvj3  ›  全部回复第 1 页 / 共 1 页
回复总数  16
2018-02-26 18:09:22 +08:00
回复了 junchenfeng 创建的主题 酷工作 [北京-望京][17zuoye.com] 求贤 Python Fullstack
支持前东家,俊晨是我共事过的非常具有才华和自带强工程属性的教育数据科学家。
2016-03-03 22:44:23 +08:00
回复了 datapipeline 创建的主题 酷工作 [北京] Data Pipeline 诚招架构师/数据工程师
提交一个问题, http://www.datapipeline.com/ 的表格在提交时有 Unable to send form. No storage service is configured. Configure one using the 'Storage' tab from the configuration area for this block. 错误。
2016-03-03 22:41:02 +08:00
回复了 datapipeline 创建的主题 酷工作 [北京] Data Pipeline 诚招架构师/数据工程师
请问远程工作适用吗?
2015-06-25 21:20:03 +08:00
回复了 gaoxt1983 创建的主题 程序员 求好玩的语言,最好是新的,特别小众的那种
可以看下我正在设计的语言草案 http://human-lang.org/ ,目前基本是一些笔记,至于如何实现还是至今遥遥无期。欢迎关注和贡献,和有同感的人一起交流!

从设计上来说,主要是考虑了很人性化的组合式自动函数识别,所以可以用类似 Ruby 的链式风格来写代码,比如 1.Book(name="Life"). 。
2015-06-16 13:17:17 +08:00
回复了 mvj3 创建的主题 程序员 为什么很多人理解不了 Max Howell 通不过白板编程面试
@aszxqw 多谢支持!牵扯到人的问题,回到最后一切都是人性的问题。
2015-06-16 09:43:56 +08:00
回复了 mvj3 创建的主题 程序员 为什么很多人理解不了 Max Howell 通不过白板编程面试
@Sarielwind @msg7086 轮子的概念和范围还是很模糊的,C语言里的 sprintf 其实也是一个轮子,然后好多语言继续发明新轮子,本质上都没啥区别。

@rwx 在理。
2015-06-15 23:27:44 +08:00
回复了 mvj3 创建的主题 程序员 为什么很多人理解不了 Max Howell 通不过白板编程面试
@binux 以前想学文的,可是成绩太差,学了个通信工程的三本,结果还退学了。嗯,你的猜测是有道理的,我确实不像一个标准的理工男。还有 Max Howell 是化学专业的,我看了他的 Github 也没有特别是算法的,好像都是应用级别的。

顿悟不顿悟,我觉得世界还是很神秘的,黑天鹅事件还是很多的。我感觉我的编程能力还是通过思考我自身的思维来提升的。

哈哈,看了你的 Github ,了解你是一个 Python 的牛人啊。

@Heartwork 嗯(对错我就暂时不用理解了),你讨论的是递归的具体机器(现实)实现。
2015-06-15 23:22:02 +08:00
回复了 mvj3 创建的主题 程序员 为什么很多人理解不了 Max Howell 通不过白板编程面试
@binux 以前想学文的,可是成绩太差,学了个通信工程的三本,结果还退学了。嗯,你的猜测是有道理的,我确实不像一个标志的理工男。还有 Max Howell 是化学专业的,我看了他的 Github 也没有特别是算法的,好像都是应用级别的。

顿悟不顿悟,我觉得世界还是很神秘的,黑天鹅事件还是很多的。我感觉我的编程能力还是通过思考我自身的思维来提神的。

哈哈,看了你的 Github ,了解你是一个 Python 的牛人啊。

@Heartwork 嗯(对错我就暂时不用理解了),你讨论的是递归的具体机器(现实)实现。
2015-06-15 23:06:51 +08:00
回复了 mvj3 创建的主题 程序员 为什么很多人理解不了 Max Howell 通不过白板编程面试
@Heartwork 0. 哈哈,多谢夸奖。

1. 多谢劝告,最近我还真的是偶尔上清华一个副教授的数据结构 http://www.xuetangx.com/courses/TsinghuaX/30240184_2015X/2015_T1/info ,挺有意思的。不过我练习的角度还是深有目的的。

2. 水平不水平我不认同,我认同这是毕业生可以背出来的算法习题,毕竟发明一个算法太难了。

3. 嗯,我之前也跟着类似教程做过一个 https://github.com/mvj3/BuildYourOwnLisp
2015-06-15 22:36:37 +08:00
回复了 mvj3 创建的主题 程序员 为什么很多人理解不了 Max Howell 通不过白板编程面试
@caiych 首先多谢你,我对这个题本身要求的需求再思考了一下。"min-max the tree, ascending to descending" 意思是这是一颗从小到大的树,然后去升序到降序。我的疑问是 min-max 和 ascending to descending 不是有点同一个意思吗。好吧,我对树结构的各种理论并不了解,英文水平也是半吊子,所以就不说这个了。

比起这个,我觉得还有个更有意思的问题,凭我的经验来推测(仅仅是我的推测),递归版本实现了,但是非递归(用 Stack 实现)没实现。我想说的是,我也是刚想明白整个流程,昨天看了微博上 左耳朵耗子 的 C++ 实现,只明白用了个栈来做临时存储和协调者,而节点在里面的进出并没有看懂。刚才重新看了一下,才算是真的明白了。你是不是同样会觉得有点吃惊呢?!

我也说一下自己除了上面提到的 detdup 之外的完全由我自己独立设计和实现的算法相关的开源作品:
1. https://github.com/mvj3/fill_broken_words 填破碎单词,Python实现。
2. https://github.com/mvj3/phrase_recognizer 英文短语识别,Python实现。
3. https://github.com/mvj3/region_unit_recognizer 识别 带有省市区等地址的 企事业单位,Python 实现。
4. https://github.com/mvj3/hangman 猜单词游戏,Ruby实现,两年前的一个做了两天的面试题。

这四个都是非常有意思的问题,就我实际做的经验(很完整的工程实现)来看,1 和 2 较难,大概是两周,3 和 4 相对容易,应该都是两天。前面三个都是由树结构实现的,最后一个是字典实现的(其实有人做了更好的基于树实现的)。

所以这里有个有意思的问题就是,我不能马上看懂二叉树的栈实现,但是我却可以做出以上,不证明了白板面试是非常随机和带偏见的一个测试吗。


@Heartwork 最好是你可以提供一个基于某算法实现的开源项目(这样大家都可以看到,否则纯算法显示不出工程能力),并具有良好的工程结构,不然懂算法有什么用呢,你说是吧。


@binux 1、Github 排行榜只能说明流行程度 --- 不过上了一定代码量,并很高 star + fork 的,那基本都是货真价实的了。或者你可以举个反例看看?
2、Homebrew 并不是复杂的软件系统 --- 复杂不复杂都是相对的。不过我愿意承认我大概翻过 Homebrew 代码(当然没有像实际工作项目那么认真,花了很多时间),除了 Formula 的格式,其他基本都没懂。

3、如果你连用栈模拟递归都需要「顿悟」的话,说明你根本不理解递归,甚至不理解函数是怎么执行的。

可能是我文章里说的不够清楚吧,我说的"顿悟"指的是 while 里面的部分,不过这个回复的上面已经解释了我理解这个算法的整个事实过程了。理解用到 stack 确实是即可的,因为我平时工作就经常用到这个技巧。但是 while 里面的逻辑整个放到脑子里,在我的思维里真的是顿悟的,我想这个是人们通常的被别人指点一下的那种体验。当然很可能是我的思维比你的慢,即是 CPU 慢点;当然你也听说过人类最近用成千上万台机器才勉强识别出了猫,所以CPU再快也没用。

我不清楚你对递归和函数的了解水平,但是我还是愿意给出我的理解,虽然可能有错。

什么是递归呢,在我看来,它是人脑思维的一种,和时间空间等一样神秘。人类发现了数据的递归模式(我递归论证了)模式,利用一些可用于稳定执行逻辑的物质(比如CPU器件)来做操作。

函数如何执行呢,摘录一段我在 [The Design Draft Of Human Programming Language]( http://human-lang.org/ ) 的思考笔记 "计算机在本质上就是 过程 + 数据,用 CPU (central processing unit) 来操作 IO (input output) , 也即是用布尔逻辑操作二进制数据。布尔逻辑包括基本的 与,或,非,再进而构建出 与非,或飞,异或 等复合操作(建议通过看 Wikipedia 上的 逻辑函数表示法 得知其相互关系),再进而构建出 集合交集,访问数组某索引的值,等常用数据结构的操作,最后进而构 建出万能的 函数 操作。数据在计算机体系里都表示为离散的 0 1 数字串,进而构建出 Boolean, Integer,Float,Char 等基本数据结构,再进而构建出 String,List,Set,Dict 等高级数据结构,最 后构建出类继承系统,JSON,XML 等复杂业务数据结构。",不知道这样可否让你明白我的理解。
2015-06-15 13:37:52 +08:00
回复了 mvj3 创建的主题 程序员 为什么很多人理解不了 Max Howell 通不过白板编程面试
@msg7086 你可以仔细看下 "关于 Invert Binary Tree 的技术讨论" 部分,实际面试时应该会让写个非递归版本的,否则面试官也不会去出这个题目。

另外我是你提到的两种开发皆修的,具体可以看我的个人资料(我的博客和 Github),。但是我的算法能力和有些思维非常“严谨”的人还是比不上的,比如讨论问题时,我可能跟不上,虽然我对算法复杂度判断能力还是挺好的。

@imn1 我非常赞同你的方法,我也是这样的,我想大部分懂情理的人也是这样的,可是现实是有很多误会或认知上的不一致。
@vozon

1.部署轻便吗?

非常方便。
第一步:启动 luigi 后台进程(即 luiti 依赖于之上的框架),命令例如 luigid --background --logdir luigi --state-path luigi/state --address 0.0.0.0 --port 32145
第二步:用 luiti 命令行 创建一个项目和若干任务模版,然后实现具体业务逻辑。
第三步:用 luiti 去提交某个时间的任务就可以了。例如 luiti run --task-name 你的任务类 --date-value 2014-09-01



2.已有或计划提供API接口吗?

luiti 本身就是把一堆任务代码当作数据去管理,所以直接操作代码就可以了。目前我和团队成员有意向把 luiti 作为一个插件整合到 hue 里,可以展现任务之间的依赖关系。

这方面你运行一下 luiti 命令行就可以了,风格非常像 Rails 。比如


$ luiti
usage: luiti [-h] {ls,new,generate,info,clean,run} ...

Luiti tasks manager.

optional arguments:
-h, --help show this help message and exit

subcommands:
valid subcommands

{ls,new,generate,info,clean,run}
ls list all current luiti tasks.
new create a new luiti project.
generate generate a new luiti task python file.
info show a detailed task.
clean manage files that outputed by luiti tasks.
run run a luiti task.

$ luiti ls

+-------+-----------------------------------------------+
| | All Tasks |
+=======+===============================================+
| 1 | EnglishStudentDoappEkStatDay |
+-------+-----------------------------------------------+
| 2 | EnglishStudentDoexamNewCorrectByEknowledgeDay |
+-------+-----------------------------------------------+
| 3 | EnglishStudentDoexamNewCorrectDay |
+-------+-----------------------------------------------+
...............................................
+-------+-----------------------------------------------+
| 36 | WhateverCheckDay |
+-------+-----------------------------------------------+
| 37 | DumpVoxQuizFromDatabaseWeek |
+-------+-----------------------------------------------+
| 38 | DumpVoxQuizFromDatabaseDay |
+-------+-----------------------------------------------+
| 39 | EnglishStudentDoexamEtStatDay |
+-------+-----------------------------------------------+
| total | 39 |
+-------+-----------------------------------------------+

$ luiti info --task-name DumpVoxUnitKnowledgePointRefFromDatabaseDay

+-------------------+--------------------------------------------------------------------------------------+
| Task name | DumpVoxUnitKnowledgePointRefFromDatabaseDay |
+===================+======================================================================================+
| Tasks self dep on | ['DumpVoxKnowledgePointDay'] |
+-------------------+--------------------------------------------------------------------------------------+
| Tasks dep on self | ['DumpEnglishEidToEkDay', 'TeacherEnglishAssignHomeworkQuizDay', 'WhateverCheckDay'] |
+-------------------+--------------------------------------------------------------------------------------+


所以你也看到了,UI 在此基础上封装一下就可以了,底层编程都已经提供了,就像 oozie 是 hue 里默认提供的一个插件。
2013-12-20 17:18:59 +08:00
回复了 dylanvivi 创建的主题 程序员 一个人负责所有开发究竟好还是不好
把自己负责的相关技术模块多多开源出来,或者把开源模块引进到项目里来,这样实现的是否更好这方面就没有疑虑了。
2013-12-19 22:16:45 +08:00
回复了 mvj3 创建的主题 随想 人类思维和软件工程学
@HowardMei

哈哈,被你说到人工智能那边去了,其实我标题里说的就是人类思维和软件工程学的关系。对于后者,我给它的范畴定义在工程层面,说明编程这件事只能是先工程,后艺术的,这个就像古代画画最初也只是作为工匠而已。话说这种满足人类离哲学伦理政治科学艺术等高级领域越远的需求的领域,站的位置注定了它从本质上不能以审美作为第一优先级。这样说倒不是俨然计算机科学家和工程师两种职业上的划分法,我觉得可以像拿视觉创作里的设计师和画家两种职业一样的划分,去区分编程者里面两种不同的归属,一种是实用工程的,另一种是美学上的。冯诺伊曼认为编程是低级到女性就可以做的事,"他所在的洛•斯阿拉莫斯实验室为此聘用了一百多名女计算员,利用台式计算机从早到晚计算,还是远远不能满足需要", 当然像他这种属于计算机科学远古时代的开创者有这种错误预见就算了,但是像现在这个时代所证明的,编程确实也是一种很富创造性的智力活动。

你说的构造法和"人类大脑很奇怪,虽然整体存储空间很大,每次运算能有效调用的空间却很少"不由得让我想到,为什么有这么多深刻的理论,而它们却是以如此简洁的形式出现,我觉得可能就是人类的思维模式本身就是一种聚集的东西,它的先验性要求它思考出来的结果必须往精简了靠。而这个东西和逻辑往往是无关的,和直觉,审美等有关。"自相矛盾"只是从逻辑这一层里是这样的,可是从其他层面解释就不奇怪了,这个就不展开说了。

回到文章表达意思,一个软件构造真的应该和建筑的呈现方式一样易懂,而建筑,我们只要看,进去使用就OK了。
2011-03-06 21:12:02 +08:00
回复了 benjiaminlam 创建的主题 程序员 各位平时用IDE呢?
除了写iOS程序用下Xcode管理组织代码外,其余只用MacVim
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1009 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 22ms · UTC 21:02 · PVG 05:02 · LAX 13:02 · JFK 16:02
Developed with CodeLauncher
♥ Do have faith in what you're doing.