从 0 offer 到春招上岸,我只做了这一个决定...

大家好,我是白露啊。

今天我想和大家聊一聊关于春招编程语言的选择问题。这个问题其实我一直就想写了,但是之前忘记了···

其实白露当年毕业找工作的时候,可谓是一波三折。

最沉痛的打击就是在4月份的时候,原本实习转正的部门被优化了,因此只能够被迫毕业前两个月开始“春招”。

在当时那个时间,市场上几乎已经没有HC了,于是我就在不停地投递,但是都石沉大海

最后,我做出了一个违背“祖宗”的决定,那就是更换编程语言

当时我在学校里主学的是C/C++、辅修Java,通过对当时形式的判断,我选择了主修Go,并且在三周之后顺利拿到offer,成功上岸。

今天我特地把这个方法分享给大家,只是想给大家提一个醒,在招聘的时候,尤其是校招,千万不要在一棵树上吊着,试试多吊几棵树。

顺带一提,我们实验室的几个师弟今年春招也通过更换语言顺利上岸~至于这个方法是否有用,仅供参考,祝大家好运啦。

我需要提醒一下的是,这只是我个人的经历和建议,并不意味着Go一定就是最好的选择。

因为在面临选择时,我们需要全面考虑多种因素,比如自己的学历背景、技能程度、就业市场的状况等等。

而且每个人的情况都不一样,也许你会有比我更多的选择,也许你会面临和我完全不同的困难。

所以,我的建议只能作为参考,你需要根据自己的实际情况来做出最适合自己的选择。

具体来说,我们可以将这个“转Go”的计划大致分为三个部分:

第一部分(约2天):语法基础

是语言本身的学习,你只需要对Go有一个概观的认识,能看懂和写出常见的Go代码即可;

首先,我们需要掌握Go语言的基本语法

这个部分并不需要深入学习,只需要你能看懂和写出Go的基本代码即可。

推荐的学习方法是看Go的语法示例

你或许已经掌握了其他编程语言,比如Java或者C++,这样你就可以直接通过对比示例代码来理解Go的语法结构和特性。

在这个过程中,你可能会遇到一些疑惑或者不理解的地方,这时候你完全可以通过搜索或者看视频教程来进行查阅和学习。

总的来说,你应该以最适合自己的方式来进行学习。

第二部分(约7天) :基础概念学习

接下来,我们需要深入到Go的内部机制,学习一些原理性的知识

这个部分主要包括:slice、map、channel、sync.Map、context的使用和原理,以及GPM调度器和垃圾回收机制等。

这看上去似乎很多内容,但是请不要被这些名词吓到,你不需要深究每一个细节。

你可以在网上去搜索经典的博客文章,根据自己的时间和精力情况,去学习其中的部分或者全部内容。

需要注意的是,这些原理并不是你应对任何面试题目都需要的,你可以根据自己的实际情况,进行有选择性的学习

比如,如果你只有有限的时间,或者你对某一方面的知识特别感兴趣,你可以优先选择学习这部分内容

第三部分(约5天): 项目实践+八股文

在理解了Go的基本语法和重点原理后,我们接下来要关注的是:在实际的Go项目中,我们需要注意哪些常见的八股和坑

八股文就是Go面试常问的问题,包括但不限于:

  1. 请解释一下Go的主要特性是什么?
    这个问题主要测试你是否对Go语言有一个全面的理解。你可以从并发处理、垃圾回收、内存安全、跨平台等方面来进行回答。
  2. Go的语言机制是如何支持并发的?
    在这一问,你需要讲解Goroutines和Channels的工作原理和用法,并且解释一下在Go语言中如何实现并发编程。
  3. 什么是Goroutine?它与线程有什么区别?
    此问题考察你对Goroutine的理解,你需要详述Goroutine的特性以及它和传统线程的不同之处。
  4. 解释一下Go中的"defer"关键字的作用是什么?你自己在实际开发中是如何使用它的?
    面试官希望知道你是否了解并会实际应用Go的语言特性。
  5. 描述一下你对Go内存管理的理解。
    这问题用来考察你对Go的底层运行机制的理解,包括垃圾回收机制等。
  6. 请解释一下Go中的指针,它在Go语言中如何使用?
    对于这个问题,你可以解释一下什么是指针以及它在Go中的用法,包括如何声明和初始化一个指针,如何获取指针的地址和值。
  7. 请解释一下“接口”的概念,并给出一个在Go中如何使用的例子。
    这个问题旨在测试你对Go接口的理解和使用。你可以解释一下接口的概念,并给出一个使用示例来演示如何通过接口来实现多态。
  8. 请解释一下Go中的错误处理机制,它和其他语言(如Java)有什么不同?
    在这个问题中,你需要说明Go如何通过返回错误值来进行错误处理,并阐述与其他语言如Java的异常处理的区别。
  9. 请解释一下你对map、slice和channel的理解,并且给出一些实际应用的例子。
    你需要介绍这些数据结构和类型的用法,并解释在实际项目中如何使用。
  10. Go如何实现面向对象编程?如何实现封装、继承和多态?
    面试官会问到这个问题来看你对Go的对象模型和面向对象编程理解。

记住,这些建议只是一份基础清单,真正的面试可能会涵盖更多的主题,包括但不限于框架、数据库、网络编程等。

至于实践,找几个开源的Golang项目,跑起来就对了!

最好是有那种博主分享源码解析的项目,这样看起来事半功倍,并且也能够提前了解到面试里可能会问什么问题。

这些知识点能够帮助你在面试中更好地展示自己,避免一些常见的问题。

更进一步说,无论如何准备,都没有真实编程经验更为重要

因此,多做项目练习,不断深化理解和运用Go语言,都将直接帮助你在面试中站稳脚跟,祝你成功!

当然,你的简历上写什么,面试官就会问什么,所以在这个部分,你只需要学习和回答自己所擅长和感兴趣的方向。

你不必面面俱到,而应该在自己的领域展现出深度和广度。

等你学完这些内容之后,你就可以 confidently saying that “我会Go”,并且能够在实际项目中使用Go来进行开发了。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/599696.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【智能算法】人类进化优化算法(HEOA)原理及实现

目录 1.背景2.算法原理2.1算法思想2.2算法过程 3.结果展示4.参考文献5.代码获取 1.背景 2024年,J Lian受到人类进化启发,提出了人类进化优化算法(Human Evolutionary Optimization Algorithm, HEOA)。 2.算法原理 2.1算法思想 …

JavaWEB 框架安全:Spring 漏洞序列.(CVE-2022-22965)

什么叫 Spring 框架. Spring 框架是一个用于构建企业级应用程序的开源框架。它提供了一种全面的编程和配置模型,可以简化应用程序的开发过程。Spring 框架的核心特性包括依赖注入(Dependency Injection)、面向切面编程(Aspect-Or…

Springboot项目学习之各组件的用法和逻辑结构

1.Controller层(Controller): 也称为前端控制器或请求处理器,它是项目与用户交互的入口。Controller接收HTTP请求,解析请求参数,调用Service层处理业务逻辑,并返回响应给客户端。 Controller通…

IP证书能免费申请吗

IP SSL证书是一种数字证书,用于保护网络服务器和网络浏览器之间的通信。该证书是一种主要保护公网IP地址的专属信任SSL证书。 IP类型的SSL证书对于直接用IP地址传输数据的技术人员来说,十分重要!无论是防洪还是防劫持还是数据加密都起到了关…

【C 数据结构-动态内存管理】4. 无用单元收集(垃圾回收机制)

文章目录 【 1. 问题描述与解决方法 】【 2. 中断回收机制 】 【 1. 问题描述与解决方法 】 问题描述 动态存储管理的运行机制可以概括为:当用户发出申请空间的请求后,系统向用户分配内存;用户运行结束释放存储空间后,系统回收内…

【FL常用插件#1】Ozone11臭氧的安装和使用

本文内容收集自互联网,仅供个人学习参考使用,不允许用于商业用途,造成的侵权行为与本文作者无关 安装 VST2、VST3、AAX和NKS是音频技术界常见的几种插件格式,它们在功能和兼容性上有所不同: VST2 (Virtual Studio Tec…

用户管理中心——数据库设计用户注册逻辑设计

用户管理中心——数据库设计&用户注册逻辑设计 规整项目目录1. 数据库自动生成器的使用实现基本的数据库操作(操作user表) 2. 注册逻辑的设计(1) 写注册逻辑(2) 实现(3) 测试代码 3. 遇到的问题 规整项目目录 utils–存放工具类,比如加密…

关系型数据库MySQL开发要点之多表设计案例详解代码实现

什么是多表设计 项目开发中 在进行数据库表结构设计时 根据数据模型和业务关系 会根据业务需求和业务模块之间的关系分析设计表结构 由于业务之间互相关联 所以表结构之间也存在着各种联系 主要分为以下三种 一对多 每个部门下是有多个员工的 但是一个员工只能归属一个部…

京东JD商品详情API返回值揭秘:精准掌握商品信息

在当今电子商务繁荣的时代,对于电商平台来说,提供准确、详尽的商品信息对于满足用户需求、提升购物体验至关重要。京东作为中国领先的电商平台,通过其开放的API接口,为开发者提供了获取商品详情的强大工具。本文将深入探讨京东JD商…

FastDFS-单机扩容

描述 周一上班收到用户反馈系统异常,紧急排查日志发现报错:FdfsServerException:错误:28,错误信息:没有足够的存储空间。 解决 根据异常信息判断是文件服务器可用内存不够了,首先登录文件服务器,使用df -h命令查看一…

GMS地下水数值模拟及溶质(包含反应性溶质)运移模拟技术

采用全流程模式将地下水数值模拟软件GMS的操作进行详细剖析和案例联系。不仅使学员掌握地下水数值模拟软件GMS的全过程实际操作技术的基本技能,而且可以深刻理解模拟过程中的关键环节,以解决实际问题能力。同时为满足环评从业人员进一步加强地下水数值模…

AF594-标记羊抗鼠免疫球蛋白(H+L),山羊抗小鼠IgG全长抗体已被交叉吸附在抗人IgG和人血清上,然后再偶联以小化交叉反应性

试剂介绍: AF594-标记羊抗鼠免疫球蛋白(HL)是荧光标记二抗,我们的山羊抗小鼠IgG全长抗体已被交叉吸附在抗人IgG和人血清上,然后再偶联以小化交叉反应性。 这种AF594标记的山羊抗小鼠IgG缀合物通过交叉吸附的山羊抗小鼠IgG全抗体与AF594 NHS酯…

应用层协议——HTTP协议

1. 认识HTTP协议 HTTP(Hyper Text Transfer Protocol)协议又叫做超文本传输协议,是一个简单的请求-响应协议,HTTP通常运行在TCP之上。 超文本的意思就是超越普通的文本,http允许传送文字,图片&#xff0c…

深入理解nginx http响应限速功能

目录 1. 引言2. 配置参数2.1 limit_rate 配置指令2.2 limit_rate_after 配置指令2.3 其他限速配置 3. 源码分析 1. 引言 在现代互联网应用中,服务器的性能和响应速度是至关重要的。为了保证服务器的稳定性和可靠性,限制客户端对服务器的访问速度是一项重…

Web实操(6),基础知识学习(24~)

1.[ZJCTF 2019]NiZhuanSiWei1 (1)进入环境后看到一篇php代码,开始我简单的以为是一题常规的php伪协议,多次试错后发现它并没有那么简单,它包含了基础的文件包含,伪协议还有反序列化 (2&#x…

【数据结构】顺序表与ArrayList

一、什么是顺序表 概念:顺序表是用一段物理地址连续的存储单元依次存储数据元素的线性结构,一般情况下采用数组存储。在数组上完成数据的增删查改。 如下图: 优点:访问速度比较快,在给定下标的情况下时间复杂度低至O(…

网络1--通信过程的理解

1.封装与解包 通信的过程就是不断的封装和解包的过程 封装即就是按照“应用”“传输” “网络” “链路” 层,封装给每一层都加上相应的包头(每一层都有协议,)解包就是接受到的包文被一层层去掉相对应的包头。 任何一层的协议都…

ATFX汇市:日本央行或3万亿干预,日元升值势头显著

​ATFX汇市:4月29日,USDJPY创出历史新高160.21,随后进入快速回落阶段。五个交易日,最低价触及151.86点,相比最高价暴跌835基点,约5.21%。同期的美元指数跌幅仅为0.96%,两者跌幅严重不匹配&#…

【intro】图卷积神经网络(GCN)-续

本文为【intro】图卷积神经网络(GCN)-CSDN博客后续(因为经验告诉我超过2w字编辑器就会卡……) 第一部分还是进一步再看看GCN 图卷积神经网络GCN_哔哩哔哩_bilibili 回顾 图神经网络的基本原理就是把图中的节点编码映射成一个低…

RabbitMQ是如何保证消息可靠性的?——Java全栈知识(16)

RabbitMQ 的消息不可靠也就是 RabbitMQ 消息丢失只会发生在以下几个方面: 生产者发送消息到 MQ 或者 Exchange 过程中丢失。Exchange 中的消息发送到 MQ 中丢失。消息在 MQ 或者 Exchange 中服务器宕机导致消息丢失。消息被消费者消费的过程中丢失。 大致就分为生…
最新文章