QG 训练营前端组第一周周记:2019 年 3 月 24 日

生活随记

3 月 21 日

今天是 QG 网络组见面会,整个过程花的时间不多,最突出的感受就是有很多人互相认识但是我一个人也不认识。会有些感慨,如果我当初考进了一个适合我的专业,现在又会是什么样的呢。不过过去的是改变不了的,至少我现在还有选择的权力,也只能尽自己所能去争取。

3 月 22 日

今天是 QG 第一次大课,主讲就是网络组的师兄,讲的内容是链表,但是 20min 是真的快,感觉刚要开始就结束了,原来这就是 QG 的讲课风格吗。

一周总结

这一周最大的变化就是生活里有了 QG。
在 QG 笔试的前一天晚上,一位同学问我要不要去参加 QG 的笔试,我花了一些时间找与 QG 有关的资料,然后就决定了参加 QG 的笔试。其实从这学期开学开始我就在考虑这学期应该把目标放在哪里,我考虑过单纯学习专业课,继续在社团学硬件,或者加入 acm 集训队,最后看到 QG 的几大方向,我感觉我找到了目标。
我没有参加其他工作室的笔试面试也就无从比较各大工作室的难度,但按照别人的说法,QG 的考题还是比较难的。我感觉这套笔试题没有考很难的算法知识,而是考了很多 c 语言的基础知识。算法竞赛让我养成的习惯就是尽量避免容易出错的使用方法,如果有拿不准的就写个程序跑一遍,所以遇到基础题还是会有些头疼的。笔试题里还有一个让我印象深刻的用法, 就是函数指针数组。同样是因为在算法竞赛中我们使用的是不遵循工程规范的单文件大函数的写法,而且是混用 c/c++的特性,所以对这样的用法并不了解,我感觉我对 c 语言远未达到掌握的程度,我只是会用,以及会比较多的算法。
QG 的一面用一句话说就是等待一小时,面试五分钟。刚要不紧张,就结束了,中间说了什么也全忘了。
QG 的二面时间很长,师兄们问的也比较细。总的来说就是因为我本身对基础知识掌握就不够牢固,而且也有一段时间没有接触过了,所以师兄问的很多问题都没能回答上来,前端方面的知识因为本身就没有系统学习过所以都是一知半解,对深入的只是也是一概不知。c 语言方面的知识也没有很好的回答上来,首先 c 语言原理方面还是有些了解的,但是一提到指针就完全没辙,因为在算法里最常用的是数组模拟指针,指针的知识只是学过并没有怎么应用过,另外一提到与算法有关的知识,就会想复杂,想复杂又记不清楚那些算法了,所以也就没有答上来,结果答案就是一个很朴素的做法。我对自己二面的表现还是挺失望的,没想到自己会表现得这么差,所以得知通过了面试之后我还是很激动的。
最后说一说 QG 的作业,这样的代码我还是第一次认真的阅读,注释占文件的一半内容如果对于算法竞赛来说简直就是浪费,但是这一次我体会到了注释对工程场景的重要性,因为代码不是一个人完成的,所以就需要保证每个人都能理解其他人的代码,这时候注释就帮了大忙了。然后就是对 typedef enum 的惊叹,我以前很少了解过这些关键词,所以一直感叹 c 语言没有 c++里有的类,现在看来还是我自己能力不足不知道罢了。

存在问题

我目前存在的最突出的问题就是语言基础太差,对很多细节问题一知半解。

下周规划

下周一个重要的目标就是规划好自己的时间,多看点书,少咕咕咕。
至于看书就是看完 Head first HTML, 细读 C Primer Plus。

作业:包含命令行交互的链表实现

前往 GitHub 查看代码

  • main.c
  • head
    • interact.h
    • linkedList.h
    • duLinkedList.h
  • interact
    • interact.c
  • linkList
    • linkedList.c
  • duLinkList
    • duLinkedList.c