导航:首页 > 程序命令 > 程序员的3个阶段

程序员的3个阶段

发布时间:2022-09-26 11:23:11

程序员:新手到专家的5个阶段

程序员需要 不断的学习

不仅仅是学习 新技术 ,还包括应用的 问题域 ,用户的奇思妙想,同事的古怪习惯,行业的八卦 新闻 和项目演进的重要特征

我们必须学习学习再学习,持续不断的学习,然后把学习成果 应用到解决 日常遇到的一切新旧问题上

新手在该技能领域经验很少或者 根本没有经验 ,这里提到的经验,指的是通过实施这项技术促进了 思维的改变

举个反例:

可能一个开发人员声称拥有 十年经验 ,但实际上只是一年的经验 重复了九次 ,那么这不算是经验

引申问题:

一年有365天,你是过了365天!还是只过了一天,重复了365遍?

1.新手非常 在乎他们能否成功 ,没有太多经验指导他们,他们不知道自己的行为 是对是错

2.新手不是特别的想要学习,他们只是想实现一个 立杆见影 的目标

3.他们不知道 如何应对错误 ,所以出错的时候,他们非常容易 慌乱

以上是新手的明显特征,所以跨越新手有以下几个步骤

1. 渴望成功 ,但是不要太过于执着,急功近利往往是失败的前兆, 不急不躁 的心态最好

2.没有经验就去 寻找经验 ,一个 好的老师 和一些优质的资源能够迅速把有用的经验传递给你

在亲身累计经验之前, 逆向思考,寻找经验才是核心和紧急目标

3.进行 能力测试, 可以利用第三方的题库和测试流程,标准而大众化的测试,同时也需要 自我测评 ,比如完成一个项目,自己统计整体 时间 ,自己撰写 时间轴日志 ,自己判断自己的 词汇量 和 熟练度 等

自我测评是第三方无法完成的 ,这点尤其重要,简单来说,也可以称为 自我认知 ,并且把数据 可视化

4. 兴趣是最好的老师 ,没有兴趣也是可以培养的

想要一个立竿见影的目标其实并没有错,新手恰恰需要 酷炫有趣有用 的目标才培养自己的兴趣,一个 完整的小案例 能够把所学的知识点 融会贯通

新手要做的,是一边需要沉下心来学习 零碎的知识点 ,一边整合知识点做出一个完整的效果案例,两相结合才能迅速进步

反之,一味的学习零散的知识点不去做案例,学的太多也只是 空背概念而已 ,一味的追求项目效果而不去深入内容,那么 永远不会进步 ,碰到一点改动就毫无办法了

5.不知道如何应对错误没关系,心态要冷静,并且及时的把 错误整理下来 ,学会处理错误的方法尤为重要,比如 如何正确提问 ,比如 高效引擎检索 ,比如官方帮助手册等,遇到错误并不可怕, 可怕的是找到解决错误的办法

高级新手能够多多少少摆脱 固定的规则

1.他们可以 独自尝试任务 ,但仍难以解决问题

2.他们想要快速的 获取信息 例如,当学习一门新语言或者API时,你可能会感觉到这点,你发现自己会快速 浏览文档 以寻找一个方法或参数列表,你不想在此寻根究底,或者 重温一遍基础知识

3.高级新手能够根据 过往的经验 ,逐步在正确的情境中采纳建议,但比较吃力,同时,他们能够形成一些总体原则,但不是全貌, 他们没有全面的理解,而且的确不想有

以上是高级新手的明显特征,所以跨越高级新手有以下几个步骤

1. 思考难以解决问题的原因所在 ,是哪个地方限制了你解决问题的能力?

这一点与你个人的现状有关,你正在学习的技术栈,你所做的项目,你的综合 能力和资源

简单的说 具体问题具体讨论 ,你必须对问题有深刻的认知并且 对自己有足够的了解

2.在这个追 求效率的时代 ,要去思考和学习底层原理,是一件很难的事情,因为 时间不允许

事实上绝大多数事物的不成功,就是 没有足够的时间

在时间的维度上,再无知的新手也有一个宽泛的坐标,那就是 寻找一个参数方法的时间和解析一个参数方式的时间都大致明确的

比如找到并使用某个参数方法大概需要 2分钟-10分钟 ,正常情况是5分钟,而解析一个方法原理,需要的时间是不确定的,确定的是 大于等于10分钟 ,可能是30分钟,也可能是几个小时,这 与效率不符 ,从利益上看也不划算

寻根究底是需要的,但它的 重要等级 排列在熟练了解全局内容之后

重温知识点也是如此

3.高级新手在一个熟练的框架里有所经验,有所作为,但是换了一个框架, 复用原来的知识 ,就显得生涩了

在学习的过程中,要不断的 举一反三 ,一个例子刻意练习三遍以上,一个例子做出不同的三种效果,一个例子应用在三种不同的情境等等等,学会 触类旁通

在第三阶段,从业者现在能够 建立问题的概念模型 ,并 有效 的使用它们

他们可以独立的解决自己遇到的问题, 并开始考虑如何解决新的问题 ——那些他们之前没有遇到的问题

你可能会看到,处在这一水平的人通常被认为有 主动性 和足智多谋

他们往往在团队中发挥领导作用(无论是否有正式的头衔),他们是 团队里的好人 ,既可以 指导新手 ,也不会经常骚扰专家

以上是胜任者的明显特征,所以跨越胜任者有以下几个步骤

1. 教是最好的学 ,当你可以胜任工作,可以独自解决大部分问题,已经比较 完善 了

这个时候要追求 知识的深度 ,想要进一步提升,就需要整合以前所有学习的内容,资源以及学习方法,在底层原理上,还有很多需要融汇贯通的地方, 通过教授新人和他 人,能够完善自己的知识体系,找到自己的薄弱点,以 另一个层面的角度来重新调整视野

2.学习与之 相关的领域, 这些内容你不一定会用到,或者不是在你的职责范围之内,但是学习之后会让你的本职做的更好, 让你的知识更加全面

前端胜任之后,可以适当学习后端,也可以适当学习UI,往 全栈的方向 ,学了python之后,也可以学学java, 了解不同语言之间的优点和缺点 ,运用不同的内容适当的解决问题

对比思维,左右辩证 ,看似把时间花费在精通之外,实际上效果一样会 反馈到核心事物上

广度和深度是一个 选择题 ,在时间上,只能 二选一 ,适度就行

精通者有足够的经验, 他们知道下一步会发生什么 ,如果没有发生又需要什么

他们非常明确哪些计划需要取消,而 应该采取什么行动

处于精通者的人更像是 初级专家 ,而不是高级胜任者

1.精通者一定是 身经百战 ,给一个项目,他能在一开始就判断出这个项目需要多长时间,分为那几个步骤,需要什么人员

从一开始就是 了然于胸 ,排除可能出现的错误,剩下的只是按部就班的走正确的流程就好,达到 高效,高质量,少错误的效果

这个阶段的人,已然有了质的变化,想要如何往上跃迁,还需要另外的 质的改变

终于我们来到第5个也是 最后一个阶段 :专家

专家是各个领域知识和信息的 主要来源

他们总是不断的寻找 更好的方法 和方式去做事

他们有丰富的经验,可以在恰当的情境中选取和应用这些经验

他们 着书,写文章,做巡回演讲 ,他们是当代的 巫师

思考:

1.自我测评,你处在哪一个阶段?

2.如何做才能提升到下一个阶段?

3.针对你的行业,细分阶级,比如十个阶级?哪十个阶级?

Ⅱ 程序员的成长过程中,有哪些阶段

阶段一:不知道自己不知道(Unconscious incompetence)
大学期间,我和老师做过一些小项目,自认为自己很牛,当时还去过一些公司面试做兼职,但是就是不知道为什么没有回复。那个时期的我,压根不知道自己不知道,还以为自己懂很多,现在想起自己以前就好笑,那个时候还算不上程序员,顶多只能算是个业余编程爱好者。

表现:假自信、过度承诺、满口我能行没问题、看不起其他程序员….

阶段二:知道自己不知道(Conscious incompetence)
工作后,发现自己在项目中工作时遇到困难不知道怎么解决,和身边人一比发现自己知识很欠缺,这时候知道自己技不如人,很多地方都不足,需要大补才行,这个时候就是大家所说的初级程序员阶段,这个阶段必须依靠别人指导。

表现:有点心虚、虚心学习、偷偷努力、羡慕牛人…

阶段三:知道自己知道(Conscious competence)
工作三四年后,自己的技能逐步提高,成为了项目组的技术大拿,这时候也很自信,知道自己能够解决遇到的所有问题,这时候就是高级程序员阶段了。

表现:自信、比较客观、真正承诺、有点自我…

阶段四:不知道自己知道(Unconscious competence)
工作多年后,随着自己知识的深度和广度的提高,越学发现越不懂,有时好觉得自己以前真是浪费了太多时间。虽然觉得自己还有很多需要提高,但是对工作中遇到的问题基本没有解决不了的,这个时候很多知识都自成体系,解决问题也有了自己的潜意识,有时连自己都不知道自己知道,这时候属于架构师级别了。

表现:开放、主动、好学、谦虚…

Ⅲ 浙江北大青鸟:java程序员入门需要经历的阶段

随着互联网的不断发展,java编程开发程序员的需求量也是不断的增加的,而今天我们就一起来了解一下,成为一个专业的java程序员都有哪些阶段。
一、新手如果你是新手阶段,全面、扎实地掌握语言的基本要素是当务之急。
你可以在正规的指导下飞速进步,并培养出良好的编码习惯。
然后可以再结合专栏,看看Java技术领域典型的、长期的热点话题,了解业界通常从哪些角度判断你的能力和水平。
二、高级新手工作了几年,整天忙于业务代码,很容易困惑下一步的方向在哪里,相当多的程序员长期停留在高级新手的阶段。
一个常见的表现就是发展成为了“面向搜索引擎”编程工程师,擅长快速利用开源项目或者以往成果,完成一些“OK”的工程任务。
这本无可厚非,职业路线很多,未必每个人都想成为底层专家。
但是,如果想在技术领域更进一步,一定要避免下面两个问题。
面对没见过的、一定规模的或者较高标准的问题时无所适从,具体表现为“领导,你看这样行吗?”。
没做过互联网高并发应用,难道就不能对并发编程有相对深入的思考吗?比如,习惯了使用Executors,你有没有思考过不同的线程池到底适合什么场景?当前的实现在未来业务量增长下可能出现什么问题?无法独立提供有说服力的、有深度的分析、设计和实现,比如业务系统运行一段时间就变慢,调整Heap大小,似乎仍然OOM。
目前团队处理的方式就是重启服务器,有没有想过去发掘真正的原因,真正去解决它?我建议不要满足于这些表面的特征,要学会用白盒的视角看待技术内部,系统性的思路掌握普遍规律。
即使未来你不在一线编码,或者未来不再使用Java,同样的思维习惯和积累也是很有帮助的。
三、胜任者那如何才能算是摆脱了高级新手的阶段呢?或者换句话说,如何成长为团队的核心成员?这取决于你能背多大的锅、填多大的坑,比如你已经可以:独立负责做GC调优,即使没有历史经验,也能给出有说服力的方案。
在JVM领域有充足的技术经验和知识储备。
全面评估评估后台变慢等问题的复杂度、风险点、解决的可能性。
对于所谓本质的思考和理解,能听懂深入的抽象观点。
并且,除了Java/JVM,还要掌握更完整的技能树,例如分布式系统设计、数据库隔离级别选型等。
掌握将“OK”的事情做到“excellent”程度的能力,IT培训http://www.kmbdqn.cn/认为不断地进行高效实践、领域的扩展和精深,我们就可以达到并超过胜任者,逐步成为精通者和专家。

Ⅳ 零基础的人怎么才能成为一名程序员呢很难吗

零基础的人怎么才能成为一名程序员呢?很难吗?因为如果你只会一门语言的话,那也是程序员,只要这门语言你学得精通,能够从事这方面的工作那你就是一个程序员了。所以我觉得题主应该首先搞清楚自己想要从事的方向,然后再找突破口去学习对应的课程。


总之,只要自己确定好目标,朝着目标一路向前,持之以恒的坚持下来,再加上多练习,多去问,相信未来的你不只是入门程序,还会成为更高级的It工作者。

阅读全文

与程序员的3个阶段相关的资料

热点内容
韩国电影我的女辅导老师 浏览:779
第二届程序员颁奖 浏览:566
日本大尺度同志电影 浏览:205
yc轴插补算法 浏览:600
哈萨克斯电影 浏览:383
蛇女跟一个人类在下水道里生了很多蛋电影 浏览:784
韩剧伦理电影儿子和继母好父亲气瘫什么剧 浏览:356
python变量和简单类型 浏览:892
手机上可以看片的网站 浏览:592
服务器黑名单怎么办 浏览:690
固件包必须解压吗 浏览:821
dll是加密 浏览:892
泰国永恒完整版百度网盘 浏览:109
android广告赚钱 浏览:373
看片在线网址资源 浏览:173
程序员如何利用ipad办公 浏览:495
少儿编程能用ipad吗 浏览:751
系统服务器地址端口从哪里找 浏览:937
如何在编译中安装路径 浏览:761
公布的命令 浏览:321