博主的自我介绍篇

Posted 啊苏要学习

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了博主的自我介绍篇相关的知识,希望对你有一定的参考价值。

目录

前言:

1.基本信息

2.开始学编程的时间

3.学编程的契机

4.每天所做的编程事

5.兴趣爱好

6.目标


前言:

  大家好,在CSDN这个大家庭里,已经写了五篇博客但还没有正式地做个自我介绍,本篇就来介绍介绍我自己吧。

1.基本信息

  本人姓苏,性别男。老家在广东汕头,是一名潮汕人,目前就读于广州从化区一所双非本科院校,是一名大一编程小白。

2.开始学编程的时间

  这要从大一上学期的寒假说起,也就是2023年1月份的时候,当时是在b站大学上看鹏哥C语言,看着看着就慢慢融进来了,致力于成为能够独当一面的编程人员,到目前为止学了三个月的时间

3.学编程的契机

  在校的时候职业生涯规划课需要写职业生涯规划书,在写目标职业的时候也曾犹豫,犹豫着自己要往哪方面发展,要当什么、要做什么,具体是如何在规划书的目标职业上写上程序员的,我已经不记得了,也许我与编程有缘也说不定,就这样,后来在钉钉ppt演讲我的职业生涯规划书的时候(当时返乡了),感觉还良好,后来思考着,既然规划书和ppt上都是这么写的,那不管以后要不要当程序原,先看上计算机视频吧~1月11日,开始了我的"Hello world"。

4.每天所做的编程事

  目前,基本都是带着电脑来到图书馆,看书C++ Prime Plus这本书,看完就写博客,一待就是小半天,即使学校课程有课,上完就回来,风雨无阻,看书,敲代码,写博客成为了我的日常,目前还没有开始刷题,有点畏惧。。 以及看CSDN上很多博主优秀的文章,扩充和巩固自己的知识,还有就是上b站大学。

5.兴趣爱好

  本人兴趣爱好广泛,喜欢听歌,喜欢体育运动,打篮球,打乒乓球,跑步,以前还喜欢看番,现在少看了,只有追一两部,因为现在出的不是很符合我的口味。

6.目标

  无目标也就无信念,无信念也就没有执念。在编程学习路上,从什么都不懂,到初入茅庐,我的视野也开阔了许多,目标更清晰,并且感觉在接近,虽然每天过的都很累。希望有一天我的眼睛里能看见“未来”,也就是目标可视化的境界。我的目标是:在大二下学期找到实习

  首先,在3个月时间里,努力学C++,复习C,以及每天上传gitte和github,和保证一天一篇博客。 

  然后,学习数据结构、理解算法,疯狂刷题,我已经预感这部分对我来说就是煎熬了。刷题从此阶段开始伴随我的整个编程学习过程。

  接着学习linux系统编程和网络协议、网络编程

  以及在十二月份报名蓝桥杯,期望能拿个奖吧,哈哈!

  最后在明年六七月份找到实习,这就是我的目标,加油吧,啊苏要学习。、

感谢CSDN这个平台让我们相聚于此!

对了,本人写博客喜欢用的颜色是蓝色、紫色和绿色,还有黑体,如果看过我前面几篇,就能get到了,哈哈。

抽奖送书有“黑幕”?!揭晓“黑心”博主的抽奖“黑幕”!顺便评论区再抽一位送中秋礼物!

前情回顾

  • 🎉上周一发布了一篇博客,只要点赞、评论就能参与抽奖送书!
  • 🎉这次让我们来看看这位博主是怎么抽奖的吧
  • 🎉点赞 👍 收藏 ⭐留言 📝 即可参与抽奖送中秋礼盒🙉
  • 🎉文末可领取源码~✨

详情可以点击链接 《机器学习入门:基于数学原理的Python实战》

所以今天带大家来康康,博主是怎么抽奖哒~
康康有木有传说中的黑幕

1. 如何获取评论名单?

按下F12查看列表,很快就能找到这些评论的链接了~

所以我们需要先获取这个列表的评论信息

  • 首先使用&http.Client{}创建一个客户端的请求
  • 然后再通过NewRequest进行发送POST请求
	client := &http.Client{}
	reqSpider, err := http.NewRequest("POST", "https://blog.csdn.net/phoenix/web/v1/comment/list/120067923?page="+p+"&size=10", nil)
	if err != nil {
		log.Fatal(err)
	}
	reqSpider.Header.Set("content-length", "0")  // 书写请求头
	reqSpider.Header.Set("accept", "*/*")
	reqSpider.Header.Set("x-requested-with", "XMLHttpRequest")
	respSpider, err := client.Do(reqSpider) // 发送请求
	if err != nil {
		log.Fatal(err)
	}
	defer respSpider.Body.Close()
	bodyText, err := ioutil.ReadAll(respSpider.Body)
	if err != nil {
		log.Fatal(err)
	}
  • 由于go语言json格式没有那么方便,所以我们必须自己使用进行反序列
  • 所以要自己写一个结构体,推荐一个StringToStruct的网址,百度就行了!
type Result struct {
	Code int64 `json:"code"`
	Data struct {
		Count      int64 `json:"count"`
		FloorCount int64 `json:"floorCount"`
		List       []struct {
			Info struct {
				ArticleID             int64  `json:"articleId"`
				Avatar                string `json:"avatar"`
				CommentFromTypeResult struct {
					Index int64  `json:"index"`
					Key   string `json:"key"`
					Title string `json:"title"`
				} `json:"commentFromTypeResult"`
				CommentID       int64         `json:"commentId"`
				CompanyBlog     interface{}   `json:"companyBlog"`
				CompanyBlogIcon interface{}   `json:"companyBlogIcon"`
				Content         string        `json:"content"`
				DateFormat      string        `json:"dateFormat"`
				Digg            int64         `json:"digg"`
				DiggArr         []interface{} `json:"diggArr"`
				Flag            interface{}   `json:"flag"`
				FlagIcon        interface{}   `json:"flagIcon"`
				LevelIcon       interface{}   `json:"levelIcon"`
				NickName        string        `json:"nickName"`
				ParentID        int64         `json:"parentId"`
				ParentNickName  interface{}   `json:"parentNickName"`
				ParentUserName  interface{}   `json:"parentUserName"`
				PostTime        string        `json:"postTime"`
				UserName        string        `json:"userName"`
				Vip             interface{}   `json:"vip"`
				VipIcon         interface{}   `json:"vipIcon"`
				Years           interface{}   `json:"years"`
			} `json:"info"`
			PointCommentID interface{}   `json:"pointCommentId"`
			Sub            []interface{} `json:"sub"`
		} `json:"list"`
		PageCount int64 `json:"pageCount"`
	} `json:"data"`
	Message string `json:"message"`
}

把这个复制到网址上就能生成结构体了

  • 然后对返回的数据进行序列化就行了。
  • 然后把所有评论的人放在一个列表当中。
var result Result
	_ = json.Unmarshal(bodyText, &result)               //byte to json
	num := len(result.Data.List)
	commentList := result.Data.List
	for i:=0 ;i<num; i++ {
		var luckPerson LuckyPerson
		luckPerson.UserName = commentList[i].Info.UserName
		luckPerson.NickName = commentList[i].Info.NickName
		tmp = append(tmp, luckPerson)   // 存放每一个评论的人
	}
  • 但是我们要进行一个去重的操作!
func removeRepByMap(slc []LuckyPerson) []LuckyPerson {  //去除重复的元素
	var result []LuckyPerson           //存放返回的不重复切片
	tempMap := map[LuckyPerson]byte{}  // 存放不重复主键
	for _, e := range slc {
		l := len(tempMap)
		tempMap[e] = 0 					//当e存在于tempMap中时,再次添加是添加不进去的,因为key不允许重复
		if len(tempMap) != l { 			// 加入map后,map长度变化,则元素不重复
			result = append(result, e)  //当元素不重复时,将元素添加到切片result中
		}
	}
	return result
}

到目前为止,我们就拿到全部的去重评论名单啦!
准备抽奖!

2. 如何抽奖?

采用随机种子进行随机选取

func lottery(totalPerson []LuckyPerson) LuckyPerson {  // 抽取中奖选手
	rand.Seed(time.Now().UnixNano())    // 使用随机种子
	index:=rand.Intn(len(totalPerson))  // 生成0到这个列表的长度的一个数字
	return totalPerson[index]  			// 返回中奖选手
}

3. 开奖啦~

让我们看看是谁获奖了啦~

由于一缩再缩,只能缩小到这种程度才能看见抽奖全程。

直接截图吧~

4. 抽奖啦~

点赞评论即可参与抽奖获得一个可可爱爱的神秘中秋礼物哈~ ,
本周日晚上 (9月19号19:30进行抽奖哈)

还不能告诉你哈~ 秘密

最后

小生凡一,期待你的关注。

想要源代码可以到我扫描下方,然后回复CSDN抽奖~

以上是关于博主的自我介绍篇的主要内容,如果未能解决你的问题,请参考以下文章

程序员面经分享|后端开发经验总结

程序员的自我介绍

杂志投稿博主的无线电杂志分享之旅

博主的思考

[Dream公开课]零基础玩转Python基础篇----第一节:Python的自我介绍

同行说技术Android程序员从小白到大神必读资料汇总