1. 聚能聊>
  2. 话题详情

程序员该怎么学习技术?

我们来好好聊聊程序员到底该怎么学习技术
image
有的求职者觉得自己没学到技术,是因为公司不给机会,或者缺乏条件:
「上次的H5让小王做了,这次的微信小程序又给了小李……完全没我什么事啊!」
「公司最大一张表才10W数据,根本用不着分库分表啊!」
……
学习技术最有效的方式是阅读、实践和交流。公司没给你安排这方面的工作,那你自己都做了些什么呢?八小时之外的时间都用在哪了?有没有读源码?有没有看原版书?有没有泡技术社区?有没有尝试最新流行的技术?有没有尝试把它们用在公司的项目上?有没有主动去接触行业里使用这些技术的团队和大牛?
image
「看文档」其实是最快的学习方法。对于自己工作中常用到的技术,抽时间把官方文档通读一遍(其实篇幅都不大),绝对收获满满。没事的时候多翻翻自己使用的框架/系统/平台的API,看看有哪些自己不知道或者没用过的功能,想想这个功能可以用来做什么,能不能解决现存的问题,或者优化当下的解决方案。

如果你是前端工程师,通读HTTP协议和ECMAScript标准,就能秒杀95%的同行,不开玩笑。

「读源码」是深入学习开源技术的唯一途径。只有理解了某个功能在底层是如何实现的,你才能真正把握它更适合用来做什么,不能用来做什么。正如不明显汽车的构造和原理,我们也能把车开好。而如果多少知道一点,开起来就会更得心应手。当车出现问题时,也不至于完全束手无策,只能蹲在路边等待救援。

你一个框架用了N年了,却连一行源码都没读过?如果它是你女朋友,估计早该分手了。

「折腾」是学习任何技术的必经之路。在有保护的环境下进行大量的试错,是最高效的学习方法。现在虚拟机技术已经那么成熟,VPS也很便宜,你为什么不分分钟弄一个,然后在上面花式作死呢?

听说过无数次rm -rf /的事故,可你居然一次都没试过?知道输出啥样子么?
image
公司给你提供的最有价值的东西,就是实战的机会。你所学习的技术,最终需要通过工作来变现。你有机会接触到真实的数据,了解真实的用户,观察真实系统是怎样运转的,积累真实的经验……

然而,所谓的机会,只属于已经提前准备好的人。不要等到工作都安排到你身上了再去学习。公司不是你的试验田,你也不该拿用户当小白鼠。公司不给你机会,那只说明你还没有准备好。

技术世界就如同一片汪洋大海,细分领域真是多如牛毛。我们只是站在其中一个小岛上,怎么确定自己该朝哪个方向进发呢?
image
学习技术不外乎以下两个方向:

1、广度:整个使用链条由哪些环节构成?每个环节的作用是什么?都有哪些类似的可替代方案?它们之间有什么区别?各自优劣点是什么?……2、深度:这个「技术 / 产品」的本质是什么?都能做什么?运作原理是什么?底层是如何实现的?可以做怎样的改进?……

不管你在做什么工作,都应该先把自己每天都要用的核心技术做到一定深度,再去拓展广度。「什么都知道一点,但都不甚了解」是最可怕的,它会让你误以为自己已经很NB了。

学习,是一辈子的事。
好了,下面问题来了
1 你是怎么学习技术的?
2 你注重深度还是广度?

参与话题

奖品区域 活动规则 已 结束

  • 奖品一

    阿里云代金券 x 3

  • 奖品二

    云栖定制电脑包 x 1

  • 奖品三

    蓝牙手环 x 1

87个回答

0

shell1314 复制链接去分享

看书,看视频,遇到难题了,百度或者谷歌

0

1073041727593411 复制链接去分享

1 你是怎么学习技术的?

身为一个程序员,我深刻的记着我们老师说的那句话。"你要学的这个东西是什么,它可以干什么,然后你为什么要学这个东西,之后再去想怎么去学这个东西"。
兵家有句话叫知己知彼,百战不殆,我们要学新东西的时候,首先要了解它是什么,可以完成什么样的工作,它有什么,这样我们的脑海里才会有这个东西的轮廓。
其次是你为什么要学这个东西,为什么这个排在第二步呢,因为有很多人(包括我自己)在学东西的时候是心血来潮,三分钟热度,看到身边的人比自己会的多,或者某种原因突然想去学这个东西,
学了一会后热度过了就不学了,因为他不知道为什么学这个东西,只是突然想学,没有目标。其实每个人都会去学习,根本不需要明确的指出到底怎么去学,不就是去技术论坛,官方文档这些地方吗,当你具备了前面两点的时候
你就会有动力有目标的去学。

2 你注重深度还是广度?

深度还是广度,个人觉着深度为主,广度为辅,一心钻研一个东西,把他学的很透彻并不是很容易,一味的想学更多的东西,对这东西了解各大概就不学了也不行。有句话叫万变不离其宗,个人认为不管什么技术
都是在某些地方有关联的,是相同的,当你学习一个东西的时候,不明白为什么这样的时候,说不定其他的东西可以让你恍然大悟。
0

llrdysh 复制链接去分享

不停接活

0

1685482299440530 复制链接去分享

「什么都知道一点,但都不甚了解」是最可怕的,它会让你误以为自己已经很NB了。
这句话太经典了

0

bwcx 复制链接去分享

啦啦啦

0

aoteman675 复制链接去分享

1 你是怎么学习技术的?
首先要给自己定个方向,比如前端、后端,还是UI设计和需求分析。看博客和写博客是入门提升最快的,加上实践一些例程,入门也快。再给自己定一个开发计划表,从demo到上线项目,共需拆分几步,从紧耦合到框架解耦,需求定个时间计划。当然有项目考核会逼迫主动学习,不会的也通宵百度出来或者花点积蓄求教大神。对于上手一个未知领域的技术,坚持最重要,不管是不是冷门领域,在顶端的都是高层次人才。

2 你注重深度还是广度?
相辅相成,深度决定了在这个领域的了解程度,相当于专才。广度则是啥都会一点,但是都是入门技能,就是半桶水的意思,这个适合搞需求分析,如果掌握好深度和广度,那就是产品经理的角色了,会在需求和技术实现方面做个全面考量。

0

vgbhfive 复制链接去分享

1 你是怎么学习技术的?
慕课网入门+熟悉,csdn、Stackflowover、Segmentfault、Google使用,Github深入。
2 你注重深度还是广度?
对于我目前来说,我一实习生,我觉得还是广度比较重要,学习多一点的内容,这样也能更好的让我先就业,至于深度,至少我以后喜欢哪一方面可以着重深入了解和应用。

0

养码青年 复制链接去分享

学习要求自己要能够坚持住。不能三天打鱼,2天晒网
其次自己要有每个阶段的计划,不能今天看这个。明天看那个
最总要的是 基础很重要

0

kissjz 复制链接去分享

1 你是怎么学习技术的?
刚学习一门技术比如MySQL的时候,我会问身边比较精通这方面知识的人给我推荐一些课程、书或者是博客,然后我自己也会网上搜索一些有口碑的课程,最后选择一个去跟着入门。
入门之后就会去看这个技术专业的书籍,然后深入却了解。
2 你注重深度还是广度?
更重视深度,新技术层出不穷,但人的精力是有限的,我会选择一两个感兴趣的去深入底层去学习。

0

1284845455343370 复制链接去分享

现在的程序设计越来越多

0

景凌凯 复制链接去分享

1 你是怎么学习技术的?

我学习技术主要还是先去了解这门技术,然后去看文档,自己敲敲demo,然后找些类似的需求,自己搞一下。
这些是初步的学习,接着就是去各种论坛,与大神们进行交流了,三人行,必有我师焉,每个人都有自己所擅长的一面,请教别人,总会有收获的。

2 你注重深度还是广度?

对我而言,我个人是认为深度优于广度,俗话说,十门通不如一门精。当对一门技术很精通的时候,用它来处理需求,就会很得心应手。如果只是了解皮毛的话,就会很难解决需求。
技多不压身,这句话是没毛病,当然尽量是把自身所有的搞精再说,毕竟技术那么多,如果你一味追求广度的话,是永远学不完的。

0

ystream 复制链接去分享

一般看一些博客,视频,书籍;我觉得自学是一回事,系统性的自学弄懂技术原理也是很重要的!

0

虎鹤大管家 复制链接去分享

写得好,看了你的描述,对我很有帮助,谢谢!

0

树叶@ 复制链接去分享

需要持之以恒的心态

0

1685144616812990 复制链接去分享

我只想问一句,怎么能让自己能懂这类知识!我应该报什么培训班还是怎么样!

0

半生鬼途 复制链接去分享

努力学习中~加油!~~~

0

奋凌枫 复制链接去分享

blog开始

0

harry_h 复制链接去分享

之前做Java, 现在做前端,两天熟悉react+antd 第三天上手公司网站开发,那个酸爽。。杠杠滴。看文档和阅读别人优秀源码是真的能快速成长,建议在半熟悉基本语法的时候直接做小项目实践,这是平时自己积累的,工作的时候如果你没能力人家根本不理你好吗,所以平时好好折腾。

0

1905343996645398 复制链接去分享

活到老学到老!加油!

0

flash_kill 复制链接去分享

除了看文档,看视频学习也是挺不错的

5