周佳是个资深宅男,平时有时间主要是宅。比较喜欢研究心理学方面的书籍,平时喜欢看书,给你们安利一本书《超越自卑》,个体心理学大师级著做。兴致来了能玩一天游戏,常常看电影。在工做方面一直专一于服务器后端开发,目前在一家服务公司作云计算基础服务。python
周佳·Java服务端工程师程序员
Python语言如今十分火热,并且不少云计算底层服务都是使用Python作的,分享下周佳是如何从Java程序员学习Python和云计算的心得。面试
从Java到Python,眼界大开docker
周佳在第一份工做满2年的时候,对于公司内部的技术体系都摸透了,以为没有什么提高了,就想学点新东西。那时候14年左右,大数据刚刚火起来,都在谈大数据。他也看了一阵大数据的内容,无非就是Hadoop那套东西,安装部署以外,好像感受不能深刻作一些东西。后来公司开始全面引进云服务,移植一些本地的服务到云服务平台,因而周佳开始接触到一些云服务平台,公司有意向做一些云资源给用户,这就要用到云服务的公共API,而这些API接口是Python写的。作为一个Java程序员,刚开始对Python代码有一部分是不能理解的。因而周佳开始进军学习python语言了。编程
要系统的学习一门语言不能仅靠只在网络上查找教程,虽然有些帖子某个知识点写的很是精华,但买一本书是必要的。如今周佳还记忆犹新,当时买的书是《Python基础教程(第2版 修订版)》,书的内容不错,并且配套有不少练习项目,只惋惜他并无所有看完。大约一周的时间,他把书上的知识点所有过一遍,就开始着手项目了。json
相比Java而言,Python语言是一门更高级的语言,抽象度更高。14年Java8发布,当时周佳并无函数式编程的概念,学习了Python,给他打开了一扇新的大门。函数式编程抽象程度高于面向对象,并且在代码的写法上更简洁,偏向于数学化。可是相对的,其可读性不如面向对象那样易于理解。Python的抽象程度高于Java,许多Java须要长篇大论的代码,Python代码只要区区几行就能搞定。这让周佳对Python也是爱不释手。好比:建立一个1到100的队列,在Java中只能循环循环赋值,而在python中range(100)就能够了。只会一门编程语言的程序员不是好程序员,当你多会几门语言的时候,你的眼界会大大的开阔,可能不止发现了一扇门,而是发现了不少窗,解决问题的思路也就多了。后端
周佳后来入职的下一家公司,须要作个后端管理平台,因而他选型Python的Django框架做为开发平台。有空的时候跟同事聊天,被问道当初他学习Python是怎么入门的,花了多长时间,他说一周!其实语言之间虽然语法千差万别,可是理念都是相通的。当初学习Java的时候,他大三学了一年都是懵逼状态,学习第二门语言的时候,真的只用了一周时间。李连杰的电影里有句话:学习乾坤大挪移普通人要30年,打通任督二脉者只需1个时辰,想必周佳是打通任督二脉了吧。服务器
Python到云计算,继续拓新网络
2016年周佳入职到一家作云计算的公司,在面试的时候,他提到有Java和Python双重开发技能,很容易就经过了面试。到了新公司,又是一个全新的领域,云计算是他之前是没有接触过的。公司云计算平台的底层是用Python作的,上层业务平台使用Java写的。固然,具体的业务平台架构是十分复杂的,上层使用的Springcloud的微服务框架,部署于Docker容器内。使用Jenkins作持续集成开发部署。底层基于Docker和虚拟机作云服务。刚入职的时候,他好些东西不会,硬着头皮学,抱着大腿就不放,特别是Docker部分,以前他所在的都是一些规模小的公司,可能没有使用Docker的必要。周佳看着教程,对着命令一遍一遍的练习,拉去镜像,建立容器,配置网络,挂载数据卷,反复练习。通过不长时间,他终于从对云计算一窍不通的门外汉变成团队的中坚力量,不只作上层业务平台,还作底层基础服务。坚持不懈的学习使他在全新技术领域有了立锥之地。架构
然而程序猿的世界老是充斥着各类突发事件,前不久云服务好些个容器挂载的存储设备忽然所有变成只读设备,没法进行任何操做,在物理服务器上也没法执行相应的Docker命令,没法查询Docker的容器信息,执行任何Docker命令都进程卡死,周佳判断确定是Docker的daemon进程被某些容器卡死了。若是重启daemon能解决问题,可是这样作,这个物理服务器上的全部Docker容器会所有死掉,恢复工做是灾难性的,确定是下下策。关键是找到究竟是哪几个容器把进程卡死的,因而他找到运维最近建立的几个容器,进入容器目录,查询容器的Config.json配置文件,查询容器进程的pid,将刚刚建立的容器进程所有杀掉。试了一下docker ps,果真好了,随后他重建了这几个Docker容器。过后周佳跟运维沟通了下,原来是因为最近运维给存储服务更换过硬盘,更换的硬盘上的存储设备对应的正是这个物理机上的这几个容器,致使容器存储设备没法挂载。
随着IT技术的深刻发展,愈来愈多的公司都在构建本身的云服务,这有两方面的意义,一个是构建本身的基础信息平台,提升开发运维的自动化程度,提升工做效率;第二个是能够整合物理资源,出售部分剩余的物理资源为公司获取必定收入,固然作大了,还能成为公司的主营业务。
一入猿门深似海,学海无涯苦做舟。当踏上IT这条道路,就注定走上了终身学习的道路。计算机技术飞速发展,也推进着开发者不得不拼命的学习新技术。只有不断的更新本身的知识技能,才能成为科技大潮中的弄潮儿。
若是你也愿意分享你的故事,请加51CTO开发者QQ交流群 312724475联系群主小官,期待你的精彩故事!