自从进入大学已经接近一年的(还差几天),这一年中我从一个什么都不知道的小白变成了一个了解不多的菜鸡,写过许多谜之代码也写过几个垃圾项目,学过许多古董技术也用过一些神奇的东西或框架,这一年来我走过了不少弯路,浪费了不少时间,写这篇文章的目的是为了总结一下这一年的来走过的路和一年来的经验,调整我的方向。也希望能给访客们带来启发。
本文的主观性很强,若有不足和不妥之处请多包涵,有不明白的地方或者可以改进的地方请在下方留言。
我选择计科的原因
说起原因的话不得不提高二的时候,那时候还没有推出无限量的流量套餐,作为一个住校生肯定会搜寻附近是否有开放的网络,那时候还用着酷派的大神 F2,信号很好,可以连接到一楼的开放 WIFI,后来被盗了然后找同学买了部大神 Note3,却发现信号很渣,于是乎买了个香橙派来中继,然后接触到了 Linux,Web 和 WordPress,逐渐的发现对这些非常感兴趣,期间也折腾了 HTML/CSS,但只停留在爱好的阶段。后来毕业了选专业,看着列表上乱七八糟的专业才发现还是软工比较适合我,但是没得选,后来听说了计科和软工差不多后选择了计科。
我一年来的学习历程
开学后我知道了要学习哪些课程,其中的编程课是 C 语言,作为一个喜欢先行出发的折腾怪,我就打算早在同学之前完成部分课程的学习,当时原本是打算看书来学习的,后来发现我的学习方式并不适合看书,当初啃书的时候是非常痛苦的,啥都不懂,看着书上那堆乱七八糟的东西一愣一愣的,3 天看了还不到 20 页,于是经过一些考虑后我选择了看视频学习,一开始不知道去哪找资源,经别人推荐去了网易云课堂随便找了一个视频教程学习,照着视频我学了 C 的基本语法,条件语句,循环语句,以及数组等基础的知识。
对了,当初我使用的编辑器并不是古老的 VC6 也不是 CodeBlocks 更不是 Dev C++,而是Visual Studio Code,当初用这个编辑器的原因是因为用习惯了,至于怎么用习惯的那又是另一个故事了,但是作为一个过来人,我极其不推荐使用 VC6,CodeBlocks,Dev C++等古老的编辑器,现在的大学课堂总是喜欢简单粗暴的教学生们装一个 VC6,美其名曰“我当年还用 XXX 的编辑器写 XXX”,要说为什么不推荐使用这些编辑器的原因是它们对新手都不友好,没有代码高亮,没有补全,连报错都是乱七八糟的,调试更不用说。为什么需要这些?因为什么都没接触过的小白想要学好这门技术首先需要的是信心和兴趣的搭建,而一个快捷方便的编辑器(可以是 VSCode,VS 等现代的 IDE[编辑器]),可以使他们不会因为一些小错误而对编程丧失信心和学习的兴趣。在过去的一年中我为我的大部分舍友安装了 VSCode,并教他们如何使用,实际使用下来他们的确在用 VSCode 的阶段(学 C 的阶段)中表现得不错,后来学 Java 使用了 Eclipse(没像我这么固执,其实是我实在用不惯 Eclipse)
拉回正题,C 的前面部分学习还算顺风顺水,因为我有写过 PHP,PHP 和 C 的语法还是非常像的,直到遇到了指针和结构体。指针和结构体可以说是学习 C 的一大拦路虎,好在最后还是靠着 Google 的帮助学会了。后来学习了 Java 和汇编这些就不谈了,有了 C 的基础学习起来就只是思想转换的问题了。
个人的经验之谈
在大一,我学习了 C,Java,PHP,JS 和一些相关的框架,但都只学了皮毛,并没有去深究它们,大一重要的是打开视野,而不是去深究某项技术,更不是从底层学起,也不是沉迷于刷题无法自拔。学会腾出时间去了解目前互联网是如何如何,大咖们都在关注什么,寻找自己喜欢什么,想学什么,了解如何通过互联网快速寻找到你想要的答案。如果可以请到墙外看看,看看世界上正在发生什么,程序员之间是如何协作的。学会利用好 Github,Stackoverflow,MDN,甚至是 Google 等网站。
比起刷 OJ 我更推荐你去找一个小项目,试图去读懂它,了解它,模仿它,甚至是改进它优化它,你会发现在这之中学到的知识远比刷 100 题 OJ 来的多。
然后试着去写个项目,当你写项目遇到问题时,你才会真正的去思考要如何解决问题,当你在项目中遇到如线程,进程,并发,异步,同步等问题的时候,你自然而然的会去思考进而学习相关的知识,当你把这之中的问题都逐一找到答案的时候,那种成就感和兴奋感是无可比例的。当你发现你的程序运作起来很慢的时候,你自然而然的会去想如何优化它进而去学习算法,优化的方法。学习编程不是填鸭式的学习,驱动式学习才是学好的关键。
在我看来,在编程这条路上这些最好不要做:
- 不格式化代码,随性的编写代码,一行当成 100 行使用
- 不参考最佳规范,不看优质代码
- 什么问题都喜欢问他人,不去学习如何独立的解决问题
- 喜欢把所有的代码写在一个主函数中
- 不管学什么都要买一本书,或者捧着一本大部头,试图线性的从头看到尾
在我看来,你应该学习的或者应该去做的:
- 学会使用 Github
- 学会如何使用搜索引擎(这里不推荐使用百度,如果用不了 Google 也请用 Bing 或者第三方搜索引擎)
- 学会对知识进行输出(建一个博客或者去一个优质平台把自己学到的知识写成文章)
- 学会如何寻找学习的资源
- 学会使用一个好的开发工具(编辑器,CI 等)
- 学会阅读(文档,文章,代码等)
结语
首先感谢你能看到最后, 或许这篇文章并不能给你带来什么,但我们有缘一起走上一程,望各位都能有好的成就。
很多建议是我从各类消息源阅读收集而来,由于有的时间久远无法一一寻找 ,在此统一表示感谢 。
感觉还没写完,所以还会添加一些内容 ԅ(¯ㅂ¯ԅ)
一年来的经验总结
https://blog.ixk.me/post/summary-of-experience-over-the-past-year许可协议
BY-NC-SA
本文作者
Otstar Lin
发布于
2019/08/26
转载或引用本文时请遵守许可协议,注明出处、不得用于商业用途!