导语:一个程序员成长的过程中,会面临不同的问题。写代码的时间长了,眼界和格局也不同了。从初级程序员只会维护模板,做个写代码的的编辑人员。到中级程序员会写增删改查,解决一些简单数据库交互。到高级程序员要懂一些底层原理,解决复杂的业务,再到架构师,要设计整个系统满足业务要求。身为程序员的你,有没有准备好面对这些东西呢?
初级程序员,模板维护
刚入职的程序员,领导往往不会分配太复杂的任务,做的最多的就是编辑内容模板吧。想当年小编刚参加工作的时候,什么都不太懂,从学校里学的都是些很零散的技能,也没有做过什么大系统。那时候修改了很多系统的模板,内容管理系统有dedecms,phpcms,帝国cms,论坛有discuz,phpwind,商城有ecshop。每天的工作就是增加模板,修改模板,套模板,日子虽然过得充实,但是感觉工作技能没有什么提升,最多算是一个高级编辑,会点html和css代码。
中级程序员,增删改查
工作了两三年,开始接触一些功能的实现,主要就是对数据库进行增删改查,然后就是做个分页页面。不管什么功能,拿过来就是先弄个带分页的列表,然后就是弄个添加和编辑页面,能保存到数据库就完事了,再复杂就导出个excel表格。做了很多功能,甚至一直觉得,web开发就是增删改查,哪有什么复杂的功能。那时候主要做php开发,需求也很简单,没什么业务处理。
高级程序员,底层原理
工作了五六年,慢慢了解了一些底层原理,比如内存的分配,HTTP协议的通信方式,FTP协议的使用,多线程的调用等等。开始接触一些复杂的业务,比如批量导入数据,插入的数据后台多线程处理,从远程服务器上拿数据然后返回给系统等等。真是知道的越多,才越知道自己知道的少。开始关心每个功能的底层原理,如果让自己实现该怎么做。
架构师,系统设计和实现
工作的时间长了,有时领导会让我负责一些小系统的设计,无论是数据库的设计,还是整个系统的架构,或者复杂功能点的实现。为了一个系统的扩展性和可维护性,怎么设计能满足业务需求的不断变更。