漫谈技术成长

引言

相信很多程序员在自己的技术成长之路上,总会遇到许许多多的难关,有些难关咬咬牙就过去了,而有点难关则需要有一定的能力,才能克服。因此,本文主要围绕技术成长 话题,为何会选择技术方向,如何有效学习,以及技术方向需要掌握哪些技能,供大家学习参考。

一. 为什么喜欢技术

在学生时代,当我第一次接触到编程的时候,我发现自己对编程总是满足浓厚的兴趣,以至于在课外时间,我都会去研究如何写代码,一直到现在。技术对我而言,到底是什么,为什么会喜欢技术?

相信每位程序员对这个问题,都有自己的回答。而我的回答主要有以下几点:

  • 做技术是一件充满兴趣的事情
  • 做技术是一件有意义的事情
  • 做技术是一件充满未来的事情

1. 做技术是一件充满兴趣的事情

不同人对不同的事情有自己独特的天赋,有的人从小就喜欢音乐,长大后成为了歌手。有的人从小喜欢体育,长大后成为了运动员。读书时期学校分班,分理科和文科,当时对我来说,文科就好比天书,无论是理解还是背诵都显得很刻板生硬,但在面对数学,物理这样的学科时,我却可以很容易地记住各类公式,仅需要有一定的理科思维,就可以在考试中取得较好的成绩。因此在技术这件事情上,我对它的看法就类比为理科,编程语言和各类框架的常用语法函数,就如同公式一样,再结合自己的理科思维,就可以轻松驾驭。因此对我而言,做技术就是为我这类有一点天赋的人"量身定做",自然而然就让我充满兴趣。

2. 做技术是一件有意义的事情

做技术对我的影响很大,首先是自己的兴趣方向之一,做起来会愿意投入时间去做,去研究其中的原理。其次做技术给我带来了一份程序员的工作,让我可以在充满竞争的时代找到自己的一份稳定。最后,做技术可以帮助别人,在工作中总有一些技术难题,当其他人都无法解决的时候,如果你能提供一些技术思路,甚至可以带领团队去解决它们,那么无疑会给你的公司和同事带来帮助。

3. 做技术是一件充满未来的事情

目前的时代是最好的时代,第三次工业革命即将来袭。无论从过去,现在,未来来看,目前都是科技人员最好的时代,投身到技术之中,也是时代对我们最好的安排。永远保持极客精神,永远保持好奇探索之心,永远保持乐观之心,未来会属于我们。

二. 有效的学习方式

既然选择了技术路线,在面对缤纷众多的各类技术栈时,相信很多程序员都会犯了难。到底应该如何学习,才能达到自己的标准呢?

1. 优先级

以开发技术栈为例,基础大于应用,原理大于框架。上层的技术应用都要以计算机作为载体,因此先学习基础,对于后续的应用学习会有很大帮助。同时在框架的学习上,如果先学习框架原理,则可以实现举一反三,往往一个原理就可以衍生出各类框架,掌握了原理,就相当于掌握了渔,而学习某个框架,只相当于抓了一套鱼。

2. 保持高效

高效学习是一种重要的学习方法,下面分享几点思路,供大家参考。首先是保持专注,找一个安静的地方,把自己今日要做的事情梳理出来,按照从易到难,从重要到一般的顺序,逐项完成。同时允许间歇性休息,保证学习时体力和精神充沛。最后是学会输出学习成果,一段总结,或者一份脑图。例如下面是我曾经总结过的某个知识点(脑图形式),通过这种形式来记录学习效果

3. 挑战自己

人如果一直呆在自己的舒适圈里,就算你天天都在做事情,也不会有成长和收获。很多人不是不努力,只是很容易陷入到一种自我感动式的努力中。重复机械性的工作,往往都比不过花半小时学习所带来的收获。例如尝试从每天一道算法题开始,每天学习一种不同的解题方法,相信很快你便能感受到自己的变化。

三. 技术方向

在技术成长之路上,我们会了解到大量的技术技能。在这个信息爆炸,技术爆炸,技术频繁更新的时代,我们每天都会面对各种各样的技术栈。虽然我们可以在工作中学习项目涉及的技术及业务内容,但通过这种方式仅仅只能接触到有效的技术内容。也就是说,大部分的技术栈往往都需要我们独立学习。因此,我们需要明确自身的技术方向及需要学习的主线内容。以下提供一些技术方向和技术资源,供大家参考学习。

1. 学习路线

<1> 基础

想学好技术,基础先打好。技术基础有很多,从大家最先接触的计算机开始,就需要先了解计算机的运行原理(计算机的体系架构,硬件软件设计),了解计算机之间如何进行通信(计算机网络)。

其次,编程语言本质是一门机器语言,它可以让我们与计算机进行有效沟通,但是仅仅只是掌握它是不够的。在工作中的某些业务场景,往往包含复杂业务逻辑和业务数据结构,需要具备一定的数据结构知识和设计模式,才能完成此类需求。

同时,学好数据库也很有必要,数据库作为企业的数据命脉,往往开发人员编写的一句不经意sql,一不小心就可能导致数据损坏或丢失,从而造成严重的生产事故。

最后,学会编程语言与技术框架后,还需要学会在项目开发中融入团队,协同合作,以满足大型迭代周期的开发需求,甚至起到事半功倍的效果。

  • 计算机基础:体系结构,操作系统,计算机网络
  • 数据结构:基础数据结构,基础算法
  • 设计模式:业务设计能力,代码设计能力
  • 编程语言:C,Java,Python等编程语言基础
  • 数据库:关系型与非关系型,主流与冷门型,各应用场景型
  • 应用框架:技术框架,业务框架
  • 团队协作能力:多模块协同,多成员协同,跨应用协同
<2> 应用能力

在企业中,业务项目是企业的生命线,而技术在其中往往扮演实现的角色。假设你是一位出色的架构师,你需要具备项目设计架构选型能力,业务需求设计能力,当项目中遇到一些充满挑战的技术难点时,你需要提供技术解决方案,以帮助技术团队顺利实现项目上线。

  • 技术架构:分布式,微服务,devops
  • 业务需求设计:核心业务场景设计
  • 技术难点方案:亿级流量网站设计,分布式事务,分布式id,缓存血崩等

2. 技术资源(网站资源)

下面提供一些技术学习的常用网站,供大家自取(定期更新),主要包括技术基础和应用能力,希望对大家的技术成长有所帮助

四. 总结

学习从来都不是一蹴而就的,而是日积月累长此以往。作家格拉德威尔曾提出,要在某个领域成为专家或达到世界级水平,需投入大约10000小时的练习。种一棵树,最好是十年前,其次是现在,所以,努力请趁早。最后,也祝大家都能在自己的技术方向上取得想要的成长!

  • 19
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值