前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >我给2000名程序猿做了一次技术分享

我给2000名程序猿做了一次技术分享

作者头像
南风
发布2019-08-23 16:50:35
6020
发布2019-08-23 16:50:35
举报
文章被收录于专栏:Java大联盟Java大联盟

大家好,我是宁楠,很高兴今天可以在这里为大家做分享,我的分享不是讲具体的编程技术,就是把我多年以来的学习工作经验分享给各位,希望对大家有所帮助。

从我接触 Java 到现在有将近十年的时间了,我是从一名小白一路成长为技术团队负责人,走的是一条标准的技术路线,作为技术人,大家肯定都希望不断提高自己的能力,置换更优质的资源,那么如何做到这一点呢?

回顾我这些年的学习工作经历,我认为最重要的是找到正确的学习方法,什么是正确的学习方法?这个问题要因人而异,每个人都有适合自己的学习方法,今天给各位分享一下我的学习方法,大家可以做为参考。

我一共总结了 5 点。

1、一切以实践为主

我在学习新技术的时候不会把太多时间花费在理论知识上,首先会大致了解一下技术背景,知道它是做什么的,然后重点研究如何使用它,快速实现一个 Demo。

这一轮流程走下来,虽说对概念性的内容还是比较模糊,但是我已经构建起了对技术的直观认知,在此基础上再慢慢细化,就像盖房子一样,我会先把框架搭起来,再做局部细化。我们在学习的过程中一定要注意理论和实践相结合,用实践去验证理论,这样你才能真正理解概念。

拿编程举例,很多人在学习一门新技术的时候,会认认真真地读文档,我认为这不是最好的方式,我们可以先大概了解一下这门技术的基本概念,最重要的是搞清楚它能干啥,然后快速用它搭建起一个项目,随后运行,看到结果,把这个流程走通。

如果中间有什么环节不清楚,暂且跳过,先看到结果,这样我们就会对它有一个非常直观的认知,在这个基础之上,再去优化细节,完成从全局到局部的覆盖,这样更有利于把这门技术应用到实际开发中。

还有就是要学会总结,定期复盘,对自己一段时间内的学习任务做一个梳理。遇到哪些问题,解决了哪些问题,久而久之,你就形成了自己的知识体系。也许刚开始这个体系很脆弱,很简单,但随着你坚持去总结复盘,这个体系会越来越完善,越来越强大。这就是你的核心竞争力,你的内功心法,无论外界环境怎么变,任何东西到你这,都能融入你的体系,变成你自己的东西。

2、学习要以输出结果为目的

当我学完一门新技术的时候,我一定要搞出一个成果,可以是一个项目案例,也可以是一篇技术教程。因为只有时刻带着输出结果的思想去学习,才会真正有效,比如写技术教程,那么首先我必须要把所有技术点都搞清楚,吸收转化成自己的东西,然后才能输出。学习的最高境界就是输出,如果你能用自己的语言把东西给别人讲明白,那就说明你是真的掌握了。

3、把技术带入到工作场景中

这一点非常重要,当我学会一个新技术的时候,我会思考如果要用它来实现当前的需求,应该怎么做?同时会结合深度思考来做笔记,写笔记的过程也是一个输出的过程,是对思路的梳理。我们学习新技术的目的就是为了应用于工作中,时刻将技术带入到具体工作场景中,会让我们的目的性更加明确,明确了目标,学习效率才会更高。

4、提高思维认知

不同的思维认知决定了我们做事的方式,不同的人,对待同一件事的处理方式都是不同的,由你的思维认知决定,很多件事情累加起来就是你能到达的高度。

举个例子,两个刚入行的初级程序员,一个是按部就班的按照工程师的思路去完成工作,另外一个是按照架构师的思路去完成工作,虽然能力暂时达不到,但是并不妨碍站在架构师的角度去思考问题,可想而知几年之后第一个程序员最多是个高级工程师,第二个很有可能就是架构师或者 CTO。这就是思维认知带来的巨大差别。

那么如何提高思维认知呢?

唯一的途径就是多学习,多向比你层次高的人学习,他们的经验不一定全对,但一定是有用的。还有就是多读好书,有选择的阅读,多去专业权威的网站上看大佬的文章,向大佬学习。同时要多实践,把自己学到的东西通过实践去验证、优化、升级,真正转化成自己的东西。这个过程可能会很艰辛,很漫长,但是一旦自己提升一个等级之后,你的视野,思路都会是一个全新的状态。

5、把事情做到极致

之前有位读者跟我聊天,说他每天在公司的工作很单调,就是打打杂,没有一点价值,自己很苦恼。其实,看似非常简单的工作,只要你把它做好,做到极致,一样会产生很大的价值。

我想到了以前公司的一个同事,我刚到公司的时候她是个做行政的小姑娘,每天的工作就是打杂,比如管理员工的电脑,电话,帮出差的员工订机票,收集员工的报销单等等,每件事情都是看似很简单的小事,但是她把每件事都做到了极致。

换电脑的时候会把 PPT、Word 等常用的办公软件一并装好,订机票的时候如果你是从公司走会帮你叫车,填写报销单的时候会不厌其烦告诉你怎么填,帮你粘发票,复印单子,总之所有的事情都帮你想到了,你就会很轻松,她现在已经成长为公司副总,这就是把一件简单的小事做到极致所带来的变化。

同样的,我们在做事情的时候能不能也尽量把它做好做完美,写代码的时候能不能注意一下命名规范,代码缩进,能不能给该加注释的地方加上注释,写文档的时候能不能注意一下空格,标点符号,甚至你在发朋友圈的时候能不能注意一下错别字,优秀其实很简单,把每个细节做到极致,就是优秀。

以上 5 点内容是我关于学习方法的分享,通过高效的方法快速提升自己之后,我们还要学会如何在实际工作中进行应用,接下来是分享的第二部分,如何在职场中更高效的工作。

大家可以先思考一个问题,对于初入职场的新人来说,什么是最重要的?不是理论知识是否扎实,也不是你懂多少新技术。最重要的是解决问题的能力。

为什么这么说呢?从公司的角度看,招聘员工其实就是一项投资,公司花钱雇你来上班,当然是需要考虑投资回报率的,那么你最基本的职责就是要在规定的时间内完成规定的任务,这样公司才不至于亏本,你才能够继续待下去。

软件开发的不可预期性很高,你不知道什么时候会遇到哪些技术难点,也不知道解决这些难点需要花费多少时间和精力,这就要求你具备快速解决问题的能力,在短时间内把问题搞定,能保证项目的按时交付,你才是一名合格的程序员。

我在工作中常常会遇到痴迷于技术的程序员,这本身没有问题,每个程序员都应该痴迷于技术。但是需要明确的是技术是为项目服务的,也就是说能按时交付合格的项目是最重要的,技术是否高大上不那么重要,如果不能按时完成项目,连最基本的要求都做不到,何谈技术优化升级?

所以在实际工作中不要过于追求技术,一切要以实践为主。我曾经遇到过这样的同事,技术很厉害,但是喜欢在项目中炫技,把自认为好的技术强行加入到项目中,不考虑是否合适,是否会影响项目进度,想方设法也要加进去,最终的结果往往是辛苦加班很多天也没有完成任务,而别人使用相对传统的技术很快就完成了,这就是本末倒置,结果是得不偿失。

技术固然很重要,但是应该以项目为重,为项目选择最合适的技术,而不是你认为最新最好的技术,公司对项目的要求首先是能按时交付,在这个基础之上,再去考虑技术的迭代和优化。

听到这里有的人可能会说,那编程工作就很简单了,只需要掌握一些基本的技术,能完成工作就可以了,不需要学习什么新技术呀,这种理解就过于片面了。我上面说的是对一个开发者最基本的要求,或者说是最低标准,如果你希望自己的职业生涯能够呈现增长的趋势,就需要不断学习新技术,不断更新优化自己的知识体系,并且记住一点,只学有用的,什么是有用的?

一方面是你当前工作所需要具备的技能,可以更好地帮你完成工作。另外一方面是前瞻性的技术,比如未来两三年你可能需要掌握的,或者是大趋势所指向的技术。并且时刻牢记实践为王,实际开发中遇到问题,就有针对性的去学习,去把它解决掉。刚开始你的点会很零散,但是日积月累形成体系之后,看似零散的知识点都有内在关联,就会非常强大。

当你从初级开发成长为中高级开发之后,就不能仅限于完成基本的业务功能了,这样的工作没有多少含金量,干一年和干三年不会有太大的区别。打个比方,当搬砖对你来说已经是轻车熟路,非常熟练了,你就需要去思考怎么设计房子了,也就是从 CRUD 操作进阶到软件设计架构的能力。

怎样提高自己的软件架构能力呢?

第一你要具备扎实的基础知识,这是根本。

第二要有足够的项目经验,需要在项目开发中多思考,多积累,熟悉整套业务开发流程。

第三要视野开阔,技术领域的涉猎面要广,接触的东西越多,你的选择面就越大。

提高自己编程能力最直接有效的方法就是看源码,学习源码是有一定门槛的,刚开始看的时候可能会遇到很多问题,或者根本就看不懂。这个时候也不能放弃,要逼着自己看源码,第一遍第二遍完全不懂没关系,坚持看到第三第四遍的时候会发现自己好像懂了那么一点,继续坚持下去就会理解源码的思路了。

可以尝试自己写框架,不要求性能有多高,重点在于提升自己的编程思维,你自己写了,无论好坏,对于框架本身的使用一定会上一个台阶。

同时学习的阶段性很重要,时刻找准自己当前所处的位置,学自己当下最应该学习的东西,慢慢提升自己的等级,不要跟风,别人学什么你就学什么,要有选择的学习,根据自己的实际情况,有针对性的安排学习计划,来提高自己。

假如你是刚入行的初级开发,你首先应该考虑如何提高自己解决问题的能力,学习业务知识,更加高效的完成工作,而不是去学习软件架构设计,连地基都没有,怎么可能有高楼呢?

学习编程是一个从无到有,从有到精,从精到广的过程,想要做好软件开发的工作,需要不断的总结,思考,学习,不断去完善自己的知识体系。好,我今天的分享到这里就告一段落了,感谢各位的参与,预祝各位在职场上一帆风顺,早日升职加薪,完成逆袭。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-08-22,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Java大联盟 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档