在初级程序员阶段,主要的工作是功能模块的实现,能够辅助主力程序员完成具体的功能实现,这个阶段会锻炼程序员的基础编码能力。在初级程序员阶段,主要需要学习软件开发的流程、技术实现以及软件部署和测试方面的内容。往往初级程序员阶段的成长速度是比较快的,工作能力强的初级程序员在1到2年就会成长为团队的主力程序员。
主力程序员要独立完成功能模块的设计和实现,对软件整体结构有清晰的认知,知道模块之间的逻辑关系,能完成初级研发任务,对技术边界有一定的认知。主力程序员的发展方向有两个,一个是走项目经理,再到咨询专家的路线,另一个就是走架构师,再到技术专家的路线。如果走项目经理的路线,则需要深入了解行业知识。而对于架构师方向来说,更应该了解各种技术方案的应用场景,以及相应的性能指标,尤其是技术关键点的解决方案,工作能力强的主力程序员经过2到3年的时间会成长为团队的核心研发人员。
核心开发人员的主要工作任务往往是产品的容器部分开发,这个过程能够对软件产品有深入的学习,核心研发人员往往要跟着产品线走,大部分核心研发人员未来都会成长为架构师或技术专家。
我从事软件开发工作多年,目前也在负责移动互联开发团队和大数据团队,我会陆续在头条写一些关于软件开发方面的文章,感兴趣的朋友可以关注我的头条号,相信一定会有所收获。
如果有大数据方面的问题,也可以咨询我。
谢谢!
主要是大部分人没机会接触到足够的经验。现在程序员界也阶级固化了,很多人听上去牛逼的不得了,其实不过是一个组的主力而已,接触不到足够量的全局,你是无法了解什么是架构的。
很多行外的或者学生在问,这黑黑的窗口和一行行代码到底是如何变成一个软件的,这就是外人和程序员对软件的理解不同,相对的,普通程序员,也无法理解,他编的一个功能,到底在最后整体架构当中有什么作用。
在中小企业里,这种架构的要求还不高,但是已经可以看出雏形,那些仅仅跑上一两个微服务做个react app的小公司可能不会特别关心架构,这在我看来,和鬼火少年没什么区别,都在裸奔。一个宕机或者主程删库就能干掉一家这样的公司。
有相当多的小朋友对架构师天然有敌意,主要是因为他们无法理解软件或者系统,只有40%是和编码有关的。无论是源代码版本控制,还是源码质量管控,再到CICD,再到HA,DR,这一切都需要一个好的架构师来有机的组成。而这只是一家最小型公司的东西而已,一旦公司变大,系统开始增加,不仅仅上面讲的复杂度成笛卡尔积增加,更出现了因为复杂度增加而导致人力不可能执行的情况,这种时候,监控软件的架构设计又出现了,在中型公司,也就是程序员数量大约小于千人的非外包公司,系统集成,系统自动化是架构的主要职责。
再往上,当一个公司更加巨型化,系统的维护性和优化都可以牵涉每年几百万。这种公司本身架构师团队都可能比一个微型公司大,这些人,普通人根本看不到…
如果还固执地认为计算机世界就是在IDE里写代码,拥有这种学生思维的码农,当然成不了架构师