登录

立即登录

去注册

忘记密码?

验证码登录

点击获取验证码

立即登录

去注册

注册

点击获取验证码

立即注册

找回密码

点击获取验证码

确定

全部资讯

全部资讯   / 真的有百万年薪的工作?软件架构师是什么样的职位?(深度好文)

真的有百万年薪的工作?软件架构师是什么样的职位?(深度好文)

2021-12-25 13:47:40

<p style="margin-bottom: 0px; padding: 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; caret-color: rgb(51, 51, 51); color: rgb(51, 51, 51); font-family: -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;PingFang SC&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei UI&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif; font-size: 17px; letter-spacing: 0.544px; text-align: justify; text-size-adjust: auto; overflow-wrap: break-word !important;">真的有百万年薪的工作?软件架构师是什么样的职位?晋升架构师就轻松了吗?程序员如何转变为架构师?将简单聊聊管理岗位和领导岗位的区别,架构师的沟通要求、管理要求和技术要求,以及最后告诉每个程序员如何尽可能变成架构师。</p><p style="margin-bottom: 0px; padding: 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; caret-color: rgb(51, 51, 51); color: rgb(51, 51, 51); font-family: -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;PingFang SC&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei UI&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif; font-size: 17px; letter-spacing: 0.544px; text-align: justify; text-size-adjust: auto; overflow-wrap: break-word !important;">&nbsp; &nbsp; &nbsp; &nbsp; 作为一个开发者,平常跟亲戚朋友聊天的时候,他们经常问你,混到哪啦?什么时候进到管理层?几乎所有的开发者在往上爬的话,都会爬到另外一个阶段,叫做架构师这个阶段。其实很多人问我,架构师是做什么的?应该如何爬才能由一个普通的开发人员,爬到架构师这个阶段。首先我要解析一下这个架构师这个职位他是属于什么性质的工作。</p><p style="margin-bottom: 0px; padding: 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; caret-color: rgb(51, 51, 51); color: rgb(51, 51, 51); font-family: -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;PingFang SC&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei UI&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif; font-size: 17px; letter-spacing: 0.544px; text-align: justify; text-size-adjust: auto; overflow-wrap: break-word !important;">&nbsp; &nbsp; &nbsp; &nbsp; 在企业中除了具体干活的,其实有两个非常重要,一个是管理一个是领导。什么是管理?具体一点就是调动每个人的任务,就是每天催你上班不要迟到的那个人,他其实是在管理着你,他付出的都是管理层的。而在企业中还有一类人,他在企业中负责划定愿景,不停地给你画饼,就是每次开会的时候不停地给你谈指标,不停地聊战略的,这种一般叫领导。可以理解为管理这种职位呢,都是对整个团队起到一个推进的作用的,而领导对于整个团队是一个拉的作用的。给团队一个目标,只不过遗憾的是,很多团队在中国,他们管理和领导是没有分开的,也就是说领导你那个人就是管理你那个人,这其实是蛮不科学的。跟不科学的一点是,我认识的所接触的所有的领导人员和管理人几乎都没有学过专业的管理和领导知识。我自己也没有学过。</p><p style="margin-bottom: 0px; padding: 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; caret-color: rgb(51, 51, 51); color: rgb(51, 51, 51); font-family: -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;PingFang SC&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei UI&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif; font-size: 17px; letter-spacing: 0.544px; text-align: justify; text-size-adjust: auto; overflow-wrap: break-word !important;">&nbsp; &nbsp; &nbsp; &nbsp; 大部分管理人员都是自学成才,而架构师这个岗位就比较有意思了,架构师是同时兼了技术岗位和管理岗位,也就是说他这个岗位既要进行技术相关的工作,又要进行管理相关的工作。如果单纯地比代码量来看,架构师的代码量肯定没有技术开发人员的代码量高了,但是机构是花了更多的精力在管理方面,他每天专注于任务的划分,进度的追踪,和新模块的设计,开发日程的调度,并且架构师直接代表着整个技术团队和公司其他部门进行沟通,也就是说其他部门只需要把需求给架构师,架构师就需要做好需求分析,整理成程序员可以都看得懂的文档,划成一个个的小任务,再安排到具体那个人的工作,它能够驱动着这个团队具体的运作,很多人在想,好像在我们公司,架构师不是干这个的呀?CTO又是干什么的呢?CTO跟架构师最大的区别在于,架构师是技术个管理交集的一种工作,而CTO是技术和领导交集的一种工作,虽然CTO也是技术岗位,但是CTO还是领导岗位。他负责给团队划定愿景,每次开会每天画饼的那个人,一般都是CTO在干,CTO是直接参与公司决策的,一般也占有股份,也就是说虽然架构师和CTO都是技术岗位,他们最大的区别就是在于,一个是管理一个是领导。关于未来的公司发展方向,产品选型等都由CTO决定,而对于架构师所做的具体架构设计,进度管理等,CTO只要做到知情就可以了,他没有必要干涉整个团队的开发进程。</p><p style="margin-bottom: 0px; padding: 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; caret-color: rgb(51, 51, 51); color: rgb(51, 51, 51); font-family: -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;PingFang SC&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei UI&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif; font-size: 17px; letter-spacing: 0.544px; text-align: justify; text-size-adjust: auto; overflow-wrap: break-word !important;">&nbsp; &nbsp; &nbsp; &nbsp; 刚才谈到的是这两个工作具体的性质,你可能听着还是觉得好迷糊呀,那架构师更具体一点到底是做什么的?我刚才提过了,其他部门只需要把需求提交给架构师,比如说有其他部门想要统计用户点这个页面总共点了多少次,告诉架构师,或者市场部想构造一个客户反馈系统,这种需求都告诉架构师以后。</p><p style="margin-bottom: 0px; padding: 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; caret-color: rgb(51, 51, 51); color: rgb(51, 51, 51); font-family: -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;PingFang SC&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei UI&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif; font-size: 17px; letter-spacing: 0.544px; text-align: justify; text-size-adjust: auto; overflow-wrap: break-word !important;">&nbsp; &nbsp; &nbsp; &nbsp; 架构师要做哪些事情呢?有些人会想,这答案太简单啦,当然就是设计架构就好了,那所谓架构又是什么呢?关于这个词,各人有各人的理解,有人说架构是算法,有人说架构是数据结构,有人说架构是负载扩展,有人说架构是产品选型,其实我觉得他们说得都对,架构师要对整个项目进行一个宏观的规划,他要管理的整个技术团队,对于一些具体的技术需求来说,架构师需要带领整个团队选个合适的开发模型,再不停地解决这个开发模型在整个过程中遇到的问题,这些问题有哪些呢?其中最重要的一个问题就是人、时间和金钱不平衡的一个问题,完成任何一个软件项目,都需要大量的时间,大量的金钱和人力。我有时候演讲的时候喜欢会问一些架构师,在你的团队中,时间金钱人力,哪一些是充足的哪一些是不充足的,然后我问起一个人,他就愣在,他就不说话了,他想了半天,他说,好像哪个都是不足的,那么在人也不够,钱也不够,时间也不够的情况下,怎么能让这个项目继续能够进行下去呢?又能保时保量的完成?这就非常考验架构师,也就是说第一架构师对于整个团队必须要有很强的管理能力,能够有效地调度现有的时间、金钱、人力资源,解决问题。</p><p style="margin-bottom: 0px; padding: 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; caret-color: rgb(51, 51, 51); color: rgb(51, 51, 51); font-family: -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;PingFang SC&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei UI&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif; font-size: 17px; letter-spacing: 0.544px; text-align: justify; text-size-adjust: auto; overflow-wrap: break-word !important;">&nbsp; &nbsp; &nbsp; &nbsp; 第二个就是对架构师要求有沟通和文档的能力,我刚才说过,架构师一般代表整个团队和其他部门进行交互,他必须要把其他部门不懂技术的乱七八糟的东西编程程序员能够看得懂的软件需求,比如说我想看到网站现在有多少个用户注册了,架构师听到这句话之后要必须抽象成,他可能要依赖一个用户账户管理模块,这个模块又应该支持哪些方面,支持哪些需求他都要策划好,咨询好,构建好文档,再交给他的技术团队,这个工作可不是每个人都做得了的,虽然说他不像是技术工作,但是你在做这个工作的时候,你必须要对整个用户的需求知道得非常确切,而且你要非常擅于和技术人员沟通,所以说程序员最害怕的是遇到不明确的需求,他好像是要这个又好像是要那个,这种需求再你自己写代码的时候就会很心慌,你说我写到一半你又说不是要这个东西,怎么办?架构师都是要解决这些问题。</p><p style="margin-bottom: 0px; padding: 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; caret-color: rgb(51, 51, 51); color: rgb(51, 51, 51); font-family: -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;PingFang SC&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei UI&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif; font-size: 17px; letter-spacing: 0.544px; text-align: justify; text-size-adjust: auto; overflow-wrap: break-word !important;">&nbsp; &nbsp; &nbsp; &nbsp; 而对于架构师第三个要求就是对他的技术也要有一定的要求。技术要求其实是非常多的。我们可以顺着整个软件开发的周期,从开始到结束,来慢慢谈这些对架构师的技术要求有哪些。在完成好需求分析,划分好工作之后,架构师要决策好产品的结构选型,这个过程你听着好像好玄乎,什么产品选型?但是我听说有不少的技术人员加了很多QQ群,在这些群里他们每天都喜欢吵架,吵什么呢?我说JAVA好,他说C#好,我说PHP好,他说HTML好,我说百度好他说谷歌好,我说阿里云好,他说腾讯的好。我说大括号要换行,他说大括号不应该换行,这些每天在群都圣战,如果你遇到这些圣战,我告诉你千万别加入这种圣战,因为参加圣战的人都是程序员,架构师是不会参加圣战的,他们讨论的问题JAVA好不好啊C#好不好啊,这些问题真的有的答案吗?其实是没有答案的,这些是公司进行第一步产品选型决策的时候遇到的问题,但是架构师在选择JAVA或者C#的时候,考虑的绝对不是那个好用的问题,他需要考虑当前团队面临的问题,现在时间不足,金钱不足,人力不足,他要分析团队背景,分析公司的人员配备情况,分析人员的能力情况,分析CTO给他们制定的技术愿景,分析他们的开发时间,甚至还要分析整个项目和团队的气质吻不吻合,也就是说他考虑的问题实在是太多了。</p><p style="margin-bottom: 0px; padding: 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; caret-color: rgb(51, 51, 51); color: rgb(51, 51, 51); font-family: -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;PingFang SC&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei UI&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif; font-size: 17px; letter-spacing: 0.544px; text-align: justify; text-size-adjust: auto; overflow-wrap: break-word !important;">&nbsp; &nbsp; &nbsp; &nbsp; 我以前去过松下公司,那是一家日企,在松下公司使用的最普遍的语言是Visual Basic,你看到很多群里面很多人骂Visual Basic,这个玩意儿一点都不好用,但是为什么整个松下都还在用呢?他们已经用了20多年的Visual Basic了,重构几乎已经不可能,招聘新的人员也几乎不可能,假如你是松下公司的架构师的话,难道你会选择C#吗?总之每天在群里吵架说这个语言好那个语言好不好的人其实都是非常弱智的。真正需要决策的时候远远超过于语言好坏本身。换句话说,对于整个开发团队来讲, &nbsp;</p><p style="margin-bottom: 0px; padding: 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; caret-color: rgb(51, 51, 51); color: rgb(51, 51, 51); font-family: -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;PingFang SC&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei UI&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif; font-size: 17px; letter-spacing: 0.544px; text-align: justify; text-size-adjust: auto; overflow-wrap: break-word !important;">&nbsp; &nbsp; &nbsp; &nbsp; 其实是没有最好用的技术也没有最难用的技术,只有最合适于这个团队的技术和不合适当前情境的技术。加入我们团队招聘了20个JAVA开发人员,架构师却坚持使用PHP,不管你PHP设计得再好,对于团队来说也未必是合适的。在后续开发实践过程中,要做产品选型的事情其实是非常多,例如我们团队现在依赖于一个功能模块,架构师就要决定我们是要自建?采用开源社区的解决方案还是采用第三方机构提供的解决方案?如果采用第三方提供的解决方案,他们应该采用哪个解决方案?如果采用开源的解决方案,他们又应该采用哪一个解决方案?在衡量评估这些问题的时候,他们也不是考虑这些方案的好坏与否,而是是否与团队合适。</p><p style="margin-bottom: 0px; padding: 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; caret-color: rgb(51, 51, 51); color: rgb(51, 51, 51); font-family: -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;PingFang SC&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei UI&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif; font-size: 17px; letter-spacing: 0.544px; text-align: justify; text-size-adjust: auto; overflow-wrap: break-word !important;">&nbsp; &nbsp; &nbsp; &nbsp; 举个简单的例子,几乎所有的网站都需要一个邮件发送功能,邮件发送功能一般也有三种方案,一种是自建,我们团队首用HTPM协议,对着客户的邮箱使劲发邮件。一种是采用开源社区的解决方案,在Github上面有很多SMTP服务器。第三种是采用第三方提供的解决方案,例如sendgreat,sendmail,这些方案中你只需要接入他们的API接口就可以实现群发邮件。决策用哪一个方案中的哪一个具体的解决方案来讲,都需要架构师衡量很多问题。</p><p style="margin-bottom: 0px; padding: 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; caret-color: rgb(51, 51, 51); color: rgb(51, 51, 51); font-family: -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;PingFang SC&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei UI&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif; font-size: 17px; letter-spacing: 0.544px; text-align: justify; text-size-adjust: auto; overflow-wrap: break-word !important;">&nbsp; &nbsp; &nbsp; &nbsp; 随着项目开发进程的继续,架构师还要合理地分配时间、资源和人力来协调各个工作中投入的精力,是否需要花大量时间来写测试,是否需要花大量时间来写文档,测试多久就可以让项目上线,都是架构师要面临的挑战。</p><p style="margin-bottom: 0px; padding: 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; caret-color: rgb(51, 51, 51); color: rgb(51, 51, 51); font-family: -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;PingFang SC&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei UI&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif; font-size: 17px; letter-spacing: 0.544px; text-align: justify; text-size-adjust: auto; overflow-wrap: break-word !important;">&nbsp; &nbsp; &nbsp; &nbsp; 有时候架构师也会犯一些错误,比如说他会把一些很笼统的问题交给程序员,比如说他直接把一个购物车模块直接交付给程序员,那么这个程序员可能很懵逼,购物车模块?我要做什么东西?这个时候程序员有权利将任务驳回给架构师。告诉架构师这个任务描述得不明确,架构师可能会将单个任务拆分成3到4个小任务,衡量评估具体的任务所需要的精力,再将这些任务分配给程序员,架构师管理着每个程序员具体的进程,当然了,相对于程序员来说架构师写的代码要少很多。<br style="margin: 0px; padding: 0px; outline: 0px; max-width: 100%; overflow-wrap: break-word !important;"></p><p style="margin-bottom: 0px; padding: 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; caret-color: rgb(51, 51, 51); color: rgb(51, 51, 51); font-family: -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;PingFang SC&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei UI&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif; font-size: 17px; letter-spacing: 0.544px; text-align: justify; text-size-adjust: auto; overflow-wrap: break-word !important;">&nbsp; &nbsp; &nbsp; &nbsp; 仍然要记住,没有人天生是架构师,所有的架构师都是积累了大量的开发经验之后,才逐渐成长起来的,虽然现在有很多架构师的相关课程,但是你要想成为一个架构师,最好的办法是参与大量的实际项目。这也和自己的悟性有关系,有些人写了十多个项目,但是他什么东西都没有学到的话,或者是多个项目都相当类似,他可能还是一个底层开发人员。但有些人可能只写了三四个项目,单每个项目都充满了挑战,而且都是跨行业的,他可能就成为架构师了,随着项目的挑战,随着项目的上线运营,他面临的挑战非常多。用户量在不断增加,服务器的承载又无法承受,架构师要应该思考决策如何进行负载扩展,哪部分要拆分无状态服务,哪些部分要拆分成有状态服务,如何处理服务的发现和注册,是否要采用API网关,是否要采用反向代理,是否要采用消息队列,采用要采用自建、第三方的还是开源的。要做的事情实在是太多了。</p><p style="margin-bottom: 0px; padding: 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; caret-color: rgb(51, 51, 51); color: rgb(51, 51, 51); font-family: -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;PingFang SC&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei UI&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif; font-size: 17px; letter-spacing: 0.544px; text-align: justify; text-size-adjust: auto; overflow-wrap: break-word !important;">&nbsp; &nbsp; &nbsp; &nbsp; 可以看到,其实这个职位对人的要求是很高的。你不但对技术本身要有很深刻的理解,你还要有很好的沟通能力,文档能力,还要有很强的管理能力。我认为整个公司架构师是对人的要求最高的一个岗位,既是管理岗位有事技术岗位,又是决策岗位,又是沟通岗位,很多时候当团队的销售代表去客户现场的时候都需要带上架构师,都希望架构师能获取到更多的信息。<br style="margin: 0px; padding: 0px; outline: 0px; max-width: 100%; overflow-wrap: break-word !important;"></p><p style="margin-bottom: 0px; padding: 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; caret-color: rgb(51, 51, 51); color: rgb(51, 51, 51); font-family: -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;PingFang SC&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei UI&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif; font-size: 17px; letter-spacing: 0.544px; text-align: justify; text-size-adjust: auto; overflow-wrap: break-word !important;">&nbsp; &nbsp; &nbsp; &nbsp; 没有人天生是架构师,我们每天能接触的项目,我可以分成三类,一种是困难的,就是说你无论如何努力都是难以达到的事情,比如说我们现在要组建团队去发射一枚火箭,我觉得我无论多么厉害我也组织不好这个团队。另一是普通的,也就是说你现在能力达不到,但是你知道你自己通过努力一段时间,能达到的水平。对于自身成长其实帮助是最大的。比如说我以前没有接触过人工智能,现在要做一个自能判断单车有没有到楼下的程序,这种程序我完成的话对我来说是很大的提高。还有一种是简单的,就是你能力已经达到的,就像我,现在要构建一个音乐商店,我再写10个这样的音乐商店,对我来说没有任何的提升,其实又是在浪费时间。这种项目参与太多对于你的职业发展没有什么太大帮助。我们是希望大部分人参加第二种项目,就是努力努力能做到的项目。给自己多定一些这些目标。参与的项目越来越多,很快你就能达到架构师的要求层面。</p><p style="margin-bottom: 0px; padding: 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; caret-color: rgb(51, 51, 51); color: rgb(51, 51, 51); font-family: -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;PingFang SC&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei UI&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif; font-size: 17px; letter-spacing: 0.544px; text-align: justify; text-size-adjust: auto; overflow-wrap: break-word !important;">&nbsp; &nbsp; &nbsp; &nbsp; 最近很多同学来到砺锋面试,我只要听他讲从事编程时间有多长,参加过多少大的项目,就能基本判定他的水平了。编程时间在两年以下的毕业生只能说是入门级的,没有做过大项目,也一定是水平一般,那些以兴趣编程者,水平更是一般。另外,听的过程中我也可以判断出这个程序员头脑是否清晰,说话是否有条理,逻辑是否严密。这些也是我衡量其水平的重要方面。</p><p style="margin-bottom: 0px; padding: 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; caret-color: rgb(51, 51, 51); color: rgb(51, 51, 51); font-family: -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;PingFang SC&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei UI&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif; font-size: 17px; letter-spacing: 0.544px; text-align: justify; text-size-adjust: auto; overflow-wrap: break-word !important;">&nbsp; &nbsp; &nbsp; &nbsp; 没有做过项目的同学靠网上百度去学,学的内容随意性很大,学好学坏没有人监督。做项目的时候你不但要自学和网上百度去学,还必须向项目负责人学,向项目组其他人学,向客户学。而且学的东西都有针对性。向项目负责人学习程序设计的详细方案,向项目组其他人学习程序接口、数据接口,向客户学习业务及需求等。程序的好坏要通过测试环节和用户使用加以验证。所以,通过参加项目,程序员可以克服自以为是的错误观念,树立为客户编程的思想,以软件销售价值来衡量自己的价值;树立团队意识,把自己融入团队中,以团队荣为荣,以团队耻为耻;在项目中学会从大局看待程序设计,学会评判程序难易之处,学习更加实用的程序方法和算法。</p><p style="margin-bottom: 0px; padding: 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; caret-color: rgb(51, 51, 51); color: rgb(51, 51, 51); font-family: -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;PingFang SC&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei UI&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif; font-size: 17px; letter-spacing: 0.544px; text-align: justify; text-size-adjust: auto; overflow-wrap: break-word !important;">&nbsp; &nbsp; &nbsp; &nbsp; 但是目前大部分学生基本上是单枪匹马地编写程序,程序功能相对简单,一个人多花点时间也能完成。做项目的程序员则成了项目组的一个成员,他只是负责整个项目的一个部分,或者说只编写其中的一段程序,而不是全部。所以,他的程序必须要和其他人编制的程序对接,他的程序必须读取别人的数据,他的数据也可能被别人读取。这里的每一个环节都不能出错,一个地方出错就会影响整个项目。他必须和团队的其他人很好协作,共同完成程序。</p><p style="margin-bottom: 0px; padding: 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; caret-color: rgb(51, 51, 51); color: rgb(51, 51, 51); font-family: -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;PingFang SC&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei UI&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif; font-size: 17px; letter-spacing: 0.544px; text-align: justify; text-size-adjust: auto; overflow-wrap: break-word !important;">&nbsp; &nbsp; &nbsp; &nbsp; 项目能力包括参加项目的个数、大小、在其中承担的角色等。就项目承担的角色而言,主持开发(项目经理)3个以上项目是必需的,这是一个必要条件。一个程序员如果没有主持过开发,无论参加过多少项目的开发,无论是在程序编写或项目设计上发挥了多大的作用,都是很难被称之为成熟的,因为项目的组织、协调和管理是反映一个程序员成熟程度的又一个标志。就如同一个程序员能参与过10个以上大大小小的项目或能参加或能主持两个以上大型项目的开发,其成熟程度是可以信赖的。若低于此数,则说明程序员离成熟还有相当的空间。“我们在项目中成长”,可见项目对程序员的意义是多么的巨大。</p><p style="margin-bottom: 0px; padding: 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; caret-color: rgb(51, 51, 51); color: rgb(51, 51, 51); font-family: -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;PingFang SC&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei UI&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif; font-size: 17px; letter-spacing: 0.544px; text-align: justify; text-size-adjust: auto; overflow-wrap: break-word !important;">&nbsp; &nbsp; &nbsp; &nbsp; 另外,如果你只是为一个企业客户进行开发一个或多个项目,或为同行业的企业开发项目,你的成熟度肯定要比一般人高一些。你应该具有很强的逻辑性,程序编得井井有条,不用解释别人也能看得懂。这种逻辑性还体现在软件的架构设计、数据库设计、算法设计等多个方面。程序员通过全集子集概念、时间概念、顺序概念、重点和非重点概念等对各种事物进行逻辑分析。 &nbsp;&nbsp;</p><p style="margin-bottom: 0px; padding: 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; caret-color: rgb(51, 51, 51); color: rgb(51, 51, 51); font-family: -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;PingFang SC&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei UI&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif; font-size: 17px; letter-spacing: 0.544px; text-align: justify; text-size-adjust: auto; overflow-wrap: break-word !important;">&nbsp; &nbsp; &nbsp; &nbsp; 加入砺锋科技,让你能改变自己的角色,让你从一个“学习者”的角色变成一个“探索者”的角色。探索者当然也是学习者,但他除了通过学习来掌握现有的知识外,他还要进一步深入地探索,突破教师、教材、课程计划给自己的种种限定,建立自己独特的研究轨迹,去拓展和发现一个更开阔也更深邃的世界。参加各种比赛,通过比赛发现自己的技术短板,去更主动深入学习与研究。去创办公司,获得政府补助的同时,努力发展自己的事业。</p><p style="margin-bottom: 0px; padding: 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; caret-color: rgb(51, 51, 51); color: rgb(51, 51, 51); font-family: -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;PingFang SC&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei UI&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif; font-size: 17px; letter-spacing: 0.544px; text-align: justify; text-size-adjust: auto; overflow-wrap: break-word !important;">&nbsp; &nbsp; &nbsp; &nbsp; 有时候,各方面起始条件很差的人,因为没有什么其他的选择,一旦抓住了一个机会,就一个猛子扎进去,坚定不移,最后果真做成了一番事业,这可能就叫置之死地而后生吧。而许多资源条件还不错、可以有很多选择的人,反而因为选择太多而迷茫,始终无法对一件事做到全心投入,最后反而是一事无成。</p><p style="margin-bottom: 0px; padding: 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; caret-color: rgb(51, 51, 51); color: rgb(51, 51, 51); font-family: -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;PingFang SC&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei UI&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif; font-size: 17px; letter-spacing: 0.544px; text-align: justify; text-size-adjust: auto; overflow-wrap: break-word !important;">&nbsp; &nbsp; &nbsp; &nbsp; “仔细考察自己的优势和劣势。利用自己的优势努力工作,通过与人合作来平衡自己的劣势。回避在很多不同方向上空耗精力。保持专注,把自己能做的做到最好,并保持留意新的机会。”——莫舍</p><p style="margin-bottom: 0px; padding: 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; caret-color: rgb(51, 51, 51); color: rgb(51, 51, 51); font-family: -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;PingFang SC&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei UI&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif; font-size: 17px; letter-spacing: 0.544px; text-align: justify; text-size-adjust: auto; overflow-wrap: break-word !important;">&nbsp; &nbsp; &nbsp; &nbsp; 人无法做到十全十美,可提升的方面实在太多,在有限的精力下,只能竭力发挥自己的优势,将其发挥到淋漓尽致,而自己的弱势带来的问题则可以通过与他人组成优势互补的团队来解决。但要是你没有拿得出手的、显而易见的优势,有谁会愿意和你组队打怪呢?发展自己的强项,砺锋助你寻找和结识与你能力互补的人,使你终身受益。</p><p style="margin-bottom: 0px; padding: 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; caret-color: rgb(51, 51, 51); color: rgb(51, 51, 51); font-family: -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;PingFang SC&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei UI&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif; font-size: 17px; letter-spacing: 0.544px; text-align: justify; text-size-adjust: auto; overflow-wrap: break-word !important;">&nbsp; &nbsp; &nbsp; &nbsp; 砺锋科技寒假班,期待你的到来!</p><p style="padding: 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; caret-color: rgb(51, 51, 51); color: rgb(51, 51, 51); letter-spacing: 0.544px; text-size-adjust: auto; font-family: &quot;Helvetica Neue&quot;, Helvetica, Arial, &quot;PingFang SC&quot;, &quot;Hiragino Sans GB&quot;, &quot;WenQuanYi Micro Hei&quot;, &quot;Microsoft Yahei&quot;, sans-serif; text-align: center; font-size: 16px; overflow-wrap: break-word !important;"><span style="margin: 0px; padding: 0px; outline: 0px; max-width: 100%; font-weight: 700; color: rgb(255, 255, 0); overflow-wrap: break-word !important;">咨询了解:</span></p><p style="padding: 0px; outline: 0px; max-width: 100%; clear: both; min-height: 1em; caret-color: rgb(51, 51, 51); color: rgb(51, 51, 51); letter-spacing: 0.544px; text-size-adjust: auto; font-family: &quot;Helvetica Neue&quot;, Helvetica, Arial, &quot;PingFang SC&quot;, &quot;Hiragino Sans GB&quot;, &quot;WenQuanYi Micro Hei&quot;, &quot;Microsoft Yahei&quot;, sans-serif; text-align: center; font-size: 16px; overflow-wrap: break-word !important;">18027138554&nbsp; 18922215302 18922212502&nbsp; 18027139794(微信同号)<img src="https://cdn.codeseeding.com/%E5%AF%92%E5%81%87%E5%BE%AE%E6%9C%8D%E5%8A%A1%E9%A1%B9%E7%9B%AE%E5%AE%9E%E6%88%98%E7%8F%AD-20211225134657.png?e=1640414818&amp;token=<Please apply your access key>:edFp3G0QPJHlJpwP_Q2TDpSFqsc=" style="width: 583px;" data-filename=""><img src="https://cdn.codeseeding.com/%E9%BB%98%E8%AE%A4%E6%96%87%E4%BB%B61639641981873-20211225134712.png?e=1640414834&amp;token=<Please apply your access key>:sshBLCADYnRsei8ux_OIge7evXQ=" style="width: 583px;" data-filename=""></p>

上一篇 下一篇

热门资讯