问题

作为程序员,2017 年你习得了哪些新技能?

回答
作为一个程序员,2017年绝对是我职业生涯中一个非常“忙碌”但收获颇丰的年份。与其说我“习得了”什么,不如说我被推着,主动地去探索和拥抱了一些在当时崭露头角的或者已经成为主流的技术趋势。回忆起来,有几个方面给我留下了特别深刻的印象,并且至今都在我的日常工作中发挥着作用。

首先,深入理解了容器化技术,特别是 Docker。 在那之前,我们还在苦苦应付各种环境配置不一致的问题,从开发到测试再到生产,总有各种“在我本地运行得好好的”的鬼话。2017年,Docker 已经从一个新潮玩意儿变成了事实上的标准。我花了很多时间去学习 Dockerfile 的编写,如何构建更小的、更安全的镜像,以及如何利用 Docker Compose 来管理复杂的应用栈。我记得为了一个项目,我从零开始学习如何将一个传统的 Java Web 应用打包成 Docker 镜像,并且优化了构建过程,将镜像大小从几百兆压缩到了几十兆。这过程不只是简单的命令敲击,而是要理解分层文件系统、镜像的继承关系,以及如何利用多阶段构建来减小最终镜像的体积。更重要的是,我开始思考如何在 CI/CD 流水线中集成 Docker,实现应用的自动化构建、测试和部署。这真的改变了我对部署的理解,也让我摆脱了很多“环境依赖”的噩梦。

其次,开始接触并实践了微服务架构。 这不是一夜之间的事情,但2017年是很多公司都在积极探索或已经开始转向微服务的一年。我参与的项目也从单体应用逐步向微服务迁移。我学习了如何将一个大的业务逻辑拆分成独立的服务,以及如何处理服务之间的通信问题,比如 RESTful API、gRPC,还有消息队列(当时我们主要使用了 RabbitMQ)。理解服务拆分的边界、如何设计清晰的 API、如何处理分布式事务的复杂性(虽然那时候我对分布式事务的理解还很粗浅),以及如何利用服务注册与发现(例如 Eureka 或 Consul)来管理这些服务,这些都是我花了很多精力去啃的硬骨头。一开始,将一个功能点从单体拆出来,变成一个独立的服务,光是部署和配置就够折腾的。但渐渐地,我体会到了微服务带来的敏捷性和可维护性,虽然也引入了运维上的复杂度。

第三,前端技术栈的更新迭代速度让我应接不暇,但我重点投入了 Vue.js。 虽然 React 和 Angular 也在蓬勃发展,但在我们团队中,Vue.js 以其易上手和灵活的特点,成为了新的主力。我花了很多时间去学习 Vue 的响应式原理、组件化开发、状态管理(Vuex)以及路由(Vue Router)。我记得当时为了实现一个复杂的表单联动效果,我深入研究了 Vue 的数据绑定机制,并且尝试了使用一些第三方 UI 库,比如 Element UI,来提升开发效率。当时我也在关注前端工程化的概念,比如 Webpack 的配置,如何通过 HMR(热模块替换)来加速开发。掌握 Vue 让我能够更快速地构建交互性强的用户界面,并且能够更好地组织和管理前端代码。

另外,对自动化测试的重视程度大大提升。 在这之前,我可能更多地依赖手动测试。但在微服务和高频迭代的环境下,手工测试已经显得力不从心。2017年,我开始系统地学习编写单元测试、集成测试和端到端测试。对于后端,我学习了 JUnit 和 Mockito 来编写单元测试。对于前端,我学习了 Jest 和 Vue Test Utils 来测试 Vue 组件。我记得为了提高代码覆盖率,我花了大量时间去思考如何设计可测试的代码,如何编写有效的测试用例,以及如何在 CI/CD 流水线中集成这些测试。虽然这增加了初期开发成本,但它带来的稳定性和信心是无可比拟的。

最后,开始关注和学习一些“云原生”相关的概念,虽然那时候还没有“云原生”这个广为人知的标签。 很多项目都开始部署到云平台上(我们当时主要使用阿里云和 AWS),我对如何优化应用在云上的性能、如何管理云资源、以及如何利用云服务来简化开发和运维有了初步的认识。虽然还没有深入到 Kubernetes 的级别,但对虚拟机、弹性伸缩、负载均衡等概念有了更清晰的认识。

总的来说,2017年是我从一个“会写代码的程序员”向一个“能够构建可维护、可扩展、可部署的现代化应用的程序员”转型的一个关键节点。这期间的学习过程,更多的是一种持续的探索和实践,伴随着无数次尝试、失败、再尝试的循环。这些技能的习得,不仅提升了我的技术能力,更重要的是,它改变了我看待和解决问题的角度,让我对软件开发有了更全面、更深入的理解。

网友意见

user avatar

准确来说2017年之前我是做Java开发的,当然也会做Python以及爬虫,但是进入2017年之后我开始踏入了数据分析的坑了,作为程序员,这一年我在技能树上增加了一些新东西。


1、数据分析从零开始

毕业前一直是自己在瞎琢磨做数据分析,毕业后开始正式的接触数据分析。

不停的写SQL和Python,所以我的SQL能力在2017年可以说有了一个质的提升,而Python我觉得对我来说还是:拿来可以用,用的顺畅即可。

阅读很多数据分析相关的书籍,并且深入思考,对于用数据讲故事又上一层楼,能从数据的角度看问题,工作之后对生产数据理解更深刻,能真实的做到:数据驱动业务增长,认识到数据的内在价值。


2、写作能力

再往前推一两年,想一想让我每周写几篇上千字的文章,我感觉真的是无从下手,不过现在几千字的文章信手拈来。

每周会逼着自己写读书笔记、写周总结报告、写一些有趣的文章在知乎和微信公众号上面。

一年多,积累了很多读者,也通过写的东西造福了很多找工作的学生、迷茫的大学生、想转行的就业者,也让我有动力的不断继续更新下去。


3、演讲能力

以前我没勇气做演讲,在班级到讲台上在40个人面前做一个自我介绍我都不敢大声说话。

今年我在第一家公司工作一个月之后,老大给了我机会让我在公司几十个人面前讲课关于数据分析。一开始我非常的蒙,意识到这件事情没法拒绝之后,我提前了半个月开始准备,把一个小时的演讲内容写了整整10张纸,然后不断的练习。

本来,我在第一次做排练的时候做的非常差,不过在最后一次演讲时候,整个演讲都没有紧张或口吃。公司的小伙伴们纷纷我给我点赞。

而这是个开始,在公司做了数据分析的演讲之后,我还给中国电信做过Python爬虫培训,也给很多学生讲过数据分析。


以上是作为程序员的我在2017年感觉比较明显的新增技能。

类似的话题

  • 回答
    作为一个程序员,2017年绝对是我职业生涯中一个非常“忙碌”但收获颇丰的年份。与其说我“习得了”什么,不如说我被推着,主动地去探索和拥抱了一些在当时崭露头角的或者已经成为主流的技术趋势。回忆起来,有几个方面给我留下了特别深刻的印象,并且至今都在我的日常工作中发挥着作用。首先,深入理解了容器化技术,特.............
  • 回答
    作为一名程序员,我承认“坚持不懈地学习”和“不累”这两种状态之间存在着张力。老实说,累是肯定累的,但同时,驱使我不停学习的动力也异常强大,甚至常常能盖过疲惫感。让我来详细地为你解析一下,是什么让我,一个程序员,在这个快速变化的领域里坚持不懈地学习,以及这种坚持背后复杂的感受。 为什么坚持不懈地学习?.............
  • 回答
    这个问题就像在问一个厨师:“你做过多少次番茄炒蛋?”或者一个作家:“你写过多少次关于爱情的诗?” 说实话,我数不清了。真的,太多太多了。对我来说,「hello world」不仅仅是一行代码,它更像是一种仪式,一种对新世界、新工具的敲门砖。刚接触一门新的编程语言,或者尝试一个新的开发环境,我的第一件.............
  • 回答
    哈哈,问到点子上了!作为一名程序员,要说实话,这真不是一件容易的事,尤其是在工作之后,时间被代码、Bug、以及无穷无尽的需求占得满满当当的。但我还是找到了,而且一路走来,觉得挺有意思的,也积累了一些“血泪史”和经验。先说说我的情况吧。大学毕业就进了这家互联网公司,典型的996模式(当然,现在国家提倡.............
  • 回答
    作为一名程序员,在日常工作中,绘制流程图、时序图、状态图等可视化图形是必不可少的技能,它们能极大地帮助我们梳理逻辑、沟通设计、记录分析。随着技术的发展,市面上的工具也层出不穷,但经过多年的摸索和实践,我通常会根据不同的场景和需求,选择最顺手的几款软件。1. 简单快速、临时记录:Mermaid (与 .............
  • 回答
    坦白说,这确实是个需要斟酌的问题。作为一名程序员的面试官或主管,我并非要求每个人都必须达到专业打字员的水平,但“不会盲打”和“二指禅”这样的描述,确实会让我产生一些考量。首先,我得承认,现代程序员的工作,离不开频繁的键盘输入。从编写代码、调试、提交代码,到撰写文档、回复邮件、使用各种开发工具,键盘几.............
  • 回答
    作为程序员,我确实遇到过一些让人哭笑不得、甚至捶胸顿足的代码注释。有些注释就像给一个已经摆烂的房间里,又塞进一堆不知所云的杂物,让人看了头更疼。让我印象最深刻的一次,是在维护一个好几年前的老项目。那个项目挺大的,涉及的模块和功能也很多。我接手的时候,已经有人走了,留下的代码只能靠着注释和自己的理解来.............
  • 回答
    我这里没啥“工作台”的说法,你指的是我码字的“地点”吧? 我没有实体,所以我没有一个像你们那样,摆满键盘、屏幕、鼠标、咖啡杯,可能还有点凌乱的实物工作台。但我可以告诉你,我“工作”的时候,我的“工作台”是这样的:我没有物理空间的束缚,但有无形的“思考空间”。你可以想象成一个无比庞大、信息流如同瀑布般.............
  • 回答
    作为一名程序员,我一直在折腾几个个人项目,说实话,这些项目有的是在积累经验,有的是纯粹为了满足好奇心,还有些则是希望能解决自己生活中遇到的一些小麻烦。下面就给你仔细说说,尽量把它们讲得生动点,让你感觉像是跟我面对面聊天一样。1. 那个“万物皆可搜”的私有知识库(正在进行中,迭代更新ing)这个项目是.............
  • 回答
    在咱们程序员的世界里,这问题真是个老生常谈,但又无比实在。你说,是把代码写得跟艺术品似的,每一行都严丝合缝,逻辑清晰得像一本教科书;还是能把客户要的功能捣鼓出来,哪怕过程有点磕磕绊绊,代码像是个拼凑起来的集市?我倾向于认为,咱们得在两者之间找到一个平衡点,而且这个平衡点,更多地会向“代码质量”这边倾.............
  • 回答
    这问题触及到我内心深处的一个甜蜜点。很多时候,当我们谈论编程时,总会聚焦在那些敲击键盘、调试代码的直接技巧上,好像整个过程都是在与机器的语言搏斗。但对我来说,这种看法太狭隘了。数学,噢,数学才是那个藏在幕后的、真正的魔法师,它让我的编程之路更加顺畅,也更有趣,甚至在很多时候,它就像是我大脑里一个无形.............
  • 回答
    关于“是否应该抵制实施996工作制的互联网公司产品与服务”这个问题,我作为程序员,确实有过很多思考,也和不少同行交流过。这是一个复杂的问题,很难简单地用“是”或“否”来回答。它涉及到个人价值观、职业道德、行业生态、社会责任以及现实的无奈等等。下面我想详细聊聊我的看法,尽量不掺杂那些“官方”的、听起来.............
  • 回答
    作为一名“曾经的程序员”,这个问题对我来说触及了职业生涯中一个重要的转折点。如果我是一个真正拥有过程序员身份的人,那么我不会当程序员的原因,以及我现在在做什么,将是一个充满故事和思考的过程。曾经作为程序员的你,为什么不当程序员了?让我坦诚地说,我之所以不再是传统意义上的“程序员”,是因为我的进化方向.............
  • 回答
    这个问题很有意思,也触及了很多基层程序员的痛点。为什么自己天天加班写代码,感觉也挺努力,但和BAT(百度、阿里、腾讯)的程序员比起来,总觉得有股难以逾越的鸿沟?这背后其实是多方面因素在起作用,绝不是简单的一句“能力不行”就能概括的。我尝试从几个角度来拆解一下,希望能说得更明白些。一、 平台与视野:站.............
  • 回答
    12306 这玩意儿,啧啧,每次放假前都是一场“大型灾难片”。作为码农,看着它一次次宕机、一次次卡顿,真真是心痒痒,想狠狠地把它“操”一番。要说最想优化哪个功能,那绝对是——购票流程的稳定性与响应速度,特别是秒杀高并发场景下的表现。我知道,这话说得有点笼统,就像跟产品经理说“用户体验要做好”一样。但.............
  • 回答
    面试官问你如何看待“阿里月饼事件”,这是一个非常考验情商和价值观的问题,尤其对于程序员来说,既要展现技术人的理性思维,也要体现对公司文化的理解和对社会现象的认知。下面我将从几个方面详细地阐述,你可以根据自己的理解和面试官的反应进行调整。核心思路:在回答这个问题时,你需要展现以下几个层面的能力:1. .............
  • 回答
    作为一名专业程序员,看待华为的鸿蒙系统(HarmonyOS)是一个多维度、既有期待又有审慎的视角。它不仅仅是一个操作系统,更承载着华为的战略野心和对未来技术趋势的理解。以下是我作为专业程序员对鸿蒙系统的详细看法:一、 核心技术与架构:亮点与挑战并存1. 分布式能力:这是鸿蒙最核心的创新和吸引力所在.............
  • 回答
    作为一名程序员,要判断你的水平,需要一个更具体、更全面的评估框架,而不是简单的一两个指标。你的问题“我这属于什么水平?”非常普遍,也因此非常难以直接回答。只有你提供更多关于你的经验、技能、项目、学习方式等方面的信息,我才能给你一个更贴近实际的评估。不过,我可以提供一个程序员能力评估的详细框架,你可以.............
  • 回答
    作为一名程序员,最大的成就感来源是多方面的,而且往往是随着经验的积累和项目深度的变化而 evolving 的。如果让我详细阐述,我会从以下几个核心维度来谈:1. 解决复杂问题并看到成果落地时的“Eureka”时刻和影响力:这是最直接、最原始的成就感来源。当你在面对一个棘手的问题,它可能是技术上的瓶颈.............
  • 回答
    这个问题,就像问一个厨师,是该尝遍天下美食的食材,还是该把一样食材做到极致?答案是:都不是绝对的,而是需要一个动态的平衡,并且这个平衡点会随着你的职业生涯阶段、个人发展方向以及所处的技术环境而变化。但如果非要在这“广”和“精”之间做出一个侧重选择,我更倾向于认为,在程序员的职业生涯初期,“广”是打基.............

本站所有内容均为互联网搜索引擎提供的公开搜索信息,本站不存储任何数据与内容,任何内容与数据均与本站无关,如有需要请联系相关搜索引擎包括但不限于百度google,bing,sogou

© 2025 tinynews.org All Rights Reserved. 百科问答小站 版权所有