我的技术提升之路!
Posted 程序员入门进阶
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了我的技术提升之路!相关的知识,希望对你有一定的参考价值。
这个文章分享到各个星球,收到了一些朋友的留言,让我再说下关于技术提升该怎么做。
于是,我来分享一些内容,希望能够帮助到需要的朋友。如果职场需要进阶,可以参考我的一个电子册《给小白的职场第一课》,后台回复 职场第一课 ,免费领取电子册。
技术该如何提升,该如何突破,从我自身的经验而言,基本上走过了几个阶段:
1 蛮荒
2 入门
3 进阶
4 飞跃
蛮荒阶段就是一无所知,只知道电脑怎么开机,别人写的工具怎么用,最早的启蒙是电脑报,里面很多实用的小技巧,相信很多小伙伴都干过一件事,
修改注册表。
这个阶段主要是产生了兴趣,兴趣是个人的第一生产力,好奇心就如同出浴的少女,激发你原始的渴求欲望。带着兴趣你会关注 相关的知识,比如这里的计算机编程。
大家晓得为什么学习成绩好的人更用功吗?作为成绩好的人,我分享下原因。其实很简单,只有更努力,才能维持大家对你成绩好这个印象。
所以说,外界的影响力非常关键,孟母三迁还是很有科学依据的。大学刚开学干了一件事,小事,但是却被传成了神。电脑维修中出现问题最多的是什么?
桌面不见了,不显示了,而实际桌面也是一个程序,所以调出任务管理器,禁止掉桌面,然后再启动它基本就可以解决,多次出现桌面启动后不显示,修改启动项,就是这么简单的一个操作,被传为美谈。(毕竟是给学习委员美女修电脑)
于是乎,大家有电脑问题就会找来,那么为了不让大家失望,不要把电脑大神这个帽子丢掉,只能晚上熬夜点灯偷偷恶补,用电脑搜一堆资料学习,这时候了解到了C语言。
视频|计算机速成课40集精校版大全,附百度盘下载, 限时领取!
外部刺激只能是一个影响,关键点还有兴趣爱好,以及学习能力。这三者形成正向激励,会让你的学习过程一路狂飙。
我在给别人辅导计算机的时候,最喜欢的一门课程是操作系统,其次是汇编,驱动,计算机运行逻辑,然后给讲下编程语言的编译运行过程,链接器与加载器的实现。为什么要讲这些呢?
很多人学习编程,上来就是C语言或者Java语言,然后就是开发软件工具,这是在学习里面的初级阶段,属于体验阶段。
体验阶段就是如同踩在云朵行走,虚飘飘看不清踩不实,心里空唠唠的。这是第一个阶段,就如同学习武术的第一阶段先练套招,五步拳打一下,这时候只是入门而已,类似于电影里面的预览花絮。
当我们开始了编程,就算是入门了,所以市面有很多C语言入门课程,这个阶段实际学习的是懵懵懂懂,学会一些语法,学会一些调试,调用系统API完成一些游戏,但是这个时候我们还是在现有的框架里面,没有进行领悟,只是在模仿,只知其一不知其二,比如编译器在干什么?链接器是什么,程序如何被加载起来的。
这些问题,会在入门的过程中,慢慢出现,开始变成成长过程的阻碍,于是需要解决这些问题,进入进阶状态。
我在学习C语言之后,碰巧大学课程有数字电路,两者结合我便进入了嵌入式开发,我们在选择第一门入门一个领域的时候,一定要是最小化系统,就跟我们学习一个项目,去看示例代码一样。在ARM嵌入式之前,我选择了C51单片机,花费了大约半年时间,完成了编程,以及一些外设开发,仿真过程,主要是解决一个问题,感知硬件,编程,能够知晓编写到烧录的过程,以及对外设有了概念,这时候再去理解我们电脑上的显卡,内存条就有一些更深入的理解。
遵循循序渐进的过程,从单片机进入ARM嵌入式,开始了解嵌入式操作系统,了解开发版配置uboot和外设驱动,这时候就开始学习操作系统了。而操作系统花费的时间很长,基本上大学两年多都在学这一本书。为什么一定要死磕操作系统?
这里是有原因的,操作系统是贯穿硬件软件,同时大量的设计思想,编程思想在里面,这个是计算机编程的核心,属于内功心法的一个重中之重。
我们发现公司里面的大佬,有个能力非常强,就是你说个东西,他能够快速的思考分析,推出大致流程然后给出你建议,这个能力叫做框架思维。怎么训练而来的呢?这里分享一个技巧,就是一句话总结。
学习编程一定是要分为黑盒白盒两部分,对于黑盒一定要掌握输入和输出是什么。白盒部分就是需要掌握内部细节,能够做到维护代码的本事。白盒在工作中就是你的本职工作,黑盒就是工作外的其他模块,你要有能力通过一句话总结,知道输入输出,通过沟通知道细节,从而形成一个推理流程,帮助定位解决问题。在进阶的过程,主要看的书大致分为几个维度,操作系统,反汇编,加密解密,计算机组成原理,对于数据结构没有多研究,因为这个会在操作系统里面大量出现,所以会自然而然的补充学习。
地基是尤为关键的,花费几年时间是值得的。这个过程对于自学能力而言,是有决定性的。如果要在工作中变得卓越,自学能力绝对是有个杀手锏,你会发现公司中的牛人,学习速度超快,为什么?因为对于每一种技术,都可以总结成几个步骤:
1 基础概念
2 跑实例
3 测试API
4 实践
5 总结输出文档
6 迭代
如果你去找一个大佬帮助解决问题,基本上他们都会问的是,什么问题,关于哪个模块的,操作流程,当描述完流程后,基本上拆解步骤很简单,把流程分为几部分,每个部分都看成黑盒,去找到输入输出,看每个环节的输出,和预期的是否一致,通过不断地分段卡位,定位到一个具体的代码。
这也是常用的一个技巧,通过不断地提问,找到问题点。
当我们入门之后,进阶的主要途径是实践,可以是项目,可以是需求开发,入门主要解决的是有哪些武器大致怎么用,而进阶就是在灵活运用,开始把武器进行搭配,完成一个产品。这个过程比较漫长,也不是一蹴而就的,在做项目的过程里面,会接触到所谓的设计模式,框架,
以及如何实现需求,沟通,这里就是在考验综合能力了。
不是说说什么就做什么,这里说什么到做什么,其实是需要你思考理解的,同时在做什么的时候要去思考有没有更优解以及当前实现的问题。这个过程就是在进阶。
当我们进阶完成之后,就进入了飞跃的这个阶段。练武功的时候,刚开始的花拳绣腿到不断实践积累经验,迭代出自己的拳法心得,融合一套训练方法,最终完成自己的大招。进入飞跃阶段,看待每个环节都非常清晰,基本上分为三段:
1 总括
2 分章
3 连接
先看整体,再细化成各个突破口,然后每个击破,再连接起来完成理解吸收,这个就是先囫囵,再细嚼,再消化,再吸收。
在面对庞然大物的系统时候,一定是要找到一个线索,按图索骥跟进系统,形成一个切入点。这个就如同打斗场合在缠斗中寻到对方的弱点一样。在工作中,我的成长主要来自于钻研,对于一个问题解决之后,我会去跟踪代码,总结流程,记录笔记,随后在遇到类似的直接可以参考,根据总结去卡位,快速解决问题。
同时总结文档还是一个很好的提升个人公司影响力的过程,依据影响力法则,你在公司影响的人越多你的价值越大,那么自然而然你得薪资,以及获取信息越多,参与的事务越重要,自然而然就会升职,进入公司核心员工里面。
在工作的前三年以不断的学习代码,阅读代码,做需求为主,3-6年以市场为主,思考项目,公司盈利情况,积累自己的市场竞争力(能力可以抽离公司,为后续单打独斗准备),6年后开始尝试副业,创业,利用前期积累的经验,能力,还有资源进行赚钱。
在技术提升里面,一定要考虑的一点是能够独立,完整的实现一套东西,如果你的技术过度依赖环境,公司,那么你的收益就会限制在公司,环境里面,这点一定要注意。如果你能够把赚钱的受众从公司单体移出,去思考市场人群,定位产品,那么你未来会变得更强大,也更加自由一些。
以上,希望帮助到大家。
以上是关于我的技术提升之路!的主要内容,如果未能解决你的问题,请参考以下文章
机器学习之路: python 实践 提升树 XGBoost 分类器