| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> Java知识库 -> 直立行走的猴子 -> 正文阅读 |
|
[Java知识库]直立行走的猴子 |
猴子我是在一家芯片设计公司工作了八年的“高级”嵌入式软件工程师;还曾在华为软件部门干过两年。但是,作为公司的“技术骨干”,直到一年多前,我才开始接触正经的“算法”。 我会熟练的使用Tmux + Vim,是那种老鸟级别的,一个terminal分割成七八个豆腐块来用,全键盘操作。但是,直到一年多前,我才逐渐会写“Quick Sort”。 我了解 Linux Driver 如何编写,了解软硬中断机制,偶尔还能反汇编定位一下 Kernel Panic;几本领域内的英文 Standard 也看得烂熟。但是,直到一年多前,我才知道什么是“Heap”。 我的 C++ 基础还不错,懂得虚表结构,甚至还会写递归template;大部分C++17的新语言特性也能熟练使用。但是,直到一年多前,我才知道经过Heap优化的Dijstra算法的时间复杂度是O(ElogE)。 我想说的是,软件这个行业,我不停把弄着各式新奇玩具,当了十年的猴子而不自知;唯一不会的,就是:直立行走。 可能,你也和我一样? 算法,算个毛?算法,起初,于我而言,只是进大厂的工具。这么看,没毛病,至少让我有了开始学习的动力。 力扣,华人内卷大法席卷全球的例证,起初,于我而言,只是为了进大厂的工具。但它为我开启了一扇门。 刷题一年多,实不相瞒,最大的动力,就是大厂那诱人的薪资。刷了700多道题,也勉强算是补上了一些短板。但我开始体会到一件惊人的事情:我,一个不懂算法的软件工程师,之所以能在这行业待十年还能混到饭吃,只是因为,这行业在国内,尚未进入到淘汰“落后产能”的阶段。 总有人说起,“算法有毛用啊,工作那么些年,见哪个问题非得靠什么算法才能解决的呢?面试造飞机,工作拧螺丝嘛!” 这话听起来有道理,细想,就如同下面这话一样可笑,”扎马步有毛用啊,打群架这么些年,见哪次干架是靠扎马步赢的?趁其不备,脑袋后面来一板砖儿才是王道!“ 你若不从马步扎起,这武林就没有你的一席之地;你,最多就是个打黑拳的黑帮混混。 你,只想当个黑帮混混嘛?你,是否也是即将被淘汰的“落后产能”? 简单撸一撸,进大厂,要准备啥刷题,是显而易见的,后面详谈。先谈一些别的。 简历精心准备简历,非常重要。我修改简历的时间,加起来,应该超过80个小时。字斟句酌,反复删减修改,最终留下的,都是最重要的。 如果去的是外企,英文简历的打磨也不是闹的。写简历的几条经验:
技术面试这不是仅仅指刷题。刷题的部分,后续会详细说明。技术面试,除了做题以外,一般会聊你做过的项目,之前的工作内容,兴趣等等。 总结几个重点:
行为面试这是非常容易被忽视的一个方面。所谓“行为面试”,举几个例子就能明白:
行为面试在youtube上有一些相关的教学视频,看一看会有好处。此处不多谈,要细谈会是另一篇完整的文章。只说两点:
英语口语英文是去外企大厂高概率会考察的内容,如果你应聘的部门和国外总部有密切的工作往来,则要求会更高。 这里,我先只给两条关键建议
想纠正自己英语发音的,推荐 Rachel’s English 以及 youglish 刷题!作为一名35岁的程序员,家有小神兽,公司还经常要求加班,之前接触过的最复杂算法就是“冒泡排序”,刷题,对我来说,还是有点儿难度的。一路走来,我居然刷了15个月的题,总计题量700+。 分解下来,刷题,需要的是:决心,坚持,保密,方法。 决心最初的三个月,决心是最重要的。因为,这段时间,你什么都不会,偶尔觉得学会了,很快会发现自己还是不会。加班回到家,9点半,疲惫不堪;打开力扣,可能每道题都会蹂躏你。如果决心不够,你很快就会放弃。 你要想尽一切方法来加强你的决心,可以看廉价的鸡汤文,可以畅想未来的美好生活,等等。 坚持决心的保鲜期可能不会那么久,或者说,“决心”也有下班的时候。当审美疲劳出现的时候,你需要寻找适合自己的方式,让自己机械的坚持下来。力扣的打卡题可能是一种方式,寻找合适的队友可能是另一种方式。 保密在职刷题,此一条非常重要!如果你打算找队友,一定要找口风靠谱的人!如果你要找人内推,一定要找无论此次内推是否成功,都不会把你的消息告诉任何其他人的靠谱的人! 方法刷题的方法有很多,我挑几条最重要的出来说。 看书刷题现在有很多公众号会提供题单,但最好的题单就是《程序员面试金典》和《剑指Offer 第二版》。刚开始刷题,这两本书里面的题,可以作为例题进行学习,边刷边看书。先做其中的简单、中等难度的题目。再搭配选择力扣主站的前200道经典题中的一部分,刷满200题,基本上,你已经见识过了面试中会考察到的算法的50%。 注意,一开始刷题,千万不要自己闷头想,想10分钟,没思路,就看书,看题解。学习,理解,消化。待到你做了100多题后,这个要求可以提高,你可以自己硬刚1个小时,看能不能想出来,想不出来,再看题解。 另外,只有题单是不行的。我建议配合一两本教科书进行学习。《算法·第四版》和《算法导论》是不二选择。这两本书都有对应的视频课程。《算法·第四版》在Cousera上可以查到原作者上的公开课,《算法导论》在MIT的 OpenCourseWare 和 YT 上都有视频。 按类型、频率刷题同一类型的题目,集中做,类似于中学集中学一个单元的知识点,有很好的强化效果。缺点是:你已经被提示了解题的算法,所以,即便不看题解能自己写出来,也是降低了难度的结果。 力扣会员可以看到出题频率。做高频题,不是为了面试押宝,而是因为这些题是经典。吃透这些题目,更容易做到能够举一反三。 初期刷题的类型:数组,链表,树,排序 数量和质量未完待续 |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/24 6:22:14- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |