当前位置: 首页 > news >正文

从准备面试八股文,感悟到技术的本质

工作前几年听说过,大学最重要的几门课其实是数据结构和算法、操作系统、计算机组成原理、计算机网络。

初听时不以为然,感觉没什么用。

近期准备面试八股文得到了一些感悟。这句话随着工作年限和对程序的理解越来越深入,含金量越来越高。

最近面试问的都是技术底层原理和实际使用注意事项。对于技术底层原理,考察的是你使用某一项技术的时候是否会去考虑底层的实现原理。对于实际使用,就是考察你是否真的用过,用的是否合理。

针对于上面提到的两个考察方面要怎么提升呢?

这个也可以拆解成两种努力方向:

第一个是短期内快速提升,就是针对于具体的技术点,去网上找大量的资料,熟悉实际使用经验和底层原理。

第二个方向是长期方向,找到工作以后,每使用一个技术,多思考为啥要这么用?有没有更好的使用方式?底层是怎么实现的?

那么回到开头,为啥那4个科目是最重要的呢?

我们程序员其实就是理解业务需求,进行分析和设计,和其他同事配合,把业务需求用程序软件实现。

最后的成果就是程序和设计文档。

那么程序就是代码,代码包括数据结构和算法。设计就是抽象业务流程,选择合适的数据结构和算法。当然除了专门做算法开发和中间件开发的程序员会自己去用数据结构和算法实现一个需求。但是业务开发程序员的话就是利用一些封装好的框架和工具实现需求,当然框架和工具底层也是算法和数据结构,我们需要去了解。不然永远都是一个只会使用API的码农。

现在程序有了,那程序是怎么运行的呢,这个就需要我们理解操作系统和计算机组成原理。

上面的都搞懂以后,那么在单台计算机上面你已经天下无敌了。那有些需求一台计算机不能满足怎么办,这个时候需要多台计算机配合实现,那么多台计算机之间怎么通信呢?所以就要用到计算机网络了

那么具体对应到面试准备是怎样的一个关系呢?

八股文=考察的是常用技术栈的使用和底层原理

场景题=考察的是你对于一些技术、数据结构和算法、其他技术的底层实现思路能不能灵活应用

算法=纯粹考你的基本逻辑能力,不过一般的公司都不考这个

举个形象的例子

线程池在JAVA面试中常问的有以下的一些问题?

有哪些参数?

考察实际使用

一个任务提交以后运行流程是怎样的?

考察技术底层设计思路

实际工作中各个参数你们怎么配置的?

考察实际使用经验,这个和具体业务相关,以工作队列为例,用无界队列可能会导致OOM,有界队列的话有2种,要怎么选择呢,这个得看底层实现和数据结构。看看哪种运行效率更好,吞吐量更高

线程池底层实现原理、源码?

这个就考的更深入了,需要花大量时间去研究,所以还是的平常多去看,多去学,不要觉得看了好像对当前的工作没用就不看了,面试就是考察这些基本功。

要你自己实现一个线程池,你怎么实现?

这种就是场景题了

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 工具介绍---效率高+实用
  • 立体仓库WCS功能设计:物流自动化的智能核心
  • Superset二次开发之Git篇git fetch 异常信息汇总
  • Vue 3 中 Props 的使用指南
  • freeRDP OPenssl
  • Linux云计算 |【第四阶段】NOSQL-DAY3
  • 和GPT讨论ZNS的问题(无修改)
  • Android 利用OSMdroid开发GIS 添加点、线、面和标记点
  • Mybatis XML配置文件操作数据库
  • Python办公自动化之Excel
  • npm run serve报错提示js堆内存不足
  • Azure Kinect 人体跟踪关节
  • 【数据评估与清洗】对数据结构和内容进行清洗
  • SpringBoot 与 Maven 快速上手指南
  • 鹅​文​档​一​面​​
  • [译] 理解数组在 PHP 内部的实现(给PHP开发者的PHP源码-第四部分)
  • 【comparator, comparable】小总结
  • angular2开源库收集
  • ES6语法详解(一)
  • Median of Two Sorted Arrays
  • select2 取值 遍历 设置默认值
  • Spring核心 Bean的高级装配
  • Terraform入门 - 1. 安装Terraform
  • UEditor初始化失败(实例已存在,但视图未渲染出来,单页化)
  • webpack项目中使用grunt监听文件变动自动打包编译
  • 阿里云爬虫风险管理产品商业化,为云端流量保驾护航
  • 百度小程序遇到的问题
  • 从零开始的webpack生活-0x009:FilesLoader装载文件
  • 官方新出的 Kotlin 扩展库 KTX,到底帮你干了什么?
  • 将 Measurements 和 Units 应用到物理学
  • 经典排序算法及其 Java 实现
  • 那些年我们用过的显示性能指标
  • 前端攻城师
  • 前端性能优化--懒加载和预加载
  • 入手阿里云新服务器的部署NODE
  • 删除表内多余的重复数据
  • 为物联网而生:高性能时间序列数据库HiTSDB商业化首发!
  • 问题之ssh中Host key verification failed的解决
  • 限制Java线程池运行线程以及等待线程数量的策略
  • ​软考-高级-信息系统项目管理师教程 第四版【第23章-组织通用管理-思维导图】​
  • ​学习一下,什么是预包装食品?​
  • ### Error querying database. Cause: com.mysql.jdbc.exceptions.jdbc4.CommunicationsException
  • ( 用例图)定义了系统的功能需求,它是从系统的外部看系统功能,并不描述系统内部对功能的具体实现
  • (10)Linux冯诺依曼结构操作系统的再次理解
  • (13)Hive调优——动态分区导致的小文件问题
  • (2)从源码角度聊聊Jetpack Navigator的工作流程
  • (android 地图实战开发)3 在地图上显示当前位置和自定义银行位置
  • (Redis使用系列) Springboot 使用redis实现接口Api限流 十
  • (zt)最盛行的警世狂言(爆笑)
  • (初研) Sentence-embedding fine-tune notebook
  • (分布式缓存)Redis分片集群
  • (附源码)springboot 智能停车场系统 毕业设计065415
  • (附源码)springboot猪场管理系统 毕业设计 160901
  • (接口自动化)Python3操作MySQL数据库
  • (幽默漫画)有个程序员老公,是怎样的体验?