半路出家如何写好代码? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
请不要在回答技术问题时复制粘贴 AI 生成的内容
JarvenI
V2EX    程序员

半路出家如何写好代码?

  •  
  •   JarvenI 2022-05-30 14:06:01 +08:00 3913 次点击
    这是一个创建于 1233 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

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

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

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

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

    @zhazi 好的
    @lmshl 我已经吃过付费的亏了.当初上的那种付费的培训班,学完找不到工作.这辈子不会上那种当了.我是那种学完不用,很快就忘了的人,我觉得我得先看编程相关的.虽然数学这种的是基础,但是得等到看完计算机相关的再补了.
    Saxton
        5
    Saxton  
       2022-05-30 14:48:13 +08:00
    我都是强迫自己拒绝套两个 if 以上,然后你就会自己想出一大堆骚操作了
    lmshl
        6
    lmshl  
       2022-05-30 14:52:38 +08:00
    @JarvenI 看 Python 版 <SICP> 入门其实没什么问题,也更有实用价值,不用非追求 scheme 版,但课后题一定要全刷,只有刷完最后一道课后题才能真正理解 <SICP> 在讲什么,空看是没有用的
    shilianmlxg
        7
    shilianmlxg  
       2022-05-30 15:03:53 +08:00
    @lmshl 问加老哥 有没有 Javascript 版本
    JarvenI
        8
    JarvenI  
    OP
       2022-05-30 15:12:12 +08:00
    @lmshl 我看的这版没有课后题的..
    isRealLeven
        9
    isRealLeven  
       2022-05-30 15:13:52 +08:00
    出家了念好经就够了
    JarvenI
        10
    JarvenI  
    OP
       2022-05-30 15:17:58 +08:00
    @isRealLeven 和尚也得吃饭啊
    lmshl
        11
    lmshl  
       2022-05-30 15:18:09 +08:00
    @shilianmlxg 没有,但是 JS 作为披着 C 外皮的 Scheme ,你熟悉 JS 的前提下,直接看 Scheme 版 SICP 不是什么难事。7 年前我就是这么看的,当时我只是个卑微的前端。
    caisanli
        12
    caisanli  
       2022-05-30 15:30:02 +08:00
    平时喜欢看别人写的代码 有时候看着看着会惊呼一下“卧槽 还能这样写” 然后记着
    JarvenI
        13
    JarvenI  
    OP
       2022-05-30 15:52:09 +08:00
    @caisanli 这确实是个方法,不过我觉得先有个大体了解,后续看别人代码相互印证,效果应该更好些.而且有的地方,别人写的太抽象了.相对我太高阶了.不知道怎么应用.
    lujiaosama
        14
    lujiaosama  
       2022-05-30 15:58:38 +08:00
    这东西得靠自己 review, 不断优化才能写出优雅的代码. 以 js 为例, ifelse 面条式代码优化首先要提前返回错误就可以只写 if 不写 else 不用那么多分支判断,其次是可以多用三目运算符, switch case, && , || 来优化. 然后就是高阶函数的使用, 比如判断条件可以用 filter, some ,every ,find 之类的的来判断.最后是设计模式使用, 策略模式就可以规避一大堆 ifelse. 等哪天看之前的代码觉得很不优雅很多废话的时候就说明你代码功力上涨了.
    shilianmlxg
        15
    shilianmlxg  
       2022-05-30 16:21:08 +08:00
    @lujiaosama 大佬 设计模式 前端有什么书可以看吗.andyfu 他直播的时候说 他也没看过设计模式,用的时候 用多了 说他自己写的一些流程上的 其实也算一些设计模式(实际项目里面的代码设计) 但是他翻了下书里 书里并没有这种类似的.或者说 完全是南辕北辙的情况.
    fiypig
        16
    fiypig  
       2022-05-30 16:27:19 +08:00
    多看看大佬写的代码
    pppguest3962
        17
    pppguest3962  
       2022-05-30 16:36:12 +08:00
    半路出家写的代码为什么? (目的)
    为老板写,和为自己写,这是两种完全不同的哲学
    为自己写,能跑就行,再艺术都是浪费时间,除非为了绕坑
    为吃饭写,按照工具人的套路走就行了,看大佬写的,copy 再 copy ,艺术再艺术
    lujiaosama
        18
    lujiaosama  
       2022-05-30 16:42:37 +08:00
    @shilianmlxg 汗,菜鸡一枚称不上大佬.设计模式首先得知道有这么个东西和大概的用法, 然后某天写代码觉得很不优雅回想有什么方法可以优化的时候刚好觉得用这个方式改写不错就用上了. 有些人刚学了点设计模式就喜欢硬套, 其实没有必要, 尤其是前端.很多设计模式其实是早就用过了但是不知道它有名字而已.业务代码里设计模式存在感不强, 读源码的时候就比较多了.至于书, 我除了红宝书绿皮书也不知道有啥好推荐了.
    yuancoder
        19
    yuancoder  
       2022-05-30 17:02:29 +08:00
    看别人的代码
    caisanli
        20
    caisanli  
       2022-05-30 17:14:16 +08:00
    @JarvenI 多写
    gogogo1203
        21
    gogogo1203  
       2022-05-30 19:04:04 +08:00
    能用 switch 就用 switch, 避免很多 if else
    potatowish
        22
    potatowish  
       2022-05-30 19:22:39 +08:00 via iPhone
    代码写的好,要饭到老。
    史蒂芬周
    whitegerry
        23
    whitegerry  
       2022-05-30 19:38:11 +08:00 via iPhone
    @shilianmlxg 有 js 版,我在看,不过是英文的。
    HOU
        24
    HOU  
       2022-05-30 19:58:04 +08:00
    写单元测试
    yazinnnn
        25
    yazinnnn  
       2022-05-30 20:03:13 +08:00
    sicp 的公开课那么好,为啥不看?
    虽说 sicp 这本书比较难,但是还是建议看 scheme 版的书
    然后再看看 the little schemer
    tramm
        26
    tramm  
       2022-05-31 11:03:42 +08:00
    多写
    JarvenI
        27
    JarvenI  
    OP
       2022-05-31 17:33:56 +08:00
    @pppguest3962 目的肯定是养活自己,为了挣钱,不管是打工或者自己试着写项目谋生,我觉得现在写的太复杂了.让我把应该放在整体上的精力,放到了具体细节上了.所以提升下水平,好释放更多精力到整体上.
    erhsilence
        28
    erhsilence  
       2022-05-31 17:48:05 +08:00
    shilianmlxg
        29
    shilianmlxg  
       2022-06-01 09:28:49 +08:00
    @erhsilence 谢谢大佬 大佬硬邦邦
    erhsilence
        30
    erhsilence  
       2022-06-01 17:58:49 +08:00
    @shilianmlxg 看了一下,感觉都是机翻,质量不高,建议还是看英文版
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     5850 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 39ms UTC 02:57 PVG 10:57 LAX 19:57 JFK 22:57
    Do have faith in what you're doing.
    ubao snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86