5分钟学会6个阿里内部编程的方法

新入职场,公司安排一个全栈大牛带我。css

从大三起,自学了大概半年,感受还不错,比传统的老师授课模式效果好多了。在这个过程当中我领悟了一个道理:java

学习说到底仍是本身的事,有人教天然好,可是主要仍是依赖本身下功夫。程序员

事实上,今天我仍是这么认为的,因此当初对于公司的安排我不觉得意。没有想到,在三个月后前辈给了我两个意外:算法

  1. 他刷新了我对学习编程的认识。
  2. 他在我入职三个月后离职了。

工做已经半年了,我在实践中不断反思他说过的话,也逐渐能明白他当时的意思,如今作一下总结。编程

注重实践,理解放后面

工做中会遇到各类难题,而后我去找前辈请教时, 经常会被前辈说问了一个错误的问题,并念叨着:“注重实践,理解放后面。”学习就是对知识的理解,为何要放后面呢?咱们来剖析一下这个问题:设计模式

  1. 不必讨论原理,每一个人的理解不一样
    所谓的理解,就是对代码实现原理的理解,当前代码实现逻辑的背后每每还有源码,而源码的背后还有更深的源码,因此原理自己是复杂且有相对性的。由于这种特性,致使了每一个人对原理的理解是不一样的。对于这种复杂且没有标准答案的问题,讨论起来对现实的意义很小,因此没有必要讨论。
  2. 若理解是正确的话,能够找到方法来证实,不须要跟人讨论
    代码是能够不会骗人的,因此相比于跟人讨论,无论从效率角度仍是不被误导的角度来看,用代码验证理解都是最佳选择。
  3. 没有足够的前置知识,没法谈理解
    当双方没有具有在一个层次上的相关的知识来谈原理, 每每不构成交流,只是鸡同鸭讲,浪费时间。
  4. 关注解决问题的方法才能离真相更近
    在不断遇到问题,寻找方法解决问题中,天然会对代码产生理解,而这个理解是不断变化的,也会离真相愈来愈近。
    重要的是不断找方法解决问题,在这个过程当中加深理解。
  5. 当心复述的陷阱
    我一直有一个复述的习惯, 在别人对我讲话后, 我会复述一遍以肯定是否理解正确。一般状况下这个习惯有利于提升沟通效率,在某些时候这个习惯也会有害。
    当咱们在复述的时候,会强化本身的记忆,好比大声朗读有助于记忆,能被唱出歌词也跟容易被记住。一样复述理解时会强化它们在大脑中的印象。
    以前已经讲了理解是在实践中不断变化的,因此当前的理解每每是片面的,而这些片面的理解有可能阻碍咱们以后正确得理解代码。
    因此咱们应该重视重现方法而不是复述原理,由于复述原理可能会强化咱们错误的理解。

经验路线和深度路线

程序员在经历过职场的3年野蛮成长后,大致会分化为两种路线:广度路线和深度路线。架构

所谓广度路线就是在有必定基础后,将更多的精力花在接触各类不一样方面的技术或工具上。并发

所谓深度路线就是将更多的精力投入到进一步加深工做领域内的知识和能力中。框架

在实践工做中,咱们依赖的东西不少,单纯追求深度路线,并不能很好的适应不断变化的 IT 行业。编辑器

因为技术间有不少东西是相通的, 因此在学习新技术的时候,学习效率和掌握水平每每由以前已掌握的技术深度决定。而单纯追求广度路线,因为深度不够,因此新技能的能力不足以有效解决工做中的各类问题。

整体而已, 深度和广度须要平衡发展。

另外一方面, 作了几年的程序员,容易自满,再加上深度路线须要持续的钻研和实践,且很容易自觉得懂了而停滞不前,因此有些程序员再不往深度方向走了。因而成天嘴里都跑着新名词,谈着架构,可是不能解决工做中碰到的难题。

避免赶代码

如今都在追求小步快跑,快速迭代,在加上行业节奏快,老板催得紧,因此加班对程序员来讲是屡见不鲜。

尽管咱们都知道只写本身熟悉的代码,不学习,能力提不高,工资也提不高,可是面对 deadline 的压力,如何能静心钻研下代码的工做原理?

想解决工做和学习的平衡问题,首先咱们的觉察到本身是否正在赶代码以完成工做。

我有天天写日记的习惯,因此个人自我觉察方法就是天天写日记时,问问本身,是否在赶代码。

赶代码的标准以下:

  1. 直接 Copy&Paste 网上搜索到的代码,无论其中的逻辑。
    咱们常常会引用一些代码来解决问题,引用本无可厚非,可是也须要知道插入进来的这段代码究竟是在干吗,和以前本身的写法有什么不一样。
  2. 碰到问题, 试各类写法,一旦试成功后就完事了, 不考虑到底几种写法的区别。
    我这方面比较严重的是 css 代码, 只是胡乱拼凑各类参数, 而没有理解各类参数的实际做用。
  3. 只是单纯参考文档来写,不思考这个框架或工具的内部逻辑。
    好比在学习使用一个框架的时候,会在各类demo 的代码, 这时须要理解这些代码的逻辑,而不是改改能用就好了。固然不是要深刻到源码去理解,对于刚开始使用的框架,只有大致知道每一块代码是干吗用的就好了。

在察觉到本身的赶代码行为后,还须要深刻的思考下本身这么作的缘由, 这里列举下我察觉后的结果:

  1. 回避难点
    当代码中遇到难点时,应该试图弄清楚,而不是单纯找个 workgroud 的方法草草了事。
  2. 得到团队的认同
    团队的认同感其实就是信任,首先培养信任是一个长期的行为, 其次信任来自于任务的妥善完成, 只重视量而不重视质的赶代码行为显然不是一个好的信任培养策略。
  3. 享受作得快的快感
    快速写出一堆能够用的代码确实很产生快感,可是这种快感只在短时间有效。咱们应该提升快感品位,作能产生长期快感的事情。

先框架仍是先语言

咱们常常会碰到多看语言书仍是多学习框架的选择题。以前我一直以为显然语言更重要,框架总在不停的出新,而语言的变化性就小得多。
如今发现,对于程序员新手来讲,先学框架更重要。由于掌握框架后容易找到工做平台,并快速成长到能为团队产出。一个工做平台对新手程序员的成长相当重要, 至于语言和代码能力,能够在以后来补。
至于技术的选择,对新手来讲最好的方式就是跟着项目走,这样更容易实践和成长。技术和技术之间有不少是相通的,当学习到必定深度时,再转而学习其余技术也会很快。

关于工具的选择

咱们是生活在“轮子”上的一群人, 成天找轮子,比较轮子,甚至造轮子。程序员界激烈的“编辑器圣战”,“什么是最好语言”能够看出咱们对轮子的热爱。
可是咱们在折腾轮子上也浪费很多时间。总想找到一个"完美"的轮子,优雅地解决咱们全部的问题,又足够简洁。以后我明白了,关于轮子的选择,不用想那么多,也不用讨论那么多,更不不必去争论什么。
咱们只须要多尝试,而后选个大致适合本身的就好了。
别磨刀耽误了砍柴。

博客和书

读书和看博客是通常擅长阅读学习的人的经常使用渠道。那么这两种方式有什么不一样呢?

因为技术发展很快,因此书本的出版每每滞后,因此书上的有些知识实际上是过期了的。可是做者为了写一本书会积累更多,沉淀更久,因此写出来的东西也会更有深度和总结性。

所以咱们若想技术进阶, 掌握核心思想,就应该多读书。

与书本相反,博客更新很快,篇幅很短,因此一些关于新技术的讨论每每只能在博客里找到。因为篇幅有限,博客的做者只会针对一个点或几个点来阐述, 相比于书会显得浅显和片面。

所以咱们若想了解新技术或者快速入门,能够多看看博客。

今天的分享就先到这里,若是觉的对您有帮助请关注小编,持续更新程序员相关知识与一手学习资料;下次见~

推荐阅读

字节跳动总结的设计模式 PDF 火了,完整版开放分享

刷Github时发现了一本阿里大神的算法笔记!标星70.5K

若是能听懂这个网约车实战,哪怕接私活你均可以月入40K

为何阿里巴巴的程序员成长速度这么快,看完他们的内部资料我懂了

程序员达到50W年薪所须要具有的知识体系。

—小时解读并发编程三大特性

关于【暴力递归算法】你所不知道的思路

看完三件事❤️

若是你以为这篇内容对你还蛮有帮助,我想邀请你帮我三个小忙:

点赞,转发,有大家的 『点赞和评论』,才是我创造的动力。

关注公众号 『 Java斗帝 』,不按期分享原创知识。

同时能够期待后续文章ing🚀

相关文章
相关标签/搜索