马公如何能做到老

h
hci
楼主 (未名空间)

马公能做到老,必须要掌握马公行业普适的,能让人的经验变得有用的工具。

不要去和小年轻拼学一个新框架谁学的得快,而是要熟练掌握一些常青藤工具,比如
emacs, vim, *nix shell script, Lisp,等等普适的工具。

这些工具,几十年了也没有变化,将来也不会有变化。因为任何最新的技术,都会立马被改造得让这些常青藤工具能够实用。 比如没有什么IDE不支持vim键的,没有任何成
功的技术不支持命令行以让shell script成为可能的,没有什么大众化的编程环境没有Clojure在上面的,等等。

熟练掌握这些常青藤工具,再加上你的经验,你的奇高的工作效率是任何小年轻不可比较的。他们看你工作,会觉得是在看魔法。当然了,你看他们工作,会气不打一处来,太慢了,鼠标点点点,屏幕拖拖拖,半天干不出活来。

而且,你的头脑的灵活性,马上想出解决问题的办法的速度,这些都是随经验增多的增加的。所以马公能干到老,其实也不难。

d
dumbCoder
2 楼

大牛说的是, 其实就是要多学保值的 tech stack. 前端 JS 框架, 还有各种 mobile
SDK 编程最危险.
对于 emacs/vim, 我是用 vim 的. 最近几年 JetBrains 用的很多, 以前还真没有这么靠谱的跨平台 IDE.

h
hulk
3 楼


这个不行的、很多地方根本不看这些了
h
helpme
4 楼

guvest马甲你好!

工具只是辅助,知道要做什么,以及怎么去做才是最关键的。都面对一个从没接触过的大型framework,小年轻们pick up的比你快很多。你的意思是你工具使用的熟练,写程序时候可以把时间弥补回来?这个理由很牵强。

【 在 hci (海螺子) 的大作中提到: 】
: 马公能做到老,必须要掌握马公行业普适的,能让人的经验变得有用的工具。
: 不要去和小年轻拼学一个新框架谁学的得快,而是要熟练掌握一些常青藤工具,比如: emacs, vim, *nix shell script, Lisp,等等普适的工具。
: 这些工具,几十年了也没有变化,将来也不会有变化。因为任何最新的技术,都会立马
: 被改造得让这些常青藤工具能够实用。 比如没有什么IDE不支持vim键的,没有任何成
: 功的技术不支持命令行以让shell script成为可能的,没有什么大众化的编程环境没有
: Clojure在上面的,等等。
: 熟练掌握这些常青藤工具,再加上你的经验,你的奇高的工作效率是任何小年轻不可比
: 较的。他们看你工作,会觉得是在看魔法。当然了,你看他们工作,会气不打一处来,
: 太慢了,鼠标点点点,屏幕拖拖拖,半天干不出活来。
: ...................

n
nchip
5 楼

他的话你没看懂。前面几项是铺垫,后面的lisp和clojure是重点。

【 在 helpme (名虚胖字满肥) 的大作中提到: 】
: guvest马甲你好!
: 工具只是辅助,知道要做什么,以及怎么去做才是最关键的。都面对一个从没接触过的
: 大型framework,小年轻们pick up的比你快很多。你的意思是你工具使用的熟练,写程
: 序时候可以把时间弥补回来?这个理由很牵强。

l
lavinder
6 楼

很多framework都是新思维了
你这些工具用得再熟练
如果对新的思维方式和架构不了解
也是等于零

比如新的deep learning
用的一样是python
底层结构还是neural network那一套
解法还是Matlab类似
但是人家package变了
库变了
表达方式变了
语法变了
你一样吃瘪

【 在 helpme (名虚胖字满肥) 的大作中提到: 】
: guvest马甲你好!
: 工具只是辅助,知道要做什么,以及怎么去做才是最关键的。都面对一个从没接触过的
: 大型framework,小年轻们pick up的比你快很多。你的意思是你工具使用的熟练,写程
: 序时候可以把时间弥补回来?这个理由很牵强。

c
chebyshev
7 楼

deep learning和老的神经网络不是一回事。没有卷积层的话,我自己试的纯FF结果,
CIFAR10连50%都够呛。
不排除我水平不高的情况。但我讲的话是实证结果。
【 在 lavinder (lavinder) 的大作中提到: 】
: 很多framework都是新思维了
: 你这些工具用得再熟练
: 如果对新的思维方式和架构不了解
: 也是等于零
: 比如新的deep learning
: 用的一样是python
: 底层结构还是neural network那一套
: 解法还是Matlab类似
: 但是人家package变了
: 库变了
: ...................

h
hci
8 楼

首先要意识到的,是马公这个行业,就没有什么新思维。所谓新,都是旧瓶新酒,也就包装纸换了。

任何“新”框架,想法和做法不可能是一个老鸟没见过的。关键这个老鸟要对技术有兴趣,什么都搞过。这种人,常青藤技术都是熟练的。

比如“新”的DL,一个老鸟,自己实现过统计或者ML算法的,或者做过图形学的,这东西非常简单,不就是一些矩阵乘来乘去么?这种编程比一般编程还容易一点,行列式数目对上了,相当于半自动类型检查, 很难错的。

至于用什么“新”的库,老鸟早就学会了正确的工具和学习方式,就是动态的REPL驱动的尝试。

我发现小年轻的主要问题,就是不懂尝试,也不会尝试。我说的这些常青藤工具,都是为快速尝试服务的。所以我常对小年轻说:“Programming IS actually about typing, because if you don't type fast enough, you will not try enough to find out the best solution"。

勇于尝试的小年轻,都进步比较快,能出活,即使是没有很多CS背景的。

而最差的,往往是有数学背景的,或者科班出身只会刷题这种,不敢也不会尝试,完全没有任何办法,只好开了。开了,人家还刷进了谷歌,所以我说我们小屁公司比谷歌要求还高,其实不是,而是我们养不起闲人,

【 在 lavinder (lavinder) 的大作中提到: 】
: 很多framework都是新思维了
: 你这些工具用得再熟练
: 如果对新的思维方式和架构不了解
: 也是等于零
: 比如新的deep learning
: 用的一样是python
: 底层结构还是neural network那一套
: 解法还是Matlab类似
: 但是人家package变了
: 库变了
: ...................

s
squirrelrun
9 楼

大佬还招人吗?

【 在 hci (海螺子) 的大作中提到: 】
: 首先要意识到的,是马公这个行业,就没有什么新思维。所谓新,都是旧瓶新酒,也就
: 包装纸换了。
: 任何“新”框架,想法和做法不可能是一个老鸟没见过的。关键这个老鸟要对技术有兴
: 趣,什么都搞过。这种人,常青藤技术都是熟练的。
: 比如“新”的DL,一个老鸟,自己实现过统计或者ML算法的,或者做过图形学的,这东
: 西非常简单,不就是一些矩阵乘来乘去么?这种编程比一般编程还容易一点,行列式数
: 目对上了,相当于半自动类型检查, 很难错的。
: 至于用什么“新”的库,老鸟早就学会了正确的工具和学习方式,就是动态的REPL驱动
: 的尝试。
: 我发现小年轻的主要问题,就是不懂尝试,也不会尝试。我说的这些常青藤工具,都是
: ...................

h
hci
10 楼

目前没钱招人。

【 在 squirrelrun (松鼠快跑) 的大作中提到: 】
: 大佬还招人吗?

C
Caravel
11 楼

脑子转的不够快了,就是不能够跟小年轻在新赛道上跑。 最好在老赛道或者一个比较
独立的赛道跑。其实学校的老教授都明白了,搞一个独立的没人做的方向,慢慢发
paper

【 在 hci (海螺子) 的大作中提到: 】
: 马公能做到老,必须要掌握马公行业普适的,能让人的经验变得有用的工具。
: 不要去和小年轻拼学一个新框架谁学的得快,而是要熟练掌握一些常青藤工具,比如: emacs, vim, *nix shell script, Lisp,等等普适的工具。
: 这些工具,几十年了也没有变化,将来也不会有变化。因为任何最新的技术,都会立马
: 被改造得让这些常青藤工具能够实用。 比如没有什么IDE不支持vim键的,没有任何成
: 功的技术不支持命令行以让shell script成为可能的,没有什么大众化的编程环境没有
: Clojure在上面的,等等。
: 熟练掌握这些常青藤工具,再加上你的经验,你的奇高的工作效率是任何小年轻不可比
: 较的。他们看你工作,会觉得是在看魔法。当然了,你看他们工作,会气不打一处来,
: 太慢了,鼠标点点点,屏幕拖拖拖,半天干不出活来。
: ...................

h
hci
12 楼

小年轻强的是学习能力,就是所谓的液体智力,这个高峰在20岁左右,后面一路走下坡路,这个没办法。比如我学Clojure学了近一年,因为以前没碰过FP,二十年编程经验
清零,觉得很难, 而我招的小年轻,都没听说过Clojure的,基本上都是两周内就干活了(当然有人指导不一样),但液体智力这个还是很厉害的。

好在IT这个玩意没啥新东西,从IP到FP这种模式改变并不多,所以液体智力并不那么重要,大都是经验能弥补的,也就是所谓晶体智力很重要。这个小年轻没法比。这就是我说的思维的灵活性,比如任何一个疑难的问题,我老能一下子能想出很多不同的解决方案来尝试,小年轻往往会stuck,这都是经验得来的。所以老了觉得脑子转得不够快,
那是因为脑子里面没有东西。

【 在 Caravel (克拉维尔) 的大作中提到: 】
: 脑子转的不够快了,就是不能够跟小年轻在新赛道上跑。 最好在老赛道或者一个比较
: 独立的赛道跑。其实学校的老教授都明白了,搞一个独立的没人做的方向,慢慢发
: paper

C
Caravel
13 楼

当然小年轻里面也有牛的和搓的,不能否认的是general speaking年纪大了比不上年轻的。你看,现在搞AI的最年轻一代都是Ian Goodfellow, 陈天奇这样的人,Hinton也
只能发电concept文章。

不知道你多大,我觉得40还不算老。

【 在 hci (海螺子) 的大作中提到: 】
: 小年轻强的是学习能力,就是所谓的液体智力,这个高峰在20岁左右,后面一路走下坡
: 路,这个没办法。比如我学Clojure学了近一年,因为以前没碰过FP,二十年编程经验
: 清零,觉得很难, 而我招的小年轻,都没听说过Clojure的,基本上都是两周内就干活
: 了(当然有人指导不一样),但液体智力这个还是很厉害的。
: 好在IT这个玩意没啥新东西,从IP到FP这种模式改变并不多,所以液体智力并不那么重
: 要,大都是经验能弥补的,也就是所谓晶体智力很重要。这个小年轻没法比。这就是我
: 说的思维的灵活性,比如任何一个疑难的问题,我老能一下子能想出很多不同的解决方
: 案来尝试,小年轻往往会stuck,这都是经验得来的。所以老了觉得脑子转得不够快,
: 那是因为脑子里面没有东西。

h
hci
14 楼

很多人很早都脱离了上手的工作,这些人是不行了。其实不脱离,只能更强。比如我觉得我比年轻的时候要强很多。

不脱离,就要像我说的,需要掌握常青藤的技艺,把上手尝试东西变得很容易,不费劲。这样的话,拼经验,年轻人是拼不过的。

你说的什么搞AI都是年轻一代是瞎扯蛋,我看见老头子也都在搞AI。AI还没又尘埃落定, 我看最后要和所有技术一样,都是一群老头子在搞核心技术,年轻人干体力活。

【 在 Caravel (克拉维尔) 的大作中提到: 】
: 当然小年轻里面也有牛的和搓的,不能否认的是general speaking年纪大了比不上年轻
: 的。你看,现在搞AI的最年轻一代都是Ian Goodfellow, 陈天奇这样的人,Hinton也
: 只能发电concept文章。
: 不知道你多大,我觉得40还不算老。

z
zhizunbao123
15 楼


【 在 helpme (名虚胖字满肥) 的大作中提到: 】
: guvest马甲你好!
: 工具只是辅助,知道要做什么,以及怎么去做才是最关键的。都面对一个从没接触过的
: 大型framework,小年轻们pick up的比你快很多。你的意思是你工具使用的熟练,写程
: 序时候可以把时间弥补回来?这个理由很牵强。

这俩都有文青的一面 但明显不是一个人

而且就事论事 对事不对人

不要把争论搞得personal

focus在他说的内容 有没有道理 有没有疏漏 而不是id是谁 谁说的

我能理解你的创业热情 但chebyshev这么反对有他的道理 很可能是有他经验教训在 你让一个过来人多说说 就算你坚持创业 也能避免前人走过的坑 不是吗?

即使是批判你 也是有信息量的 比忽视你 比5毛器人好吧
x
xiaonurse
16 楼

马宫不是40就可以退休了吗?
l
lavinder
17 楼

卷积也是个老玩意啦

【 在 chebyshev (......) 的大作中提到: 】
: deep learning和老的神经网络不是一回事。没有卷积层的话,我自己试的纯FF结果,
: CIFAR10连50%都够呛。
: 不排除我水平不高的情况。但我讲的话是实证结果。

w
walkrandom
18 楼

快速进出某领域的能力。能一个月当专家。

像本版的东哥,原来做bioinfo的,后来做big data,现在做AI。
再来一波,他马上又可以赶上。

这就是做到老的能力。
d
dabaojian
19 楼

所以熟练掌握vim都比熟练掌握css看图说话上档次了吗

T
TheMatrix
20 楼

有没有统计说熟练掌握vim或emacs的马公一般来讲比不会vim或emacs的经验要丰富一些?我希望如此。:)

【 在 dabaojian (蔡宝健不刷题了,兄弟们再见) 的大作中提到: 】
: 所以熟练掌握vim都比熟练掌握css看图说话上档次了吗

d
dalianyin
21 楼

就像说clojure bug 少一样 掌握vim 或者 emacs 哪怕是nano的马公年龄偏大

【 在 TheMatrix (TheMatrix) 的大作中提到: 】
: 有没有统计说熟练掌握vim或emacs的马公一般来讲比不会vim或emacs的经验要丰富一些
: ?我希望如此。:)

d
dabaojian
22 楼

如果某个公司要求会vim 那我肯定不会去面试
(因为我只会胡乱摁半天最后直接q退出)

这是老派码工的骄傲吗?

【 在 TheMatrix (TheMatrix) 的大作中提到: 】
: 有没有统计说熟练掌握vim或emacs的马公一般来讲比不会vim或emacs的经验要丰富一些
: ?我希望如此。:)

w
wdong
23 楼

如果是10前,这个楼基本上就变成vi和emacs哪个好吵起来了。
老到一定的程度,洪七公和欧阳锋也有和解的一天。

我前两天还逼员工上vi。受不了他们开个图形界面写程序。
我理由很充分。用图形界面你们怎么上服务器折腾?你们
在家怎么远程ssh到公司里折腾? 别的功夫不说,一上来
连个马步都站不稳还有什么好说的。

【 在 dalianyin (柴柴) 的大作中提到: 】
: 就像说clojure bug 少一样 掌握vim 或者 emacs 哪怕是nano的马公年龄偏大

c
cckyle2001
24 楼

这等同叫停飞机,汽车
人都走路,跑步
大牛就是不一样
【 在 wdong (万事休) 的大作中提到: 】
: 如果是10前,这个楼基本上就变成vi和emacs哪个好吵起来了。
: 老到一定的程度,洪七公和欧阳锋也有和解的一天。
: 我前两天还逼员工上vi。受不了他们开个图形界面写程序。
: 我理由很充分。用图形界面你们怎么上服务器折腾?你们
: 在家怎么远程ssh到公司里折腾? 别的功夫不说,一上来
: 连个马步都站不稳还有什么好说的。

d
dalianyin
25 楼

Terminal 里 vi 会简单几个命令就行 就当文本文档用 production 出问题 一般只需
要改几行配制 而不是大量source code

平时写business logic 用 vi overkill

【 在 wdong(万事休) 的大作中提到: 】

: 如果是10前,这个楼基本上就变成vi和emacs哪个好吵起来了。

: 老到一定的程度,洪七公和欧阳锋也有和解的一天。

: 我前两天还逼员工上vi。受不了他们开个图形界面写程序。

: 我理由很充分。用图形界面你们怎么上服务器折腾?你们

: 在家怎么远程ssh到公司里折腾? 别的功夫不说,一上来

: 连个马步都站不稳还有什么好说的。

d
dumbCoder
26 楼

local 用 IDE, server 上用 vim/tmux, 不冲突的呀

【 在 wdong (万事休) 的大作中提到: 】
: 如果是10前,这个楼基本上就变成vi和emacs哪个好吵起来了。
: 老到一定的程度,洪七公和欧阳锋也有和解的一天。
: 我前两天还逼员工上vi。受不了他们开个图形界面写程序。
: 我理由很充分。用图形界面你们怎么上服务器折腾?你们
: 在家怎么远程ssh到公司里折腾? 别的功夫不说,一上来
: 连个马步都站不稳还有什么好说的。

j
justnow
27 楼

就像你说的,在服务器上,我们用 vi 改配置比较多。或者顶多改几行 source。

还有用 vi 查看服务器的 log,看看运行是否正常。

在 production 服务器上面,极少用 vi 折腾大量的 source code。敢直接改的一般是非关键路径代码。

【 在 dalianyin (柴柴) 的大作中提到: 】
: Terminal 里 vi 会简单几个命令就行 就当文本文档用 production 出问题 一般只需
: 要改几行配制 而不是大量source code
: 平时写business logic 用 vi overkill
:
: 如果是10前,这个楼基本上就变成vi和emacs哪个好吵起来了。
:
: 老到一定的程度,洪七公和欧阳锋也有和解的一天。
:
: 我前两天还逼员工上vi。受不了他们开个图形界面写程序。
:
: 我理由很充分。用图形界面你们怎么上服务器折腾?你们
:
: 在家怎么远程ssh到公司里折腾? 别的功夫不说,一上来
:
: 连个马步都站不稳还有什么好说的。
:

g
guvest
28 楼

IDE多语言不方便。vim/emacs可以同时写java,python,go无压力的。

IDE很多语言是必须的。但是不一定要打字用。可以组装时候用的。
【 在 dumbCoder(HumbleCoder 不懂就问-_-) 的大作中提到: 】
<br>: local 用 IDE, server 上用 vim/tmux, 不冲突的呀
<br>

j
justnow
29 楼

Try VS Code with LSP support.

【 在 guvest (我爱你老婆Anna) 的大作中提到: 】
: IDE多语言不方便。vim/emacs可以同时写java,python,go无压力的。
: IDE很多语言是必须的。最后组装用一下就好。
:
: local 用 IDE, server 上用 vim/tmux, 不冲突的呀
:

g
guvest
30 楼

MSFT当年silverlight说废了也就废了。

【 在 justnow(阿材) 的大作中提到: 】

: Try VS Code with LSP support.

j
justnow
31 楼

Don't try anything then: nothing lasts forever.

【 在 guvest (我爱你老婆Anna) 的大作中提到: 】
: MSFT当年silverlight说废了也就废了。
:
: Try VS Code with LSP support.
:

g
guvest
32 楼

你这就是为发言而发言了。
世上活跃维护,不停推陈出新最久的软件,目前为止是emacs/vim。

【 在 justnow(阿材) 的大作中提到: 】
<br>: Don't try anything then: nothing lasts forever.
<br>

j
justnow
33 楼

你找不到工具给你个建议,不要请便。

到此为止不再回你。

w
wdong
34 楼

据我的观察,大部分人写程序,瓶颈根本就不在于用什么编辑器。
没有开悟的,就是慢。我面向google编程,每一行都从google查
都比他们快。如果我每一行都要从google查,编辑器根本不会成为
瓶颈。

开悟我感觉是一个积累的过程,一旦开悟了,接下来就可以无师自通了。
有功夫我要好好写一写开悟这个事情。

【 在 cckyle2001 (谦虚的狼) 的大作中提到: 】
: 这等同叫停飞机,汽车
: 人都走路,跑步
: 大牛就是不一样

c
cckyle2001
35 楼

现代ide, 很方便cross-reference.
方便看大项目的源码

我以前是做c++ ide的,
有一次在展销会上,有一个大学cs教授说ide太复杂,应该做个极简单版本,方便大学生学习
我们基本不理他
【 在 wdong (万事休) 的大作中提到: 】
: 据我的观察,大部分人写程序,瓶颈根本就不在于用什么编辑器。
: 没有开悟的,就是慢。我面向google编程,每一行都从google查
: 都比他们快。如果我每一行都要从google查,编辑器根本不会成为
: 瓶颈。
: 开悟我感觉是一个积累的过程,一旦开悟了,接下来就可以无师自通了。
: 有功夫我要好好写一写开悟这个事情。

n
nchip
36 楼

在我组里待几年还不会这两个的,我就让他滚蛋,丢不起这人。
就算IDE现在哪会没有这两个的plugin。

【 在 wdong (万事休) 的大作中提到: 】
: 如果是10前,这个楼基本上就变成vi和emacs哪个好吵起来了。
: 老到一定的程度,洪七公和欧阳锋也有和解的一天。
: 我前两天还逼员工上vi。受不了他们开个图形界面写程序。
: 我理由很充分。用图形界面你们怎么上服务器折腾?你们
: 在家怎么远程ssh到公司里折腾? 别的功夫不说,一上来
: 连个马步都站不稳还有什么好说的。

T
TheMatrix
37 楼

我还在积累的过程中,虽然写程序很多年了,还没开悟。但我感觉快了。

【 在 wdong (万事休) 的大作中提到: 】
: 据我的观察,大部分人写程序,瓶颈根本就不在于用什么编辑器。
: 没有开悟的,就是慢。我面向google编程,每一行都从google查
: 都比他们快。如果我每一行都要从google查,编辑器根本不会成为
: 瓶颈。
: 开悟我感觉是一个积累的过程,一旦开悟了,接下来就可以无师自通了。
: 有功夫我要好好写一写开悟这个事情。

g
guvest
38 楼

这个确实是的。但是取长补短才是王道。可以vim/emacs打字。總裝ide。

另外你这cpp ide哪天不流行了,不維護了怎麼辦。就這幾年也有過去的流行editor不
那麼流行了的。

【 在 cckyle2001(谦虚的狼) 的大作中提到: 】

: 现代ide, 很方便cross-reference.

: 方便看大项目的源码

: 我以前是做c ide的,

: 有一次在展销会上,有一个大学cs教授说ide太复朵,应该做个极简单版本,方便大学生学习

: 我们基本不理他

c
cckyle2001
39 楼

这公司有几十年历史,用户几十万,公司市价20b+,
在embedded 市场,属龙头
不維護,可能性很小

vi/vim用于快速察看简单小文件
【 在 guvest (我爱你老婆Anna) 的大作中提到: 】
: 这个确实是的。但是取长补短才是王道。可以vim/emacs打字。總裝ide。
: 另外你这cpp ide哪天不流行了,不維護了怎麼辦。就這幾年也有過去的流行editor不
: 那麼流行了的。
:
: 现代ide, 很方便cross-reference.
:
: 方便看大项目的源码
:
: 我以前是做c ide的,
:
: 有一次在展销会上,有一个大学cs教授说ide太复朵,应该做个极简单版本,方便大
: 学生学习
:
: 我们基本不理他
:

c
chebyshev
40 楼

MSFT 啥的放弃一些软件,在所多有。

我原来被delphi坑过。那时人家都学visual c的。我找本delphi书,跟入教似的。结果宗师去MSFT设计c sharp了。

【 在 cckyle2001 (谦虚的狼) 的大作中提到: 】
: 这公司有几十年历史,用户几十万,公司市价20b+,
: 在embedded 市场,属龙头
: 不維護,可能性很小

j
justnow
41 楼

没有 IDE,浏览大项目相当麻烦。cross-reference 非一般的方便。

以前的公司里,代码有几千万行,不光要 IDE,还需要专门的工具来辅助浏览。

只在 academic 做项目的,规模到不了这个级别,所以没这个需求的。

【 在 cckyle2001 (谦虚的狼) 的大作中提到: 】
: 现代ide, 很方便cross-reference.
: 方便看大项目的源码
: 我以前是做c++ ide的,
: 有一次在展销会上,有一个大学cs教授说ide太复杂,应该做个极简单版本,方便大学生学习
: 我们基本不理他

w
wdong
42 楼

楼上说得对。我确实没见过大项目,没这需求。

【 在 justnow (阿材) 的大作中提到: 】
: 没有 IDE,浏览大项目相当麻烦。cross-reference 非一般的方便。
: 以前的公司里,代码有几千万行,不光要 IDE,还需要专门的工具来辅助浏览。
: 只在 academic 做项目的,规模到不了这个级别,所以没这个需求的。
: 学习

j
justnow
43 楼

这还只是 suite 里其中一个相对简单的产品。兄弟产品比这个复杂。

【 在 justnow (阿材) 的大作中提到: 】
: 没有 IDE,浏览大项目相当麻烦。cross-reference 非一般的方便。
: 以前的公司里,代码有几千万行,不光要 IDE,还需要专门的工具来辅助浏览。
: 只在 academic 做项目的,规模到不了这个级别,所以没这个需求的。
: 学习

c
cckyle2001
44 楼

你是做高深的东西,源码不多

普通中型软件公司,源码都有几百万行
更大型的,就千万行的
现代IDE的一个主要功能,方便看大型轻件项目的源码
【 在 wdong (万事休) 的大作中提到: 】
: 楼上说得对。我确实没见过大项目,没这需求。

j
justnow
45 楼

现代 IDE/代码分析工具的一个核心是利用语言的类型信息来建立索引,辅助浏览,提高生产率。

用裸的,没有代码辅助功能的编辑器来浏览编辑几千万行的代码,在这个公司里走不了两步就要被开。

该产品 suite 年销 400 亿 USD。掌管这个 business 的团队一些基本的 tech/
business common sense 大概率是有的。

但是如果是别的小公司小项目,随意折腾没关系,用不用索引工具,静态动态都随意,拿个 notepad 编程也可以。打开市场可以重写 prototype,打不开算老板掏钱给大家
交学费。反正是 low stakes,doesn't even make a dent in the industry.

工程师/小公司看的是是否掌握某种技能快出 prototype 赶紧变现。大公司/full-
blown businesses 要紧的是项目风险是否够低,进度是否可控,一年几百亿的
business 不能出大篓子。这是基本的 business sense。

【 在 justnow (阿材) 的大作中提到: 】
: 没有 IDE,浏览大项目相当麻烦。cross-reference 非一般的方便。
: 以前的公司里,代码有几千万行,不光要 IDE,还需要专门的工具来辅助浏览。
: 只在 academic 做项目的,规模到不了这个级别,所以没这个需求的。
: 学习

h
helpme
46 楼

codebase再大,你一个小马工也只是干其中很小的一部分。真正和你有关的部分,去掉那些没啥用的80%,也就一两千行,vi没啥不够的。就好比写C++ application的,没啥人会专门去查STL的code一样。

除非你们公司变态,让你不停地换project,否则IDE最多起到辅助你学习的作用。

【 在 justnow (阿材) 的大作中提到: 】
: 现代 IDE/代码分析工具的一个核心是利用语言的类型信息来建立索引,辅助浏览,提
: 高生产率。
: 用裸的,没有代码辅助功能的编辑器来浏览编辑几千万行的代码,在这个公司里走不了
: 两步就要被开。
: 该产品 suite 年销 400 亿 USD。掌管这个 business 的团队一些基本的 tech/
: business common sense 大概率是有的。
: 但是如果是别的小公司小项目,随意折腾没关系,用不用索引工具,静态动态都随意,
: 拿个 notepad 编程也可以。打开市场可以重写 prototype,打不开算老板掏钱给大家
: 交学费。反正是 low stakes,doesn't even make a dent in the industry.
: 工程师/小公司看的是是否掌握某种技能快出 prototype 赶紧变现。大公司/full-: ...................

j
justnow
47 楼

你用 vi 可以,release 一个小 feature 需要浏览至少几十万行代码。你只用 vi 三
天就让你小马公 let go。

还有一些代码是在几百万行范围,不用专用的工具,用 vi 连影子都找不到,或者返回几千个结果,找到被 let go 都没看完。

【 在 helpme (名虚胖字满肥) 的大作中提到: 】
: codebase再大,你一个小马工也只是干其中很小的一部分。真正和你有关的部分,去掉
: 那些没啥用的80%,也就一两千行,vi没啥不够的。就好比写C++ application的,没啥
: 人会专门去查STL的code一样。
: 除非你们公司变态,让你不停地换project,否则IDE最多起到辅助你学习的作用。

m
magliner
48 楼

怎么可能浏览几十万行 ? 也许我不懂,是世界变化快。
我看本小说也就是几十万字(不是行),一口气能看完;不要说看一本数学书,几百页,能看半年,还不一定看的懂。( 浙大的概率论, 同济的高数, 科大的软件工程 都是薄薄的小册子, 都是我老年轻时看过的, 到现在还不敢说都看明白了。)

你们搞软件的都能一目十行 ?
j
justnow
49 楼

一个项目 product 本身一千多万行,测试一千多万行,为什么实现一个 feature 不能浏览几十万行?一个 feature 实现的时间为期半年。而且不是每一行代码你都需要精
准理解,但是你至少要能快速定位。

每次 checkin 都要跑几千个测试,晚上回去前开始跑,第二天早上看结果。

有时候改动一行代码,要 fail 几百个测试,你就要看底下的代码哪里出错。哪怕测试的代码也要看。

【 在 magliner (magliner) 的大作中提到: 】
: 怎么可能浏览几十万行 ? 也许我不懂,是世界变化快。
: 我看本小说也就是几十万字(不是行),一口气能看完;不要说看一本数学书,几百页
: ,能看半年,还不一定看的懂。( 浙大的概率论, 同济的高数, 科大的软件工程 都
: 是薄薄的小册子, 都是我老年轻时看过的, 到现在还不敢说都看明白了。)
: 你们搞软件的都能一目十行 ?

j
justnow
50 楼

相信我,现代大型软件的规模远超大众的认知。在这种规模的项目里,你不利用合理的工具来提高生产率,就是跟自己过不去。

现代大型软件就是不折不扣的工程奇迹,宏伟程度不亚于波音之类的项目。只不过软件无形,无法像有形的项目那样激起公众的好奇心罢了。

【 在 magliner (magliner) 的大作中提到: 】
: 怎么可能浏览几十万行 ? 也许我不懂,是世界变化快。
: 我看本小说也就是几十万字(不是行),一口气能看完;不要说看一本数学书,几百页
: ,能看半年,还不一定看的懂。( 浙大的概率论, 同济的高数, 科大的软件工程 都
: 是薄薄的小册子, 都是我老年轻时看过的, 到现在还不敢说都看明白了。)
: 你们搞软件的都能一目十行 ?

c
cckyle2001
51 楼

我认为学ide很直观,简单.
怎么这么直观,简单.还认为太复杂?
所以,不理他
【 在 justnow (阿材) 的大作中提到: 】
: 没有 IDE,浏览大项目相当麻烦。cross-reference 非一般的方便。
: 以前的公司里,代码有几千万行,不光要 IDE,还需要专门的工具来辅助浏览。
: 只在 academic 做项目的,规模到不了这个级别,所以没这个需求的。
: 学习

p
plzhs
52 楼

学那种?

【 在 cckyle2001 (谦虚的狼) 的大作中提到: 】
: 我认为学ide很直观,简单.
: 怎么这么直观,简单.还认为太复杂?
: 所以,不理他

s
stid
53 楼

代码写得多,错误也多
如果按代码行收钱,那挺好的

【 在 justnow (阿材) 的大作中提到: 】
: 一个项目 product 本身一千多万行,测试一千多万行,为什么实现一个 feature 不能
: 浏览几十万行?一个 feature 实现的时间为期半年。而且不是每一行代码你都需要精
: 准理解,但是你至少要能快速定位。
: 每次 checkin 都要跑几千个测试,晚上回去前开始跑,第二天早上看结果。
: 有时候改动一行代码,要 fail 几百个测试,你就要看底下的代码哪里出错。哪怕测试
: 的代码也要看。

c
chebyshev
54 楼

写跟读是两回事。个人写码和各种多人多组操作又是另一回事。
后者那也不是IDE一个工具的credit。

拿项目支持软件工具全链的功能范围来讲IDE vs Vim/Emacs,
其实有点文不对题。别说更多的了。十万行,5个人的项目的
代码增删查改build测试维护等等,在今日,
那也不是IDE一个工具就能能处理完事了的。

学IDE没啥复杂的。
毕竟造出来就是让人用的。我的看法是,不适合积累
打字以及各种高级copy paste。除了打字,copy/paste,
别的事vi/emacs其实是没啥能力的。

【 在 cckyle2001 (谦虚的狼) 的大作中提到: 】
: 我认为学ide很直观,简单.
: 怎么这么直观,简单.还认为太复杂?
: 所以,不理他

h
helpme
55 楼

一个程序员半年实现一个feature没问题,可是为啥要浏览几十万行code?难道你们公
司写code都不封装的?对于library code,看看documentation就完了,谁会去读全部
code?

【 在 justnow (阿材) 的大作中提到: 】
: 一个项目 product 本身一千多万行,测试一千多万行,为什么实现一个 feature 不能
: 浏览几十万行?一个 feature 实现的时间为期半年。而且不是每一行代码你都需要精
: 准理解,但是你至少要能快速定位。
: 每次 checkin 都要跑几千个测试,晚上回去前开始跑,第二天早上看结果。
: 有时候改动一行代码,要 fail 几百个测试,你就要看底下的代码哪里出错。哪怕测试
: 的代码也要看。

h
helpme
56 楼

你去问问波音的人,看看他们是不是干点啥活都要把引擎设计看一遍。

【 在 justnow (阿材) 的大作中提到: 】
: 相信我,现代大型软件的规模远超大众的认知。在这种规模的项目里,你不利用合理的
: 工具来提高生产率,就是跟自己过不去。
: 现代大型软件就是不折不扣的工程奇迹,宏伟程度不亚于波音之类的项目。只不过软件
: 无形,无法像有形的项目那样激起公众的好奇心罢了。

h
hci
57 楼


不懂不要乱喷。没有人用裸体的vi/emacs来编程。

用vi/emacs必须要配合集成的,普适的,索引和搜索功能,否则没法用的。这些都有各种各样的searcher, tagger, browser,这些必须是一个老鸟熟练掌握,自己配的得心应手的。同一套东西,用在各种语言,各种环境上面。这是效率的源泉。

一看你就不是干活的人,生产环境那么多代码能“浏览“代码么?难道不都是hotkey跳来跳去么?

我要看到下面的人在“浏览“代码,两周不出活的,马上就开了。还浏览,WTF?去别
的地方浏览吧。

【 在 justnow (阿材) 的大作中提到: 】
: 现代 IDE/代码分析工具的一个核心是利用语言的类型信息来建立索引,辅助浏览,提
: 高生产率。
: 用裸的,没有代码辅助功能的编辑器来浏览编辑几千万行的代码,在这个公司里走不了
: 两步就要被开。
: 该产品 suite 年销 400 亿 USD。掌管这个 business 的团队一些基本的 tech/
: business common sense 大概率是有的。
: 但是如果是别的小公司小项目,随意折腾没关系,用不用索引工具,静态动态都随意,
: 拿个 notepad 编程也可以。打开市场可以重写 prototype,打不开算老板掏钱给大家
: 交学费。反正是 low stakes,doesn't even make a dent in the industry.
: 工程师/小公司看的是是否掌握某种技能快出 prototype 赶紧变现。大公司/full-: ...................

j
justnow
58 楼

是你看不懂我写的。反驳你都没说到点上。

你如果在这种项目里用你的那套,当场 fire。

你的项目不可能达到这个体量,所以你无法理解。

【 在 hci (海螺子) 的大作中提到: 】
: 不懂不要乱喷。没有人用裸体的vi/emacs来编程。
: 用vi/emacs必须要配合集成的,普适的,索引和搜索功能,否则没法用的。这些都有各
: 种各样的searcher, tagger, browser,这些必须是一个老鸟熟练掌握,自己配的得心应
: 手的。同一套东西,用在各种语言,各种环境上面。这是效率的源泉。
: 一看你就不是干活的人,生产环境那么多代码能“浏览“代码么?难道不都是hotkey跳
: 来跳去么?
: 我要看到下面的人在“浏览“代码,两周不出活的,马上就开了。还浏览,WTF?去别
: 的地方浏览吧。

h
hci
59 楼

我觉得所谓开悟,就是敢于尝试,勇于尝试的习惯。

一个新的生产环境,成千上万的代码,如何能够马上上手,出活,就两点:1. 脸皮厚
,不懂就问 2. 手勤,一点点尝试。Google和vi/emacs技能,都是为2服务的。

上来就要“浏览”代码,试图理解这个代码库的设计和结构啥的,觉得只有这样才能出活的,其实属于还没有开悟的。

【 在 wdong (万事休) 的大作中提到: 】
: 据我的观察,大部分人写程序,瓶颈根本就不在于用什么编辑器。
: 没有开悟的,就是慢。我面向google编程,每一行都从google查
: 都比他们快。如果我每一行都要从google查,编辑器根本不会成为
: 瓶颈。
: 开悟我感觉是一个积累的过程,一旦开悟了,接下来就可以无师自通了。
: 有功夫我要好好写一写开悟这个事情。

j
justnow
60 楼

我跟你说,工具的选择跟项目的规模有很大相关。

如果你的项目的体量跟我说的项目差了两个数量级或以上,那么我们的讨论其实不在同一个 page 上。

【 在 justnow (阿材) 的大作中提到: 】
: 是你看不懂我写的。反驳你都没说到点上。
: 你如果在这种项目里用你的那套,当场 fire。
: 你的项目不可能达到这个体量,所以你无法理解。

j
justnow
61 楼

不,你如果没有参与过这种体量的项目,那你还没有进入现代软件工业的门。更谈不上开悟。

也许你是软件作坊,那你们的 practice 跟大公司不一样,可以理解。

【 在 hci (海螺子) 的大作中提到: 】
: 我觉得所谓开悟,就是敢于尝试,勇于尝试的习惯。
: 一个新的生产环境,成千上万的代码,如何能够马上上手,出活,就两点:1. 脸皮厚
: ,不懂就问 2. 手勤,一点点尝试。Google和vi/emacs技能,都是为2服务的。
: 上来就要“浏览”代码,试图理解这个代码库的设计和结构啥的,觉得只有这样才能出
: 活的,其实属于还没有开悟的。

h
hci
62 楼


你一个学生出来没两天,不懂不要乱喷。

有fire power的人,根本不管什么编辑器的事,人家要你出活,谁管你怎么弄的。

我的这一套是证明有效的方法,任何环境,任何场合,保证几天内出活。

你说的,明显是个没在在高压力环境干过的人说的,还什么浏览千万行代码,你浏览千万行代码能两周能出活么?

你这种就是我开了的,当然不妨碍你继续到大厂去浏览代码混日子去。但我们目前讨论的是做事情,混日子另当别论。

【 在 justnow (阿材) 的大作中提到: 】
: 是你看不懂我写的。反驳你都没说到点上。
: 你如果在这种项目里用你的那套,当场 fire。
: 你的项目不可能达到这个体量,所以你无法理解。

h
hci
63 楼

哪有啥“现代软件工业”,能赚钱的软件,有哪个不是小作坊做出来的?

就说G家吧,哪个赚钱的部门不是最初是买来的?ads买的,android买的,等等。

【 在 justnow (阿材) 的大作中提到: 】
: 不,你如果没有参与过这种体量的项目,那你还没有进入现代软件工业的门。更谈不上
: 开悟。
: 也许你是软件作坊,那你们的 practice 跟大公司不一样,可以理解。

c
chebyshev
64 楼

就是scientific investigation的基本方法论啊。但是练到不受抄近道的幻觉影响很难。
【 在 hci (海螺子) 的大作中提到: 】
: 我觉得所谓开悟,就是敢于尝试,勇于尝试的习惯。
: 一个新的生产环境,成千上万的代码,如何能够马上上手,出活,就两点:1. 脸皮厚
: ,不懂就问 2. 手勤,一点点尝试。Google和vi/emacs技能,都是为2服务的。
: 上来就要“浏览”代码,试图理解这个代码库的设计和结构啥的,觉得只有这样才能出
: 活的,其实属于还没有开悟的。

P
PaiMei
65 楼

昏,这些工具才是细枝末节。
真正有用的还是专业出身的算法、架构、底层原理。
【 在 hci (海螺子) 的大作中提到: 】
: 马公能做到老,必须要掌握马公行业普适的,能让人的经验变得有用的工具。
: 不要去和小年轻拼学一个新框架谁学的得快,而是要熟练掌握一些常青藤工具,比如: emacs, vim, *nix shell script, Lisp,等等普适的工具。
: 这些工具,几十年了也没有变化,将来也不会有变化。因为任何最新的技术,都会立马
: 被改造得让这些常青藤工具能够实用。 比如没有什么IDE不支持vim键的,没有任何成
: 功的技术不支持命令行以让shell script成为可能的,没有什么大众化的编程环境没有
: Clojure在上面的,等等。
: 熟练掌握这些常青藤工具,再加上你的经验,你的奇高的工作效率是任何小年轻不可比
: 较的。他们看你工作,会觉得是在看魔法。当然了,你看他们工作,会气不打一处来,
: 太慢了,鼠标点点点,屏幕拖拖拖,半天干不出活来。
: ...................

j
justnow
66 楼

我不是什么学生啦。

我现在 run 自己的 business,已经 release 了两三个产品在市场上了。要的就是速
度,一个月从 idea 到 marketable product。一个月一个 product,就是这个速度,
懂吗?

正巧,我碰到你这种胡乱评论自己没有经历过的事情的,phone screen 的机会我都不
会给你的。

【 在 hci (海螺子) 的大作中提到: 】
: 你一个学生出来没两天,不懂不要乱喷。
: 有fire power的人,根本不管什么编辑器的事,人家要你出活,谁管你怎么弄的。
: 我的这一套是证明有效的方法,任何环境,任何场合,保证几天内出活。
: 你说的,明显是个没在在高压力环境干过的人说的,还什么浏览千万行代码,你浏览千
: 万行代码能两周能出活么?
: 你这种就是我开了的,当然不妨碍你继续到大厂去浏览代码混日子去。但我们目前讨论
: 的是做事情,混日子另当别论。

h
hci
67 楼

你上升到了一个更高的高度,其实就是这个意思。

我经常抱怨CS毕业的学生没有基本的科学训练,其实也是这个意思。光会刷题,以为啥都有标准答案,不知道CS其实也是个经验科学(empirical science),需要勇于和善于
尝试,用科学方法论来编程。

【 在 chebyshev (......) 的大作中提到: 】
: 就是scientific investigation的基本方法论啊。但是练到不受抄近道的幻觉影响很难。

j
justnow
68 楼

是的,我已经很久没有见过拿这些说事的了。

【 在 PaiMei (白眉) 的大作中提到: 】
: 昏,这些工具才是细枝末节。
: 真正有用的还是专业出身的算法、架构、底层原理。

j
justnow
69 楼

这种话题应该是大一 CS 新生讨论的。

【 在 justnow (阿材) 的大作中提到: 】
: 是的,我已经很久没有见过拿这些说事的了。

j
justnow
70 楼

我们一个月一个产品,还是不同的领域。

有 security,有 programming language,有 sales/marketing,有 NLP。

你还是省省吧。你的速度不如我。要炒也是我炒你。

【 在 hci (海螺子) 的大作中提到: 】
: 你一个学生出来没两天,不懂不要乱喷。
: 有fire power的人,根本不管什么编辑器的事,人家要你出活,谁管你怎么弄的。
: 我的这一套是证明有效的方法,任何环境,任何场合,保证几天内出活。
: 你说的,明显是个没在在高压力环境干过的人说的,还什么浏览千万行代码,你浏览千
: 万行代码能两周能出活么?
: 你这种就是我开了的,当然不妨碍你继续到大厂去浏览代码混日子去。但我们目前讨论
: 的是做事情,混日子另当别论。

h
hci
71 楼


“算法、架构、底层原理”都是书本知识,是属于锦上添花的东西,不是必要的,而且必须要会把这些书本知识变成实践经验,而实践中掌握这些东西,是完全可行的。现在有Google, stackflow,说不用这些编程的都在撒谎。

光有书本知识,不能落实,是不可能马公做到老的。能做到老的,都有自己的一套工具。你说的“细枝末节”,才是区分能做到老和做不到老的关键。

【 在 PaiMei (白眉) 的大作中提到: 】
: 昏,这些工具才是细枝末节。
: 真正有用的还是专业出身的算法、架构、底层原理。

h
helpme
72 楼

有的人半年看几千万字的小说都未必看的完,你让一个马工半年浏览几千万行代码还要develop,根本不太可能。

【 在 justnow (阿材) 的大作中提到: 】
: 不,你如果没有参与过这种体量的项目,那你还没有进入现代软件工业的门。更谈不上
: 开悟。
: 也许你是软件作坊,那你们的 practice 跟大公司不一样,可以理解。

h
hci
73 楼

你们是多少人啊?我在讨论马公做到老的问题,你们公司出多少产品与话题无关吧。

如果你说的要和我说的有点关系,莫非你的意思是你一个人能一个月出一个产品,还不同领域,还要用IDE浏览千万行代码后才上手?否则你鬼扯这些做什么?

【 在 justnow (阿材) 的大作中提到: 】
: 我们一个月一个产品,还是不同的领域。
: 有 security,有 programming language,有 sales/marketing,有 NLP。
: 你还是省省吧。你的速度不如我。要炒也是我炒你。

m
magliner
74 楼

谈谈我的心得,也许对你们有启发。
1. 海老师说1.多问2.多试。 1对, 2不对。 多问,就得到论坛问, 问软件作者,文
章作者。 这个我同意。 多试之前, 要多想。 把东西想明白,才能动手。 孔子不说
了么, 学而不思怎么了,思而不学怎么了。 思考就是想主意,想怎么动手。 学才是
动手的意思。 我们说某人动作慢,不是打字打得慢, 而是没想明白打什么字。

2.浏览。 我是浏览各种网页,跑别人的各种代码。 遇上不错的网页,我都记录下来,反复阅读。比如guest问要不要测试残差不独立, 龙田问市面上什么公司人工加标签,我都给出链接,这些都不是我现搜的,都是平时的积累。我上班有一半的时间在浏览,当然都是和专业,项目相关的。 海老师的公司,肯定我是不去的,因为他不让我浏览
,哈哈。 经常浏览别人的东西,自己才能有提高。 出的活是老板的, 提高自己才是
目的。

3.运行。 除了浏览代码,我还运行别人的代码。 现在很多书都有git代码,我都是要
下载运行, 一年要研究鉴赏好几本R的书。

4.对代码的搜索。 后来运行别人的代码越来越多, 自己写的代码过几天,到底写的什么都记不清了。 我花了很长时间,找了一款能搜索文件内容的的搜索器, (其实
notepad++也有类似功能),解决了大问题。 比如我输入一个我以前用的函数名, 然
后设置几个目录,马上就能显示出搜索结果,更牛逼的是能显示上下文,这样我就不用一个文件一个文件找,我只要arrow down, 一眼就能看到当初我写了什么,加的什么注释。

这就是一点心得, 我泡过的要说几万行肯定是没有的, 要说几千行,肯定是不止的。
C
Caravel
75 楼

我的感受是IDE对看code有好处,但是对写code其实用处不是很大。改code一般你只改
一点,用啥都可以,有人用Vi更顺手,除非是GUI那种有生成代码需求的。

【 在 justnow (阿材) 的大作中提到: 】
: 不,你如果没有参与过这种体量的项目,那你还没有进入现代软件工业的门。更谈不上
: 开悟。
: 也许你是软件作坊,那你们的 practice 跟大公司不一样,可以理解。

s
stid
76 楼

你说的搜索器是什么?想看看

【 在 magliner (magliner) 的大作中提到: 】
: 谈谈我的心得,也许对你们有启发。
: 1. 海老师说1.多问2.多试。 1对, 2不对。 多问,就得到论坛问, 问软件作者,文
: 章作者。 这个我同意。 多试之前, 要多想。 把东西想明白,才能动手。 孔子不说
: 了么, 学而不思怎么了,思而不学怎么了。 思考就是想主意,想怎么动手。 学才是
: 动手的意思。 我们说某人动作慢,不是打字打得慢, 而是没想明白打什么字。
: 2.浏览。 我是浏览各种网页,跑别人的各种代码。 遇上不错的网页,我都记录下来,
: 反复阅读。比如guest问要不要测试残差不独立, 龙田问市面上什么公司人工加标签,
: 我都给出链接,这些都不是我现搜的,都是平时的积累。我上班有一半的时间在浏览,
: 当然都是和专业,项目相关的。 海老师的公司,肯定我是不去的,因为他不让我浏览
: ,哈哈。 经常浏览别人的东西,自己才能有提高。 出的活是老板的, 提高自己才是
: ...................

c
chebyshev
77 楼

我也很惊讶,好多人体会不到读写code是不同的活动。

我读繁体中文一点问题没有。不会写。
【 在 Caravel (克拉维尔) 的大作中提到: 】
: 我的感受是IDE对看code有好处,但是对写code其实用处不是很大。改code一般你只改
: 一点,用啥都可以,有人用Vi更顺手,除非是GUI那种有生成代码需求的。

h
hci
78 楼

人家的大型生产码库,在时间压力下唯一可行的读法,就是写。人家测试不全写测试,测试全的,以测试为基础小改来干点小活,一旦开写,你的经验就用上了,找虫子的过程就是读的过程。

【 在 chebyshev(......) 的大作中提到: 】
<br>: 我也很惊讶,好多人体会不到读写code是不同的活动。
<br>: 我读繁体中文一点问题没有。不会写。
<br>

h
hci
79 楼

大多数人,都是在人家的代码库里干活,我说的办法是干事的人的做法:皮厚手勤。

你要偏不,说"我是大牛,我先看懂才干活",这从IQ,EQ看都是愚蠢的。

【 在 magliner(magliner) 的大作中提到: 】

: 谈谈我的心得,也许对你们有启发。

: 1. 海老师说1.多问2.多试。 1对, 2不对。 多问,就得到论坛问, 问软件作
者,文

: 章作者。 这个我同意。 多试之前, 要多想。 把东西想明白,才能动手。 孔
子不说

: 了么, 学而不思怎么了,思而不学怎么了。 思考就是想主意,想怎么动手。
学才是

: 动手的意思。 我们说某人动作慢,不是打字打得慢, 而是没想明白打什么字。
: 2.浏览。 我是浏览各种网页,跑别人的各种代码。 遇上不错的网页,我都记录下来,

: 反复阅读。比如guest问要不要测试残差不独立, 龙田问市面上什么公司人工加标签,

: 我都给出链接,这些都不是我现搜的,都是平时的积累。我上班有一半的时间在浏览,

: 当然都是和专业,项目相关的。 海老师的公司,肯定我是不去的,因为他不让
我浏览

: ,哈哈。 经常浏览别人的东西,自己才能有提高。 出的活是老板的, 提高自
己才是
: ...................

w
wdong
80 楼

你说的很对。我就见过这种,要做一个东西,先去买一本书。然后过了一星期还没看完。
我花钱雇人过来是来读书的吗?真是要气死。难道不是花一天看个文档,然后面向
google就开干了吗?

高手和新手的一个重大的区别就是高手能够快速定位代码关键位置开始改。新手面对陌生代码没有confidence觉得要看到什么程度才敢改。我就是用grep。不管什么语言,基本上都能grep出来。我想了一下,我改过android渲染流程,改过linux内核,做过定制化的blender,都是用vi就可以搞定。能不能成,关键是代码修改点能不能准确定位。
如果就是在一个厂呆着,反正必须要学它那套toolchain,其实也没办法。真到了那个位
置估计我也不会像傻x那样非用vi。但是想无所不能,其实没有IDE能无所不能。还不如以不变应万变。

【 在 hci (海螺子) 的大作中提到: 】
: 我觉得所谓开悟,就是敢于尝试,勇于尝试的习惯。
: 一个新的生产环境,成千上万的代码,如何能够马上上手,出活,就两点:1. 脸皮厚
: ,不懂就问 2. 手勤,一点点尝试。Google和vi/emacs技能,都是为2服务的。
: 上来就要“浏览”代码,试图理解这个代码库的设计和结构啥的,觉得只有这样才能出
: 活的,其实属于还没有开悟的。

h
hci
81 楼

完全同意。

我也是这样,其实定位代码都是靠搜索。连我自己写的代码,都全靠搜索。知道如何搜索,如何快速定位,如何改,如何试,这些都是经验,不是光靠液体智力就行的。

其实vim/emacs这套,是对这种工作方式进行优化的一个工具链。

【 在 wdong (万事休) 的大作中提到: 】
: 你说的很对。我就见过这种,要做一个东西,先去买一本书。然后过了一星期还没看完。
: 我花钱雇人过来是来读书的吗?真是要气死。难道不是花一天看个文档,然后面向
: google就开干了吗?
: 高手和新手的一个重大的区别就是高手能够快速定位代码关键位置开始改。新手面对陌
: 生代码没有confidence觉得要看到什么程度才敢改。我就是用grep。不管什么语言,基
: 本上都能grep出来。我想了一下,我改过android渲染流程,改过linux内核,做过定制
: 化的blender,都是用vi就可以搞定。能不能成,关键是代码修改点能不能准确定位。
: 如果就是在一个厂呆着,反正必须要学它那套toolchain,其实也没办法。真到了那
个位
: 置估计我也不会像傻x那样非用vi。但是想无所不能,其实没有IDE能无所不能。还不如
: 以不变应万变。

g
guvest
82 楼

掌握好算卦這門手藝就好了。莊子不是講了嗎:大知閒閒。大言炎炎。你這算卦的功力還不夠啊,不然怎麼會被千萬行源碼給嚇著了。

幾B行
的項目也有。但那跟這個帖子毫無關係。一般馬公沒有權限接觸到那麼多源碼的。更不可能讀那麼多。你們藥廠也沒有說你能看到每個算卦的人給的報告這回事。資本家都不是傻子。
另外大點的項目文檔比源碼還重要。所以文學是很重要的。

【 在 magliner(magliner) 的大作中提到: 】
<br>: 谈谈我的心得,也许对你们有启发。
<br>: 1. 海老师说1.多问2.多试。 1对, 2不对。 多问,就得到论坛问, 问
软件作
者,文
<br>: 章作者。 这个我同意。 多试之前, 要多想。 把东西想明白,才能动手。 孔
子不说
<br>: 了么, 学而不思怎么了,思而不学怎么了。 思考就是想主意,想怎么动手。
学才是
<br>: 动手的意思。 我们说某人动作慢,不是打字打得慢, 而是没想明白打什么字。
<br>: 2.浏览。 我是浏览各种网页,跑别人的各种代码。 遇上不错的网页,我都记录
下来,
<br>: 反复阅读。比如guest问要不要测试残差不独立, 龙田问市面上什么公司人工加
标签,
<br>: 我都给出链接,这些都不是我现搜的,都是平时的积累。我上班有一半的时间在
浏览,
<br>: 当然都是和专业,项目相关的。 海老师的公司,肯定我是不去的,因为
他不让
我浏览
<br>: ,哈哈。 经常浏览别人的东西,自己才能有提高。 出的活是老板的,
提高自
己才是
: ...................
<br>

g
guvest
83 楼

從北京送個菜到紐約容易,但是送一萬包菜到千家就麻煩。出貨的Last mile 有好多瑣碎的描述部分。其實主要是靠文學水平。

【 在 wdong(万事休) 的大作中提到: 】

: 你说的很对。我就见过这种,要做一个东西,先去买一本书。然后过了一星期还没看完。

: 我花钱雇人过来是来读书的吗?真是要气死。难道不是花一天看个文档,然后面向

: google就开干了吗?

: 高手和新手的一个重大的区别就是高手能够快速定位代码关键位置开始改。新手面对陌

: 生代码没有confidence觉得要看到什么程度才敢改。我就是用grep。不管什么语言,基

: 本上都能grep出来。我想了一下,我改过android渲染流程,改过linux内核,做过定制

: 化的blender,都是用vi就可以搞定。能不能成,关键是代码修改点能不能准确
定位。

: 如果就是在一个厂呆着,反正必须要学它那套toolchain,其实也没办法。真到
了那个位

: 置估计我也不会像傻x那样非用vi。但是想无所不能,其实没有IDE能无所不能。还不如

: 以不变应万变。

m
magliner
84 楼

不瞒你说, 我就是那种先买本书, 过一星期还没看完的人。 好比你让我写爪哇, 我不买本爪哇书看,还能怎么办 ? 我当然也得google,也得看文档。 好比你想学游泳, 我不能跟你说, 你跳下去游哇, 你情商怎么这么低,大家都往水里跳,所以你也跳
。 你也得先买本书琢磨琢磨,不是看别人打打腿,划划胳膊就会游了的。

看书至少说明人家态度端正, 人家花了自己的钱,估计回家也看。至于产出多少,那
就得丑话说前头,一个愿打一个愿挨, 好合好散。

看书这事, 短期没什么效果, 长期还是有好处的 。 比如一年前我就经常到贵版不耻下问一些函数编程的问题, 因为当时在学R, 被hadley忽悠的满脑子函数编程。回过
头想想, 虽然p也没学会, 但应了爱迪生的话,‘我没有失败了1000次, 我是知道了1000种材料不可用’ 。 琢磨过函数编程, 自己写代码的时候就会知道什么东西要避
免; 知道R里面古怪写法根源在于所谓函数编程; 碰见虫子,马上就会反应过来, 这是函数编程的虫子,此路不通请绕行。 你没见过, 肯定是纠结半天,为什么这虫子竟然长成这样?

【 在 wdong (万事休) 的大作中提到: 】
: 你说的很对。我就见过这种,要做一个东西,先去买一本书。然后过了一星期还没看完。
: 我花钱雇人过来是来读书的吗?真是要气死。难道不是花一天看个文档,然后面向
: google就开干了吗?
: 高手和新手的一个重大的区别就是高手能够快速定位代码关键位置开始改。新手面对陌
: 生代码没有confidence觉得要看到什么程度才敢改。我就是用grep。不管什么语言,基
: 本上都能grep出来。我想了一下,我改过android渲染流程,改过linux内核,做过定制
: 化的blender,都是用vi就可以搞定。能不能成,关键是代码修改点能不能准确定位。
: 如果就是在一个厂呆着,反正必须要学它那套toolchain,其实也没办法。真到了那
个位
: 置估计我也不会像傻x那样非用vi。但是想无所不能,其实没有IDE能无所不能。还不如
: 以不变应万变。

g
guvest
85 楼

你又不是馬公。那不是一回事。馬公速度很重要的。打字都不會,哪能長遠。

以讀書而論,好多橫著寫的書是竪著讀,速度才能起來。
【 在 magliner(magliner) 的大作中提到: 】
<br>: 不瞒你说, 我就是那种先买本书, 过一星期还没看完的人。 好比你让
我写爪
哇, 我
<br>: 不买本爪哇书看,还能怎么办 ? 我当然也得google,也得看文档。 好比你想学
游泳,
<br>: 我不能跟你说, 你跳下去游哇, 你情商怎么这么低,大家都往水里跳
,所以
你也跳
<br>: 。 你也得先买本书琢磨琢磨,不是看别人打打腿,划划胳膊就会游了的。
<br>: 看书至少说明人家态度端正, 人家花了自己的钱,估计回家也看。至于
产出多
少,那
<br>: 就得丑话说前头,一个愿打一个愿挨, 好合好散。
<br>: 看书这事, 短期没什么效果, 长期还是有好处的 。 比如一年前我就经常到贵
版不耻
<br>: 下问一些函数编程的问题, 因为当时在学R, 被hadley忽悠的满脑子函
数编程
。回过
<br>: 头想想, 虽然p也没学会, 但应了爱迪生的话,‘我没有失败了
1000次, 我是
知道了
<br>: 1000种材料不可用’ 。 琢磨过函数编程, 自己写代码的时候就会知道什么东
西要避
: ...................
<br>

m
magliner
86 楼

fileseek加拿大某公司产品。 我花了一下午比较各种类似软件,还是这款适合我。 我要的其实主要就两个功能:
1. 多目录查询,不光是子目录
2. 显示上下文

大部分软件要么有1没2;要么有2没1 。 grep再好,也不能显示上下文; 当然你可以
通过编程实现; 那他支持word/excel文档么? 能高亮显示么? 能同时打开搜索结果
么? fileseek就能。

【 在 stid (stid.smth) 的大作中提到: 】
: 你说的搜索器是什么?想看看

j
justnow
87 楼

不是。现在不用浏览千万行代码。那是以前。

在以前,公司的代码库就是我们的 Google,StackOverflow,Github。你要实现新的代码,先在那几千万行的代码库中先搜一遍,否则极易重复发明。

现在我们就几个人,作坊。我们自己的 codebase 不大,相对而言。基本上是 GOP (
Google-Orientied Programming),SOOP,GHOP。

我说这个是因为你说干活慢要被炒呀,所以让你看看我们的速度,说明我们不慢。

这不是鬼扯,这叫 “beat you in your own game”。

事实上,我们每天都在用 vi,只不过大多用于服务器端。但是我们不是 Vixtremists (VI extremists who absolutely condescend IDEs)。没说谁是,只不过在过去碰到过很多这种 vi VS IDE 的 religious wars,类似于静态类型语言 VS 动态类型语言之类的,相信是存在的。

【 在 hci (海螺子) 的大作中提到: 】
: 你们是多少人啊?我在讨论马公做到老的问题,你们公司出多少产品与话题无关吧。: 如果你说的要和我说的有点关系,莫非你的意思是你一个人能一个月出一个产品,还不
: 同领域,还要用IDE浏览千万行代码后才上手?否则你鬼扯这些做什么?

g
guvest
88 楼

要長遠,還要看10年後這個軟件是不是仍然有人維護。不能只看一時吧。啥事要幹長久,肯定得考慮叫長遠的未來。
用難用但持久的工具。有時
其實和資本家的要求是矛盾的。

【 在 magliner(magliner) 的大作中提到: 】
<br>: fileseek加拿大某公司产品。 我花了一下午比较各种类似软件,还是这
款适合
我。 我
<br>: 要的其实主要就两个功能:
<br>: 1. 多目录查询,不光是子目录
<br>: 2. 显示上下文
<br>: 大部分软件要么有1没2;要么有2没1 。 grep再好,也不能显示上下文; 当然
你可以
<br>: 通过编程实现; 那他支持word/excel文档么? 能高亮显示么? 能同时
打开搜
索结果
<br>: 么? fileseek就能。
<br>:
<br>

g
guvest
89 楼

不看文檔,搜幾千萬行的代碼庫。接著咋辦?copy paste?
恕我直言啊。感覺有點過於神奇了。

【 在 justnow(阿材) 的大作中提到: 】

: 不是。现在不用浏览千万行代码。那是以前。

: 在以前,公司的代码库就是我们的 Google,StackOverflow,Github。你要实现新的代

: 码,先在那几千万行的代码库中先搜一遍,否则极易重复发明。

: 现在我们就几个人,作坊。我们自己的 codebase 不大,相对而言。基本上是
GOP (

: Google-Orientied Programming),SOOP,GHOP。

: 我说这个是因为你说干活慢要被炒呀,所以让你看看我们的速度,说明我们不慢。

: 这不是鬼扯,这叫 “beat you in your own game”。

: 事实上,我们每天都在用 vi,只不过大多用于服务器端。但是我们不是
Vixtremists

: (VI extremists who absolutely condescend IDEs)。没说谁是,只不过在过去碰到过

: 很多这种 vi VS IDE 的 religious wars,类似于静态类型语言 VS 动态类型语言之类
: ...................

j
justnow
90 楼

澄清一下“千万行代码”吧,看到我的意思在有的地方被误解了。

正如之前所说,product + tests 有几千万行。整个产品被分成 10 来个大模块吧,每一个模块由一个 team 负责,平均下来每个 team owns 几十万行到一两百万行代码。在
当时的构架里,这些模块已经尽量去耦合,所以大部分时间里,一个 dev 需要对这几
十万行到一两百万行代码负责,包括实现新功能,修复 bugs,甚至要写 tests。

但是还是有少数时间里,当出问题的时候,你需要定位出问题的地方。而这个地方如果不在你的大模块里的话,你就需要浏览其他模块的代码,试图找出问题所在,至少知道是哪个大模块出了问题,需要 reach out 到那个 team 去沟通。

如果确认问题是出在那个 team 里,情理上是由他们负责。但是也有小组间资源动态调配的时候,比如说那个小组工作负荷很大,那么也会有人跨组工作去帮那个组修复问题,甚至实现新功能。

所以这个人需要对两个组的代码负责。如果公司呆时间长了,甚至对多个模块熟悉。

产品规模大了,会衍生出各种小项目想象不到的需求。比如说测试,我们的产品是基于网络的,所以在使用中存在多台机器互相协作的情形,这些必须要 cover。我们有一个基础设施团队,创建了 infrastructure,使得任何成员可以方便地在十几台机器上运
行几千甚至几万个测试。注意这几万个测试不是全部,全部的测试比这个多。测试跑起来要花费漫长的时间。所以每次你都选择一个能够覆盖你的改动的最小测试子集,否则过了一个晚上还在跑,耽误第二天的工作。

另外还有代码检索,也有专门的工具,来检索那几千万行代码,关键要快,还要准。如果只用 grep 之类的工具的话,有些搜索会返回几千个结果(想想看几千万行代码),如果你要找的结果位于第两千个,那这种搜索几乎是没有意义的。

当时代码检索没有提供 vi 的接口,所以我们并没有用 vi 来搜索并且呈现结果。如果想,那只不过是实现一个插件的事情而已,但是我们的团队没有做这个选择。

这里没有分高低的意思,我不热衷于在这里 fight a religious war。我 IDE/vi 两个都用。我只是对 Vixtremism 不以为然。

g
guvest
91 楼

一個工具單獨搞定三五個組合作的項目不現實。編輯器vim/emacs很好。但是肯定不能
排除別的工具。

【 在 justnow(阿材) 的大作中提到: 】
<br>: 澄清一下“千万行代码”吧,看到我的意思在有的地方被误解了。
<br>: 正如之前所说,product tests 有几千万行。整个产品被分成 10 个大模块吧
,每一
<br>: 个模块由一个 team 负责,平均下来每个 team own 几十万行到一两百万行代码
。在当
<br>: 时的构架里,这些模块已经尽量去耦合,所以大部分时间里,一个 dev
需要对
这几十
<br>: 万行到一两百万行代码负责,包括实现新功能,修复 bugs,甚至要写
tests。
<br>: 但是还是有少数时间里,当出问题的时候,你需要定位出问题的地方。而这个地
方如果
<br>: 不在你的大模块里的话,你就需要浏览其他模块的代码,试图找出问题所在,至
少知道
<br>: 是哪个大模块出了问题,需要 reach out 到那个 team 去沟通。
<br>: 如果确认问题是出在那个 team 里,情理上是由他们负责。但是也有小组间资源
动态调
<br>: 配的时候,比如说那个小组工作负荷很大,那么也会有人跨组工作去帮那个组修
复问题
: ...................
<br>

j
justnow
92 楼

希望到此为止吧。没什么值得惊讶的。

Keep your mind open. 这是我想说的。

【 在 justnow (阿材) 的大作中提到: 】
: 澄清一下“千万行代码”吧,看到我的意思在有的地方被误解了。
: 正如之前所说,product + tests 有几千万行。整个产品被分成 10 来个大模块吧,每
: 一个模块由一个 team 负责,平均下来每个 team owns 几十万行到一两百万行代码
。在
: 当时的构架里,这些模块已经尽量去耦合,所以大部分时间里,一个 dev 需要对这几
: 十万行到一两百万行代码负责,包括实现新功能,修复 bugs,甚至要写 tests。
: 但是还是有少数时间里,当出问题的时候,你需要定位出问题的地方。而这个地方如果
: 不在你的大模块里的话,你就需要浏览其他模块的代码,试图找出问题所在,至少知道
: 是哪个大模块出了问题,需要 reach out 到那个 team 去沟通。
: 如果确认问题是出在那个 team 里,情理上是由他们负责。但是也有小组间资源动态调
: 配的时候,比如说那个小组工作负荷很大,那么也会有人跨组工作去帮那个组修复问题
: ...................

s
stid
93 楼

竟然只支持 windows?

【 在 magliner (magliner) 的大作中提到: 】
: fileseek加拿大某公司产品。 我花了一下午比较各种类似软件,还是这款适合我。 我
: 要的其实主要就两个功能:
: 1. 多目录查询,不光是子目录
: 2. 显示上下文
: 大部分软件要么有1没2;要么有2没1 。 grep再好,也不能显示上下文; 当然你可以
: 通过编程实现; 那他支持word/excel文档么? 能高亮显示么? 能同时打开搜索结果
: 么? fileseek就能。

i
insect9
94 楼

文档这个东西,经常是错误的内容比对的多。其实维护一个sample code更有效,因为
那玩意要能编译通过,通过基本的测试,至少就不会错的太离谱。

【在 guvest(我爱你老婆Anna)的大作中提到:】
:不看文檔,搜幾千萬行的代碼庫。接著咋辦?copy paste?
:恕我直言啊。感覺有點過於神奇了。

j
justnow
95 楼

是的。在公司内部,除了注释,很多时候我们要了解一个 function 如何工作,一方面是直接看源码,另一方面是看测试代码,看它外部呈现的行为。

至于对外的文档,公司专门设置了一个职位叫 technical writer,工作就是写文档。
但是这里有一个关系要搞清楚:tech writer 根据我们的代码来写文档,而不是我们看他的文档写代码。

也有一些团队成员出书。关于该产品的书很多,大部分面对最终用户。

【 在 insect9 (insect9) 的大作中提到: 】
: 文档这个东西,经常是错误的内容比对的多。其实维护一个sample code更有效,因为
: 那玩意要能编译通过,通过基本的测试,至少就不会错的太离谱。
: :不看文檔,搜幾千萬行的代碼庫。接著咋辦?copy paste?
: :恕我直言啊。感覺有點過於神奇了。

i
insect9
96 楼

其实,主要是因为产品性质不一样。互联网服务的release cycle是3天到2周,手机App是2周到一个月,电脑软件基本是3个月以上,企业ERP外包我不清楚,想来也是按季度
算的。

release周期越长,文档越充分,因为有足够的时间制定实现规划。同时容错小,需要
在release前尽可能的把问题都定义清楚。release cycle短的都是一堆组各做各的
feature,互相间的依赖都不一定有协调。你刚要发布一个feature结果发现你隔壁组的
在上个release把接口改了你也只能自认倒霉重新来过。。。。文档更新?那玩意可能
被安排给另一个组下半年再做了,你急也没用。。。。

【在 justnow(阿材)的大作中提到:】
:是的。在公司内部,除了注释,很多时候我们要了解一个 function 如何工作,一方面是直接看源码,另一方面是看测试代码,看它外部呈现的行为。


j
justnow
97 楼

我们除了对外的文档精准以外,并没有对内部的注释做太多的要求。原因正如你所说。

我们对测试的看重比注释要高,投入大量的资源做测试。我们整个大组估计当时至少有一两千台机器(甚至更多),组成一个 pool,来让成员做测试。

整个产品的外部行为(主要)是由巨量的测试定义的。而不是注释或者文档。这是大型软件项目的通行做法。Makes good sense.

【 在 insect9 (insect9) 的大作中提到: 】
: 其实,主要是因为产品性质不一样。互联网服务的release cycle是3天到2周,手机
App
: 是2周到七个月,电脑软件基本是3个月以上,企业ERP外包我不清楚,想来也是按季度
: 算的。
: release周期越长,文档越充分,因为有足够的时间制定实现规划。同时容错小,需要
: 在release前尽可能的把问题都定义清楚。release cycle短的都是一堆组各做各的
: feature,互相间的依赖都不一定有协调。你刚要发布一个feature结果发现你隔壁组的
: 在上个release把接口改了你也只能自认倒霉重新来过。。。。文档更新?那玩意可能
: 被安排给另一个组下半年再做了,你急也没用。。。。
: :是的。在公司内部,除了注释,很多时候我们要了解一个 function 如何工作,一方
: 面是直接看源码,另一方面是看测试代码,看它外部呈现的行为。
: ...................

m
magliner
98 楼

我只会用windows啊。
和winscp连到各种-nix
【 在 stid (stid.smth) 的大作中提到: 】
: 竟然只支持 windows?

g
guvest
99 楼

sample code是文檔的一部分。常用軟件裡很多文檔都包括有Sample code。

【 在 insect9(insect9) 的大作中提到: 】
<br>: 文档这个东西,经常是错误的内容比对的多。其实维护一个sample code
更有效
,因为
<br>: 那玩意要能编译通过,通过基本的测试,至少就不会错的太离谱。
<br>: :不看文檔,搜幾千萬行的代碼庫。接著咋辦?copy paste?
<br>: :恕我直言啊。感覺有點過於神奇了。
<br>

g
guvest
100 楼

第二個週期就是根據文檔寫代碼了。因為用戶已經根據文檔用了你的軟件。所以很
多東西不能隨便改了。
所以如果眼光再遠一點,很可能文檔比一個版本的代碼更重要。

【 在 justnow(阿材) 的大作中提到: 】
<br>: 是的。在公司内部,除了注释,很多时候我们要了解一个 function 如何工作,
一方面
<br>: 是直接看源码,另一方面是看测试代码,看它外部呈现的行为。
<br>: 至于对外的文档,公司专门设置了一个职位叫 technical writer,工作
就是写
文档。
<br>: 但是这里有一个关系要搞清楚:tech writer 根据我们的代码来写文档,而不是
我们看
<br>: 他的文档写代码。
<br>: 也有一些团队成员出书。关于该产品的书很多,大部分面对最终用户。
<br>