刚上大学我就像个憨批,每天在各种社团之间游走。整个大一都没有怎么研究编程,导致我到大二的时候,还不知道 Github,甚至不了解什么是 Linux。大二之后,因为加入了学校的一个还挺不错的技术组织,跟着一些已经可以独立做项目的学长学姐们学到了不少东西。
避免小伙伴们觉得我吹牛逼,简单介绍一下自己的情况!
目前的话,我的日常生活状态可以简单概括为:工作 开源项目 写作。
这篇文章比较长,如果我只能让你记住一句话的话,那请小伙伴记住:
重回大学,我一定会更加努力学习计算机基础知识!操作系统、计算机组成原理、计算机网络真的不是没有实际用处的学科!!!
这个回答前前后后花了两个月时间写完,光是完善和修改就花了一周。即使我尽量控制不说废话,但是这个回答的字数也还是超过了 1w 字 ,不过都是干货!相信,不论是在校大学生还是已经工作几年的小伙伴都应该能够从中有所收获。如果有帮助点个赞鼓励一下就好!
我会从“CS专业大学四年到底该学什么”这个角度来回答这个问题。
下面这张图是周末在窗台边写这个回答的时候拍的。
首先,在学习编程之前,我觉得什么编程语言、数据结构、算法、操作系统这些都要统统一边去。作为计算机专业的学生一定要首先养成下面几个程序员必备的好习惯。
程序员必备的好习惯- 使用 Google 搜索而不是百度。如果你实在访问不了 Google 的话,替换成 Bing 也行。
- 经常逛一些比较不错的博客论坛比如国内的掘金、博客园、CSDN,学有余力的小伙伴还可以去 GitHub、码云上找一些开源项目,用来训练自己的开发能力。
- 多关注一些你的领域的一些大牛在干嘛,多关注一些优质原创博主的博客。
- 编程不只是要看,更要动手,这是一个特别需要实践的专业。各个高校在编程课上可能会介绍自己校内的 oj(online judge),题库式的网站,可以做一些编程题目,还可以在线评测。一般适合初学者的简单的 OJ 校内都会提供,如果没有的话,可以去校外找一些开放的简单的 OJ 来刷题。
- 不要因为刚开始学习编程的不容易,而打击自己的学习兴趣和*。加油!奥利给!
然后,就是编程语言了!
编程语言几乎所有的大学刚入学第一年就会开设一门编程语言课,一般是 C 语言偏多。
不论你的学校是否开设了 C 语言这门课,我建议大家最好还是学一下 C 语言。 拿我从事的 Java 后端开发来说,很多 Java 从业者单纯觉把 Java 学好就完全足够了,并不需要再学习像 C、C 这种稍微更难一点的编程语言。我觉得对于刚能写好 CRUD 的 Java 程序员来说确实是这样的,但是对于想要成为比较顶尖的 Java 程序员来说肯定是不行的。很多开源项目都调用了 C 语言库,所以, 作为 Java 程序员,不需要你 C 编码能力多强,至少能够看懂 C 代码。
刚开始学习一门编程语言的时候,大部分人都挺吃力的。有时候一个环境搭建就折腾大半天。我记得,我那时候刚开始学,很多非常非常简单的控制台程序都写不出来。 不过,随着后面学习的慢慢深入,我慢慢发现自己的编程思维和能力在变得越来越好。
在这里我想鼓舞一下初入计算机编程的各位小伙伴:万事开头难,你见过的所有大佬都是从懵懵懂懂的阶段摸爬滚打过来的。 当你在 C 语言课上看着前面的老师在编译器中飞快地输入着代码,自己却连编译器都配置不好的时候,心中难免会有失落,但这决非放弃的理由,只要坚持住,解决了一个又一个的难题,你也会成为曾经心中的大佬。
如果想要看视频提前学习或者上课没学好 C 语言的话,推荐去 B 站搜索 C 语言郝斌。这个老师的课程很不错,非常适合拿来作为初学者学习 C 语言的教程。并且,视频中老师还会给你分享一些他自己的编程学习心得。
另外,如果你觉得谭浩强 老师的 《C 语言程序设计》 这本书比较难理解的话,可以看一下 《啊哈 C 语言!》,这本书非常通俗易懂,非常适合之前没有学习过编程的新手。
还有开摄 C 课程的高校也比较多。初学者学习 C 的教材可以使用《C Primer》,熟练掌握基础语法后,为了进一步提高自己的编程开发能力,还可以读一读《C Primer Plus》和《Effective C 》。
另外再推荐一个 C 的中文版的开源书:modern-cpp-tutorial 。