半路出家如何写好代码?

2022-05-30 14:06:01 +08:00
 JarvenI

写代码时候感觉在些地方写的很繁琐,例如感觉需要减少 if else 语句,但却不知道怎么优化好. 还有抽象能力感觉也不够,听说 sicp 挺牛的,看了下 sicp 的 python 版,结果就是讲的 python 基础啊.

看到别的地方好像都是推荐些英文书籍,难道没有纯中文的进阶路线吗? 不想看视频,感觉视频太繁琐了.

求推荐书籍或者博客,最好中文书,英文也可.不过最好是在线的,这样能用翻译.

3573 次点击
所在节点    程序员
30 条回复
lmshl
2022-05-30 14:13:49 +08:00
emmmmm
<SICP> 被誉为神书正是因为他讲的是基础啊,是“编码”这件事的本质。程序的求值模型是怎样的,如何构造惰性 /无穷列表,以及如何自己实现解释器

我看的是 Scheme 原版 + MIT 翻译的视频,至今只看了前三章。效果显著,薪资翻了十倍,对于我一个带专来说已经是很翻身了
zhazi
2022-05-30 14:15:24 +08:00
看《重构》
lmshl
2022-05-30 14:16:57 +08:00
中文确实有进阶路线,机械工业出版社的黑皮砖头书就是进阶路线。
远离极客时间,知识星球,等一切知(割)识(韭)付(菜)费平台。打开学堂在线,离散数学 /组合数学学起来,操作系统 /算法学起来,唯有正襟危坐扎扎实实的上课 /做题,别无他法
JarvenI
2022-05-30 14:27:10 +08:00
@lmshl 那我之后去看下原版试试,python 这版基本在廖雪峰的教程里很多都包括了,没有那种豁然开朗的感觉.

@zhazi 好的
@lmshl 我已经吃过付费的亏了.当初上的那种付费的培训班,学完找不到工作.这辈子不会上那种当了.我是那种学完不用,很快就忘了的人,我觉得我得先看编程相关的.虽然数学这种的是基础,但是得等到看完计算机相关的再补了.
Saxton
2022-05-30 14:48:13 +08:00
我都是强迫自己拒绝套两个 if 以上,然后你就会自己想出一大堆骚操作了
lmshl
2022-05-30 14:52:38 +08:00
@JarvenI 看 Python 版 <SICP> 入门其实没什么问题,也更有实用价值,不用非得追求 scheme 版,但课后题一定要全刷,只有刷完最后一道课后题才能真正理解 <SICP> 在讲什么,空看是没有用的
shilianmlxg
2022-05-30 15:03:53 +08:00
@lmshl 问加老哥 有没有 javascript 版本
JarvenI
2022-05-30 15:12:12 +08:00
@lmshl 我看的这版没有课后题的..
isRealLeven
2022-05-30 15:13:52 +08:00
出家了念好经就够了
JarvenI
2022-05-30 15:17:58 +08:00
@isRealLeven 和尚也得吃饭啊
lmshl
2022-05-30 15:18:09 +08:00
@shilianmlxg 没有,但是 JS 作为披着 C 外皮的 Scheme ,你熟悉 JS 的前提下,直接看 Scheme 版 SICP 不是什么难事。7 年前我就是这么看的,当时我只是个卑微的前端。
caisanli
2022-05-30 15:30:02 +08:00
平时喜欢看别人写的代码 有时候看着看着会惊呼一下“卧槽 还能这样写” 然后记着
JarvenI
2022-05-30 15:52:09 +08:00
@caisanli 这确实是个方法,不过我觉得先有个大体了解,后续看别人代码相互印证,效果应该更好些.而且有的地方,别人写的太抽象了.相对我太高阶了.不知道怎么应用.
lujiaosama
2022-05-30 15:58:38 +08:00
这东西得靠自己 review, 不断优化才能写出优雅的代码. 以 js 为例, ifelse 面条式代码优化首先要提前返回错误就可以只写 if 不写 else 不用那么多分支判断,其次是可以多用三目运算符, switch case, && , || 来优化. 然后就是高阶函数的使用, 比如判断条件可以用 filter, some ,every ,find 之类的的来判断.最后是设计模式使用, 策略模式就可以规避一大堆 ifelse. 等哪天看之前的代码觉得很不优雅很多废话的时候就说明你代码功力上涨了.
shilianmlxg
2022-05-30 16:21:08 +08:00
@lujiaosama 大佬 设计模式 前端有什么书可以看吗.andyfu 他直播的时候说 他也没看过设计模式,用的时候 用多了 说他自己写的一些流程上的 其实也算一些设计模式(实际项目里面的代码设计) 但是他翻了下书里 书里并没有这种类似的.或者说 完全是南辕北辙的情况.
fiypig
2022-05-30 16:27:19 +08:00
多看看大佬写的代码
pppguest3962
2022-05-30 16:36:12 +08:00
半路出家写的代码为什么? (目的)
为老板写,和为自己写,这是两种完全不同的哲学
为自己写,能跑就行,再艺术都是浪费时间,除非为了绕坑
为吃饭写,按照工具人的套路走就行了,看大佬写的,copy 再 copy ,艺术再艺术
lujiaosama
2022-05-30 16:42:37 +08:00
@shilianmlxg 汗,菜鸡一枚称不上大佬.设计模式首先得知道有这么个东西和大概的用法, 然后某天写代码觉得很不优雅回想有什么方法可以优化的时候刚好觉得用这个方式改写不错就用上了. 有些人刚学了点设计模式就喜欢硬套, 其实没有必要, 尤其是前端.很多设计模式其实是早就用过了但是不知道它有名字而已.业务代码里设计模式存在感不强, 读源码的时候就比较多了.至于书, 我除了红宝书绿皮书也不知道有啥好推荐了.
yuancoder
2022-05-30 17:02:29 +08:00
看别人的代码
caisanli
2022-05-30 17:14:16 +08:00
@JarvenI 多写

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

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

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

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

© 2021 V2EX