找回密码
 立即注册
快捷导航

[刷题职场面试] 程序员应该有的一些好习惯 + 面试必知事项 - 程序员修炼之路

[复制链接]
深渊 2023-8-31 01:42:56 | 显示全部楼层
本帖最后由 dlsite 于 2023-8-31 02:08 编辑

程序员修炼之路

学习/编程好习惯

养成一个学习习惯和编程习惯真的太重要了,一个好习惯的养成真的对后面的学习有很大帮助。说实话我自己当初在这方面吃了不少亏,很多比较好的习惯我也是后面自己才慢慢发现,所以这里想着重给大家说一下有哪些好的学习和编程习惯。

正确提问

我们平时任何时候都离不开提问特别是初学的时候,但是真正知道如何正确的提问的人很少。问别人问题前不要来一句“在吗”,你说你问了在吗我是回复好还是不回复好呢 ?不要让别人给你发 32 位的 JDK,除非你是喜欢那个人。

更多关于如何提问的内容,详见 github 上开源版『提问的智慧』 https://github.com/ryanhanwu/How-To-Ask-Questions-The-Smart-Way/blob/master/README-zh_CN.md,抽时间看一下,我想看完之后应该会有很多收获。

更多内容可以查看我的这篇原创文章:如何提问

健康生活

我一直觉得这一方面是最重要的,我想很多人和我一样会无意识间忽略它,等到真的身体不舒服了,你才开始意识到健康生活的重要性。

  1. 除非万不得已,不要熬夜了。熬夜的危害就不用多说了,秃头加内分泌失调,你懂得!
  2. 看电脑 45 分钟之后,起来走 5 分钟,看看远方放松一下。不要觉得这 5 分钟浪费时间,相反,这 5 分钟可能为你带来更大的效率提升。
  3. 可以考虑买一个电脑架子,保护好自己脊椎的同时,办公体验也会提升很多。
  4. 可以下载一个护眼宝,感觉可以护眼模式挺棒的,非常适合我们这种需要经常盯着电脑的人使用,强烈安利。

高效搜索

尽量用 google 查找技术资料以及自己在学习中遇到的一些问题。

解决 bug

程序遇到问题先在 stackoverflow 找找,大部分别人已经遇到过了。如果上面没有的话,再考虑其他解决办法。实在解决不了的话,再去问你觉得有能力帮你解决的人(注意描述好自己的问题,不要随便截一个 Bug 图)。

善于总结

学习完任何一门知识后,你可能当时看视频感觉老师讲的挺容易懂的。但是,过几天后你发现你忘的一干二净,别人问你一个类似的问题,你一点思路都没有。所以,我推荐你学完一门知识后不光要及时复习,还要做好总结,让知识形成一个体系。另外,你可以假想自己要给别人讲这个知识点,你能不能把这个知识点讲清楚呢?如果不能,说明你对这个知识点还没有彻底了解。这也就是人们经常说的费曼学习技巧。

总结的方式:

  1. 有道云笔记、OneNote......这类专门用来记录笔记的软件上;
  2. 思维导图;
  3. 通过写博客输出。可以考虑自己搭建一个博客(hexo+GithubPages 非常简单),你也可以在简书、掘金......等等技术交流社区写博客。Markdown 格式参考:https://github.com/sparanoid/chinese-copywriting-guidelines 中文文案排版指北:https://github.com/sparanoid/chinese-copywriting-guidelines

写博客

写博客有哪些好处:

  1. 对知识有更加深的认识,让自己的知识体系更加完整;
  2. 督促自己学习;
  3. 可能会带来不错的经济收入;
  4. 提升个人影响力;
  5. 拥有更多机会;
  6. ......

总的来说,写博客是一件利己利彼的事情。你可能会从中收获到很多东西,你写的东西也可能对别人也有很大的帮助。但是,写博客还是比较耗费自己时间的,你需要和工作做好权衡。

分享是一种美德,任何行业都不是靠单打独斗的,写博客、写好博客是一个程序员很好的习惯。我为人人,人人为我!

更多内容可以查看我的这篇原创文章:我为什么推荐你写博客?

多用 Github

没事多去 Github 转转,如果有能力可以参与到一些开源项目中。多看看别人开源的优秀项目,看看别人的代码和设计思路,看的多了,你的编程思想也会慢慢得到提升。除了这些优秀的开源项目之外,Github 上面还有很多不错的开源文档、开源资料什么的,我觉得对我们平时学习都挺有帮助。Github 用得好还能装一下,毕竟人家还是一个全英文网站,咳咳咳。

实践

多去实践,将学到的东西运用到实际项目中去。很多人都找我抱怨过没有实际项目让自己去做,怎么能有项目经验呢?如果实在没有实际项目让你去做,我觉得你可以通过下面几种方式:

  1. 在网上找一个符合自己能力与找工作需求的实战项目视频或者博客跟着老师一起做。做的过程中,你要有自己的思考,不要浅尝辄止,对于很多知识点,别人的讲解可能只是满足项目就够了,你自己想多点知识的话,对于重要的知识点就要自己学会去往深出学。
  2. Github 或者码云上面有很多实战类别项目,你可以选择一个来研究,为了让自己对这个项目更加理解,在理解原有代码的基础上,你可以对原有项目进行改进或者增加功能。
  3. 自己动手去做一个自己想完成的东西,遇到不会的东西就临时去学,现学现卖。

注意代码规范

从学习编程的第一天起就要养成不错的编码习惯,包、类、方法的命名这些是最基本的。

推荐阅读:

其他

沟通能力

程序员也离不开沟通。你可能需要与客户交流需求,还要和同事交流项目问题,还有可能定期需要向领导汇报项目进展情况。所以,我觉得不错的沟通能力也是一个优秀的程序员应该有的基本素质。

如何提升个人影响力

  1. 写博客;
  2. 参与开源项目;
  3. 写书;
  4. ......

面试必知

如何获取大厂面试机会?

在讲如何获取大厂面试机会之前,先来给大家科普/对比一下两个校招非常常见的概念——春招和秋招。

  1. 招聘人数 :秋招多于春招 ;
  2. 招聘时间 : 秋招一般 7 月左右开始,大概一直持续到 10 月底。但是大厂(如 BAT)都会早开始早结束,所以一定要把握好时间。春招最佳时间为 3 月,次佳时间为 4 月,进入 5 月基本就不会再有春招了(金三银四)。
  3. 应聘难度 :秋招略大于春招;
  4. 招聘公司: 秋招数量多,而春招数量较少,一般为秋招的补充。

综上,一般来说,秋招的含金量明显是高于春招的。

下面我就说一下我自己知道的一些方法,不过应该也涵盖了大部分获取面试机会的方法。

  1. 关注大厂官网,随时投递简历(走流程的网申);
  2. 线下参加宣讲会,直接投递简历(相比于线上投递成功的几率会高很多!);
  3. 找到师兄师姐/认识的人,帮忙内推(能够让你避开网申简历筛选,笔试筛选,还是挺不错的,不过也还是需要你的简历够棒);
  4. 博客发文被看中/Github 优秀开源项目作者,大厂内部人员邀请你面试;
  5. 求职类网站投递简历(不是太推荐,适合海投)。

面试的时候应该穿什么?

穿西装、打领带、小皮鞋?NO!NO!NO!这是互联网公司面试又不是去走红毯,所以你只需要穿的简单大方就好,不需要太正式。

面试前有哪些需要注意的地方?

  1. 提前准备好自我介绍;(看下面)
  2. 随身带上自己的成绩单和简历(有的公司在面试前都会让你交一份成绩单和简历当做面试中的参考);
  3. 如果需要笔试就提前刷一些笔试题;
  4. 花时间做一些逻辑题和智力题(面试中发现有些公司都有逻辑题或者智力题测试环节,并且都把逻辑题或者智力题成绩作为很重要的一个参考);
  5. 准备好自己的项目介绍;(看下面)
  6. 面试之前做好定向复习(所谓定向复习就是专门针对你要面试的公司来复习。比如你在面试之前可以在网上找找有没有你要面试的公司的面经);

怎么自我介绍比较好?

从 HR 面、技术面到高管面/部门主管面,面试官一般会让你先自我介绍一下,所以好好准备自己的自我介绍真的非常重要。网上一般建议的是准备好两份自我介绍:一份对 hr 说的,主要讲能突出自己的经历,会的编程技术一语带过;另一份对技术面试官说的,主要讲自己会的技术细节,项目经验,经历那些就一语带过。

我这里简单分享一下我自己的自我介绍的一个简单的模板吧:

面试官,您好!我叫某某。大学时间我主要利用课外时间学习某某。在校期间参与过一个某某系统的开发,另外,自己学习过程中也写过很多系统比如某某系统。在学习之余,我比较喜欢通过博客整理分享自己所学知识。我现在是某某社区的认证作者,写过某某很不错的文章。另外,我获得过某某奖,我的 Github 上开源的某个项目已经有多少 Star 了。

如何介绍自己的项目?

如果有项目的话,技术面试第一步,面试官一般都是让你自己介绍一下你的项目。你可以从下面几个方向来考虑:

  1. 对项目整体设计的一个感受(面试官可能会让你画系统的架构图)
  2. 在这个项目中你负责了什么、做了什么、担任了什么角色
  3. 从这个项目中你学会了那些东西,使用到了那些技术,学会了那些新技术的使用
  4. 另外项目描述中,最好可以体现自己的综合素质,比如你是如何协调项目组成员协同开发的或者在遇到某一个棘手的问题的时候你是如何解决的又或者说你在这个项目用了什么技术实现了什么功能比如:用 redis 做缓存提高访问速度和并发量、使用消息队列削峰和降流等等。

如果面试官问"你有什么问题问我吗?"时,你该如何回答

如果面试官问"你有什么问题问我吗?"时,你该如何回答

几乎每一场面试,特别是 HR 面和高管面的时候,面试官总是会在结尾问我:“问了你这么多问题了,你有什么问题问我吗?”。不管是技术面试还是非技术面试,如果你想赢得公司的青睐和尊重,我觉得我们都应该重视这个问题。

网上提供了很多问题模板,我觉得回答这个问题重要要的就是:真诚一点,不要问太 Low 的问题。

面试官问你的优点是什么,应该如何回答?

回答这样的问题,最好能够结合你要应聘的职位来做针对性回答。一般面试官问这个问题的时候,很可能会只让你说几个你觉得最能体现你能力的优点,为了避免自己在面试过程中不知道该说自己的那些优点,你可以在面试之前好好准备一下。 面试的时候最好可以说几个你要应聘的职位所做的事情需要的优点或者说你要应聘的公司比较看重的优点(企业文化)。

面试官问你的缺点是什么,应该如何回答?

缺点肯定不能是目标岗位需要的关键能力!!!

总之,记住一点,面试官问你这个问题的话,你可以说一些不影响你这个职位工作需要的一些缺点。比如你面试后端工程师,面试官问你的缺点是什么的话,你可以这样说:自己比较内向,平时不太爱与人交流,但是考虑到以后可能要和客户沟通,自己正在努力改。

面试官问期望薪资时,应该如何回答?

曾经在面试之前我也问过我这个问题!我觉得应届生和社招在这方面差别挺大的。

应届生面试的话,我觉得这个应该很少会被问到吧!因为大部分公司肯定会根据市场情况提前定好今年招聘的应届本科生/研究生的薪资水平,大部分同为应届生的薪资根据你的学历水平都是差不多的,面试中的佼佼者获得sp就另外说了。如果真的被问到了咋办?我copy一下我当时写的:

“我相信,在我的持续努力之后,公司会给我相应合理的报酬。这也是对我的一个激励,希望您能帮忙争取”。(ps: 忘记这个是在哪里看到的了,当时觉得不错,就整理到了Onenote中)

之前大学的时候一直用的 OneNote做笔记,目前用的 Typora 整理笔记然后同步到 Github 私人仓库。

另外,我问了一下我一个很资深的hr朋友,她的建议就是:在自己的简历上最好写上期望薪资,避免聊到了时候闹乌龙。

如何写出更优秀的代码

Java

  1. 使用 IntelliJ IDEA 作为您的集成开发环境 (IDE)
  2. 使用 JDK 8 或更高版本
  3. 使用 Maven/Gradle
  4. 使用 Lombok
  5. 编写单元测试
  6. 重构:常见,但也很慢
  7. 注意代码规范
  8. 定期联络客户,以获取他们的反馈

上述建议的详细内容:八点建议助您写出优雅的 Java 代码

更多代码优化相关内容推荐:

作为 IT 行业的过来人,你有什么话想对后辈说的?

回复

使用道具 举报

主题

0

回帖

448

积分

已臻大成

 楼主| 深渊 2023-8-31 01:48:18 | 显示全部楼层

如何提问

我遇到过很多让我无语或者头疼的问题,也遇到让我很欢喜想要去耐心解答的问题,总的来说,会提问的人还是太少了。我不知道我是不是一个会提问的人,为此我也查阅了网上的一些相关资料,下面给大家分享一下我对如何提问的看法。

下面我总结了一些经常被问到的一些问题,我暂且将它们分为:“稍微正常”和“不那么好”这两类。

我觉得稍微正常点的问题(还算正常的问题,但提问方式有待改善):

  1. 如何学习什么?
  2. 什么该如何入门?
  3. 什么问题如何解决?
  4. 什么内容你能给我解释一下吗?
  5. 如何找到一个让自己满意的工作?
  6. 简介该如何写?
  7. 初学xxx有哪些书籍推荐呢?
  8. ......

我觉得不那么好的问题(让人讨厌的问题):

  1. 什么软件可以发一下、我能在哪找到 X 程序或 X 资源?(一般被提问者内心OS:难道不会 Google?最不济应该也会百度吧!)
  2. 什么环境变量怎么配置啊( Google?百度?)
  3. 随便截个bug图,然后扔下一句话:“这是什么题”(一般被提问者内心OS:我滴个乖乖,你随便截个图问我,我特么哪有闲心思给你解决这种问题,我自己不就是从这个时候过来的吗,是不是应该把 stackoverflow 推荐给他!
  4. 我怎么才能破解 root 帐号/窃取 OP 特权/读别人的邮件呢?(一般被提问者内心OS:想要这样做,说明了你是个卑鄙小人;想找个别人帮你,说明你是个白痴!)
  5. ......

分享一个这两天遇到的一个典型的例子,当然,之前也遇到了很多这样的例子,我觉得下面这位同学的问题以及提问方式都不太好,至少我自己真的不太喜欢。

程序员应该有的一些好习惯 + 面试必知事项 - 程序员修炼之路7969 作者:深渊 帖子ID:736

前面的聊天的我这里就不贴了,总结来说,我觉得他的提问存在很明显的问题就是:没有把自己的问题描述清楚,问一些过于”低级“的问题,另外,最重要是我觉得他态度也不是那么好。所以,后面我就直接给他说:”这些问题你直接百度/Google 最好“。我是真的讨厌这种问问题方式,我也知道你可能是刚入门,需要别人帮助你回答一些疑问,但是请你问问题之前自己先做下功课可好?

说了这么多废话,其实也是自己心里话,不光是想让大家意识到会提问真的很重要,同时也是告诫自己以后要注意自己的提问方式。下面说一下我觉得比较好的提问方式或者说是高效提问方式:

  1. 最重要的就是遇到问题之前首先 Google!很多时候你花半个小时到处问问题,你 Google 一下可能 10 分钟就解决了。
  2. 有问题直接问,不要给别人来句“在吗”或者“有时间吗”这类话(我觉得我还算脾气很好的,每天都会遇到这类人,每天都不耐烦的回答,但直接说明自己的问题或者请求不是更好吗?)。
  3. 问别人问题之前自己先做一些功课,不要一上来就问一下很 Low 的问题,让别人对你的印象不好;
  4. 问问题的时候尽量添加一些上下文信息,比如说:你为什么问这些问题,这些问题出现在什么情况下等等。
  5. 你可以先说明一下自己对于这些问题的看法,你准备如何解决,你做过哪些尝试,你期待对方给你什么样的回答。
  6. 缩小你的问题的范围,越是范围小而清晰的问题越容易回答。

最后,再分享一下有些我觉得比较好的提问网站:

国内: segmentfault、知乎

国外: stackoverflow (感觉和知乎很像,但是 stackoverflow 不光可以给回答打分还可以给问题本身打分,我觉得这点很不错,最重要的是 stackoverflow 主要是程序员问答,你遇到的很多程序问题在这里应该都有其他人遇到过 )

更多关于如何提问的内容,详见 github 上开源版『提问的智慧』 https://github.com/ryanhanwu/How-To-Ask-Questions-The-Smart-Way/blob/master/README-zh_CN.md

   
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

1楼
2楼
温馨提示

关于 注册码 问题

      由于近期经常大量注册机器人注册发送大量广告,本站开启免费入群领取注册码注册网站账号,注册码在群公告上贴着...

关于 注册码 问题

      由于近期经常大量注册机器人注册发送大量广告,本站开启免费入群领取注册码注册网站账号,注册码在群公告上贴着...

Archiver|手机版|小黑屋|DLSite

GMT+8, 2024-11-22 17:30

Powered by Discuz! X3.5 and PHP8

快速回复 返回顶部 返回列表