走了两个多月的入学流程,终于在昨天,结束了面试,虽然面试的结果有些不尽人意,也可能是我对自己的预期值有点高了吧。总之,这一阶段的学习暂时划下了一个完美的句号。
我目前大四,在一个很不起眼的师范类院校读工科专业,电子信息科学与技术,要说与计算机沾边的话,至少大一和大二还开设过c语言和数据结构的课程,只是那时候并没有好好学。大三的时候,开始意识到该考虑一下毕业找工作的事了,想学点技能,但以周围的环境来说,有点困难。宿舍4人,其中一个从大一就开始沉迷于小说,每天除了上课就是呆在宿舍看小说,另外两个,都沉迷于LOL,昼夜颠倒,玩游戏到凌晨,睡觉到中午。我在他们眼中可能算一个另类吧,每天保持着还算正常的作息,7点多起床去图书馆,因为环境不允许,中午一般不回来睡午觉,在图书馆趴一会休息。扯得有点远了,回归正题,总之,身边没有一个可以一起学习的,有问题也没人一起讨论,只能靠自己。
大三上半学期的时候,有点迷茫,接触了一段时间Web前端,后来又学了一阵子PHP,大三下半学期的时候开始接触Java(也就是15年4月份),从此就开始专注学Java,起初是看了一遍毕老师的视频,感觉讲的通俗易懂,都能看懂,自己却没怎么敲代码。中间还抽空去考了软考的初级程序员,学完了基础的Java语法,又学了一些JavaEE的内容,学的过程中也渐渐有了自信,找到了一些方向。暑假的时候留在学校,开始自学框架,因为关于SSH的视频都太老,讲的版本太旧,于是就开始看书学,看了有一个月,感觉很吃力。这时候开始意识到Java基础的重要性,意识到自己的代码量太少,于是大三的第二学期开始回归基础,重新看毕老师的视频,还买了一本《Java编程思想》配合着学。这本书的声望很高,在业内的评价也很高,但我看了之后发现它不太适合初学者,甚至不太适合用来学习。不可否认,这本书确实不错,有些知识点挖掘地很深,它比较适合你有了不错的基础之后,放在床头,闲暇的时候拿来仔细品味Java的奥妙之处。
在这次回归基础的学习过程中,在CSDN上偶然了解到了黑马,也彻底改观了我之前对培训机构的理解。然后我就决定进黑马学习。最看重的还是黑马的学习氛围,自学了这么久,最痛苦的时候就是遇到bug只能自己死扣,或者上网找资料,周围没有人可以讨论是件很痛苦的事。如果进了黑马,周围的人都是有着相同的目的,学习起来也很有干劲。
10月份准备了一个月的软考,因为初级程序员通过了,所以又报了中级的软件工程师,虽然我并不认为这个证书在以后找工作的时候能帮我多少,只是为了在准备考试的过程中学习一些编程以外的理论知识,多学一点总不是坏事(前几天成绩出来了,中级也稳稳通过)。11月开始写博客,光博客就写了一个多月,因为我认为自己基础的部分已经理解了,所以不屑于在博客中只是罗列笔记,想总结一些自己的东西。所以那本《Java编程思想》被我研究了很久,遇到问题,通过自己编写一些Demo解决问题,再总结出一篇博客。所以这个流程花的时间有点长,但还是值得的,博客分数没有让我失望。之后的笔试也没什么好说的,花了一天的时间来完成。之后就是面试了。
面试有点波折,从上午9点进行到11点45,再加上早上没吃饭,面试结束整个人几乎虚脱了。首先,老师给了我4道题让我一个小时内完成,大体浏览了一下,第一道是关于io流的,无非就是键盘输入字符,存入文件,再从文件倒序输出打印在控制台,比较简单,后面三道分别是多线程,反射,集合,都是很简单的小示例。我大概用了半个小时做完,然后通知老师。(做题的时候老师把视频关掉了,但远程桌面是连接着的,用来监控桌面,防止作弊) 完成之后老师问我远程连接怎么断开了,我当时懵了,我也不知道什么时候断开的,可能是网的问题吧。然后老师说之前的题作废,又给了我三道题,说45分钟内做完,这次连接要是再断开就取消这次面试资格,此时我的内心是崩溃的。再次浏览这三道题,我就几乎绝望了,难度跟之前的就不是一个档次,其中有一道是我之前笔试题的最后一题,当时我花了近一个下午才做出来,虽然只有几十行代码,但逻辑还是比较复杂的。后两道题都是老师视频里的例子,一道是用多线程模拟售票的例子,还有用TCP协议写一个客户端和服务端用来上传文件。我只有静下心来写,还时不时打开聊天窗口看一下远程连接有没有断开,好在平时练习的比较多,最终还是按时完成了。这里也提醒大家,视频里老师讲过的例子一定要熟练。
之后就是老师提问,问题也都比较基础,还有就是个人性格和近况,还有未来的发展,都有问到。可能是之前做题的时候太过紧张了,后面提问的时候还没缓过来,还有我性格的原因,比较内向,表达能力不是很强。所以老师最后给我的定位是技术不错,沟通能力欠佳。好在面试还是通过了。后来我自己也总结了一下,之前我陷入了一个误区,以为只要技术过硬,就什么都不成问题了。现在才懂得,技术是一方面,学会表现自己也同样重要,面试是一个面对面交流的过程,程序员要善于表现自己,才能赢得面试官的青睐。
我也算一个过来人吧,完全靠自学一路走下来。给大家的建议就是,学技术不能急于求成,不然就像我之前一样,还得回过头学基础。视频可以反复看,后面看的时候可以快一点,我的方法就是用暴风影音1.5倍速播放,遇到老师要演示一个示例,然后暂停,自己敲代码,调试好,然后再与老师的代码比较。比如讲到字符串的时候,其中有一个例子是获取两个字符串的最大公约子串,最后发现我用的方法跟老师的方法完全不同,但都可以解决问题,这样就同时掌握了两种方法。这样就可以最大限度提升自己。还有就是要勤思考,比如多线程里讲到的notify()方法,如果同时有多个线程阻塞,调用notify()方法时,是唤醒最先阻塞的线程呢?还是随机唤醒一个线程呢?老师们关于这里讲的都有些模糊,最终我通过自己编写示例,终于搞懂了,大家也可以去试一下,这里我就不多说了。
就写这么多了,第一次写这么长的总结,感谢认真看完的人。有什么欠缺的地方还请大家多多指教,祝大家都能顺利进入黑马,实现梦想。
|
|