摘要:作为新生代农民工,行走江湖,必身怀秘技,“码农”的十八般武艺,你都了解吗?

本文分享自华为云社区《新生代农民工的十八般武艺,你都了解吗》,作者: 敏捷的小智 。

前言

随着IT产业的迅猛发展,新的研发技术层出不穷——开发语言从之前单一的Java、C++,变成Java、Python、Go等多语言混合编程;技术框架从Servlet+JDBC演进至Spring Boot、Spring Cloud等微服务框架;同时,IT行业从业者越来越多——2020年北京市外来新生农民工检测报告中,已将信息传输、软件和信息技术服务业从业者纳入新生代农民工——程序员从之前的高新人才变成了新生代农民工,真正坐实了“码农”身份,想要更好的就业,之前的“一招鲜,吃遍天”显然不管用,开发者需要掌握多个维度的研发能力,比如前端开发、后端开发、移动端开发,这样才能保证自身竞争力。

作为新生代农民工,行走江湖,必身怀秘技,“码农”的十八般武艺,你都了解吗?

掌握多种编程语言

编程语言是软件开发的基础,熟练掌握一门编程语言,则是一个开发者的立足之本,但仅仅掌握一门编程语言,即便是技术再娴熟,也很难脱颖而出。

根据TIOBE 的8月最新编程语言榜单,有11.86%的开发者选择使用Python进行软件开发,而Java使用率只有10.43%,被Python反超。由于人工智能的蓬勃发展,Python的兴起似乎成为了必然——Python 俨然成为世界上最受欢迎的编程语言之一。同时,GO、PHP等语言的使用率近年来也一直在提升。

再回到2012-2016,当时 Objective-C(简称OC)作为iOS 应用开发的首选编程语言,一时风头无两,但在近几年,OC几乎退出了大众的视野。只掌握一门编程语言,很难和其他开发者体现出差异性,同时也会感受到时代进步带来的危机感。

微服务架构作为当下最流行的开发框架,其优点是可以多语言混合编程,各个服务之间通过API进行交互。如果能够同时掌握两种语言以及一些主流的框架,比如Java和Python,则自身竞争力会大大提升,可以应对的业务场景多了很多;而且面对Python岗位自己也可以胜任。

遵循编程规范

衡量一个开发者是否优秀,除了会写代码之外,代码的执行效率以及规范性也是至关重要的。

很多开发者往往只关注程序的功能是否正确,而忽视质量的其它属性。至于编程规范,很多开发者更是觉得没有必要:我不遵守这些规范,程序不是执行的也很好吗?实际上,代码不仅仅是被机器执行的,还是给人看的。不遵循规范的代码,往往可读性差,不利于理解,因此不利于维护。而软件维护成本通常占整个生命周期成本的40%~80%,因此,遵循编程规范编写代码很重要。

编程规范大致分为两类:代码风格类以及编程实践类。

代码风格类规范包括标识符的命名、格式以及注释风格等。此类规范引导开发团队使用统一的代码风格进行开发。一致的编码习惯与风格,会使代码更容易阅读、理解,也更容易维护。

编程实践类规范则包含编程语言特性相关的条款,比如数据类型、常量与变量的使用,表达式、语句,函数设计与使用,资源管理以及错误处理等。

开发者想将各种编程规范烂熟于心,显然是困难的,我们可以借助一些代码检查的开源工具如华为云DevCloud的CodeCheck,来鞭策自己的代码质量。

同时如果公司有一套良好的代码检视流程,也尽量去配合、适应,不要敷衍抗拒,这对开发者行走江湖是大有裨益的。

了解云原生理念

云原生的目的是为了各组织在公有云、私有云和混合云等新型动态环境中,构建和运行可弹性扩展的应用。其包含技术很多,代表技术包括容器、服务网格、微服务、DevOps等,我们就从几个关键技术入手,简单了解下云原生。

容器:容器技术起源于进程隔离虚拟化技术,容器技术很好的实现了应用可移植,并且不依赖于特定的基础架构。

容器技术中的代表是Docker,Docker可以将应用的全部运行环境打成一个镜像文件,在特定容器中进行启动,这样做可以确保宿主机的环境不遭到破坏。Docker有助于构建统一的开发、集成环境,是云原生应用的最佳交付载体。

其实早在2017 年 , 就有大量企业尝试使用容器替换现有人工智能、大数据的基础平台,通过容器更小粒度的资源划分、更快的扩容速度、更灵活的任务调度,以及天然的计算与存储分离架构等特点,帮助人工智能、大数据在业务性能大幅提升的同时,还能更好的控制成本。

微服务:微服务是一种云原生架构方法,其中单个应用程序由许多松散耦合且可独立部署的较小组件或服务组成。

微服务中的每个服务通常有自己独立的数据库和数据模型,同时每个服务之间通过API进行通信,从而避免了数据库在各服务间共享。

微服务的松耦合性允许其将业务拆分成更细小的服务单元,更便于交付;同时微服务中每个服务单元均可独立的更新、部署,因此相比单体架构或者SOA架构来说,微服务可以为开发者带来更快的交付节奏。

DevOps:更快的交付节奏,意味着更高的发布频率,单纯依靠传统的运维模式很难及时响应高频率的发布节奏。DevOps很好的解决了这个问题。

DevOps,即Development and Operations,是一组过程、方法与系统的统称,用于促进软件开发、运维和质量保障部门之间的沟通、协作与整合。

DevOps以应用部署自动化作为切入点,依托自动化工具如Jenkins,将部署自动化,往前倒逼测试自动化、构建自动化;进一步往前,配置管理、变更管理是基础要求。频繁的发布意味着每次发布包含的变化更少,每次部署不会对生产系统造成巨大影响,应用程序会以平滑的速率逐渐生长(这里涉及到持续交付的概念),逐步协调和弥合开发与运维之间的技能和沟通鸿沟。

结语

软件开发博大精深,除上述几点外,要提升个人能力的方向还有很多,比如软技能、知识管理等,我们需要自己去探索、学习、实践。

习武之人十八般武艺样样要有,样样亦要精通,想知道自身各种技艺的熟练度,欢迎到华为云DevCloud专家服务进行测评。

点击关注,第一时间了解华为云新鲜技术~

新生代农民工的十八般武艺,你都了解吗相关推荐

  1. 我们常称自己“码农”,这次已得到官方认定:“新生代农民工!

    点击上方"视学算法",选择加"星标"或"置顶" 重磅干货,第一时间送达 定位确认:新生代农民工! 北京市统计局2020年监测数据显示,北京外 ...

  2. “官宣”:程序员被正式纳入新生代农民工!

    许多程序员都喜欢调侃自己为"码农",如今这个身份得到了"官方认证":程序员被纳入新生代农民工! 在最近人社部发布的2020年北京市外来新生代农民工监测报告中显示 ...

  3. 官宣:程序员被纳入新生代农民工!

    整理 | 王晓曼 出品 | 程序人生(ID:coder _life) 8月16日晚,#新生代农民工#登上微博热搜,引发了网友们的热议. 北京新生代农民工占比50.1% 此前,中华人民共和国人力资源和社 ...

  4. 面了百度AI,新生代农民工炸了

    最近摸鱼期间,发现程序员被赋予了另一个身份"新生代农民工",简直炸了!重点还官宣了,这就更加实锤了啊!我们新生代农民工招谁惹谁了,我们能有什么坏心思呢?头都秃了挣点高工资容易吗? ...

  5. 好端端的程序员,咋就成了新生代农民工!

    实锤,程序员被划为新生代农民工,码农的称号终获官方认定,网上一片热议.虽然农民工的称呼有点突兀,然而更多的评论都是在羡慕程序员的高薪,尤其是那些能进一线大厂的幸运儿.往年.NET进大厂难,而今年腾讯. ...

  6. 官方认证:软件及信息技术从业者为新生代农民工

    为了进一步做好农民工服务工作,了解外来农民工在京工作.生活需要,国家统计局北京调查总队在全市范围开展了农民工市民化进程动态监测调查,2020年监测数据显示,新生代农民工占比达到50.1%,已经成为农民 ...

  7. 不装了,摊牌了,月薪10571元的我是新生代农民工中的一员

    每日一问--新生代农民工友,你现在下班了吗? 昨天,老李的朋友圈像是个农民工弟兄团建大会,纷纷宣誓:光荣成为新生代农民工 以前老自嘲自己是数据民工,PPT纺织工,报表流水线工人,但昨天官方终于给我正名 ...

  8. 程序员被纳入新生代农民工;“腾讯视频崩了”上热搜;英特尔发布全新独立显卡品牌 Arc|极客头条...

    「极客头条」-- 技术人员的新闻圈! CSDN 的读者朋友们早上好哇,「极客头条」来啦,快来看今天都有哪些值得我们技术人关注的重要新闻吧. 整理 | 孙胜 出品 | CSDN(ID:CSDNnews) ...

  9. 一名计算机专业新生代农民工的五年求学之路,从“低谷”到“山峰”

    目录 一.自我介绍 二.计算机专业经历 1.高考失利,偶然进入计算机行业 2.放弃已有专业,选择升本 3.一路打怪升级,最终考研还是就业? 4.第一次考研失利,疫情原因被迫二战 5.意外惊喜二战上岸, ...

最新文章

  1. 【208天】黑马程序员27天视频学习笔记【Day21-中】
  2. python数据类型可变和不可变_Python——可变和不可变类型数据
  3. android java 打开snd,使用SndPlaySound从内存中播放WAV
  4. centos rpm 安装 perl_Linux【常用软件安装篇】
  5. [剑指offer]面试题23:从上往下打印二叉树
  6. vue 监听map数组变化_解决vue无法侦听数组及对象属性的变化问题
  7. 数据可视化怎么完成的_完成期望后会发生什么:可视化育儿数据
  8. Windows下使用taskkill 命令批量结束进程
  9. Flink 1.10 Container 环境实战
  10. 常见排序算法的python实现
  11. 【C语言】【笔试题】实现函数itoa(int n,char s[]),将整数n这个数字转换为对应的字符串,保存到s中...
  12. ubuntu 安装pyqt IDE使用eric 辛酸史
  13. js实现网页中简体与繁体互转
  14. 基于VMD的小波软阈值的局方信号降噪方法研究
  15. win7旗舰版通知windows不是正版副本解决方法
  16. Tackling Climate Change with Machine Learning
  17. 输入 10 个学生 3 门课的成绩,用函数实现:找出最高的分数所对应的学号和成绩
  18. pptpd mysql_安装pptpd脚本
  19. Python实现电子钢琴及封装
  20. burpsuit 靶场(Directory traversal)

热门文章

  1. openstack 云_探索OpenStack云案例研究
  2. 学习 | Spring Cloud Config 从入门到精通
  3. java 执行 cd_java执行cd命令
  4. java 简易的闹钟设计_JavaFX实现简易时钟效果
  5. ACache【轻量级的开源缓存框架】
  6. java第六次作业 计科1501班 张鹏
  7. The Google File System
  8. oracle使用打开数据库,使用工具访问ORACLE数据库(一)
  9. 杨辉三角(完整代码)
  10. C语言课后习题(9)