关于程序员如何精进细节的三个问题。

2021-06-24 02:00:00 +08:00
 liuser666

诚心请教各位三个问题

另外奉劝跟我一样的小白,做稍微偏底层一点的东西,C 和 C++是逃不掉的,学得越熟练越好。

6062 次点击
所在节点    程序员
43 条回复
3dwelcome
2021-06-24 02:15:17 +08:00
学习最好方法,就是看高手的源代码,自己建项目仿写。看视频只是被动输入,说不定过几个月有别的事情,你就忘记七七八八了。

这时代挺好,有 github 的存在,程序员又是一群特别热爱分享技术的人群,我每次逛 github 都有新的收获,就像女生逛商场那种感觉。

提升技术总体是螺旋形上升,和爬山一样,可以选择观光电梯(直接调用开源解决方案),也可以选自己爬艰难坡道(尽可能自己弄明白底层原理)。一个理想化的码农,最少要写三十年代码吧,前路漫漫,多学点总是没错的。
liuser666
2021-06-24 02:56:07 +08:00
@3dwelcome 所以我应该多看看 awesome c ++之类的?
3dwelcome
2021-06-24 03:06:08 +08:00
@liuser666 我觉得你应该看不进,随便翻一下 chrome 源代码,就能感受到了。

身处现在信息爆炸的时代,C++这种十年磨一剑的技术,已经跟不上时代节奏了。

可能兴趣才是最好的导师。
liuser666
2021-06-24 03:31:07 +08:00
@3dwelcome 是的,确实看不下去。谢谢您的指导。
lfzyx
2021-06-24 08:54:26 +08:00
通过视频资源学编程还是转行吧,连官方文档都不通读真不要入这行了
shon
2021-06-24 09:01:36 +08:00
同有类似的困惑。但我觉得视频,文档,开源项目都是技术的不同表现形式,不管通过哪一种,目的应该是透过其掌握技术原理。当一个大蓝图已经在心里刻画出来,那么手上的键盘就只是你表达的工具了,表达的熟练程度需要时间来积累。
NoUltimate
2021-06-24 09:03:09 +08:00
安卓卡顿不是安卓的问题么,和 java 有啥关系
acmore
2021-06-24 09:06:16 +08:00
看书看视频无用,系统地学只能系统地忘。
需求驱动学习是唯一的方法。
kop1989
2021-06-24 09:15:21 +08:00
精进的唯一渠道就是解决需求。
开发程序是软件工程,是工程学,应用学。千万不要学屠龙之术来骗自己。

现在大厂的面试为了标准化已经走歪了,但你自己心里要明白。一个文学巨匠的真正水平是体现在自己的文章中,而不是体现在他能背诵多少本辞典。
kingzeus
2021-06-24 09:16:46 +08:00
学好编程语言很重要,可以让你在实现想法的时候没有阻碍。
但是编程语言很多,总有学不过来的时候。
所以编程语言很重要,但不是关键。程序员的核心能力是解决问题。老板并不会关心你的代码里变量用了拼音来命名,还是用英文来命名的
研究开源软件,最重要的是看他如何来解决问题的,如何设计系统。至于用了啥 api,这些反而没有太多借鉴意义了
读万卷书,不如行百里路。找个自己感兴趣的题目,真正的做下去,才会有进步
lulu7
2021-06-24 09:25:53 +08:00
也有些冷门视频可以深入学习,比如《程序员修炼之道》这本书的出版社合作出的系列视频: https://www.zentao.net/redirect-index-19145.html

还有本《程序员生存手册》可以考虑程序员职业的后期发展: https://www.zentao.net/redirect-index-19146.html
youyouyou0123456
2021-06-24 09:39:05 +08:00
多输入就行了,感觉你现在输入的还不够多,才会觉得找不到精进方法。光想没啥用的,多输入才能产出。
no1xsyzy
2021-06-24 09:44:01 +08:00
学而时习之,不亦悦乎?

古今异义:「习」不是「练习」而是「实践」
louisdio
2021-06-24 10:02:57 +08:00
@kingzeus 有同样的疑惑,学习了,正在尝试做自己感兴趣的项目,将兴趣保持下去。对我来说,做程序员的原动力应该是创造的乐趣,技术能力、工资的提升、都是寻找乐趣的过程中自然而然实现的。
Natsuno
2021-06-24 10:14:22 +08:00
@lfzyx
“通过视频资源学编程还是转行吧,连官方文档都不通读真不要入这行了”
也没必要这么说吧,并不是针对你个人,只是经常看到行内的一些程序员对想入行或学习编程的人说“你是这样学习的,趁早转行”,除开那些伸手党,每个人的学习方式都不一样,并不意味着看视频就比看文档低级,况且 LZ 也看了文档和书,只是不知道如何切入实际应用。毕竟大家都是普通人,不是看完文档就能直接输出项目的,视频也是一种参考资料。
to LZ
上面有老哥说的对,需求驱动学习才能有更好的理解。文档提供的是一些基础语法和 demo,如何把这些串联起来,可以通过做具体项目实现,以我个人的学习经验,在自己看完文档没有头绪,我也会去油管找一些项目的视频,从头到尾看一遍如何搭建项目,油管和 github 可以帮你搜到不少优质资源。
qwertyzzz
2021-06-24 10:15:00 +08:00
@kop1989 天天都能看到你~哥们是利物浦球迷吗
Cy1
2021-06-24 10:21:12 +08:00
安卓底层又不是 Java 写的,卡顿关 Java 什么事。。
arbit
2021-06-24 10:26:36 +08:00
@Natsuno 老哥说的很在理,我觉得每个人学习方式不同,阶段也不同,开始的时候读文档可能会枯燥,看视频会更容易入门,后期技术熟悉进步了可以继续研读文档发现视频所没讲到的,但是这种说通过视频学就转行有点过了,难道学习方式还有高低之分,看文档就会比较有优越性吗
zen1
2021-06-24 10:29:43 +08:00
1. 任何东西当深入到一定层次后资料都会变少,不仅仅是程序技术。
2. 看不懂说明看得少,或者这个项目的难度已经超出了你当前的水平的极限。看得多不如写的多。而且最重要的是不要扎到细节里而出不来,宏观上看思想嘛
3. 切记眼高手低吧。怎么把实际业务抽象化,再用代码实现这就是个很高的要求了。而且几千行也就是个 demo 吧。怎么独立构建 chrome 我不知道,因为我也没有这个能力。但是我觉得一个人想做成这种规模还是挺难的,至少精力上就不够。诚如 linux 现在也是社区一起维护。
不清楚你是不是已经工作了,我觉得有实际工作经验的人可能也很少会问出这些问题,也可能是我狭隘了
最后你所追求的能力也是我希望拥有的。
x940727
2021-06-24 10:32:50 +08:00
我觉得没头没脑的看源码没有什么卵用,要说真的想精进,学好英语,去看看顶级计算机大学的公开课,比如 CMU 的 15-213 MIT 的 6.824 ,然后多看看计算机基础的书籍,多看看业界顶会的论文,然后能在工程界实践出来的框架,系统是怎么实现的,技术精进的很快的。说白了,你要先知道,为什么会有这些东西存在?就比如 MapReduce,最开始支撑这些存在的理论是什么样的,第一代版本为什么会这么设计,往后有没有对初始设计进行重构,如果有,是因为什么原因,然后又是怎么设计的。你这样就能理解大佬的思想,吸收大佬在一代代更新中汲取的经验。

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

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

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

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

© 2021 V2EX