编程书的阅读方法
最近在看一本书 《Think Python》,作者是AllenDowney,到第三版的时候,他将 Think Python 彻底开源,并转换为 Jupyter Notebook 格式,方便读者 边敲代码边阅读(Coding as you read),有意思的是,在他开源的 本书 github repo 中,有一个文件夹是 blank,这里面的 ipynb 文件和 chapters 文件夹中的文件,文件名都是一样的,唯一不一样的地方在于: blank文件夹中Jupyter notebook 中的代码部分全部删去了。
在阅读本书一周后,我知道了作者的用意:希望读者能够把书中的代码,从头到尾自己手敲一遍。
chapters 文件夹中有代码的版本和 blank 文件夹中无代码的版本之间的关系,就好像一本教科书和其对应的练习册一样,教科书里给出了源代码和答案,练习册的正文和教科书完全一样,但是把答案全部隐去了,需要读者自己动手写(动手敲)上去。
动手是掌握编程书知识的唯一路径通过我这一年多的编程实践来看,我才真正明白了:纸上阅来终觉浅,绝知此事要coding。只有自己敲了,动手了,这知识才内化 ...
大模型 AI 是人类有史以来最好的编程助教
我一直认为 AI 不能完全替代人编程,但是AI 会是人类有史以来最好的编程助教,下面这个案例就是实证。在此之前,其实我没有写过特别长的程序,顶多不超过 20 行吧,Python 书籍通常只看完第一章节就没有然后了,但是今天我写出了 50+ 行的 Python代码,成功解决了问题。
提出需求:提取A股半导体上市公司股票数据最近想研究下A股半导体上市公司都有哪些,市值、毛利率、营收等情况是怎样的。简单拉了一下半导体股票列表,去重后有将近170家,人工统计肯定费时费力(刚毕业那会儿真这么干过)。
凡是重复的流程,必定有办法提升效率。
于是打算写一个 Python 脚本,主要功能是提取A股半导体上市公司的一些数据,如收入、净利润、总市值、收入、收入占比、毛利率。
在这之前,好几次我都是直接提需求给 ChatGPT,让它帮我写脚本,这次我想尝试自己写脚本。
选数据源,探索API数据结构:雪球API首先是要选好 API 数据源,上一次美股上市公司数据提取,用的是雅虎的API-yfinance,这次经过搜索,用的是一个 GitHub 上的雪球 API。
选好API之后,需要看看里面有哪些字段,怎么取 ...
how-to-avoid-informations-overload
今天查询了一下我微信中订阅的公众号数量,竟然有 2007个公众号。为什么会订阅这么多?一个最重要的原因是FOMO(Fear Of Missing Out )心理,生怕错过任何一条自己关注领域内的信息。为什么有 FOMO,因为我本人就是做投资研究,很重要的工作就是deal source,获取第一手行业信息。
对于进入投资行业头2-3 年的新人来说,多去接触一些行业信息,有利于快速了解行业上下游怎么运转、商业模式,行业黑话等等。但是对于已经工作 7-8 年的人来说,TA 脑中已经形成了一套自己的行业框架,我觉得有必要对我的信息源加以筛选,分门别类,去粗取精。具体来说:
1.把已关注的公众号分门别类,只留下 10%(最多 100 个公众号),并且这 100 个公众号有益于自己的成长,定期要优胜劣汰。
2.加入新的信息源:国外英文世界里更好的信息源要加入到我日常的阅读信息流中,譬如好的Youtube 账号更新:这个应该放在 irreader 的专门的专栏中。
以下涉及到较多用软件、甚至编程来解决的思路,记录下来仅供参考。
第一步:提取已经关注的公众号列表微信在很多功能很受用户喜欢,但是也有限制 ...
在微软 word 软件中实现 vim 的浏览体验
1、我为什么创建这个脚本最近,我在学习麻省理工学院教授的一个课程: Missing Semester of Your CS Education,这是面向非程序员的一门课(不需要编程),用于提升我们的计算机素养(computer literacy)——通常上编程课,老师默认学生都会这些技能,因而不教,但实际上我们绝大部分人都没有系统研究过这些东西。我发现 Vim 确实是程序员和文本编辑者的“瑞士军刀”(虽然我现在还不是一个真正的程序员,但在人工智能的帮助下,我正在逐步迈向这个目标)。
Vim 在Mac 终端中编辑代码时功能非常强大,你几乎不需要用鼠标(用了鼠标反而大大降低效率)。对于其他软件,比如浏览器应用程序、Visual Studio Code,开发者们都创造了优秀的工具或插件,使其具备类似 Vim 的按键绑定和使用体验。
Chrome 和 Edge 软件:Vimium 的 Chrome 扩展非常棒。
Visual Studio Code:vim 插件提供了与终端中相同的原生 Vim 体验。
Google Doc:我推荐一个 Vim for Google Doc 的付费 Chrome ...
每个人都应该有自己的英文发音练习计划
今年进行英语阅读训练已经大半年了,我在一个叫做 Enjoy 的英语阅读软件中进行跟读练习,评估自己发音的准确程度。对于发音不准确的单词大部分都有记录,至今累计记录了 600+个单词(去重后)。
今天突发奇想,对于已经记录的单词,用数据分析的手段辅助自己更加有效率的训练。具体来说分为两个步骤:一是针对单词,输出每个单词的美式英语发音;二是将美式英语发音拆分成元音和辅音,并且统计各个元音、辅音出现的词频。
在ChatGPT的帮助下,写了两个 Python 脚本(见附录),英语词典离线文件来源于 Github 上网友已经整理好的 json 字典。
经过分析,有 500 个单词的英文发音,有100 个左右英文单词没有查询到。但是没关系,这 500 个单词也足以指导我接下来的训练。之前我隐约感觉英文 L 和 n 的发音需要注意,现在我有了更为量化的分析了。
具体来说,词频比较高的元音和辅音,之后要花更多精力练习。
也因此,我觉得市面上的英文单词书、英文发音练习计划其实并不适用于所有人,每个人应该有自己个性化、更有效率的英文发音练习计划,而大模型的出现让我们 DIY 英文发音练习计划成为可能。
1 ...
1024 节日快乐
今天是程序员的节日,今年对于我,对于很多用大模型提升效率的人来说也是意义重大的一年。因为有了 ChatGPT,我们可以用自然语言编程了,以至于我每天都要和 ChatGPT 对话很多回,远远多于现实中说的话。
今年持续提升英语阅读水平,对于语言的理解更深刻,可以看到自己确实在不断的进步(肯定是没有退步的),一个月前很难攻克的一些读音陆续攻克。下面的截图中所用到的软件其实背后也有大模型的技术加持,是很优秀的一个软件,叫做 Enjoy。
今年开始投入很多闲暇时间(坐地铁上班路上、吃饭时候)在 YouTube 上听各种英文视频,主要是MooC、MIT Open Course 等课程,半年下来,确实听力有了十足进步,目前基本不用看字幕也能知道是说的什么单词(除了印度英语,口音特别重的还比较难之外)。
练习口语方面,也找到了比较好的老师,持续提升中,预计春节前后把这一轮练完,就开始大量地读文章。
今年也是在黑盒代码水平突飞猛进的一年,或者说得更精确一点,在和 ChatGPT 交互方面有十足的进步,知道如何更好的与大模型交互,达到我想要它做的事情的目的。今年在Github 上的开源库和大模型的加持 ...
户外徒步达人指南
国庆三天徒步 40km 的南太行徒步之旅结束了,这是一次令人心旷神怡、宠辱皆忘,景色美到叹为观止的一次旅行。
在去南太行徒步之前,我多在长三角地区徒步,为期 1-2 天,包括盐帮古道、虞山、莫干山、婺源秋行、黄山等,由于时间短,沿途道路经过商业化开发已经比较成熟,也没有特别险峻的山,所以对徒步者的装备要求可以弱化,运动鞋、平常上班通行的背包都没问题(当然经常徒步的,不建议这么做)。
今年特别想去挑战一些长线,于是中秋和国庆各报了一个团,中秋节去武功山(位于江西萍乡)徒步,国庆去南太行(河南、山西交界)徒步,武功山两天20公里左右,特点是沿途海拔起伏比较大,第一天爬升 1200m,在高度上要走 W 型(多次上下);南太行 3 天 40 公里,特点是路线更野,道路基本未经开发,废弃的挂壁公路,流着小溪的河床,伸出崖壁的天梯,沿着陡峭的山峰的之字形上山路,还有 3000 多级下山台阶……可谓全方位考验你的耐力、体能,还好凭借一股毅力,完成了任务,只有个别滑倒,手上一点小伤,总体无大碍。
这篇文章分享的重点是想总结下徒步的经验和教训,以后登山徒步可以复用。下面重点讲讲登山装备及徒步注意事项。
...
零基础上手 Scratch 编程
一、学Scratch 起源近期在学习 Harvard University 的 CS50x 课程,第一节课就介绍了 Scratch(一款针对青少年的易上手的图形化编程语言,类似于苹果的 Swift),发现图形化编程挺容易上手,麻雀虽小五脏俱全:简单的或者复杂的程序都可以用类似搭积木的方式实现,而且这个编程语言、编程软件还是 MIT 媒体实验室(MIT Media Lab)开发的,一定很优秀,根据官方的报道,到 2022 年底 Scratch 全球有超过 1 亿的用户了。
第一节课程,仅用了一个小时不到的时间,就完成了 Scratch 的入门:David 教授首先展示了仅用简单几个模块就可以实现的功能(如点一下,发出猫叫 meo 音),还有一个摄像头感知模块来感知运动,进而触发meo 音的简单演示;其次,演示了几个有趣的之前的 CS50x 课程学长学姐开发的小游戏,让同学试玩,体验不错引发同学兴趣后,再展示内在的程序设计逻辑。
每一节课都有个课程作业,第一节课的课后作业,就是用 Scratch 编写一个程序,要求用到Control Flow(IF or Forever),用到自变量(va ...
a bite of dictionary
最近两天有很多意外的收获,值得记录一下。
最近听李笑来老师的演讲,提到了“寻找英文词汇中发音比较有挑战的词汇”这样的 idea,我深表认同,就我这半年朗读英语的体会是,像普通的 Hello,fine,这些日常司空见惯的英文单词,其实发音本身不存在挑战。我们纠正发音最重要的是找到日常生活中我们常用的,而在其他语言(如中文)中没有的特殊单词,将更多精力放在这里的训练,会起到事半功倍的效果。
比如对于我来说,常读错的英文单词类型有:
弹舌音 t,如 capital, battery, 在 Apple New Oxford American Dictionary字典中通常标注为“də”
schwa 的儿化短元音、儿化长元音,,如workers /ˈwɝː.kɚ/,典型的既有儿化短元音,又有长元音
中间或者末尾是 小写L 的英文单词,meal, old, cool, capital, will。
ts 在一起,如 fats
tn 在一起,这里 t 不发音,如 Martin,Clinton
tʃ,如children,question
tə,
də
然后看到了 ...
400个小时后,英文朗读仿佛新生
今天做完一半的英文朗读任务后,突发奇想,对比了下1 月刚开始读英文和现在读英文时,自己的改变。
听下来,感觉1 月的朗读者操着一口不太自信、囫囵吞枣的 Chinglish,而 400 小时后的自己仿佛“新生”一般:自信、字正腔圆、有些韵律在其中……当然还有很多不足,不过这个进步,已经给了我足够的动力继续前行。
第一个是 2024 年1 月 13 日刚开始英语朗读时录的音频:
您的浏览器不支持 audio 标签。
Script:
Why learn English?
First up, it enhances my capabilities in English speaking, listening, reading and writing. Despite 20 years of learning, I am good at English Reading but not in English Speaking. It’s a shame, I ought to seize this chance to improve.
Secondly, st ...