导航:首页 > 程序命令 > 程序员刚开始能力不足

程序员刚开始能力不足

发布时间:2023-07-18 00:24:17

A. 程序员的职业生涯通常会遇到哪些为人熟知的职业瓶颈该如何应对

会的。身边同事工资翻了一番,但自己跳槽加薪难,面试无回复,跳槽加薪不高;我想离开一线的开发工作,做一个技术管理的职位。我对自己的技术实力和项目管理能力没有信心。不愿意写一辈子的代码,想寻求职业突破(进入知名公司,拿高薪)却找不到方法,缺乏明确的职业规划。这类朋友还是比较多的,主要是想学但没有方向,这应该是广大程序员工作人群的困惑。

其实,刚开始的时候掘坦,我并不喜欢把自己的作品记录下来,更不喜欢把它写成微博,发布在公众号上。即使在公司里,我也嘲笑它,认为这只是形式主义。但在我被困住的那些年里,我一直在写作,让自己不去想那些事情。这次经历让我想到了用一种新的方式总结经验。乍一看,根据某一条目逐字逐句地输入你的工作经历似乎是在浪费时间。但在不断总结工作经验的过程中,我们对工作进行了更仔细的梳理。这实际上是一个思考的过程,在经验中寻找共性,并逐渐形成自己的工作方式。随着时间的推移,你会摆脱焦虑,找到一条适合自己的道路。

B. 刚踏入职场的程序员,如何快速踏实地提升自己的能力

程序员提升主要靠实践,跟一个完整的项目能最大限度的提升项目能力,以后找工作不用愁啊,现实工作中很难达成,你可以去找找培养这方面人才的,提升一下自己,你看看愿码ChainDesk,有你需要的

C. 一名小白程序猿怎么快速提升编程能力

一、先列三个常见的开发场景:

1、拿到一个模块详细设计文档,大部分程序员的通常做法就是开始搭建界面代码,然后从第一个按钮点击事件或页面Load事件开始写第一行业务代码。写的差不多了,就运行一下,发现哪里不是自己想的那样,就改改,直到改到是自己预想的那样。

2、做完了一个功能模块或几块相关联的功能模块,输入111asd,发现新建正常、保存正常,就提交给测试人员。测试员用测试用数据、测试场景用例来测试,发现有问题,就登记bug。对于严重的影响下一步测试的BUG,测试员就用内部IM通知这个开发人员。对于不影响继续往下测试的BUG,测试员就登记下来,等程序员有空时处理。

3、程序员一般工作不希望大家打扰,所以开发起来就是开发。等手头开发告一段落,就看看BUG库。发现有与自己有关的BUG,就从第一个BUG开始看起。就开始通过IM和测试员掰扯起来(这不是个BUG啊、业务逻辑不是你想的那样啊、我这里不能重现啊、你给的信息描述不清晰啊),于是IM几来几往,甚至跑过去当面交流一番,甚至会拉扯上产品经理一起讨论,更甚者需要项目经理或产品经理发起一个会议来集体讨论一下

这是不是很熟悉呢看这就是大部分程序员开发的三个步骤:写代码、自测、修复BUG。

二、说好的代码设计、代码测试呢看

代码设计看那不是都有开发平台么,已经固化了啊。那不是维护旧功能做完善修改呢么,又不是写新代码,只能在现有代码基础上修改啊,你又不能大幅重构。

代码测试看你丫需求讨论期、产品设计期、设计评审期那么长,都把研发项目时间占光了,就留下2个星期让我们写代码,我们哪里有时间搞那么深的测试。还想让我们搞结对编程看还想让我们搞测试驱动开发看

而且你看测试,什么功能测试、集成测试、性能测试、安全测试、安装部署测试、升级测试、迁移测试、UAT测试,一大堆测试,测试也需要很多时间。

一个项目,需求讨论、产品范围规划与评审、产品设计与设计评审占了一个半月,开发+自测就一个月,测试占了一个半月,这就4个月了啊。

三、为啥程序员写代码总是写写测测看

刚才大家也都看到了,大部分程序员都是从界面代码开始写起,而且写一写,就运行一下看看。为什么会是这种开发方式看

那是因为大部分程序员缺乏在脑子中的整体建模能力。只能做出来一点,真实的感觉一下,然后再往下。

有些是产品经理的上游就有问题,没给出业务流程图(因为产品经理也没做过业务),也没画清楚产品功能操作流程图。

为啥没给出业务流程图看因为产品经理不熟悉业务,另外,产品经理也没有流程建模能力啊。为啥没画清楚产品功能操作流程图啊看因为不会清晰表达流程啊。

很多产品经理、程序员,都缺乏分类、分层、相关、先后能力,更别说总结、洞察能力。

这是基本训练,是一个做事头脑清醒的人必备的技能,这不是一个程序员或产品经理或测试员的特定技能要求。

我经常看书就梳理书的脉络,每看一本就写一篇总结。我过去闲扯淡还梳理过水浒传、红楼梦的人物关系图呢,其实就在事事上训练自己的关联性、层次性、洞察性。

我经常面试一个人时,我会问这样的问题:逗你把我刚才说的话复述一遍,另外你再回答一下我为什么会这样看地,其实,我就在看一个人的细心记忆、完整梳理、重现能力,我也在看一个人的梳理、总结、洞察能力。

我个人写代码就喜欢先理解业务流,然后理解数据表关系,然后理解产品功能操作流,大致对功能为何这样设计、功能这样操作会取什么表、插入或更新哪些表,哪些表的状态字段是关键。

然后我写代码的时候,就根据我所理解的业务流、功能操作流、数据输入输出流,定义函数,定义函数的输入与输出。

然后,我会给函数的输入值,赋上一些固定值,跑下来看看能否跑通这几个关联函数,看看还需要怎样的新增函数,或者看看函数的输入输出参数是否满足跑通。

剩下的事,就是我填肉写详细逻辑代码了。

当然,大部分人没我这样的逻辑建模能力。怎么阅读理解也想象不出来,也没法定义函数。毕竟有逻辑建模能力的程序员都很少,100个人里有10个,已经是求爷爷告奶奶好幸运了。

那怎么办呢看

我建议是分离分工配合,这就是现实中没办法的办法。让有逻辑建模能力的人来设计函数框架、来设计工具来设计代码模板,然后让没有逻辑建模能力的人来填肉写详细逻辑代码。

我们可以先从最紧要的模块开始这么做。不紧要的模块,还让它放任自流,让熟练手程序员继续涂抹。

我曾经还让有头脑的程序员做榜样,给大家分享他是怎么规划函数的,怎么做维护性代码的代码结构改善的。但是发现效果并不佳,其他人并没有因此能做代码设计。可能逻辑建模能力是个人的基本素质,是从小到大训练成型的,不是你一个大学已经几年的人能够短时间内可以训练的。

所以啊,还是让能走的人先走,让从最紧要的模块开始这么做。

不必担心这样做后,因为过去一件事被分工(一个做代码框架一个填肉)成两个人做了会降低工作效率。我们很多的工作效率低就是因为半瓶子醋搞出来的,来回反复修改。

真是应了刘德华在电影里说的那句话:说你又不听,听又听不懂,听懂了又不做,做又做不好,做不好还不服气。

四、为什么大部分程序员不做代码测试或白盒测试或单元测试呢看

还是因为没有代码设计。因为没有函数啊。所以,一个按钮功能有多复杂,代码就有多长。我见过2000行的函数,我也见过1000多行的存储过程和视图SQL。怎么做白盒测试啊,这些代码都粘在一起呢,要测,就得从头到尾都得测。

所以啊,先学会设计函数,先写好函数,这就求爷爷告奶奶了。很多开发了5年的熟练手程序员,可能都未必会写函数。

函数的输入输出值就很有讲究。很多人都写死了,随着版本迭代,发现过去定义的函数参数不够用了,于是就新增了一个参数。然后,相关性异常就爆发了,其他关联的地方忘改了,到底哪些有关联,怎么查啊,本系统没有,没准其他系统就调用你了,你根本不知道哪个神经人曾经COPY过你的代码修吧修吧就改成了他的功能呢,而且里面的很多代码他看不懂也不敢删,只要他实现的功能正常了他也不管了。于是,你改了你这个函数,他的系统就莫名出错了。

所以,我一般会定义几个对象来做参数。另外,我也很注重函数的日志、函数的异常保护、异常抛出、异常返回。另外,我也很注重参数输入值的合法性校验。

所以啊,应该开发Leader们先制定函数编写规范最佳实践,输入输出参数怎么定义比较好,函数的返回值如何定义比较好,函数的日志记录应该怎么写比较好,函数的异常保护、异常抛出、异常返回如何写比较好。先教会一般程序员,先从会写函数开始啊。

当然,你光有一份规范,程序员们还是不理解、不实际应用啊。所以,还得Leader们做好典型的代码模板,里面是符合函数规范的代码框架,只有这样,一般程序员们才会照猫画虎适应了函数设计的编程习惯。

所以啊,我专门重新定义了leader的明确职责,其中第一个重要职责就是:负责工具/框架/模板/规范的制定,并且负责推广且普及应用落地。

你不明确定义Leader的这个重要职责,你不对这个职责做明确的KPI考核,谁尿你啊。你以为好的工具/框架/模板/规范是靠人们的热情、自发产生的么看我们还没有那么自觉高尚啊。

五、为什么大部分程序员不写注释啊看

我经常说一句话,千万别多写注释。为啥看

因为我们经常遇到的问题不是没有注释,而是更糟的是,注释和事实代码逻辑是不相符的。这就出现常见问题了:残存下来的设计文档是一个逻辑、注释是一个逻辑说明、真实代码逻辑又是一个,钟表多了,你也不知道正确时间了。

所以啊,产品文档、注释、真实代码,三者总是很难一致同步。我为了几百人研发团队能做到这个同步花了大量心血和办法,但我最终也没解决了这个问题,还把Leader们、总监们、我都搞的精疲力尽。

索性回归到一切一切的本源,代码,就是程序员的唯一产出,是最有效的产出。那么,让代码写的不用注释也能看懂,咱得奔着这个目的走啊。

为啥看不懂,不就是意大利面条式代码么,又长又互相交杂。

OK,我就规定了,每个函数不能超过50行。用这一个简单规定和静态代码检查插件,来逼迫大家尝试着写函数。有的函数属于流程函数,是串起其他函数的,有的函数就是详细实现函数,实现一个且唯一一个明确作用的。

有了流程函数和功能函数,而且每个函数不超过50行,这就比过去容易看懂了。

六、为什么大部分程序员不抽象公共函数啊看

我经常说一句话:千万别抽象公共函数啊。为啥看

因为大部分程序员缺乏抽象洞察能力。特别是有些积极热情有余、爱学习爱看书、半瓶子醋晃悠的二杆子,看了几本UML、重构、设计模式、整洁代码之道,就跃跃欲试了,还真敢给你抽象公共函数了。

一开始,他觉得80%相似,20%不相似,于是在公共函数里面简单写几个if..else做个区隔就可以。没想到,越随着版本迭代,这些功能渐渐越变越不一样了,但是这个代码已经几经人手了,而且这是一个公共函数,谁也不知道牵扯多少,所以谁也不敢大改,发现问题了就加一个if..else判断。

没想到啊没想到,这个本来当初公共的函数,现在变成了系统最大的毒瘤,最复杂的地方,谁也不敢动,除非实在万不得已,手起刀落。

所以,我平时告诫程序员,纯技术的、纯通用的,你们可以尝试搞搞抽象公共函数,对于业务的,你们还是简单粗暴的根据Leader们做的代码模板代码框架,乖乖的复制、修改、填肉吧。

你们啊,先从做模板做代码片段开始吧,咱们放到咱们内部代码片段开源库里,看谁的代码片段被别人复制的多,说明你的代码抽象设计能力越好了。那时候,我就大胆放心让你撒丫子跑了。在没有学会跑之前,给老子乖乖的复制、修改、填肉吧。

D. 作为刚入职的java程序员,一年时间内如何提升自己的实力,更有竞争力

刚入职,就意味着你有基础,但是还没有到精通,那以下这几点你要好好看看
1.用好互联网
在你入行的第一年,肯定会遇到各种各样的问题,但不用担心,这些问题其他人肯定也遇到过。
这是一个开源的时代!人们习惯将解决办法记录在网上。
越早的学会使用goole寻求帮助,问题就会越早得到解决。(但是在看别的代码或解决bug的时候,不能直接Ctrl+C,Ctrl+V,要弄明白其中的原理)
2.养成良好的编译习惯
你是公司的一员,是团队协作来完成整个项目的,也就是说你的代码不仅要你自己看得懂,更要让团队中的小伙伴和你的领导看得懂。
所以起名称规范一些,保持代码结构清晰,多写一点注释!
3.基础理论很重要
如果你只想成为一个普通的码农,基础理论知识的确没那么重要;
但当你想往上走,想成为一名专业的架构师,数据结构、操作系统原理、数据库原理等基础知识是必不可少的,这些基础知识决定了你能在技术这条路上走多久,走多远!
4.不断学习
这不是什么鸡汤,而是程序员界一个残酷的现实。就拿游戏开发者来说 一个引擎unity3D,几个月就要更新换代一次,是想,你如果不学新技术根本就无法继续操作,如果技术一年不跟进,你和unity3D就会形同陌路。任何课程、资料都该看要看。
5.你是一个开发者,而不是一个码农
很多新人在入行前几年一直以一个流水线员工的心态做业务,这样是不行的。
于自身发展来说,长期重复的工作使你接触不到核心业务,限制你能力的拓深和发展;于企业而言,企业需要的不是只会搬砖的码农,而是一个开发者。
6.多读优秀的代码
山外有山,人外有人。
世界上比你优秀的程序员太多了,想要跟着大神学习进阶,还得感谢这个开源的时代。不错的平台有很多,里面有很多优秀的程序员们的代码,只要你需要就可以阅读。
希望这些建议对你有用,有所收获。

E. 作为程序员,你的职业有哪些不足之处

在职场中最想吐槽的很多:一,不升职,不加薪。刚刚入职的时候,老板是说的天花乱坠,公司的发展前途多么好,将来会发展的如何还大,加入公司前途不可限量,将来是升职又加薪,后来,就没有后来了。没有升职,更没有加薪一带知说。二,没完没了的会议。白天基本是开会讨论需求,然后还要配合前端联调,不停地被打断,时不时地很有几个会议要参加,不是很重要的会议一边开会拿着笔记本一边写代码,有时候你会发现到下班了开发才刚刚开始,下班后终于可以安心敲代码了。

三,被迫的加桥扮班。

大概小公司的程序员不是程蠢消消序员,五分钟给你断一次,前端后台服务器,电脑坏了找你修,软件安装也找,耳机听不到了也找,真以为就这样了?各位系统使用者各种不会使用的问题找你,一天只有大家都下班了才有时间写代码。可以说为了生活,打工人早已用尽全力,一个合格的打工人必定是每天早上六七点就起床,赶首班公交车或地铁,通勤1小时以上到市中心上班,风雨无阻。

中午匆匆地敷衍一下胃,到了晚上9点过,地铁站依然是人头攒动,像是沙丁鱼罐头般。Lisa偶尔加班,当拖着沉重的身体进入地铁站时,发现身边都是加班人,那一刻,既觉得有些安慰,又觉得更加心酸。为生计努力的人,做梦都想工作能够轻松一些,根本没时间矫情,没时间去思考生活的意义

F. 程序员入行后怎么提升自己

以下是我总结的五个方面,从上到下都是个有序的渐进过程,缺一不可!希望对你有帮助!

1. 通过分析目前的现状快速定位自我

什么是分析现状?这里的分析现状就是指充分明白目前自己在公司的位置,整个市场中的价值,自己的技术程度后。

当我们发现我们的技术落后了,待遇低于市场了,或者职级没得到发展,都可以视为对自己现状的分析认知,在这种先前条件下才能去定位自己。

这种定位手段可以通过社群社交,同行交流,博客技术论坛介绍的东西对比,更粗暴的方式就是面试,这样才能更好的完全的认识自己的不足,自己的短板,才能让自己掌握哪些方面需要去学习,从而得到有效的提高。

从宏观层面讲

现从宏观来讲,包括你的职级,你所做事情的影响力。如果你是领导,那么你有一定的主导权,你就应该让这种领导效益做到最大化,提高自身效率,提高团队协作,尽可能的让下属也得到提高,只有个人和团队一起发展,才证明你在发展。

如果事实不是这样,那么你确实是需要自我反省,自我认知了,不是做到领导就能觉得自己很厉害,相反你也要和其他领导做比较,是不是他的团队,人员更稳定,产出多,口碑好呢?

如果你非领导,只是一个核心开发,那么你也必须做到你负责的东西,如果你负责的这个框架,那么应该让这个框架做到稳定,易拓展,方便调用,甚至更多!

如果你开发的这个模块不够好用,甚至造成了其它新增的问题,那么你也要重新自我认识,技术高低并不是说你能写出多牛逼的框架和项目,而是你能做到每一件事完美解决。

从微观层面讲

微观相对宏观更细化,如果是领导,你自己是否做到了一个流程中任何环节的把关,推进和收尾总结,如果你有任何一点觉得交给下属办不好的事情,甚至觉得这个人无用。

那么你就应该摒弃这个可怕的思想,别人不是给你打工,你也是在给自己打工,如果下属能完全解决你交代的问题,那么你是不是该下岗了。

作为领导,情绪控制力,沟通能力,领导力,协作力,和为人口碑,都是影响你上升的关键因素,如果有不够好的地方,那么你已经定位到自己了。

作为普通的开发,新的框架你是否了解,项目现存的业务模式你是否熟悉,交流总结你是否做到,技术文档有去编写,其他技术方向有去拓展等,都能对比出自己不足的地方,这种通过对比的方法论是提高自我审视的最好办法。

2. 拓展自己的知识网络拓扑图,持续提高知识

上面我们通过通过分析目前的现状,可以快速定位出自我 。当你更好的认清自己的时候,你是时候去改变了,如果你缺乏沟通,你可以加强交流,试着多去参加群体活动。

如果你缺乏对新技术的掌握,可以去浏览各种论坛、官微、博客等涉取,从而弥自己的不足。如果你缺乏对基础知识的掌握,你可以去扎实基础,从而让自己的水平提高。

很多时候很可能我们掌握了项目中的技能之外,就懒得去学习其他技术,这种观念不能要,永远不能将对比参考点放在自己的项目组的成员中,一定要放到同行业的竞争者中,这样你才能知道自己需要去学习哪些技术。

就拿 Android 程序员来说,RxJava、OKhttp 必须要掌握,插件,热更新技术、混合开发技术需要掌握,Java 基础、设计模式也需要懂,算法、数据结构那更不用说,学过计算机网络的人都了解网络拓扑的概念,上面这些都是我们需要拓展的知识网络拓扑图。

掌握更多的技能不代表让你去做全栈工程师,而是面对机会时你有更多的选择!目前的 Kotlin、JS, 甚至人工智能,也应该去关注!

3. 提高全量思维,不放过任何一个成长的机会

在平时的工作中,你需要放开眼界,持续提高并全面发展,甚至每一个成长的机会。举个栗子:

参加公司每一次对你有用的技术分享,从而学习到他人总结的知识。

尽可能多地参与公司的项目,从而达到量的改变,这样在领导眼里对于提升你来说就有更高更多的砝码,从小的方面来说你可以熟悉更多的业务,掌握更多的技能。

尽量去做框架和底层,杜绝一直以业务开发和上层开发为主。这样你才能在团队中脱颖而出,才能得到好的认可。

上面三点都是对内层面,相反多外层面来说,你需要时刻关注行业动态,若有更好的平台,更好的机会,不能抱着害怕甚至排斥的态度,应该勇于去挑战,去尝试。

上面的每一个做法,都有提高待遇的可能,待遇就是每一个细节的积累,最后沉淀出果实。你的综合能力提高了,薪资待遇也自然而然的提高。

4. 养成规划职业生涯意识,关注职业素养

程序员一定要养成职业规划意识,千万不能有我牛逼我就跳槽,不爽就跑路的思想,从我这几年的开发观察来看,除了学历的筛选,加上技术的参考,更多的公司慢慢考核候选人的稳定程度。

不跳槽不能说一定是敬业,跳槽也不能说这个人就一定不忠心,在同样的水平之下,企业更愿意找稳定的人,我也曾面过很多人,我也会衡量面试者的稳定程度,毕竟稳定程度也能反映出他处事的能力。

职业规划另一个含义是每一个阶段有一定的 level 提高,从初级、中级、高级,架构师、总监、CTO 都是一次飞跃,无论你是对内,还是对外,长时间无法提高,那么也该去关注职业规划了。

很多人不明白,在一家公司服务时间短,会认为不靠谱,服务时间长,但是没任何发展会被认为你不够聪明,无论哪一种,目标企业都不会喜欢。

5. 机遇和运气很重要

善于抓住机遇,有助于自己成功,上面第三点说的只是小的机会,机遇是一个大的质的改变,这个就靠自己的眼界,观察去发现了,大佬们无非就是加上自己的努力,长时间的积累,靠一个机遇稀里糊涂的成功了。

由于这个是非必须因素,这里我也不打算用过多篇幅去说明。只要你知道这个有这么个理就行了

G. 自学了python,想要从事数据分析师工作,可是代码能力不够怎么办

Python由于简单易学、语法优美、应用广泛等优点,获得了大批的粉丝。越来越多的软件工程师使用Python进行大数据处理,越来越多的科研工作者使用 Python 来进行数据分析。Python数据分析的待遇多少,具体还要看各人的能力而定。
如果你想要专业的学习Python开发,更多需要的是付出时间和精力,一般在2w左右。应该根据自己的实际需求去实地看一下,先好好试听之后,再选择适合自己的。只要努力学到真东西,前途自然不会差。

阅读全文

与程序员刚开始能力不足相关的资料

热点内容
云服务器宕机概率 浏览:227
在线买药用什么app知乎 浏览:810
ubuntu解压xz文件 浏览:674
宏杰加密时电脑关机 浏览:388
自己写单片机编译器 浏览:598
单片机按键闪烁 浏览:380
为什么icloud总是显连接服务器失败 浏览:888
如何设置域控服务器 浏览:738
想在上海租房子什么app好 浏览:184
编译程序各部分是必不可少的吗 浏览:885
编程不超过十行 浏览:763
数电编译器的作用 浏览:337
时间算法与现在有什么区别 浏览:163
7zip解压后没文件夹 浏览:903
为什么安卓送玫瑰ios收不到 浏览:9
美篇文章加密是什么意思 浏览:82
ilasm编译dll 浏览:39
呼吸灯单片机程序 浏览:954
linux域socket 浏览:250
qq分身怎么样才能加密 浏览:457