我能讲明白哪些技术?

用户头像
escray
关注
发布于: 2020 年 08 月 23 日
我能讲明白哪些技术?

极客时间《面试现场》学习笔记

13 | 你真能讲明白技术吗?      



从两个维度讲清技术,对我来说,从应用维度是弱项,那么就得想办法加强内部设计维度的把握。



对于面试官,我可能需要进行更多的面试来演练,可以在面试现场琢磨一下面试官的想法。



结构化、可视化、举例子、做类比、对比,还有讲故事,表达方式上还真是多种多样。我自己可能有说话节奏比较快的问题。



因为自己没有拿得出手的技术,所以不知道该如何去讲。其实可以稍微准备一下,比如测试驱动开发、MySQL,最近还考虑去学习一下 Go 语言和 Java Spring



技术的两个维度八个方面:



  • 外部应用维度:问题、技术规范、最佳实践、市场应用趋势

  • 内部设计维度:目标、实现原理、优劣趋势、技术演进趋势



如果每个技术能够讲到这个程度,那么应该是可以和面试官谈笑风生了。可惜的是无论是 Java 多线程还是 Ruby 元编程,我暂时还没有能力讲明白。其实这种讲法,在某种程度上有点类似于费曼学习法。



这里所提到的沟通方法,其实不仅仅适用于面试,同样也适合技术沟通和日常交流。



如果说清楚 Java 多线程(以下内容摘取自专栏文章)



应用维度



  • 问题:Java 多线程的产生,是因为要并发,从而使程序多种功能相应更快,用户体验更好。

  • 技术规范:在 Java 中,可以实现 Runnable 接口、拓展 Thread 类来实现代码并发;Java 提供 synchronized 关键字和各种锁,帮助控制并发代码行为和衍生问题。

  • 最佳实践:在多线程场景下实现锁来确保线程通读,但是加锁和释放非常消耗资源,可以考虑使用 CAS 方式实现无锁的线程同步,并且采用时间戳的方式来解决 ABA 问题。

  • 市场应用趋势:Java 从低并发逐渐发展到高并发,充分利用系统能力,减少响应时间。



设计维度



  • 目标:Java 多线程要在优先级调度、锁、信息同步方面达成的目标

  • 实现原理:Java 多线程的实现原理包括内核线程、使用用户态线程、使用用户态线程加轻量级进程混合等部分,还包括硬件指令集、Test and Set、各种锁

  • 优劣局限:Java 多线程编程采用共享内存方式,锁的开销比较大,编程难度大,难以调试

  • 演进趋势:Java 5 提供 jcu 包,实现了多种锁的结构,简化开发;Java 7 加入 Future 来获取线程返回值



发布于: 2020 年 08 月 23 日 阅读数: 27
用户头像

escray

关注

Let's Go 2017.11.19 加入

大龄程序员

评论

发布
暂无评论
我能讲明白哪些技术?