我来告诉你,一个草根程序员如何逆袭,成功进入BAT!

本文将从心态、学习和素养三个方面手把手的告诉你,LZ作为一个非科班毕业,出身于三流大学的草根,是如何凭借自己的努力,进入到国内一流互联网公司的。

心态

看到这个标题,有的同学可能会说,“LZ,你不是要告诉我们如何进入BAT吗?怎么一上来就写心态?”

没错,LZ第一个要说的,就是心态!

原因很简单,文章下面即将提到的学习内容,如果你没有一个好的心态,是不可能进行下去的。所以,先过了心态这一关,再来谈别的吧,否则你肯定会死在半路上的。

说起来,很多群里的新人都爱问LZ,“你是怎么学习的?为什么我学不进去呢?为什么我一看书就困呢?”

以上这种现象,基本上就是两个原因,第一个原因是心态浮躁,总觉得看书好像没啥用啊,看了好像还是觉得没学到什么,过不了多久就忘了。第二个原因则是目标感不强,不知道自己要达到什么程度才算可以,所以也就干脆“一瓶子不满,半瓶子晃荡”了。

针对第一个原因,说到底就是个心态问题。总想着看书能够立竿见影,从菜鸟一下子蜕变为大神,如果你老是抱着这样的心态去看书,你特么不瞌睡才是邪门了。

而第二个原因,LZ觉得有时候人要适当的激发内心的欲望,无欲无求这种高逼格的事,等你七老八十了再说,现在趁着年轻,心中有点欲望其实并不是什么坏处,只要你没被欲望懵逼了双眼就行。

说起欲望这事儿,LZ觉得有必要给大家看一下LZ当初的欲望,相信从这封邮件里,你就能感受出LZ当时的欲望。这种欲望,会激励着你前进,但是你要切记,在前进的途中,调整好自己的心态,戒骄戒躁。

学习

说完心态,咱们来谈谈学习这事儿,还是老规矩,由于LZ是Java后端出身,所以接下来的内容,会与Java后端息息相关,非Java后端的同学可以适当参考,但切勿照搬。

本篇既然咱们是要谈如何进入BAT,那么咱们就从面试的角度来谈学习这件事,LZ会谈谈一流互联网公司对于Java后端程序员的要求,相应的,也会谈谈如何达到这样的要求。

为了简单起见,LZ将这些要求分为三个层次,分别为基本要求、可选要求以及加分要求,接下来,咱们就一个一个的来谈一谈。

一、基本要求

基本要求就是指,你必须要学会的知识,而且这里面大部分内容,在面试里出现的概率都是极高的。因此,这部分内容你没有选择,只能选择啃下它,你可以花一年,也可以花十年,或者带到棺材里学习也可以。

1)语言的基础部分:

基本要求的第一个,当然是语言的基础部分。基础部分其实就是语法以及一些关键字的作用,像一些if/else、for循环这类基础的语法,以及一些new、class、public这类的基础关键字,大部分情况下面试问的是比较少的,因为这部分内容,只要你写过几年Java,基本上都没有什么问题。

那么基础部分的重点,其实主要就是static、final、transient、volatile这一类的关键字,以及内部类、泛型这一类的高阶语法。

说到static,首先要记住的最重要的一点就是,类属性中被static所引用的变量,会被作为GC的root根节点。作为根节点就意味着,这一类变量是基本上不会被回收的。因此,static很容易引入内存泄漏的风险。

如果一个面试官让你解释static关键字,你告诉他static可以修饰属性、方法和内部类,以及修饰之后又有什么效果的话,那么面试官基本上不会记住你这个回答,整个印象就是平庸。

但是如果你说完以后,补充一下说道,你曾经遇到过一个内存泄漏的问题,就是因为static修饰的一个Map类型的变量导致的,最后排查了堆栈信息找到了问题的所在,并且解决了这个问题。那么,面试官这个时候内心中对你的印象,就会不自然的提升几分。

而且,对于static,更深入的理解是,static会将所引用的属性、方法以及内部类,与类直接产生引用关系,而非与类的实例。这就是为什么,你可以使用类名.属性、类名.方法以及类名.内部类名,来直接引用一个被static所修饰的属性、方法或者内部类。

如果你没有用static修饰,那么你就必须使用实例才能引用这些方法、属性或者是内部类,最典型的就是内部类。相信很多同学都好奇过,为什么一个没有被static修饰的内部类,必须要这么声明。

OutterClass.InnerClass innerClass = new OutterClass().new InnerClass();

因为你没有使用static修饰InnerClass,所以你必须new出来一个OutterClass的实例,才能在此基础上new出内部类的实例,因为内部类只能通过外部类的实例才能引用。如果你使用了static修饰,那么你就可以这样使用内部类。

OutterClass.StaticInnerClass staticInnerClass = new OutterClass.StaticInnerClass();

这两种方式最大的区别就是,第一种方式,如果你想要获得InnerClass的实例,你必须有一个OutterClass的实例,所有其实这种方式你创建了两个实例,所以有两个new关键字。而第二种方式就好理解一些,静态内部类不依赖于外部类的实例存在,因此只需要直接创建内部类的实例就可以了,所以只有一个new关键字。

static说的有点多了,不过LZ其实不光说了static关键字,也一起连同内部类的语法也大致都说了下。那么接下来,基础部分还有一个比较考验人的东西,就是volatile关键字。

这个关键字的重点就三个字,就是可见性。但是面试的时候,你说出可见性三个字

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,我可以给你一些参考代码,但请注意,写作是一项非常复杂的任务,需要深入的自然语言处理技术和创造力。因此,这个机器人可能不会像真正的诗人一样,但我们可以尽力做到最好。 我们将使用Python中的PyTorch和Hugging Face Transformers库,它们是自然语言处理的最新工具。 首先,我们需要准备一个数据集。这个数据集可以是一些诗歌的文本文件,每行一个诗歌。我们使用一些现成的诗歌数据集,如Tang Poems和Song Lyrics。在这里,我们将使用Tang Poems数据集,你可以从这里下载:https://github.com/linyy2233/Tang_poetry。 接下来,我们需要使用PyTorch和Transformers加载预训练的GPT-2模型。GPT-2是一种基于Transformer的语言模型,它可以生成连贯的自然语言文本。 ``` import torch from transformers import GPT2Tokenizer, GPT2LMHeadModel # 加载预训练模型和分词器 tokenizer = GPT2Tokenizer.from_pretrained('gpt2') model = GPT2LMHeadModel.from_pretrained('gpt2') # 将模型移动到GPU上(如果有) device = torch.device('cuda' if torch.cuda.is_available() else 'cpu') model.to(device) ``` 接下来,我们定义一个函数来生成诗歌。该函数将采用一个种子字符串,并使用GPT-2模型生成包含该种子的下一行诗歌。我们将使用beam search算法进行文本生成,这将返回多个可能的下一行诗歌。我们选择得分最高的一行作为我们的输出。 ``` def generate_poem(seed_text, length=50, num_return_sequences=5): # 使用分词器将种子字符串编码成token input_ids = tokenizer.encode(seed_text, return_tensors='pt').to(device) # 使用模型生成下一行诗歌 output = model.generate( input_ids=input_ids, do_sample=True, max_length=length, num_return_sequences=num_return_sequences, temperature=0.7, top_k=0, top_p=0.92, no_repeat_ngram_size=2 ) # 将生成的文本解码成字符串 poems = [] for line in output: poem = tokenizer.decode(line, skip_special_tokens=True) poem = poem.split('\n')[0].strip() poems.append(poem) return poems ``` 现在我们已经准备好生成诗歌了。我们可以使用以下代码来测试我们的生成函数: ``` poems = generate_poem('寒蝉凄切') for poem in poems: print(poem) ``` 输出将是五个可能的下一行诗歌,如下所示: ``` 寒蝉凄切,何时归来,月下草根鸣。 寒蝉凄切,不知何处,天涯海角人。 寒蝉凄切,风吹花落,梦中谁共醒。 寒蝉凄切,江南烟雨,半夜月明中。 寒蝉凄切,春风满面,绿水青山心。 ``` 您可以根据自己的需要调整模型的参数,例如诗歌长度,生成的可能性等等。 希望这可以帮助你开始编写自己的诗歌生成器!

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值