V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  AndyAO  ›  全部回复第 28 页 / 共 37 页
回复总数  727
1 ... 20  21  22  23  24  25  26  27  28  29 ... 37  
2021-01-12 12:33:43 +08:00
回复了 junwind 创建的主题 程序员 大家平时都使用什么工具做笔记呢
我喜欢本地笔记,自己的笔记自己做主,目前用的是 VNote,这个笔记很好,但问题在于没有双向链接,所以最近准备转向思源或者 RE.
2021-01-12 11:48:55 +08:00
回复了 qqqccc 创建的主题 问与答 不懂就问,入手手机无线充电器有意义吗
听说无线充电最大的好处是随手充电,以碎片化的充电方式来解决续航问题.

比如说你在工位上干活,但偶尔会拿着手机出去,那么有线充电插拔就非常麻烦,而且经常拔来拔去的,对接口也不好,延伸到你手边的数据线也很碍眼,无线充电的话就没有这些问题,拿起来就走,非常方便.
2021-01-12 11:10:14 +08:00
回复了 xjy0454 创建的主题 问与答 初一学生自学编程学哪门语言好
关于语言的选择,前面有的人推荐 C 和 C# 这个我是绝对不能同意的(虽然那个轮子哥好像学的是 C).首先你应该了解关于编程语言的基本知识,编程这个活动可以分为大编程和小编程(Programming in the large and programming in the small).

因为像 C 这种语言的话是系统语言,当初它被发明出来是用来写 Unix 操作系统的,所以说是妥妥的为大编程而设计的.

它是尽量的模拟计算机的底层,用很精炼的语法对冯诺依曼计算机进行了刻画,写起来非常困难,如履薄冰.

如果所学的领域需要对硬件有很强的控制性,比如说对于性能有苛刻的要求,对于实时性有要求,那么选择 C 是非常好的,但是初中生大多不会有这样的要求.

很多人大学都学过 C 语言,但基本上学完就忘了,原因就是这样,因为大多数人的工作根本就用不到它学了也是白学.

C# 也是类似的东西,属于强制面向对象的语言主要是用来替代 C++ 的(或者说模仿 Java),主要用来在操作系统之上构建大型的复杂的程序.

中学生往往也不会用到.

除了上面所说的大编程往往用不到之外,还有就是大编程,所需的语言往往都是编译型的(C#算是半编译),这就导致反馈循环非常慢,也就是说做出更改之后是否正确,要等比较长的时间才能知道,而大多数的小编程语言都是很轻松就能交互式运行的(REPL,read-eval-print loop),这对于程序学习过程中的试错帮助非常大,尤其是对于没有老师的人来说.

推荐 JavaScript 和 Python 是最明智的选择,它们是这个时代最流行的脚本语言.前者主要用于浏览器,对于任何人来说都是用得到的,后者是数据科学的母语,现在的人工智能是由数据科学支撑的,所以也是人工智能最重要的基础设施之一.还有就是如果你关注新闻的话,会发现很多地方准备将 Python 列入中学生的课程,好像有的省份还准备要考试,也许他提前学会了,在某个时间点也许能用得上!
2021-01-12 10:35:41 +08:00
回复了 xjy0454 创建的主题 问与答 初一学生自学编程学哪门语言好
@xjy0454 #20

我这里有个善意的提醒,虽然你的侄子主动的提出要学习编程,这个是很了不起的想法,作为成年人,应该尽力的去支持他.

但是期待不要过高,因为初中生的各项能力都有限,编程这件事情是很困难的,尤其是编写实用化的程序,可能这件事情比在班里考第 1 名难多了.

如果他决定不放弃要一直努力的话,请多给他几年时间.

如果他放弃了,或者最后没有编写出实用化的程序,那也是正常的现象.我相信即使如此,这段尝试也是很宝贵的经验和财富.

计算机系是大学中退学率最高的系,很多人就因为学不会编程而而转到别的系去了.[1]

而且即使是顶尖的大学,教授们对如何教授编程技能甚至编程技能,是不是可以被教授的,目前都感到很困惑.[2]

[1] Nearly half of students drop out of computing courses
https://www.rte.ie/news/education/2019/0213/1029434-student-drop-out-study/

[2]Ben-Menachem M . A philosophy of software design[J]. Computing reviews, 2019, 60(9):337-337.
2021-01-12 10:20:46 +08:00
回复了 xjy0454 创建的主题 问与答 初一学生自学编程学哪门语言好
我不太同意,有些人说要学好数学和物理之类的话,因为这是谁也知道的事情,但是作为初中生来说,总要有一些课外的爱好吧,能引导他学习一些编程的相关知识,丰富他的课余生活,那总比他整天去打游戏和狐朋狗友出去乱逛,要有意思的多.

比如说知乎上的那个轮子哥,他就是编程能力很强的人,在中学阶段就开始自己写程序了,这段时间的学习生涯,对于他学习数学以及后来从事程序员的工作应该是起了很大帮助的,他的个人经历可以在网上搜得到.

我认为他的这种经历是令人羡慕的,是值得去追求的.

当然前提是他是比较正常的小孩,而不是那种能够天天与枯燥的教科书和题目打交道而从不厌倦和休息的人.
2021-01-12 10:14:26 +08:00
回复了 xjy0454 创建的主题 问与答 初一学生自学编程学哪门语言好
还有就是让他了解程序员的文化,虽然程序员和普通的用户都用电脑,但使用模式和文化是完全不同的.

程序员的工作大部分依赖命令行,而不是 GUI,大多数的用户是截然相反的,能够认识到这点对于学习真正的编程非常有帮助.

一旦学了命令行,那么马上就有大量的工作可以自动化了,学习比较好的脚本语言是顺理成章的事情,对于后面的学习是非常有帮助的,如果最开始不会命令行的话,那么在 GUI 上自动化的前景就非常的困难和暗淡.

至于怎么样让他认识到这种文化我不太要清楚,因为之前也没考虑过这个问题,算是抛砖引玉吧.
2021-01-12 10:11:53 +08:00
回复了 xjy0454 创建的主题 问与答 初一学生自学编程学哪门语言好
编程是自动化的技术,所以先搞清楚你的侄子有什么工作需要自动化,然后有针对的去实现这个目标,获得编程这个副产品技能,这是个比较好的方式,比较有乐趣.

对于大部分人来说浏览器是最常用的,所以将浏览器自动化是个好主意,可以想一想有什么在网页上的操作需要更改,可以以此目标写 Chrome 扩展(JavaScript).

在这里推荐<一路编程>(Learning to Program)这本书,书中贯穿的项目就是写浏览器的扩展,针对的就是完全的新手,所以比较容易,由于作者本身不是科班出身,也是半路出家的程序员,所以他对教外行人编程很有心得.

如果他没有什么工作能够自动化,那么编程的话就比较困难,学习编程的话就比较困难,首先是没有太大的乐趣,然后是很难达到实用的水平.

如果只是要领略大概的感觉,那么学习比较出名的动态语言会非常好,例如 Python 和 JavaScript,学习的时候不要有压力,不要有太大的期待.
2021-01-12 07:59:51 +08:00
回复了 Raven316 创建的主题 问与答 怎样分辨什么是自己真正的想法
人是动物,而动物的所有行为都是由基因和外部环境决定的,没有什么自由意识,那么就更没有什么标准.

既然你能问出这个问题,我觉得你是思考过的,人没有自由意志的可能性.

你可能觉得自己脑子里有两个小儿似的,有些想法经常变,这个是正常的,因为人的大脑不是单一的整体,而是多元整体,这是每个人都有的感觉.

然后但我理解你的意思是怕被别人忽悠,那么最简单的方式就是不要偏听偏信,也不要轻易的相信没有证据,没有可靠来源的信息.

希望对你的思考有些启发.
@no1xsyzy #33

没必要,因为已经找到很完美的答案了,是我自己想出来的,在附言 3 上.

我对 fork 和 createProcess 并不了解,只是在别处看到了这个例子,直接拿来用.谢谢你补充相关的内容.
2021-01-10 20:45:36 +08:00
回复了 outyua 创建的主题 程序员 看看 CSDN 的骚操作
CSDN 这个站真的很好!每次看到搜索结果页面里大量的 CSDN 链接,那么我就知道肯定是某个地方错了,也许是搜索的地方有问题,也许是关键词有问题,这是个很好的指示器.
@aloxaf #29
谢谢参与,本来这一篇帖子的主题,并不是争论什么 Shell/语言好,而是想征集一下有没有更好的 PowerShell 写法,看来只要是类似的,关于比较帖子都会比较有争议的.

我有激动和急躁的毛病,最后犯了两个错误:

首先是那个 Length 应该是不能省略的,我当时的测试出了点问题;

其次就是字符统计也错了,我又重新尝试了一下,最长的就是那本书上的 Shell,一共是 58 个 字符,PowerShell 49 个,我看花眼了.

然后你给出的 zsh 是 40 个,夺冠了,也让我了解了 zsh 的出色的简洁性,Thanks♪(・ω・)ノ

![]( https://cdn.jsdelivr.net/gh/Andy-AO/GitHubPictureBed/img/20210110134710.png)
@msg7086 #25

赞同你的观点,这里补充几点.

PowerShell 也是脚本语言,是面向对象的,因为它是.NET 的类,和.NET 体系完全互通.

从 GitHub 的数据来看,依托于 Shell 的语言,Shell 是最流行的,其次就是 PowerShell.

考虑到之前微软的封闭战略,PowerShell 在很长一段时间内都只能用于 Windows,而这个平台中用命令行的场景很少.

但现在 PowerShell 已经可以在其他平台上使用了,而且已经完全开源,后面的发展还是很有希望的.

https://madnight.github.io/githut/#/pull_requests/2020/4

目前,大多数学 PowerShell 的人应该是.NET 或者 Windows 的系统管理员(运维人员),我学的目的主要是为了将命令行上的工作自动化.
@yannxia #24
我现在已经找到非常好的写法了,不管是从"长度",还是"操作次数",还是"最终结果的可扩展性"都优于 Shell !

之所以最初我那个命令比 Shell 繁琐,是因为我是个新手,不懂怎么样写出更好的,而那本书的作者是资深程序员.

这是最简洁优美版本,可以成功运行获取拥有最多函数的 5 个文件对象.

dir -file | sort {($_ | gc).l} | select -l 5
@venster #22
我发现还有容易,这是新的,哈哈哈.

@hanxiV2EX
这次 Shell 更繁琐了,因为 PowerShell 只需要 3 个管道操作符号.
而且最后获取的还是对象,能够进行更多的可扩展的操作.

dir -file | sort {($_ | gc).length} | select -L 5
@geelaw
谢谢你给出自己的答案,学到了很多.

@autoxbc @msg7086 @FrankHB @zhuangzhuang1988 @felixcode
嗨,伙计们,我终于想出更简洁优美的方式了,感到挺激动的.

对于我来讲,这个写法已经比 Shell 有过之而无不及了!

![]( https://cdn.jsdelivr.net/gh/Andy-AO/GitHubPictureBed/img/20210110095800.png)

dir -file | % {
$_ | sort {
($_ | cat).length
}
} | select -l 5
@FrankHB #10
> 补全也不是解决方案,因为前缀不长到一定程度,很难预测补出来的东西会是符合预期的,结果负载一大就该纠结“我这个命令到底输入到哪再补全比较好,万一不对该怎么操作”了

我说一下现在的 PowerShell 是如何解决此类问题的,目前应该有两个比较好的特性

1. 补全的时候是渲染出列表的,所以根本就不会纠结于到底要打到什么程度,因为是一目了然的
2. 根据 28 法则,大多数常用的命令,实际上只占 20%,甚至更少,PowerShell 是会学习你的历史记录给出建议的,所以很多时候打出几个字符就可以找到想要的命令,而且还可以顺便打出那些最常用的参数,这个敲一下键盘就可以完成

当然这两个特性在 Windows 自带的 PowerShell 还没有或者是没有设为默认,需要新版本,而且需要在配置中自己调一下
@nightwitch #7
谢谢你提供的宝贵信息,学习了!

阐述自己观点的同时,带有信息的来源是个很好的习惯,是普通人没有的智慧.
@zhuangzhuang1988 #9

还有就是将 C#/F#当做脚本用是怎么用的?

刚看到这句话的时候,我以为是用 PowerShell 调用写好的 C#代码,甚至做个 Cmdlet.但是我又突然想到,也许你的意思是直接当做脚本用.

F#没了解过,但 C#这么做应该是不行的,因为它高度的模仿 Java,而后者是公认的非脚本语言,程序必须要放在类当中,有个明确的入口,而且还是静态类型,这些和脚本语言都不沾边,那么我想 C#也是.

去网上大概的搜了一下,发现的确开始有这个倡议,但这还是 2019 年的事情.

[C# 9: 迈向支持脚本编程的第一步-InfoQ]( https://www.infoq.cn/article/a0raqtmupssflaouigih)

所以我想具体的了解一下,你指的是什么.
帖子是 PowerShell 挑战,没想到大部分人都不讨论 PowerShell,也许是这门脚本语言太小众了.

谢谢 @zhuangzhuang1988 提供 F#和 C#版本,这两门语言和 PowerShell 是互通的,比较复杂的操作确实适合由他们,然后由 PowerShell 组合和调用.但我觉得'画鬼符'这种说法我还是要多解释几句:

利用自动完成的特性,将所有的脚本写在一行,而且都用全称,在不熟悉的人看起来好像是'画鬼符'之类的,实际上敲击的速度很快,懂语法的人也不会觉得很乱.

而且完全可以在脚本编辑器中展开来写,都用最常见的别称,那么我认为看起来会好很多:


```PowerShell
dir $testPath -File | % {
$_ | Select -P Name, @{
l = 'Lines'; e = {
($_ | cat).Length
}
}
} | Sort -P L | Select -L 5
```

```OutPut
Name Lines
---- -----
5.txt 5
6.txt 6
7.txt 7
8.txt 8
9.txt 9
```


@autoxbc 谢谢你提供 JS 版本.不过这本书将的是'变换式编程',所以最好还是用管道 /流机制.这是个带有变量的普通写法.

@msg7086 早就听说 Ruby 很优美,谢谢你提供 Ruby 版本,开眼了!
1 ... 20  21  22  23  24  25  26  27  28  29 ... 37  
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   6006 人在线   最高记录 6543   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 33ms · UTC 02:45 · PVG 10:45 · LAX 19:45 · JFK 22:45
Developed with CodeLauncher
♥ Do have faith in what you're doing.