请教各位关于语言学习方面的问题

2018-12-12 10:41:22 +08:00
 YuansMine

大家好,我想请问一下语言学习方面的一些细节问题。 我写过不少项目,期间使用过C/C++、Python、Go等语言,然后也经常使用bash、java等,在我看来语言在语法基础方面其实都是大同小异的,所以我尽可能多地去了解学习更多的语言,同时也在归纳总结它们的异同。但是在语言本身的库方面,我发现经常会有遗忘。比如文件操作,不同的语言会提供不同的方式,像 bash 可以直接使用 cat、grep 等,C 的 open 或 fopen 等等,C++fstream,python 的 open/read/write,我能做到在百度谷歌的帮助下,使用各种语言实现我的需求,但是,在脱离这些帮助的时候,我很难记起来这些细节,我在去年这时候坚持使用印象笔记记录了上百份笔记,用来记录各个语言各个库&模块的使用,但是,还是容易忘记。 从最近开始学习前端一段时间后,这个问题暴露愈发明显,所以我想请问各位有没有一些好用的经验对我这种情况有帮助的? (如何有效记忆各个语言的类似 web 框架、网络库等常用的基础模块的使用)

2286 次点击
所在节点    程序员
18 条回复
jasonyang9
2018-12-12 10:53:53 +08:00
各种小抄 snippets 一大堆
likuku
2018-12-12 10:56:35 +08:00
能随手搜到的就不用人脑去记忆了,人脑存储和算力有限,该用在设计和算法优化 这些方面。

脱离网络,如今码农的存在意义就大打折扣了,不过以前我是为了方便查询和一些偷懒技巧,给常用的显示器前面板上贴条(高频用到,而不想背下的 tips )和贴参考线。


实在不行,招几个专职某语言的码工。
xpresslink
2018-12-12 11:02:50 +08:00
人不能贪多嚼不烂。精通两种就不错了。
没必要背,好好学习一下英语。JB IDE 里面 Ctrl+Q Ctrl+shft+I 功能了解一下。
YuansMine
2018-12-12 11:05:22 +08:00
@likuku 了解了,我个人比较倾向依赖记忆,反而给自己增加了负担。我尝试一下给自己贴点笔记试试,非常感谢!
YuansMine
2018-12-12 11:10:19 +08:00
@xpresslink 明白!我主要开发语言是 C++和 python,但是经常会在服务器下使用 vim 进行开发,所以没有太多 IDE 的功能。而且我个人感觉语言之间的差异抛开编写风格之后实际上的差异不是很多,所以我尽量在了解更多的语言,确实也有点急功近利了。
tumi9527
2018-12-12 11:15:24 +08:00
我是使用各种手册,忘了就搜一下
kookpua
2018-12-12 11:16:48 +08:00
使用 anki 弄成小卡片
vincenttone
2018-12-12 11:20:25 +08:00
一个是用的比较少,比如你写 c++写的多,那么 c++常用的库应该还是能大概记得住的;
第二个用的频率并不高,但是偶尔会用的,比如我自己偶尔用 python,一些方法和平常用的语言有相同的方法但是不同名,就总是想不起来,这类手头有个文档会好很多,mac 下可以看看 dash 这个 app ;
最后是很少用的语言,可能语法都一知半解,库就更不好说了

个人觉得主要语言重要的倒不是类库,是语言的思维方式和抽象,比如 c/c++指针对内存的控制能力,python 的灵活能力,ruby 的动态性,php 的简便和 html 亲和力,Haskell 的函数式和类型抽象,shell 的开箱即用,lisp 的 lambda 演算和数据抽象等等吧。。。至于语言的类库,用的时候再查也无所谓吧,目前知道断网写代码的基本都是 c 开发者,毕竟 c 标准库很小,反而对锁的理解或者线程 /进程 /协程之类抽象或者操作系统性质的理解不到位引发的问题比起语言类库的记忆来讲,更加重要吧
YuansMine
2018-12-12 11:20:58 +08:00
@kookpua 好的,我试试!
YuansMine
2018-12-12 11:28:27 +08:00
@vincenttone C++和 python 常用的库我基本上能记住,事实上我在印象笔记里贴了一些常用的代码片段,在做东西之前我都会浏览一遍,在一定程度上对我是有帮助的,我也是在尽力去体会各种语言的特点,这也是促使我学习语言的动力之一,我只是在担心自己在学习这些东西的时候,不能把知识很好地组织起来反而给自己带来麻烦。感谢您的建议,我看了一下 dash 这个工具挺能满足我的需求的!
zhaogaz
2018-12-12 11:48:45 +08:00
我看过一些知名的人,有人提到了类似的问题。

大部分人(包括一部分出名的) 惯用语言就一两种。剩下的只是会一些常规的,通用的操作。而且一个语言要持续写上一两年才算熟悉。

另一个解决 遗忘的问题 就是使用 anki 卡片,强行背了。坚持下来也不容易。
xuanwu
2018-12-12 11:53:02 +08:00
应该用同一套中文命名加以封装成库 以便惠及所有中文母语的开发者
rayhy
2018-12-12 12:01:25 +08:00
https://devhints.io
可以参考这个网站,各种代码片段
likuku
2018-12-12 12:37:46 +08:00
#12 @xuanwu 又是你... 和是否母语没多大关系,

君不见 [唐诗三百首] [弟子规] 也不是人人都能倒背如流,我想讨厌记背这些[母语作品]的人也大有人在。
zxcvsh
2018-12-12 12:46:28 +08:00
1.随手能搜到的就不要记了
2.定期看看官方文档
3.整理文件夹、博客、笔记
YuansMine
2018-12-12 12:47:36 +08:00
@zhaogaz 👌
xuanwu
2018-12-12 14:13:02 +08:00
@likuku 分两部分说. 1) 封装成同一个英文 API, 包括参数等等 2) 将这个英文 API 改为中文命名.
前者肯定可以减少楼主说的重复记忆同类 API 工作量. 后者由于母语优势会更有可读性, 当然程度因人而异.
maristie
2018-12-12 16:37:50 +08:00
没听说过会去记语言细节、文件 /网络 API 操作的

要用的话查不就完事了?比起这个多花点时间学习各种 system design,记忆没必要的东西完全是事倍功半

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/516787

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX