对于全栈工程师的思考

对于全栈工程师的思考

 

在今年三月份的时候,我就总结了一下软件工程师应当具备的能力,也就是软件工程师的核心竞争力,现在重新总结,修改如下:

 

1、出色的技术能力

(1)扎实的编程基本功

(2)清晰明朗的编程逻辑

(3)良好的算法思想

(4)丰富的框架综合应用能力和集成能力

 

2、具备技术深度和技术广度

(1)后台开发

(2)前端开发

(3)移动端开发

(4)数据库开发

(5)大数据BI开发

 

3、具备软件体系的设计和构建能力

(1)根据项目选用恰当的软件体系结构,要懂得多种软件体系的优缺点。

(2)充分了解多种开发技术的优缺点,为项目进行技术选型。

(3)对项目进行模块化,降低开发和维护难度。

 

4、具备开发体系的设计和构建能力

(1)选用开发工具,制定代码规范。

(2)对项目进行版本控制,对项目进行构建、部署、调优。

 

5、优秀的自学能力和学习意识

 

6、优秀的分析问题、排查问题、解决问题的能力

 

7、优秀的专业素养,掌握与软件开发相关的知识体系

 

8、良好的沟通能力和表达能力

 

9、抗压能力、自调整能力

 

10、懂得各种养生之道

 

毕业出来工作迄今已有一年多了,我在工作当中受益良多,接触了几个不同开发技术的项目,有很多东西需要总结和消化。就上面总结的核心竞争力谈一谈自己在实际工作当中的心得体会吧。

 

1、出色的技术能力

(1)扎实的编程基本功对于开发工作是不可或缺的。一条语句,到一个分支,再到一个方法,这个方法干什么的,是否全面考虑了可能出现的情况,代码是否易于理解,有没有更好的写法…扎实的编程基本功能让你快速编写高质量的代码,也能让你快速理解别人所写的代码。高楼平地起,扎实的编程基本功就是你跃升的“地基”。

(2)写代码就是要解决某一类问题,所以需要有一个清晰明朗的编程逻辑。首先,你要清楚你要解决的问题是什么,然后考虑清楚问题的最优解、解决步骤和关键点,最后考虑如何实施你的最优解。所有输入的数据都是要经过转化与处理,最后输出,这一个过程,清晰明朗的编程逻辑能让你获得一个“制高点”,解决问题就可以变得很容易。

(3)扎实的编程基本功和清晰明朗的编程逻辑,这两个组合起来,就是入门的算法思想。算法思想涉及的东西其实很多,有很多也比较难理解。我在大学的时候,掌握了基本的数据结构、排序算法、贪心算法和一些动态规划算法,算法水平只能算中等,参加编程比赛也没能拿到好的名次。工作后,用到算法的地方并不多,但良好的算法思想让我高效地写完一个低耦合、高内聚的功能模块,同时也能让我在整体上理解项目,在局部把控模块,在实现细节上游刃有余。总结起来,算法就是武林高手的“内功”,现在开发领域的技术万变不离其宗,你的内功越厉害,学习新技术自然不在话下。

(4)现在企业级的开发,都离不开各种优秀且功能强大的框架。工作中我接触到了很多目前十分流行的框架,后台框架有SSM,SSH等,前端UI框架有Layui、Bootstrap、AdminLTE,JavaScript框架有AngularJS、React-native等… 工作项目当中集成了很多框架,你必须要学会如何应用这些框架,你需要熟悉这些框架的基本原理和运行模式,你需要找资料找文档找代码,然后不断实践去检验知识点。这一个过程会反反复复,因为要学的东西很多,要理解的东西很多,要踩的坑很多,你一定要顶住压力,在失败当中汲取教训与经验,学会千方百计解决问题。这一个过程,就是在提升框架综合应用的能力和集成能力,想要技术能力就能上升一个台阶,就必须要挺过这个过程。

 

2、干软件开发这行是不能停止学习的,想要更进一步,你就要深入自学主流的开发技术,这个过程是漫长的,一些东西学习后需要长时间的实践和消化。开发者的经验就是在实际工作和实践当中不断积累的,一方面你要主动地去学习,掌握主流的开发技术,当然,目前开发的技术种类非常广,我们不可能全部都去学,所以考虑好你自己的职业方向,选取一个方向,然后深入学习这个职业方向需要掌握的开发技术;另一方面,得学会总结经验和教训,在开发工作中踩的坑很多,总结经验和教训得到的知识点在以后的工作当中是很有用的,它能让你避免再次踩坑。

 

3、工作以后发现,其实我们的精力是有限的,很多时候精力都在工作当中被逐渐消耗了,晚上回到家,很难提起要学习知识和技能的兴趣和动力。所以,对于开发技术和技能,我们要有选择地学习和巩固。那些在工作当中有运用到的开发技术和知识,你应该优先去学习,掌握它,做到能够熟练运用它,因为这能够提升你的工作效率,能够节省你在工作当中耗费的精力。

其次,核心开发技术的学习和巩固是必不可少的。我经常会问自己:“我的核心开发技术和技能是什么?我的核心竞争力体现在哪里?我的职业方向是什么?哪个方向是适合我的?哪个方向是我想发展的?我该怎么做?” 很多很多问题,都需要我在工作实践中进行深度思考,然后得到答案。

 

4、在实际的开发工作当中,我遇到的问题其实是很多的,有因为逻辑考虑不周全导致的错误,有因为API使用不正确导致的错误,有因为执行流程不正确导致的错误,等等等... 当然,错误是无可避免的,总是会有错误发生的,它会让你的工作进度卡在那里,寸步难行,但是我们不要怕,最重要的一点是要找到问题的根源,排查原因,分析原因,对症下药,然后解决问题。因而,分析问题、排查问题、解决问题的能力在工作当中是非常重要的。

 

 

未完待续

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值