转码时要注意:学东西要多花时间学“根”,少花时间学“叶”

P
ProtonKing
楼主 (北美华人网)
根,就是基础,就是原理。叶,就是在这些基础上的衍生的工具。前者变化慢,影响力大。后者变化快,影响力小。
转码要成功,这些基础要扎实:
数据结构: stack, queue, list, heap, hashmap, tree 各有什么特点,再哪些场景下适合使用。
语言基本概念: class, function, interface, abstract class, inheritance, method overloading, static method, instance method, reference vs pointer, garbage collection, statically typed vs dynamically typed, compilation vs interpretation, virtual machine, JIT (just in time compilation), stack memory vs heap memory, thread vs process vs coroutine
操作系统基本概念: 二进制,文件系统(file system), 内存管理,kernel space vs user space, linux bash, linux file permissioning (chmod), linux pipes
网络基本概念: http, tcp vs udp, web server, web request (一个web server 收到 web request 以后怎么处理,怎么返回数据的?), xml, html, javascript (typescript), 现代 javascript 怎么在本地浏览器运行的。 面试最喜欢问的问题: 你在你浏览器打入一个网页,按回车键开始,直到这个网页出现,这当中发生了些什么?
分布式系统基本概念: Database (SQL vs NoSQL), Transactions (ACID), Messaging Queues, Load Balancing, Hashing, Master-Slave, Replication, CAP theorem.
你光刷题,就算进去某个大厂,不牢牢掌握以上知识,也出不了活(除非去做哪些平台有人给你搭好,你在上面填业务逻辑就行的那种产品工程师,所谓“API Boy”, 这和software engineering 没啥关系 )。你基础打好了,用什么语言,什么框架,都是细枝末节。就好比,你知道这个世界上有个东西叫锤子,有个东西叫螺丝,有个东西叫螺帽,有个东西叫钉子,知道他们的工作原理,应用场景。你别这些没搞明白,花时间钻研某个牌子的锤子外面涂的什么颜色,把手是塑料的还是铁的,放在盒子里头朝上还是朝下,这就是学了叶子没学根,本末倒置了。
最后,哪怕失业在家,也别去肺部X光片厂。
最后贡献75道算法必刷题: https://www.techinterviewhandbook.org/grind75 必刷不是指高频题,而是指很有代表性的,对某些常用技巧和概念有强化意义的题。若能每道题背后技巧原理吃透,就算打通任督二脉了。


c
crazyeater
感谢!门外汉正在雾里看花,不知道学啥。收藏了一个个慢慢学。
f
fasionfans
what's "肺部X光片厂"?
半个马和甲
求推荐学习根的好书!和学习视频
d
doduso
lol meta get到了
e
eragshs
同意基础非常重要决定了工作效率
但大厂都有各种搭好的平台给你用,要出活主要还是靠要学得快,trouble shoot快,各种工具熟练使用,对各种平台很熟悉
A
AzureOcean
学习了 多谢楼主分享 收藏起来了
c
cherry-nancy
收藏,谢谢楼主
M
MacroMicro
根,就是基础,就是原理。叶,就是在这些基础上的衍生的工具。前者变化慢,影响力大。后者变化快,影响力小。
转码要成功,这些基础要扎实:
数据结构: stack, queue, list, heap, hashmap, tree 各有什么特点,再哪些场景下适合使用。
语言基本概念: class, function, interface, abstract class, inheritance, method overloading, static method, instance method, reference vs pointer, garbage collection, statically typed vs dynamically typed, compilation vs interpretation, virtual machine, JIT (just in time compilation), stack memory vs heap memory, thread vs process vs coroutine
操作系统基本概念: 二进制,文件系统(file system), 内存管理,kernel space vs user space, linux bash, linux file permissioning (chmod), linux pipes
网络基本概念: http, tcp vs udp, web server, web request (一个web server 收到 web request 以后怎么处理,怎么返回数据的?), xml, html, javascript (typescript), 现代 javascript 怎么在本地浏览器运行的。 面试最喜欢问的问题: 你在你浏览器打入一个网页,按回车键开始,直到这个网页出现,这当中发生了些什么?
分布式系统基本概念: Database (SQL vs NoSQL), Transactions (ACID), Messaging Queues, Load Balancing, Hashing, Master-Slave, Replication, CAP theorem.
你光刷题,就算进去某个大厂,不牢牢掌握以上知识,也出不了活(除非去做哪些平台有人给你搭好,你在上面填业务逻辑就行的那种产品工程师,所谓“API Boy”, 这和software engineering 没啥关系 )。你基础打好了,用什么语言,什么框架,都是细枝末节。就好比,你知道这个世界上有个东西叫锤子,有个东西叫螺丝,有个东西叫螺帽,有个东西叫钉子,知道他们的工作原理,应用场景。你别这些没搞明白,花时间钻研某个牌子的锤子外面涂的什么颜色,把手是塑料的还是铁的,放在盒子里头朝上还是朝下,这就是学了叶子没学根,本末倒置了。
在最后,哪怕失业在家,也别去肺部X光片厂。
ProtonKing 发表于 2022-07-29 23:31

谢谢楼主分享 点赞mark收藏
d
dunyang
讲得有理。但是有限的时间里只能选择快速提升
b
buckwheat
谢谢楼主分享
点赞mark收藏 CS
茶么么么夏
感觉就是科班出身和自学刷题的区别。自学很难这么系统学习。
e
eragshs
讲得有理。但是有限的时间里只能选择快速提升
dunyang 发表于 2022-07-30 00:31

所以楼主看不上meta啊
J
Janehr0000
Mark...
w
wfmlover
那些“根”需要重新念一个cs才能学会的
w
wx1201
多谢多谢:)
y
youarethebest
谢谢分享
d
driftyy
根,就是基础,就是原理。叶,就是在这些基础上的衍生的工具。前者变化慢,影响力大。后者变化快,影响力小。
转码要成功,这些基础要扎实:
数据结构: stack, queue, list, heap, hashmap, tree 各有什么特点,再哪些场景下适合使用。
语言基本概念: class, function, interface, abstract class, inheritance, method overloading, static method, instance method, reference vs pointer, garbage collection, statically typed vs dynamically typed, compilation vs interpretation, virtual machine, JIT (just in time compilation), stack memory vs heap memory, thread vs process vs coroutine
操作系统基本概念: 二进制,文件系统(file system), 内存管理,kernel space vs user space, linux bash, linux file permissioning (chmod), linux pipes
网络基本概念: http, tcp vs udp, web server, web request (一个web server 收到 web request 以后怎么处理,怎么返回数据的?), xml, html, javascript (typescript), 现代 javascript 怎么在本地浏览器运行的。 面试最喜欢问的问题: 你在你浏览器打入一个网页,按回车键开始,直到这个网页出现,这当中发生了些什么?
分布式系统基本概念: Database (SQL vs NoSQL), Transactions (ACID), Messaging Queues, Load Balancing, Hashing, Master-Slave, Replication, CAP theorem.
你光刷题,就算进去某个大厂,不牢牢掌握以上知识,也出不了活(除非去做哪些平台有人给你搭好,你在上面填业务逻辑就行的那种产品工程师,所谓“API Boy”, 这和software engineering 没啥关系 )。你基础打好了,用什么语言,什么框架,都是细枝末节。就好比,你知道这个世界上有个东西叫锤子,有个东西叫螺丝,有个东西叫螺帽,有个东西叫钉子,知道他们的工作原理,应用场景。你别这些没搞明白,花时间钻研某个牌子的锤子外面涂的什么颜色,把手是塑料的还是铁的,放在盒子里头朝上还是朝下,这就是学了叶子没学根,本末倒置了。
最后,哪怕失业在家,也别去肺部X光片厂。
最后贡献75道算法必刷题: https://www.techinterviewhandbook.org/grind75 必刷不是指高频题,而是指很有代表性的,对某些常用技巧和概念有强化意义的题。若能每道题背后技巧原理吃透,就算打通任督二脉了。



ProtonKing 发表于 2022-07-29 23:31

mark~~~~~~~~~~
子丑
m
manduka
感謝
b
bearcat
mark收藏,谢谢楼主
c
cottoncloud
收藏
S
SeaTac007
说句不中听的,那些注重“叶”的人,在你吃透这些之前就转management了。。。不是说楼主不对,只是还要掌握个“度”的问题,人的精力有限的
f
fl1709319
thanks for sharing
d
difensanmuyi
本科四年cs不就是学个根嘛。有空去读四年书的,谁会选择只学几周的bootcamp。
c
cuctuscat
转码就是要短平快。别被忽悠浪费大把时间啃那些八百年用不到的东西。
M
MaxReni
说句不中听的,那些注重“叶”的人,在你吃透这些之前就转management了。。。不是说楼主不对,只是还要掌握个“度”的问题,人的精力有限的
SeaTac007 发表于 2022-07-30 02:19

这种manager,技术问题一问三不知得靠底下的人撑起来才行。这就靠management的个人魅力了,如果management skill强,带着有技术的人一起腾飞,如果管理能力不行,底下人跑路了,management就抓瞎了。
f
fugua
对于一点基础都没有的人来说,至少要上四门核心课,两个学期,才能学到你说的这些基础,如果要快速转码,确实太花时间了。如果有时间多学点还是蛮好的,其实实际项目,不是做构架的,也用不到太多这些东西,
D
DaHill
mark
圆棱角
码一下
t
tingzhangsmile
感谢分享,Mark
r
redeye
谢谢分享!
x
xuening
收藏
m
meidong20
Mark一下。楼主说的很好
w
welkin25
有人工作做这么多东西吗?学基础很重要,但是也没必要像念学位一样面面俱到,找工作目标需要啥补啥
s
sundaysunday
Mark!
c
carat
感谢分享cs学习,mark!
z
zjy1986
mark
f
faye001
收藏,谢谢楼主
c
cafe1123
what's "肺部X光片厂"?
fasionfans 发表于 2022-07-29 23:39

可能是Facebook吧。
m
mu_sha
markmark
d
deng10
M
Marshmalloworld
m
me2me2
根,就是基础,就是原理。叶,就是在这些基础上的衍生的工具。前者变化慢,影响力大。后者变化快,影响力小。
转码要成功,这些基础要扎实:
数据结构: stack, queue, list, heap, hashmap, tree 各有什么特点,再哪些场景下适合使用。
语言基本概念: class, function, interface, abstract class, inheritance, method overloading, static method, instance method, reference vs pointer, garbage collection, statically typed vs dynamically typed, compilation vs interpretation, virtual machine, JIT (just in time compilation), stack memory vs heap memory, thread vs process vs coroutine
操作系统基本概念: 二进制,文件系统(file system), 内存管理,kernel space vs user space, linux bash, linux file permissioning (chmod), linux pipes
网络基本概念: http, tcp vs udp, web server, web request (一个web server 收到 web request 以后怎么处理,怎么返回数据的?), xml, html, javascript (typescript), 现代 javascript 怎么在本地浏览器运行的。 面试最喜欢问的问题: 你在你浏览器打入一个网页,按回车键开始,直到这个网页出现,这当中发生了些什么?
分布式系统基本概念: Database (SQL vs NoSQL), Transactions (ACID), Messaging Queues, Load Balancing, Hashing, Master-Slave, Replication, CAP theorem.
你光刷题,就算进去某个大厂,不牢牢掌握以上知识,也出不了活(除非去做哪些平台有人给你搭好,你在上面填业务逻辑就行的那种产品工程师,所谓“API Boy”, 这和software engineering 没啥关系 )。你基础打好了,用什么语言,什么框架,都是细枝末节。就好比,你知道这个世界上有个东西叫锤子,有个东西叫螺丝,有个东西叫螺帽,有个东西叫钉子,知道他们的工作原理,应用场景。你别这些没搞明白,花时间钻研某个牌子的锤子外面涂的什么颜色,把手是塑料的还是铁的,放在盒子里头朝上还是朝下,这就是学了叶子没学根,本末倒置了。
最后,哪怕失业在家,也别去肺部X光片厂。
最后贡献75道算法必刷题: https://www.techinterviewhandbook.org/grind75 必刷不是指高频题,而是指很有代表性的,对某些常用技巧和概念有强化意义的题。若能每道题背后技巧原理吃透,就算打通任督二脉了。



ProtonKing 发表于 2022-07-29 23:31

没错,刷进厂了才是学习的开始,编程这事儿,直觉好的,一分钟看出别人一周都找不出的bug,但直觉的的培养都是时间经验积累出来的,先把那一周的功夫下了,才能有那一分钟的直觉,别的行也不知道,这个行业的senior 都是自己坑吃坑吃填坑填出来的,没有捷径。如果进去有人带你走捷径,那人只是想敷衍你。
很多人进厂以后imposter syndrome很重,只能努力学习才能真的消除
m
me2me2
同意基础非常重要决定了工作效率
但大厂都有各种搭好的平台给你用,要出活主要还是靠要学得快,trouble shoot快,各种工具熟练使用,对各种平台很熟悉
eragshs 发表于 2022-07-29 23:51

我觉得会搜索的能力非常重要,stackoverflow能解决大部分问题,碰到问题的时候直接去搜,涉及到更深的原理就再继续搜,知其然也要知其所以然,才能提高得快
g
gokgs
楼主讲的太多了, 哈哈。 CS 本科也未必全知道。
也很难知道那么多。
c
cherryac
墙贴刘明
学什么不是。。。
S
Snowpig
写的不错!mark.
还有转码刷题到最后,题刷的差不多了,再看看那几个classic 的white paper, 然后就信马由缰,看到不熟悉的概念,就顺藤摸瓜查查,这样很多事情不见得深入,至少有个概念,以后需要的时候不至于一抹黑。
m
me2me2
写的不错!mark.
还有转码刷题到最后,题刷的差不多了,再看看那几个classic 的white paper, 然后就信马由缰,看到不熟悉的概念,就顺藤摸瓜查查,这样很多事情不见得深入,至少有个概念,以后需要的时候不至于一抹黑。
Snowpig 发表于 2022-07-30 11:23

是的,我觉得现在的学习都是由果寻因,顺藤摸瓜,不懂也能把活儿干了,但是干完活儿也花时间好好反思总结把该啃的瓜啃了才有进步
o
orangeee
data structures 看似CS的基础课, 其实真是"根基", 做高频trade的老码工告诉你, 一定要学透!学透!学透!大有实用
k
kikkomenn
说句不中听的,那些注重“叶”的人,在你吃透这些之前就转management了。。。不是说楼主不对,只是还要掌握个“度”的问题,人的精力有限的
SeaTac007 发表于 2022-07-30 02:19

but alot of them will get laid off sooner or later in a downturn
k
kikkomenn
转码就是要短平快。别被忽悠浪费大把时间啃那些八百年用不到的东西。
cuctuscat 发表于 2022-07-30 03:46

that means your work is too primitive. everybody can code/program, but not everyone can design, build, manage, scale and maintain a system. these knowledge and skill sets will determine your ceiling.
x
xiayitong
Markkkkkkkk
M
Mingzhili
回复 1楼ProtonKing的帖子
感谢🙏楼主的发言
小城往事
回复 1楼ProtonKing的帖子
说的都对,但是没啥用。人家面试的就喜欢考锤子上的漆是啥颜色,你有啥办法?
还有,这年头都不能好好说人话吗,什么肺部光片,深井冰。
j
jlos
Mark~~
i
ivoryzz
回复 1楼ProtonKing的帖子
这是练内功 功夫深的都是外形差的锁男。练功需要长时间坐着 肚子就大了 没有逼操 内功再好有屌用
w
whitesides
留着以后学习学习
s
sunconure
Mark!
i
iq136man
mark mark mark!
w
whatsup314
感谢lz分享 收藏起来以后学习
h
hellosmallworld
都是干货,收藏了,谢谢楼主。
g
goneaway
给分享干货的点个赞,其实这个在其他学科也是通用的,对的我说的就是Data science及其相关领域。
l
lala_2009
根,就是基础,就是原理。叶,就是在这些基础上的衍生的工具。前者变化慢,影响力大。后者变化快,影响力小。
转码要成功,这些基础要扎实:
数据结构: stack, queue, list, heap, hashmap, tree 各有什么特点,再哪些场景下适合使用。
语言基本概念: class, function, interface, abstract class, inheritance, method overloading, static method, instance method, reference vs pointer, garbage collection, statically typed vs dynamically typed, compilation vs interpretation, virtual machine, JIT (just in time compilation), stack memory vs heap memory, thread vs process vs coroutine
操作系统基本概念: 二进制,文件系统(file system), 内存管理,kernel space vs user space, linux bash, linux file permissioning (chmod), linux pipes
网络基本概念: http, tcp vs udp, web server, web request (一个web server 收到 web request 以后怎么处理,怎么返回数据的?), xml, html, javascript (typescript), 现代 javascript 怎么在本地浏览器运行的。 面试最喜欢问的问题: 你在你浏览器打入一个网页,按回车键开始,直到这个网页出现,这当中发生了些什么?
分布式系统基本概念: Database (SQL vs NoSQL), Transactions (ACID), Messaging Queues, Load Balancing, Hashing, Master-Slave, Replication, CAP theorem.
你光刷题,就算进去某个大厂,不牢牢掌握以上知识,也出不了活(除非去做哪些平台有人给你搭好,你在上面填业务逻辑就行的那种产品工程师,所谓“API Boy”, 这和software engineering 没啥关系 )。你基础打好了,用什么语言,什么框架,都是细枝末节。就好比,你知道这个世界上有个东西叫锤子,有个东西叫螺丝,有个东西叫螺帽,有个东西叫钉子,知道他们的工作原理,应用场景。你别这些没搞明白,花时间钻研某个牌子的锤子外面涂的什么颜色,把手是塑料的还是铁的,放在盒子里头朝上还是朝下,这就是学了叶子没学根,本末倒置了。
最后,哪怕失业在家,也别去肺部X光片厂。
最后贡献75道算法必刷题: https://www.techinterviewhandbook.org/grind75 必刷不是指高频题,而是指很有代表性的,对某些常用技巧和概念有强化意义的题。若能每道题背后技巧原理吃透,就算打通任督二脉了。



ProtonKing 发表于 2022-07-29 23:31

mark mark
V
Vinky
谢谢,收藏
b
beany
Mark....
j
jamie0421
还是要认清自己擅长的东西跟短板。。这些所谓的根,有的人即使大学学了,时间久了也就忘了(比如我)。。。有人学东西快上手快但走不深,有人开始得慢但能钻很深,其实都是有合适的工作并且能做很好的
被逼成了怨妇
mark
y
yongdong
回复 1楼ProtonKing的帖子
请问什么途径转码最快?能自学吗?
1
123zzz
Mark, 谢谢楼主!
n
narsecho
mark 收藏
c
commander
工作上要用到很多coding, 感谢分享!
y
yrwp
谢谢分享
b
blueskybaby
mark~~~~~~~~
G
Gish
谢谢分享!
l
lemonxing
mark 慢慢学习
f
fibril
楼主说的很有道理。但是对于需要转行上岸的人来说,并不现实。本来大部分人都很难实现从有这个想法到成功上岸,要是再按照楼主的这个list来严格要求自己一遍,估计更多人放弃了…老实说,那些基础概念,说得简单,听着容易,真要是想看明白或者面试遇到面试官想要在一个方面深入讨论,你就会明白,很多人考大学的时候没学计算机真的不是不想去学。🙂
z
ziyi99
mark这些技术点
S
Snowpig
楼主说的很有道理。但是对于需要转行上岸的人来说,并不现实。本来大部分人都很难实现从有这个想法到成功上岸,要是再按照楼主的这个list来严格要求自己一遍,估计更多人放弃了…老实说,那些基础概念,说得简单,听着容易,真要是想看明白或者面试遇到面试官想要在一个方面深入讨论,你就会明白,很多人考大学的时候没学计算机真的不是不想去学。🙂
fibril 发表于 2022-07-30 23:11

我觉得不一定要精通,但是
1。要知道有那个东西,以后用到的时候起码有个出发点,可以去查资料现学。
2。要知道自己什么不知道什么地方薄弱,靠刷题拿到offer 以后有意地补一下短板。
总而言之就是you know what you know, you also need to know what you don’t know.
i
iheartnyc
楼里的大妈们不用mark了,这个楼主自己都搞不清哪些是根哪些是“叶”,他所谓的“根”的深度有的只有专门研究这方面的博士才会去深入理解,有的连大一新生都会去学。
况且“多花时间学根”这种说法本身就不靠谱,作为一个非CS专业的人,你花五年都未必能把根学明白,还转什么行啊。
r
ruoyi66
Mark
P
ProtonKing
楼里的大妈们不用mark了,这个楼主自己都搞不清哪些是根哪些是“叶”,他所谓的“根”的深度有的只有专门研究这方面的博士才会去深入理解,有的连大一新生都会去学。
况且“多花时间学根”这种说法本身就不靠谱,作为一个非CS专业的人,你花五年都未必能把根学明白,还转什么行啊。
iheartnyc 发表于 2022-07-31 11:34

没说要学到博士程度,知道这些概念,你会发现对工作有如虎天翼的作用。而且我列的这些概念,没有一个牵涉到高深数学和逻辑,自己静下心来网上查查资料就整的明白 。还用五年?不过肺部x光厂的人估计确实对这些东西一窍不通,要五年也不是不可能。
s
sasasasasa
数据结构在刷题的时候顺便也就复习了。 你所谓的语言基本概念这块国内面试喜欢考,俗称八股文,牛客网上一大堆这种题,学过也会忘记细节,都是面试前大家随便背一背就可以了。像你说的垃圾回收就是国内厂高频题,但是其实人工作上没有亲手做过压测,对这块没办法理解的很深,人人都是面试前死记硬背背下来的。 操作系统不做这块根本没必要了解太深,一辈子都用不到的东西学来干嘛下葬用吗? 网络基本概念也是有个常识就行,属于八股文部分,花点时间稍微看下,就够普通面试用了。专门做网络的另说。 分布式系统,大家准备系统设计面试不就会准备这些么,除非这辈子不面试了,这和刷题一样,也是面试必考。 总结一下你说的东西就是 面试必考 + 八股文常识,本质就是 美国程序员面试考题+中国程序员面试考题集合。