《后端技术面试 38 讲》学习笔记 Day 15

简介: 《后端技术面试 38 讲》学习笔记 Day 15

《后端技术面试 38 讲》学习笔记 Day 15

36丨技术落地之道:你真的知道自己要解决的问题是什么吗?

原文摘抄

作为一个软件工程师,如果只是听从别人的指令开发代码,却不了解这些代码究竟想要解决什么问题,那么很多时候你是在制造问题,而不是解决问题,你加班加点辛苦工作只是在为公司制造麻烦。而对于你自己而言,日复一日重复执行解决方案,距离你成为一个技术专家也越来越远。

不要把解决方案当作问题的定义,而忽略了真正要解决的问题是什么

你不需要去解决别人的问题,你只需要提醒他问题的存在

鱼是最后一个看到水的,身处问题之中的人往往并不觉得有问题

太多的问题被人们的适应能力忽略掉了,直到有人解决了这些问题,身处其中的人才恍然,原来过去的方式都是有问题的。

问题 = 期望 - 体验

到一个新环境中,大家体验差不多,但是你的期望和其他人不同,你就会感受到问题。而这种感受则可能是你出人头地的机会:如果你解决了这些问题,其他人也会明白过去的方式是有问题的,而你就是那个解决问题的人。

心得体会

  1. 这个专栏无时不刻在每一章都提到了分析、理解问题这个点,这一章给出了一个“问题”的定义。
  2. 很多人并不能很好的理解问题,会导致问题变得更加复杂。
  3. 低效率的会议也是对问题没有统一的认知,盲人摸象对各种表象进行争论。

工作体验

  1. 一个从不同环境加入进来的人,往往能带来一些新东西,也是公司鼓励有新血液的原因。
  2. “身处问题之中的人往往并不觉得有问题”,这句话又一次让我想到了大学期间数字电路这门课程的一个实验:

实验的内容很简单,用某一个型号的芯片,加上一堆电线,在一个有脉冲、数字显示的机器上,实现一个时钟。

  1. 从写代码的角度来说,很简单,维护小时、分钟这两个变量就可以了,一个对24进行取余,一个对60进行取余,再输出就行。说实话,动手前,我和队友老陈都觉得两个课时的时间太充裕了。就是分成一个24进制和一个60进制的显示即可。我们从两个人分工两个模块和共同完成的决策中选择了共同完成,毕竟想着时间也充裕。实际上,我们面临的问题是代码编程遇不到的,因为有些芯片是坏的,有些电线也是坏的,相当于我们代码写了a=1+1,结果a返回不是2,还是0。我想这个问题,平时写代码时我们肯定不会去考虑,默认了它就必定返回2吧?计算机到底是怎么保证这个计算结果是可靠的呢?所以我们很多时间在“debug”,通过计算,实验,确定刚接起来的几根电线和芯片到底是哪个出了问题。随着时间的过去,仪器上的电线已经乱成一堆大麻花了,对我们的眼力和记忆都开始造成了考验,这时候,是两个人共同来工作的重要性也就体现了,两个人来确认,失误的概率就很低。最终,我们在下课后2分钟完成了这个实验,感叹啊,激动啊。过了多年,再来反思:
  1. 如果我们事先校验每一个芯片、电线是否正常,是否会降低后续的排查痛苦呢?
  2. 如果不是双人合作,分成两个模块,在会“冲突”的仪器上,我们会不会乱作一团?
  3. 如果不是双人合作,面对问题的分析计算、重新接线的过程中会不会出现更多失误?
  4. 以及,老师是不是应该事先告诉我们,这个实验可能会面临各种各样的仪器上的问题?
  1. 对应我们现在工作中,是不是印证了一些事情的必要性:
  1. 做好单元测试,再进行集成测试是十分有必要的
  2. 在合适的情况下,进行划分模块,没有过多冲突才是合理的
  3. 结对编程在应对困难的问题时,两个脑子共同运转是1+1>2的。
  4. 信息很重要,没有事先准备好信息,了解清楚问题,过程就会十分混乱,如陷泥潭。

37丨技术沟通之道:如何解决问题?

原文摘抄

如果某人能够解决问题,而他自己却感受不到问题,那么就让他感受一下

通常说来,上司的能力要比你的能力强,调动的资源也比你多,有些事情对你而言可能非常困难,但是你上司也许一句话就可以搞定,这个时候,你可以考虑利用你的上司去解决问题。如果他没有感觉到问题,那么想办法让他感觉到问题。

所以有句话叫做:用人的最高境界是用上司。

直言有讳:要批评而不要责难,要对事而不要对人。

以赞成的方式表示反对

适当的逃避问题

如果你想解决一个大家都不关注的问题,那么试试让问题变得更糟

如果你不填老师想要的答案,你就是个傻瓜

我们每天在解决各种问题,帮产品经理解决问题,帮用户解决问题,其实我们最终都是在帮自己的上司解决问题,你如果不解决这些问题,你的上司可能就会遇到问题。

因此,如果你觉得一个问题很重要,而你的上司却不觉得,那么你辛苦去解决这个问题可能就是在白费功夫。你无法在一个管理体系中获得认可,你的工作无法获得正反馈,你的努力是无法持续的。所以,如果这个问题真的很重要,而你无法让你的上司认可其重要性,那么对于你而言,真正严重的问题不是问题本身,而是你的上司本身。

既然员工是以上司的意志作为自己工作的依据,那么就可以得出一个推论:管理者对待问题的视角和态度,决定了下属会成为什么样的人。

心得体会

  1. 两点之间直线距离最短。这个道理狗都知道,所以狗下河了,人走了桥。直球虽然好,但是守门员这个障碍过不去。人们往往把问题复杂化,是因为问题本身背后还有问题。

工作体验

  1. 上司真的很重要,经历过不同的上司:
  1. 只会pua下属,讨好上级,拉皮条能力9级的;
  2. 有能力,有眼光,实干的;
  3. 有能力,有影响力的,不知所在的;
  4. 有能力,刻苦的,完美主义的偏执人格;
  5. 知识广泛,与人为善,沟通能力10级,稍微有些老好人的;
  1. 每个上司的团队风格的确是完全不同,不谈好坏,只谈适应,每个人都有自己的风格,遇到更搭配的才是王道。
目录
相关文章
|
1月前
|
存储 分布式计算 大数据
HBase分布式数据库关键技术与实战:面试经验与必备知识点解析
【4月更文挑战第9天】本文深入剖析了HBase的核心技术,包括数据模型、分布式架构、访问模式和一致性保证,并探讨了其实战应用,如大规模数据存储、实时数据分析及与Hadoop、Spark集成。同时,分享了面试经验,对比了HBase与其他数据库的差异,提出了应对挑战的解决方案,展望了HBase的未来趋势。通过Java API代码示例,帮助读者巩固理解。全面了解和掌握HBase,能为面试和实际工作中的大数据处理提供坚实基础。
48 3
|
1月前
|
前端开发 JavaScript 关系型数据库
从前端到后端:构建现代化Web应用的技术探索
在当今互联网时代,Web应用的开发已成为了各行各业不可或缺的一部分。从前端到后端,这篇文章将带你深入探索如何构建现代化的Web应用。我们将介绍多种技术,包括前端开发、后端开发以及各种编程语言(如Java、Python、C、PHP、Go)和数据库,帮助你了解如何利用这些技术构建出高效、安全和可扩展的Web应用。
|
1月前
|
人工智能 运维 监控
《后端技术的未来:智能化引领下的创新与挑战》
传统的后端技术在智能化时代迎来了前所未有的转变。本文探讨了智能化技术在后端领域的应用和影响,以及智能化引领下的创新与挑战。通过分析智能化技术对后端系统架构、开发流程、运维管理等方面的影响,展望了后端技术的未来发展趋势。
11 1
|
21天前
|
缓存 NoSQL Redis
Python缓存技术(Memcached、Redis)面试题解析
【4月更文挑战第18天】本文探讨了Python面试中关于Memcached和Redis的常见问题,包括两者的基础概念、特性对比、客户端使用、缓存策略及应用场景。同时,文章指出了易错点,如数据不一致和缓存淘汰策略,并提供了实战代码示例,帮助读者掌握这两款内存键值存储系统的使用和优化技巧。通过理解其核心特性和避免常见错误,可以提升在面试中的表现。
27 2
|
2月前
|
运维 Cloud Native 云计算
未来趋势:云原生技术在后端开发中的应用
随着云计算技术的快速发展,云原生技术作为一种新兴的软件架构理念,在后端开发领域日益受到关注。本文将探讨云原生技术的基本概念、优势以及在后端开发中的应用,展望未来云原生技术对于软件开发的影响和发展趋势。
|
12天前
|
JavaScript 前端开发 IDE
【TypeScript技术专栏】TypeScript与Node.js后端开发
【4月更文挑战第30天】TypeScript在Node.js后端开发中日益重要,作为JavaScript超集,它提供静态类型检查和面向对象编程,增强代码可靠性和维护性。集成TypeScript能带来类型安全、更好的IDE体验、易于维护的代码以及增强工具支持。通过安装TypeScript编译器、编写TypeScript文件、配置TSconfig,开发者可以在Node.js项目中利用其高级特性,提高代码质量和开发效率。实践案例显示,TypeScript能确保路由处理器的类型正确,降低错误率。随着社区发展,TypeScript成为提升Node.js开发体验的推荐选择。
|
13天前
|
存储 监控 安全
21个 JVM 技术点详解(附面试解答)
以上V哥给大家详细介绍了 JVM 中涉及的21个点,全网还没有针对 JVM 这样来梳理的内容,希望对你深入了解 JVM 有一定帮助,另,V 哥给大家推荐一本《深入 JVM 虚拟机》的书籍,可以作为工具书使用,高阶的 Java 程序员几乎人手一本。今天的分享就到这里,任何疑问欢迎与 V 哥一起交流,畅谈 Java 人生。
|
13天前
|
存储 缓存 算法
后端技术优化与应用研究
后端技术优化与应用研究
15 1
|
13天前
|
机器学习/深度学习 Kubernetes 微服务
后端技术发展及其在高性能系统中的应用研究
后端技术发展及其在高性能系统中的应用研究
18 0
|
13天前
|
存储 前端开发 JavaScript
从前端到后端:构建全栈应用的关键技术探究
在当今互联网时代,全栈开发已经成为了越来越多开发者的追求目标。本文将深入探讨从前端到后端构建全栈应用所需的关键技术,涵盖了前端框架选择、后端语言与框架、数据库设计以及前后端通信等方面,帮助读者全面了解全栈开发的必备技能和工具。