现在的程序员应该具有哪些能力?

来源:程序思维浏览:1529次
程序员是混合的,并且不能通过功能完成来容易地评估级别。可以完成相同的要求和功能,但不同程序员的质量会有所不同。质量的质量需要在许多方面进行评估。请参考以下条件:易于维护,易于扩展,高可用性,高稳定性,高性能,安全性,容错性,风险控制。

现在的程序员应该具有哪些能力?

对您周围的程序的洞察可以分为以下类型:

理论,理论能力很强,对尖端技术有一点了解,强烈的个性,需求分析和程序设计是第一位的,自己设计的内容更加自信和顽固,看代码,质量差,符合逻辑混乱,难以维持难以扩展,但往往这个评级在公司仍然很高

潜在的类型,强大的业务能力,清晰的开发设计和解决问题的想法,可以提出优化/改进解决方案,可以适当地抽象业务,具有很高的自我技术要求,良好的代码质量,并将研究尖端技术

表面类型,业务需求基本可以完成,但代码质量比较差,漏洞,问题检测效率低,难以维护难以扩展,很少了解尖端技术,空闲时间刷微博,看新闻,聊天,诚实,勤奋,良好的代码质量,通常不显眼,与同事沟通较少,业余时间没有具体时间。

大神型,总结是所有方面都非常NB,提问可以给出建议或解决方案,但这样的人很少

服务器开发工程师应具备哪些功能?

从后端开发者的角度来看,是互联网公司后端发展的背后

基本能力
  • 代码规范
  • 清晰的分层
  • 清晰的逻辑
  • 数据库操作
  • 了解http,可以捕获工具和模拟请求工具
  • 了解可以使用浏览器控制台工具调试的前端/ js
  • 安全预防
  • Sql注入
  • Xss跨站点脚本***
  • Csrf跨站请求伪造
  • Http劫持
  • Ddos ***
先进的能力
  • 抽象编程
  • 适当使用设计模式
  • 模块包
  • 异步编程
  • 多线程编程

经验
  • 高并发处理/优化
  • 性能优化(加载速度、改善接口tps、 ...
  • 分析需求并提供合理的建议和解决方案
  • 灵活使用缓存:redis,memcache等。
  • 灵活使用消息队列中间件:rabbitmq,activemq,zeromq,kafka等。
  • 辅助能力
  • 爬虫
  • 开发爬虫功能的能力意味着已经掌握了网络。
  • ***其他业务(恰到好处,自己掌握)

手段
  • 模拟请求,找到突破,例如:修改参数
  • 并发请求会导致并发逻辑问题。如:获取多个登录点(多数据操作界面可能会粉碎服务器)尝试***,sql注入,跨站点脚本***等...
  • 知道如何***别人,知道如何防守

沟通技巧
  • 与成员沟通,讨论设计计划,分享想法和技术要点
  • 协作沟通,主动性非常重要
  • 故障排除
  • 问题响应快速响应
  • 根据问题现象快速定位问题
  • 快速提供解决方案并上网,告知客户服务,反馈给用户

学习能力
  • 研究尖端技术并最好将其应用于项目业务
  • 多语言开发:python,java,nodejs,php,javaScript ...
  • 开发语言只是完成项目业务开发,学习和实践的工具,您可以从中学习。

预测能力
  • 代码未来,方便业务发展
  • 面向未来的架构,促进架构扩展以支持业务增长
建筑能力
  • 分层
  • 分割
  • 分散式
  • 高速缓存
  • 异步
  • 沉宇
  • 自动化
  • 安全

代码味道不好

列出你遇到的典型坏代码品味截图,并取环,BGM("了解"多么痛苦),醒来,不要考虑自己,从代码质量开始,持有高薪,代码 - 说到处都是学生。如果遇到这样的代码,你怎么能扩展?

味道不好1(不清楚的分层,在控制层拼接sql)
  
不清楚的分层,在控制层拼接sql

味道不好2(功能参数太多)
功能参数太多

味道不好3(太深)
味道不好3(太深)

 
味道不好4(相同功能需要提取功能+深度过深)
相同功能需要提取功能+深度过深
  
总结一下:

无论你是什么类型的程序员,我都希望你能为你的职位承担责任。
与前面的代码相比,对自我反思的反思更多,肯定有些不合理的设计,总结和沉淀。
收藏
扫一扫关注我们