程序员:新手到专家的5个阶段
发布时间:2025-05-21 02:34:21 发布人:远客网络
一、程序员:新手到专家的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.针对你的行业,细分阶级,比如十个阶级?哪十个阶级?
二、如何评价程序员这个职业
1、程序员的职业生涯,和大多数其他后台专业职业一样,有一个最大的问题,即缺乏社会普遍性资源。
2、中国社会在目前的共存状态下,这种明确的规则和规则,可以掌握一般的资源,或者可以接近一般的资源,是一个专业人士能否有一个重要的先决条件来获得额外的收入。
3、这种好处不一定是金钱,更多是利益交换的机会。高级官员并不是在讨论讨论的范围,只说基层的职位:例如,政府官员有自己的能力去做各种各样的许可证,比如许可证。
4、例如,医生在住院时可以提供帮助。例如,老师们,当孩子们进入和平教育的时候,问一下就好了。至于销售汽车,可能会有更多的内部让步。即使是财产,当停车许可证有一点用处的时候。
5、对收入的占用,可能都没有程序员的高,但在生活中,只要你在这些领域里的任何一个都是无奈的,感觉也没有变富,就会明白共同资源的重要性。
6、程序员的职业目标环境和开放。美国的代码农民也是高收入阶层,不是最高的,但绝对是中产阶级。
7、在其他方面,程序员没有说最低收入水平,可以进入社会的前20%。此外,收入高,程序员的性格一般是房子,纯粹,整天在家,玩游戏最多。
8、最后,我补充说,信息时代已经进入了信息时代,因此可以看出,技术在未来变得越来越信息化,最好的行业应该是其中之一。只要你喜欢,就请大家勇敢去做吧。
三、剥削阶级的意思
剥削阶级的意思为:指占有生产资料,自己不劳动或只有附带劳动,无偿占有他人劳动成果的阶级。
在很多历史或政治中引用的“阶级”意指“具有不同身份,不同地位、财富等,不同意识形态的多个社会性群体”,通常不同阶级之间都存在压迫与被压迫的不平等关系。对于阶级的大部分学说,都是建立在认为社会存在着分裂和对立的集团,并且集团之间的对立使社会处于持久的冲突之中。
指这样一些集团,这些集团在历史上一定社会生产体系中所处的地位不同,对生产资料的关系(这种关系大部分是在法律上明文规定了的)不同,在社会劳动组织中所起的作用不同,因而领得自己所支配的那份社会财富的方式和多寡也不同。
马克思主义对阶级最经典的定义来自弗拉基米尔·伊里奇·列宁:“所谓阶级,就是这样一些大的集团,在社会劳动组织中所起的作用不同,因而领得自己所支配的那份社会财富的方式和数量也不同。所谓阶级,就是这样一些集团,由于它们在一定社会经济结构中所处的地位不同,其中一个集团能够占有另一个集团的劳动。
马克斯·韦伯认为阶级是由市场状况决定的,因此他将阶级划分为买卖双方,阶级冲突就是市场控制权的争夺。他同时还提出了“地位群体”的概念,认为除了通过经济状况划分以外,还必须通过身份、荣誉、价值观、生活方式的自我认同才能成为阶级。社会学家拉尔夫·达仁道夫则从权力分配角度把阶级划分为统治者和被统治者。
1.顶尖阶层:包括富豪、名人、政治家、企业家等,他们拥有极高的财富和权力,是社会中最有影响力的人群。
2.上层阶层:包括高级管理人员、医生、律师、教授等,他们拥有较高的收入和地位,是社会中的中产阶级。
3.中上层:包括白领职业者、自由职业者、艺术家等,他们拥有一定的经济和职业独立性,是社会中的中等收入群体。
4.中间阶层:包括蓝领职业者、小商人、服务业工作者等,他们拥有稳定的收入和职业前景,是社会中的普通大众。
5.工人阶层:包括工厂工人、农民等,他们拥有较少的经济和职业资源,是社会中的底层群体。
6.贫困阶层:包括贫困人群、失业者、残疾人等,他们生活在贫困裁头下,是社会中的最弱势群体。
7.技术人员阶层:包括程序员、工程师、教师等,他们拥有一定的专业知识和技能,是社会中的中等收入群体。
8.普通阶层:包括学生、零售业工作者、清洁工等,他们拥有较少的职业资源和经济稳定性,是社会中的普通大众。
9.边缘阶层:包括犯罪分子、无家可归者等,他们生活在社会边缘,是社会中的特殊群体。