从 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.mzph.cn/news/833220.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

如何迁移Windows PC数据到统信UOS 1070

原文链接:如何迁移Windows PC数据到统信UOS 1070 Hello,大家好啊!随着统信UOS 1070的推出,越来越多的用户和企业选择迁移到这个基于Linux的操作系统,以享受其安全性和稳定性的优势。今天,我们将探讨如何使用…

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

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

Kansformer?变形金刚来自过去的新敌人

​1.前言 多层感知器(MLPs),也被称为全连接前馈神经网络,是当今深度学习模型的基础组成部分。 MLPs在机器学习中扮演着至关重要的角色,因为它们是用于近似非线性函数的默认模型,这得益于通用近似定理所保证的表达能力。然而,MLPs真的是我们能构建的最佳非线性回归器吗?尽管ML…

Flutter实战记录-协作开发遇到的问题

一.前言 Android项目使用了混合架构,部分模块使用Flutter进行开发。在电脑A上开发的项目提交到git仓库,电脑B拉取后进行操作,遇到两个问题,特此做一下记录; 二.问题A Settings file ‘D:\xxx\settings.gradle’ line…

新的循环体和define

目录 do while讲解 练习: 结果: 分析: 定义:宏(define) 练习: 结果: 分析: define的优缺点 优点: 缺点: 作业: 大家假期…

leetcode LCR088.使用最小花费爬楼梯

思路:DP 这道题相对来说比较基础,但是有时候容易出错的一点就是在dp递推的时候,由于我们的思路是从最后一步向着初始状态推的,所以在编写程序的时候也容易就直接推着走了。其实实际上我们倒着想只是为了推理,真正要递…

记一些内存取证题

生活若循规蹈矩,我们便随心而动 1.Suspicion 给了俩文件 python2 vol.py -f mem.vmem imageinfo 查看可疑进程 python2 vol.py -f mem.vmem --profileWinXPSP2x86 pslist 发现可疑进程TrueCrypt.exe 把这个进程提取出来。memdump -p 进程号 -D 目录 python2 vol…

0508_IO2

练习&#xff1a; 将一张图片修改为德国国旗 1 #include <stdio.h>2 #include <string.h>3 #include <stdlib.h>4 #include <sys/types.h>5 #include <unistd.h>6 #include <sys/stat.h>7 #include <fcntl.h>8 #include <pthrea…

OFD(Open Fixed-layout Document)

OFD(Open Fixed-layout Document) &#xff0c;是由工业和信息化部软件司牵头中国电子技术标准化研究院成立的版式编写组制定的版式文档国家标准&#xff0c;属于中国的一种自主格式&#xff0c;要打破政府部门和党委机关电子公文格式不统一&#xff0c;以方便地进行电子文档的…

哈夫曼树与哈夫曼编码

一、哈夫曼树相关概念 路径&#xff1a;从树中的一个节点到另一个节点之间的分支构成两个节点间的路径。 节点的路径长度&#xff1a;两节点间路径的分支数&#xff08;路径的个数&#xff09; 树的路径长度&#xff08;TL&#xff09;&#xff1a;从根节点到树中每一个点的路径…

2009NOIP普及组真题 3. 细胞分裂

线上OJ&#xff1a; 一本通&#xff1a;http://ybt.ssoier.cn:8088/problem_show.php?pid1947 核心思想&#xff1a; 本题的意思是 在所有的 S i Si Si 中&#xff0c;找一个 S i t Si^t Sit 最早能被 m 1 m 2 m1^{m2} m1m2 整除。 上述若能整除&#xff0c;则说明: 1、 m…

获取Java 虚拟机进程ID(java应用进程Id的方法) Linux windows

可以通过以下几种方式获取Java虚拟机&#xff08;JVM&#xff09;的进程ID&#xff08;PID&#xff09;&#xff1a; 在Linux/Unix/macOS系统中&#xff1a; 使用ps命令结合grep: ps -ef | grep java这个命令会列出所有包含"java"的进程信息。从中你可以找到你的Jav…

0060__设计模式

1. 简单工厂模式( Simple Factory Pattern ) — Graphic Design Patterns 工厂模式 | 菜鸟教程 【设计模式——学习笔记】23种设计模式——建造者模式Builder&#xff08;原理讲解应用场景介绍案例介绍Java代码实现&#xff09;-CSDN博客

基于FPGA的AD7705芯片驱动设计VHDL代码Quartus仿真

名称&#xff1a; 软件&#xff1a;Quartus基于FPGA的AD7705芯片驱动设计VHDL代码Quartus仿真&#xff08;文末获取&#xff09; 语言&#xff1a;VHDL 代码功能&#xff1a; AD77025芯片控制及串口输出 1、使用FPGA控制AD77025芯片&#xff0c;使其输出AD值 2、将数据计…

安卓开发(二)Android开发基础知识

了解Android Android大致可以分为4层架构&#xff1a;Linux内核层、系统运行库层、应用框架层和应用层。 内核层&#xff1a;Android系统是基于Linux内核的&#xff0c;这一层为Android设备的各种硬件提供了底层的驱动&#xff0c;如显示驱动、音频驱动、照相机驱动、蓝牙驱动…

CANdela/Diva系列2--CANdela Studio的工作树介绍1

本系列的第一篇文章&#xff08;CANdela/Diva系列1--CANdela Studio的基本介绍&#xff09;主要介绍了CANdela这个工具&#xff0c;本篇文章将对CANdela Studio的工作树的每个模块进行详细介绍&#xff0c;不啰嗦&#xff0c;直接开始&#xff01; 目录 1. ECU Information的…

Activiti工作流中的自定义代理人、候选人与候选组

前言 在Activiti这一强大开源的工作流引擎中&#xff0c;灵活地管理任务的处理流程是其核心功能之一。其中&#xff0c;“代理人”、“候选人”与“候选组”是实现任务分派和审批流程的关键概念。本文将深入解析这三个概念的区别、定义及其在实际工作流设计中的应用。 1. 代理…

技术速递|使用 .NET 为 Microsoft AI 构建可扩展网关

作者&#xff1a;Kara Saucerman 排版&#xff1a;Alan Wang Microsoft AI 团队构建了全面的内容、服务、平台和技术&#xff0c;以便消费者在任何设备上、任何地方获取他们想要的信息&#xff0c;并为企业改善客户和员工的体验。我们的团队支持多种体验&#xff0c;包括 Bing、…

MapReduce的Shuffle过程

Shuffle是指从 Map 产生输出开始,包括系统执行排序以及传送Map输出到Reduce作为输入的过程. Shuffle 阶段可以分为 Map 端的 Shuffle 阶段和 Reduce 端的 Shuffle 阶段. Shuffle 阶段的工作过程,如图所示: Map 端的 Shuffle 阶段 1&#xff09;每个输入分片会让一个 Map 任务…

【探索Java编程:从入门到入狱】Day4

&#x1f36c; 博主介绍&#x1f468;‍&#x1f393; 博主介绍&#xff1a;大家好&#xff0c;我是 hacker-routing &#xff0c;很高兴认识大家~ ✨主攻领域&#xff1a;【渗透领域】【应急响应】 【Java、PHP】 【VulnHub靶场复现】【面试分析】 &#x1f389;点赞➕评论➕收…