刚开始接触程序的时候什么都不懂,以为懂点硬件知识就行。但程序复杂度远超想象,其包含多个学科,自然学,社会工程学,高等数学,方法论。
到公司后,才发现,一切都那么不容易,第一次倒数据,什么都不会,一段几百行的sql,看了几天没研究明白,不过还好遇到个挺不错的项目经理,什么都肯教,业务流程,权限管理等,让我了解和很多以前不知道的东西,以前只知道三大框架,总以为开发就是三大框架的事,后来才明白,其实并非三大框架才叫开发,还有企业中间件,底层驱动,数据结构和算法等。虽然难度不小,但天天加班加点,基本没有休息日,每天睡五六个小时,拼命处理数据,几个月下来,sql功力大增。而且也封装了一套自己的开发框架。
后来我离开了那公司,到了现在的公司,现在的公司虽小,但却准时上下班,双休,可问题就是没有自己的开发框架,没有真正意义上的团队,基本是个人开发,不过由于基本是基础,所以不算太难,我的前端和数据库都算不错的,后台差点,不过这也有好处,换一种语言照样可以开发。
作为一名程序员,要的就是不停的学习能力,特别是新技术和算法。别人都说编程英文很重要,但我却不这么认为,我连b级都没过,更别说四级了,就算这样,我也可以看着英文文档把nosql的持久化框架给封装起来。数据库方面,除了一直使用的oracle,还自学了mysql,sqlserver,mongodb,这算目前数据库中排名前四的四种数据库。我一直认为,没有实现不了的功能,只有不断的去实现,去超越,不管遇到什么样的困难,都应该坚持下去。
除了上班,下班后继续学习和开发自己的程序,毕竟只是上班写的那点程序还不足够提升水平。目前正是遇到瓶颈,不上不下的状态,虽然知道每个程序员都会遇到,但我还没找到度过的方法,努力并不能解决问题,关键还是方法没找到。
作为程序员,工作并不是全部,程序也不是全部,学习各个学科的知识,医学,天文地理,自然科学,心理学,化学等,都是应该学习的学科,扩展视野才能写出更好的程序,不然思维只会被工作给固定死,就像有些程序员,以为面向对象编程就必须要将编程思想固定在面向对象中,殊不知这样会造成程序的过度设计,如果真的要固定死面向对象思维,得要熟练运用23种设计模式,‘否则很难做到低耦合,维护成本也会相当高,所以没有十多年开发经验,我还是面向对象,面向过程同时使用,以快速开发,易维护为主。
现在,除了普通程序,还继续研究怎么样让计算机自己去学习,让计算机拥有自主学习的能力,这才是未来的编程。