程序猿面试不想背八股文该怎么做

程序员必备的面试技巧

程序猿面试不想背八股文该怎么做

故事:

wade_crab:小X,你怎么还不准备八股文?不是要准备面试了下午吗?

小X:面试知识走个过场,之前我就打过招呼啦。

wade_crab:还能这样?那可是一家在医疗行业很有名的上市公司呀,大佬。有关系带带小弟我。

小X:没关系啦,后来我才知道,其实平时小H喜欢去认识相关行业的人,也加了很多的社群,更重要的是小H健谈,有很多的求知欲,中午时不时喜欢约个咖啡馆去附近软件园聊聊天。然后就在那附近遇到了很多行业前辈们,有创业的,也有普通职员。

有人就问了:这有啥用,不就唠唠嗑吗?

面试难道不也是唠嗑嘛?面试的目的是为了了解你的能力和过往,知道你能不能胜任,让别人知道你肚子里面有货。其实同理。而且认识后,小X平时也积极发表论文和git开源项目。在小红书和个人账号都有在做。算是把自媒体时代玩的透透的了,说这些只是为了告诉大家,能力怎么被人发现很重要,这样子也许就不用那么繁琐和去背诵让人讨厌的八股文了。

大家了解他的成本就变得很低。而且也信任这么一个经验丰富的人。这样子我想比传统按照两个电子文档,苍白的描述更有说服力。毕竟在学历贬值的年代(学历很重要),会出现高学历低能力的不再少数。因为学历是筛选平均值哈,少数人不会被平均,大多数人只在平均值。

现在再谈谈应届生难入职和年薪40万的看法

我是肯定学历的重要性的,甚至我比大家更了解里面的区别。因为我自己私下也有接毕设类的活:

  • 一个是:某电子学校的大二计算机视觉的作业,自己做三维重建的部分组件,要求可以参考开源项目。
  • 一个是:某二流大学的研究生作业,利用离群算法和关联分析,去做传统煤炉厂的一个异常报警。
  • 一个是:云南某学院的大数据挖掘项目。

这三个区别:

第一个是自己造轮子,必须深刻了解SFM和MVS的原理和算法才能接着进一步去做。非视觉向的人可以下跳去了解这个术语。

第二个是做一些很老的项目吧,这个项目论文是2015年的,他从师兄那改改就上去了。但里面的流程和基础概念他完全不理解,甚至不知道关联分析是为了优化流程。

第三个是挂羊头卖狗肉,说是说大数据挖掘,实际就是利用DEMO数据生成几个图表。

结论:

所以有时候应届生传出大厂年薪40万什么的我真的很能理解。要是他们都有这水平,大学期间打了比赛,做了自己的开源项目,发表了很不错的论文,这样优秀的人。哪个公司不会抢着要呢?

把普通程序猿的能力具体化该是什么?

背面试题?

项目做的特别好?

特别懂业务?

有一定管理能力?

曾经在顶级团队待过?

有自己的开源项目?

经常发表博客论文,技术帖?

拥有软件专利?

这些都是加分项,不过普通程序猿只要做到这些就够够的了:

  1. 数据结构和算法: 数据结构和算法是程序员面试的核心内容。掌握常见的数据结构(如数组、链表、栈、队列、树、图等)和算法(如排序、查找、递归、动态规划等)是至关重要的。
  2. 编程语言: 程序员需要熟练掌握一门或多门编程语言,通常是面试所需职位所要求的主要语言。这可能包括Python、Java、C++、JavaScript等。
  3. 操作系统: 了解操作系统的基本原理和概念,包括进程、线程、内存管理和文件系统等。针对特定职位可能需要深入的操作系统知识。
  4. 数据库和SQL: 了解数据库基本概念,如SQL查询、表设计、索引和事务管理。熟悉常见的关系数据库管理系统(如MySQL、PostgreSQL、Oracle等)。
  5. Web开发: 如果面试涉及Web开发,要了解前端和后端开发的基本原理,包括HTML、CSS、JavaScript、Web框架和RESTful API等。
  6. 面向对象编程: 理解面向对象编程的基本概念,包括类、对象、继承、封装和多态等。
  7. 版本控制: 熟悉版本控制工具,如Git,能够有效地管理代码库和协同工作。
  8. 软件工程原则: 理解软件工程原则,如DRY(不要重复自己)、SOLID原则、设计模式等,以编写可维护和可扩展的代码。
  9. 问题解决能力: 在面试中,面试官通常会提出算法和编程问题,要有良好的问题解决能力,能够分析和解决复杂问题。
  10. 系统设计: 对于高级职位,可能需要进行系统设计和架构方面的面试,要能够设计可扩展、高性能的系统。
  11. 沟通能力: 良好的沟通能力是面试中的重要因素,要能够清晰地表达思想和解释解决方案。
  12. 项目经验: 准备在面试中讨论你在过去的项目中的经验,包括你所负责的任务和所面临的挑战。

技术骨干型程序猿只要做到这些就够了:

  1. 网络和安全: 了解计算机网络原理和基本安全概念,以保护应用程序免受攻击。
  2. 性能优化: 能够分析和优化应用程序的性能,提高响应速度和效率。
  3. 系统架构: 了解系统架构设计和微服务概念,对大规模应用程序的设计有经验。
  4. 大数据和云计算: 了解大数据技术(如Hadoop、Spark)和云计算平台(如AWS、Azure、Google Cloud)。
  5. 自动化和部署: 学会自动化部署流程,使用CI/CD工具来持续集成和持续交付。
  6. 学习优秀框架: 如!!!!!!!关注题主 写的一些手写框架类的文章!!!!,思考如何做出企业级中间件,对于性能瓶颈如何应对。
  7. 如何阅读国外最新的论文 ,并且!将他们产业化

业务管理型程序猿只要做到这些就够了:

  1. 法律和伦理: 了解软件开发的法律和伦理问题,确保遵守相关法规和道德准则。
  2. 掌握行业动向,读懂行业报告,掌握行业咨询。了解最新的产品

别再想着35岁失业了!!!

财务自由程序猿只要做到这些就够了(拥有被动收入就可以成为财务自由的人):

  1. 写一个toC端的App
  2. 写企划书去拉投资人
  3. 去寻找商务伙伴
  4. 去寻找科研合作单位

看到这,请点赞一键三连,让平台置顶让更多人看到这篇文章,减少 35 岁失业的人。可以吗?

附录:

SFM和MVS是计算机视觉和计算机图形学领域中的两种不同技术或方法:

  1. SFM (Structure from Motion - 运动估计与三维结构恢复): SFM是一种计算机视觉技术,用于从一系列二维图像中恢复三维场景的几何结构(例如物体的位置和相机的运动)。它基于图像中的特征点和相机的运动信息,通过三角测量和优化技术来估计场景的三维结构。SFM通常用于三维重建、摄影测量和虚拟现实等应用领域。
  2. MVS (Multi-View Stereo - 多视角立体匹配): MVS是一种计算机视觉技术,用于从多个视角的图像中创建高质量的三维模型。它涉及到从不同角度拍摄的图像中的立体匹配,以生成具有深度信息的三维点云或模型。MVS通常用于建立精确的三维模型,如建筑物、雕塑、景观等。

这两种技术通常可以结合使用,以创建更精确和详细的三维重建结果。它们在计算机视觉、计算机图形学、地理信息系统(GIS)和虚拟现实等领域中具有广泛的应用。

相关推荐
chengooooooo4 小时前
代码随想录训练营第二十七天| 贪心理论基础 455.分发饼干 376. 摆动序列 53. 最大子序和
算法·leetcode·职场和发展
码农爱java5 小时前
设计模式--抽象工厂模式【创建型模式】
java·设计模式·面试·抽象工厂模式·原理·23种设计模式·java 设计模式
测试杂货铺5 小时前
如何用postman做接口自动化测试及完美的可视化报告?
自动化测试·软件测试·测试工具·职场和发展·jenkins·压力测试·postman
Jiude6 小时前
算法题题解记录——双变量问题的 “枚举右,维护左”
python·算法·面试
撞上电子7 小时前
蓝桥杯物联网开发板硬件组成
物联网·职场和发展·蓝桥杯
pzx_0017 小时前
【LeetCode】LCR 175.计算二叉树的深度
开发语言·c++·算法·leetcode·职场和发展
Aloha_up7 小时前
LeetCode hot100-89
算法·leetcode·职场和发展
测试老哥10 小时前
Jmeter测试脚本编写技巧
自动化测试·软件测试·功能测试·测试工具·jmeter·职场和发展·性能测试
长安051112 小时前
面试经典题目:LeetCode134_加油站
c++·算法·面试
Jamesvalley12 小时前
【工作流】工作顺序
职场和发展