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

1335144827487354 复制链接去分享

我女儿就是程序员,工作很忙,很辛苦哦!

0

1613344820257845 复制链接去分享

求带

0

1113718327972497 复制链接去分享

多看书,多看大神的代码,多折腾

0

1201444801932571 复制链接去分享

说的特别好,一针见血,见血封喉

0

1601474929899851 复制链接去分享

写的很好,补充点就是充实自己的同时多和老板沟通争取更多的实战机会,实战还是最锻炼人的

0

1960443753400219 复制链接去分享

第一天用

0

1844144777244148 复制链接去分享

第一天用,看看好不好

5