ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

大四实习小记

2021-10-06 11:04:53  阅读:165  来源: 互联网

标签:P1 DID flow 大四 D945 motor 实习 txt 小记


时间过得很快,好像自己还没有做些什么,时间就已经来到了这个要说告别的节点,而很多人的人生轨迹也逐渐踏上了新的选择,考研或者说是就业,似乎是每一个同学在大三就应该去考虑的问题。我周围考研的人大概划分为以下三类:一、真正喜欢科研,适合科研,而且有能力去搞科研的;二、在当下的就业环境下,通过读研而来拔高自己学位,从而获取一个更好的敲门砖;三、畏惧社会,没有信心立刻就业,从而选择了考研继续学习的道路。这三类人就我个人的观点,显然的是第一类人热情学习,从大一到大四,都不曾荒废自己,努力自信,所以他们保研成功,成为985,211的种子选手;而第二类,也有着足够的信心去奔赴在考研的战场上,他们很早开始就着手准备,自然不会是100%的会成功,但有一点可以肯定,这样努力下来的他们是真正意义上的强大,这样的他们即便是二战,就业,也会很优秀。而第三类人恰恰是最为危险的一类,每天惶惶度日,得过且过的,既没有一个明确的信心去考研,也没有一个就业的社会心理。考研不够坚定是没有足够动力支持他们,当然,除非这里里面真的有天才,不然,很容易两头抓空。

所以,后两者里,必然会有大批的人走向社会,工作。而也有像我一样选择直接就业的人。很多人都会考虑一件事儿,我是本科生,我什么都不会,我怎么去工作?或者说,自己什么都没有学会,不够精通,面试,笔试怎么应对?甚至有不少的同学啊,还参加了很多关于面试笔试的培训,当然这些都是很正常的。

我从大一就决定好了要直接去就业,为什么呢?有很多原因,大一的时候,是觉得想早点为家庭减轻负担,有时候也会去摇摆,想着考研可以获得更好的发展,可接下来我就被自己的言行不一给折服了,我一边想着要毕业后就业,一边又不扎实自己的专业基础,整个人都没有上进心,就这样,一年,两年,转眼就大三了,没有享受过大学生活的种种,一直就是寝室,宿舍,食堂的三点生活,也没有看看外面的世界,最是枯燥的生活就这样过了三年。终于,在大四实习开始的时候,大三下学期我终于正视了这个问题。手里没技术,专业没基础,甚至连CET4都还没有过。突然间,一种慌张的感觉袭来。各种的否定自己,然后在同学的建议下,我从头开始去学习,去做项目来提高自己的能力。

话是这么说没错,但如何迈出第一步其实是很困难的。计算机科学与技术这个专业涉及到的知识广,我们跟着课程走的话,根本不能精通什么,而且,对于我们大部分人来说,一种语言乃至一个库,我们都是浅尝辄止,而且对于我们很多人来说,coding量实在是太少了。加之学校对行业流行也不会进行过多的分享,让人很难决断。我也问过很多就业的学长,有阿里的,有腾讯的,也有华为的。他们似乎都在说同一件事,投简历,面试,学习。

最初,我还有些不以为然的想,这算什么,算是经验吗?你们都是太优秀了,所以才能说出这么随意的话吧。可后来真正的动起来了,你反而发觉到了,确实是这么个道理。

我从今年三月份开始自己学习python,从基础的语法开始,也逐渐发现了全新的问题,语言学起来容易,可单独的使用就变得困难了,就如同c语言一样,里面的数据类型,分支语句,循环语句,乃至指针函数,这些你都会,可面对着一个待解决的问题,却显得很难下手。以至于我看完一整套python的学习视频,也没有多大的自信去说,我熟悉python。

暑假的时候我在网络上投了很多简历,而自己在等待简历的过程中继续学习,python,HTML......

三十多份简历抛了出去,结果呢?愿意给我笔试面试机会的仅仅只有六七份,而这六七份中,我印象最深的就是一个python脚本岗位的面试,首先是HR的电话面试,我们谈了好多,不涉及到技术本身,我也申明了自己不会什么,不熟练什么的不足,她让我等电话。

等待的期间是很煎熬的,但索性还是朝着python的方向走了下去。但是问题很明显,因为你依旧只会基本的东西。于是第二次面试来了,还是电话面试,技术面。

问:如何向一个有序数组中插入一个新的数?

我的回答就显得很苍白,我说,用insert插入就好啊,面试官沉默了一下,继续问道

问:你知道正则表达式嘛?

我直接懵逼,因为自己确实没有了解这方面的内容。,所以就是支支吾吾的。

问:那你知道模块吗?

我再次懵逼,关于python,完全没有了解那么深......

.......

面试结束了,我整个人裂开了,是这么的无能为力

然而,HR又发了笔试题是三道编程题:

一、插值

有一个已经排好序的数组。现输入一个数,要求按原来的规律将它插入数组中.

列表为[1,4,6,9,13,16,19,28,40,100]

插入的值为31

程序设计和实际输出:

我的作答是:

#第一种:
def sort(list):
    list.sort()
    return list
def main():
    List = [1,4,6,9,13,16,19,28,40,100]
    num=int(input ("插入的值为:"))
    List.append(num)
    last_list = sort(List)
    print(last_list)
if __name__ == '__main__':
    main()
    
#另一种:
def sort(list):
    s=len(list)#通过BIF len()函数求出列表长度
    for i in range(s):
       for j in range(i):
           if list[i]<list[j]:#题干中是顺序,则小的放在前边,若为逆序,则可以改为>实现
               list[i],list[j]=list[j],list[i]#进行列表中两数的交换
    return list    

二、文件内容比较

有两个文本文件text1.txt和text2.txt,读取两个文本文件,将text2.txt中相对于text1.txt多余的内容写入到文本文件text3.ext中,将text1.txt中相对于text2.txt多余的内容写入到text4.txt中。

注:

Text1.txt和text2.txt中内容为C语言文本,内容比较只限于函数不包含注释部分。

如text1.txt的多余部分为:

/**********************************************************************************************************************

 * DO NOT CHANGE THIS COMMENT!           << End of documentation area >>                    DO NOT CHANGE THIS COMMENT!

 *********************************************************************************************************************/

FUNC(Std_ReturnType, DcmDID_CODE) DataServices_DID_D945_P1_motor_oil_flow_DID_D945_P1_motor_oil_flow__ConditionCheckRead(Dcm_OpStatusType OpStatus, P2VAR(Dcm_NegativeResponseCodeType, AUTOMATIC, RTE_DCMDID_APPL_VAR) ErrorCode) /* PRQA S 0624, 3206 */ /* MD_Rte_0624, MD_Rte_3206 */

{

/**********************************************************************************************************************

 * DO NOT CHANGE THIS COMMENT!           << Start of runnable implementation >>             DO NOT CHANGE THIS COMMENT!

 * Symbol: DataServices_DID_D945_P1_motor_oil_flow_DID_D945_P1_motor_oil_flow__ConditionCheckRead (returns application error)

 *********************************************************************************************************************/

  DcmDID_TestDefines(); /* PRQA S 2987 */ /* MD_Rte_2987 */

  return RTE_E_DataServices_DID_D945_P1_motor_oil_flow_DID_D945_P1_motor_oil_flow__E_NOT_OK;

/**********************************************************************************************************************

 * DO NOT CHANGE THIS COMMENT!           << End of runnable implementation >>               DO NOT CHANGE THIS COMMENT!

 *********************************************************************************************************************/

}

那么需要将蓝色斜体的内容写入text4.txt中。

程序设计和实际输出:

程序设计:

import re#re 模块使 Python 语言拥有全部的正则表达式功能

import sys#sys是system的缩写,用来获取操作系统和编译器的一些配置,设置及操作。如判断文件和文件夹是否存在,创建文件文件夹,获取系统版本之类的操作。

import os#os模块提供了多数操作系统的功能接口函数

import difflib#是提供的类和方法用来进行序列的差异化比较,它能够比对文件并生成差异结果文本或者html格式的差异化比较页面

str1=[]

str2=[]

str_both1=[]

str_both2=[]

fa=open(r"C:\Users\acer\Desktop\python测试题素材\text1.txt",'r')#读取文件text1.txt,设置成为读取

fb=open(r"C:\Users\acer\Desktop\python测试题素材\text2.txt",'r')

fc=open(r"C:\Users\acer\Desktop\python测试题素材\text3.txt",'w')#读取文件text2.txt,设置成写入

fd=open(r"C:\Users\acer\Desktop\python测试题素材\text4.txt",'w')

for line1 in fa.readlines():#readlines() 方法用于读取所有行(直到结束符 EOF)并返回列表,该列表可以由 Python 的 for... in ... 结构进行处理。如果碰到结束符 EOF 则返回空字符串。

    str1.append(line1.replace("\n",' '))#Python replace() 方法把字符串中的 \n 替换为空格,然后用append()添加到串str1[]中

for line2 in fb.readlines():              

    str2.append(line2.replace("\n",' '))

for i in str1:

    if i in str2:

        str_both1.append(i)#将text1.txt中在text2.txt中出现的串添加到串str_both1

for j in str2:

    if j in str1:

        str_both2.append(j)#将text2.txt中在text1.txt中出现的串添加到串str_both2

for k in str1:

    if k in str_both1:

        str1.remove(k)#将text1在text2中出现的删除

for l in str2:

    if l in str_both2:

        str2.remove(l)#将text2在text1中出现的删除

for m in list(str1):

    fc.write(m+'\n')#将差值写入文档text3.txt

for n in list(str2):

    fd.write(n+'\n')#将差值写入文档text4.txt

fa.close()#关闭文件

fb.close()

fc.close()

fd.close()

其输出结果分别在压缩文件中的text3.txt文件和text4,txt文件

我的作答是:

import re#re 模块使 Python 语言拥有全部的正则表达式功能
import sys#sys是system的缩写,用来获取操作系统和编译器的一些配置,设置及操作。如判断文件和文件夹是否存在,创建文件文件夹,获取系统版本之类的操作。
import os#s模块提供了多数操作系统的功能接口函数
import difflib#是提供的类和方法用来进行序列的差异化比较,它能够比对文件并生成差异结果文本或者html格式的差异化比较页面

str1=[]
str2=[]
str_both1=[]
str_both2=[]
fa=open(r"C:\Users\acer\Desktop\python测试题素材\text1.txt",'r')#读取文件text1.txt,设置成为读取
fb=open(r"C:\Users\acer\Desktop\python测试题素材\text2.txt",'r')
fc=open(r"C:\Users\acer\Desktop\python测试题素材\text3.txt",'w')#读取文件text2.txt,设置成写入
fd=open(r"C:\Users\acer\Desktop\python测试题素材\text4.txt",'w')

for line1 in fa.readlines():#readlines() 方法用于读取所有行(直到结束符 EOF)并返回列表,该列表可以由 Python 的 for... in ... 结构进行处理。如果碰到结束符 EOF 则返回空字符串。
    str1.append(line1.replace("\n",' '))#Python replace() 方法把字符串中的 \n 替换为空格,然后用append()添加到串str1[]中
for line2 in fb.readlines():              
    str2.append(line2.replace("\n",' '))

for i in str1:
    if i in str2:
        str_both1.append(i)#将text1.txt中在text2.txt中出现的串添加到串str_both1
for j in str2:
    if j in str1:
        str_both2.append(j)#将text2.txt中在text1.txt中出现的串添加到串str_both2
for k in str1:
    if k in str_both1:
        str1.remove(k)#将text1在text2中出现的删除
for l in str2:
    if l in str_both2:
        str2.remove(l)#将text2在text1中出现的删除
for m in list(str1):
    fc.write(m+'\n')#将差值写入文档text3.txt
for n in list(str2):
    fd.write(n+'\n')#将差值写入文档text4.txt

fa.close()#关闭文件
fb.close()
fc.close()
fd.close()

三、信息爬取

有一文本文件data.log, 需要读取里面信息,将所有关键信息提取出来(见黑体部分),如:

‘’’

/*********************************************************************************************************************

 * Runnable Entity Name: DataServices_DID_D945_P1_motor_oil_flow_DID_D945_P1_motor_oil_flow__ConditionCheckRead

 *---------------------------------------------------------------------------------------------------------------------

 * Executed if at least one of the following trigger conditions occurred:

 *   - triggered by server invocation for OperationPrototype <ConditionCheckRead> of PortPrototype <DataServices_DID_D945_P1_motor_oil_flow_DID_D945_P1_motor_oil_flow_>

 **********************************************************************************************************************

 * Runnable prototype:

 * ===================

 *   Std_ReturnType DataServices_DID_D945_P1_motor_oil_flow_DID_D945_P1_motor_oil_flow__ConditionCheckRead(Dcm_OpStatusType OpStatus, Dcm_NegativeResponseCodeType *ErrorCode)

 **********************************************************************************************************************

 * Available Application Errors:

 * =============================

 *   RTE_E_DataServices_DID_D945_P1_motor_oil_flow_DID_D945_P1_motor_oil_flow__DCM_E_PENDING

 *   RTE_E_DataServices_DID_D945_P1_motor_oil_flow_DID_D945_P1_motor_oil_flow__E_NOT_OK

 *********************************************************************************************************************/

/**********************************************************************************************************************

 * DO NOT CHANGE THIS COMMENT!           << Start of documentation area >>                  DO NOT CHANGE THIS COMMENT!

 * Symbol: DataServices_DID_D945_P1_motor_oil_flow_DID_D945_P1_motor_oil_flow__ConditionCheckRead_doc

 *********************************************************************************************************************/

/**********************************************************************************************************************

 * DO NOT CHANGE THIS COMMENT!           << End of documentation area >>                    DO NOT CHANGE THIS COMMENT!

 *********************************************************************************************************************/

FUNC(Std_ReturnType, DcmDID_CODE) DataServices_DID_D945_P1_motor_oil_flow_DID_D945_P1_motor_oil_flow__ConditionCheckRead(Dcm_OpStatusType OpStatus, P2VAR(Dcm_NegativeResponseCodeType, AUTOMATIC, RTE_DCMDID_APPL_VAR) ErrorCode) /* PRQA S 0624, 3206 */ /* MD_Rte_0624, MD_Rte_3206 */

{

/**********************************************************************************************************************

 * DO NOT CHANGE THIS COMMENT!           << Start of runnable implementation >>             DO NOT CHANGE THIS COMMENT!

 * Symbol: DataServices_DID_D945_P1_motor_oil_flow_DID_D945_P1_motor_oil_flow__ConditionCheckRead (returns application error)

 *********************************************************************************************************************/

  DcmDID_TestDefines(); /* PRQA S 2987 */ /* MD_Rte_2987 */

  return RTE_E_DataServices_DID_D945_P1_motor_oil_flow_DID_D945_P1_motor_oil_flow__E_NOT_OK;

/**********************************************************************************************************************

 * DO NOT CHANGE THIS COMMENT!           << End of runnable implementation >>               DO NOT CHANGE THIS COMMENT!

 *********************************************************************************************************************/

}

‘’’

提取出来的信息可以参考下述格式,也可以自定义,但必须包含如下信息:

A = {

1 :{‘func_name’: “FUNC(Std_ReturnType, DcmDID_CODE) DataServices_DID_D945_P1_motor_oil_flow_DID_D945_P1_motor_oil_flow__ConditionCheckRead(Dcm_OpStatusType OpStatus, P2VAR(Dcm_NegativeResponseCodeType, AUTOMATIC, RTE_DCMDID_APPL_VAR) ErrorCode) /* PRQA S 0624, 3206 */ /* MD_Rte_0624, MD_Rte_3206 */”, “sub_name”: “DID_D945”, “parameter_1”: “OpStatus”, “parameter_2”: “ErrorCode”},

2:…

}

程序设计和实际输出:

我的作答是;

import re
flag=1
fa=open(r"C:\Users\acer\Desktop\python测试题素材\data.log",'r')#打开我们需要分析的data.log文件
for line in fa.readlines():#读取文档的每一行
    if(re.search(r'^FUNC',line)):#通过正则表达式模块中的re.search()从每一行中提取FUNC(……)
        print('func_name'+str(flag)+':'+line)#对于查找成功的行我们输出
        sub_name=re.search(r"DID_D\d\d\d",line)#对于查找成功的每行串中,继续查找DID_D***
        print('sub_name'+str(flag)+':'+sub_name.group())#输出查找的结果
        parameter_0=re.search(r"OpStatus,",line)#第一参数只有OpStatus
        parameter_1=re.search(r"OpStatus",parameter_0.group())
        print('parameter_1 '+str(flag)+':'+parameter_1.group())#查找成功输出
        parameter_3=re.search(r"Data\)|ErrorCode\)",line)#第二参数有DATA,ERRORCODE
        parameter_2=re.search(r"Data|ErrorCode",parameter_3.group())
        print('parameter_2 '+str(flag)+':'+parameter_2.group())#查找成功输出
        print("\n")#作为界限便于对输出结果的查看
        flag=flag+1#对输出结果计数
fa.close()#关闭文件

这三道题目是我仔细学习了正则表达式以及python爬虫后的作答,正确与否我就不知道了,因为之后的通知是:

对不起,我们有更合适的人选了。

失败,失败,然后就对自己产生怀疑,就会懈怠,然后说放弃。我也不例外。我很少投简历了,但我还在继续学习中,8月末,我回到了学校,不过我再学习的是web前端的相关技术,HTML,CSS,Javascript。因为相比较python的易学不易精,前端开发更容易实现一个怎么做,做什么后的结果。

我实现了轮播图,又尝试去用JavaScript实现贪吃蛇小游戏,虽然刚入门,好些思维也是通过CSDN中的大佬们的代码中复制然后改进的,但所幸也确实更快的了解到了一些知识。

然后校招宣讲,我在导员的推荐下去听了,然后当场做了笔试,不过笔试很痛苦的,选择题ABCD可以蒙,填空题我应该只有一空是自信的作答,至于编程题,更是慌乱到连C语言,python,亦或是JavaScript的语法都弄不清楚了。

我觉得没什么希望了,找了数据结构的书准备复习一手。晚上HR联系我,问我第二天可不可以去面试。

第二天,参观了公司,随后做了面试。这次面试不是施压面试,整个面试过程都很舒服。

问:在学习JavaScript?了解多少了?

答:能够实现轮播图。

问:说说怎么实现的?

我就把轮播图实现的流程说了一下,随后他又问了一些JavaScript的基础语法,什么数据类型呀,什么数组中的数据类型可以是些什么之类的,我自然是知无不言,不知道的坦然说出来。

然后就说到了自己制作贪吃蛇的事情,面试官似乎有些兴趣,就对相关内容进行了询问,当然,你做过,自然清楚。

问:你了解框架吗?

答:打算学习vue的,但是面试的机会先到了。

问:知道jQuery嘛?

答:使用$()实现的方法吗?有接触过但不了解。

问:抗压能力怎么样?

我把我社团工作的经验说了,他似乎对我比较满意,随后就谈了一些有关未来规划的事儿。

比如说考不考研,薪资问题,教资,公考,以及有没有女朋友的事儿。

整个面试很舒服,不会觉得很紧张,也不会有各种惊慌失措。

面试结束后,HR姐姐就问我要不要签实习协议。我自然是愿意的,因为自己学习的效率很低下,有一个实习的机会是很好的。

经验总结:一、校招本身就是一个对我们在校生的优势与机会,所以把握住机会,公司校招也清楚你没有直接实战的能力,反而愿意给你机会,愿意培养你。二、自己刚好也在一个学习变强的道路上,所以安心的学习,然后勇敢的迈出去,机会是给有准备的人的。三、公司在发展,你也要发展,双向的需求才是一种最为舒适的模式。四、禁止给自己挖坑,面试,展示出自己真实的一面就好,不要怀疑自己,也不要高看自己。五、虚心学习,放低姿态,成功与失败都是你的一笔宝贵财富。六、你会感谢现在努力的自己,坚持,人生如同小马过河一样,只有自己趟过去了,才知道其中的喜悦。

第一次出现在CSDN中,希望我的经验可供大家参考,也希望大家可以对我的问题多多指点,才疏学浅,今后请多多指教!

标签:P1,DID,flow,大四,D945,motor,实习,txt,小记
来源: https://blog.csdn.net/qq_48026875/article/details/120621176

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有