知乎上的程序员大V是怎么度过大学生活的?

论坛 期权论坛 期权     
匿名用户1024   2021-5-25 14:29   6764   5
我立志做一名好的程序员。大一自学了不少东西,但杂而不精。随着学习的深入,我愈发感到迷茫,做一个优秀的程序员要了解的东西太多,数据库、算法和数据结构、各种语言等等,要精通任意一门都很困难,更何况精通多门。我很好奇程序员大V在大学如何学习的,望各位前辈不吝赐教,后生不胜感激。
分享到 :
0 人收藏

5 个回复

倒序浏览
2#
有关回应  16级独孤 | 2021-5-25 14:29:37
我的大学,其实接触到的东西有很多,但是我自己踏踏实实掌握好的,就那么几门基础课,语言就C,C++和Java。但是很遗憾的是,似乎现在已经很少用Java了,主要都是在用C++了,偶尔会用Python爬爬虫分析一些有趣的数据,同时帮助我做一些有趣的,重复的事情。等我最近忙完了,我想把一些有用的东西分享出来,但是我也不知道大家是不是也需要我这些东西,但是我觉得也算一种交流吧,而且或许有人需要呢?

在大学中,我觉得我掌握的比较好的是操作系统,数据结构与算法课程,计算机网络和计算机体系结构都算熟悉吧,数据库我觉得我只是皮毛水平,真是很惭愧,而编译课程我是属于研究生再认真踏实学了一下,然后在实际工作中再慢慢加强。但是,我觉得这几门课程都是应该好好掌握的,这些课程在后面其实都是很有用的。

操作系统我当时读了两本书,一本是教材《Operating System Concepts》(7th Edition)和Modern Operating System,我觉得Modern Operating System这本书会更加有趣,从文字也感觉作者也更加的自信,似乎在说在OS领域,我什么没有见过,我就是最牛的大师,听我的没错。而Operating System Concepts这本书是比较传统的国外教材味道,不能说不好,但是我个人会更欣赏Modern Operating System,我喜欢Tanenbaum这种自信。然后,在大学的时候,我做过一个小的操作系统内核帮助我学习操作系统,而我当时也调研过很多国内外高校的操作系统实验,我非常推荐MIT的xv6,xv6也被国内外很多高校采用。xv6的特点在于其遵循了UNIX Version 6,使用了很短的代码完成了设计,并且可以跑在Bochs和QEMU,然后看到效果。这是xv6的网站:6.828 / Fall 2014 我强烈建议学操作系统的同学,认认真真的做这些实验,一定可以收获非常多的东西。

数据结构我学的很杂,其中一本是教材《Data Structures and Program Design in C++ (豆瓣)》,这本书我觉得习题很有价值,若能认认真真理解并且完成,我觉得基本上就够了,但是我自己当时也做的不够好,这是我很遗憾的事情,现在也发现还是大学有更多的时间静下心来读书与研究,工作以后无论怎么挤时间都不如大学那么多了。而我也还读了很多杂七杂八的数据结构与算法书籍,但是如果要我回过头来看,我觉得除了这本教材,再加上算法导论弥补教材缺失的算法部分,我觉得就完全够了。

编译原理这一块,我当时用的是虎书学习的,但是现在我觉得《Engineering a Compiler》(2nd Edition)更合适,若不是专门去开发编译器,我觉得这本书就够了。而如果是专门开发编译器,或许还有很多需要学习,这里就不列举了,因为我觉得我也还有很多不足,需要学习的地方。

C++这一块,我觉得算我比较强的一块,也是我最感兴趣的一块,这种兴趣是比编译器更强烈的。我2008年9月11日,大一第一天拿到的第一本书就是C++语言的教科书,所以这似乎犹如一种情结一样。当时的教材名叫《C++ Program Design》,虽然以我现在的观点来看,这本书我不再推荐了,因为确实太老了,而且的确也有很多不足的地方,但是在我心目中的确有特殊的地位。而若现在是新学C++的同学,我觉得Accelerated C++, Programming: Principles and Practice Using C++, C++ Primer等都算比较好的书籍,而有关学习C++的书籍的回答也太多了,我就不再赘述了,而唯一要强调的是《The Design and Evolution of C++》这本书一定要读!

而大学中,我也的确接触到了很多应用层的东西,Java EE,Android等,我也去实际开发过项目接触,但是从我的体会来看,我还是觉得最重要的是那些基础课程,若可以给我再回一次大学的机会,我依然会去好好学习这些基础课程,并且学的更好,然后研究我喜欢的C++。这就是我的一些经验和感想吧,仅供参考了。

(而在大学中,或许也不止学习,若能遇到合适的人,谈一场恋爱也是极好的。学习书本长的是技能,而TA给你长的是人生)
3#
有关回应  16级独孤 | 2021-5-25 14:29:38
我来简单说一说我的大学生活。


大一
学习C语言、C++和数据结构,说实话那时候对编程什么概念都没有,敲代码只知道Turbo C,人我只认识谭浩强。大一学的很一般,数据结构基本上是废了,这导致我在后期花了大量时间来弥补数据结构和算法,遗憾的是还是没有太大长进。
当然,大一的时候我正干着另外一件有趣的事情:烧钱玩轮滑,从高中就觉得轮滑这件事情太酷了,一进大学我就进了社团,大一上学期每天晚上六点到十点在体育馆都能找到我的身影,对了,我玩的是平花和花式刹停,在南京工程学院和艺术学院拿过速桩的二等奖。


大一暑假
自学HTML、JavaScript以,并且动手做了一些静态网站,大一的暑假是我度过的一个最充实的暑假,自己在学校后面租了一间房子起早贪黑的在W3C上学习记笔记,笔记本满满两本的笔记,这段时间的潜心学习让我在后面做爬虫和搭建一个完整网站的时候得心应手。


大二
学习Java、数据库以及网络安全相关的一些知识,用纯Java(swing)做了一些简单的小项目,什么局域网的QQ、俄罗斯方块、围棋对战之类的,当然现在还有人用swing么?学习网络安全知识的时候在乌云逛了一段时间,遗憾的是现在下线了,当初刚学习的时候为了得到乌云的邀请码也是费了很大的功夫,后来发现……大牛真多,期间给学校各大网站做了一次扫描,发现了不少漏洞。
整个大二用在学习上的时间不多,因为有女朋友还得忙着拱小树林,因为缺钱还忙着在外面教小朋友轮滑、搞着所谓的创业。


大三
继续学习Java,开始做一些不再是纯Java的项目:Java公众号开发、各种管理系统,运用之前大一学习的HTML和JavaScript知识和大二学习的数据库知识,做了很多小网站,期间也接了不少的外包的单子,赚了一点点小钱。后来大二的创业项目,我们想要做到线上的时候,也是我一个人加班加点赶出来的,不得不说会前后端还是挺好的。
大三的时候还在学习编译原理、软件工程这几门课,同时也是这个时候接触开始学习Python的,当初看的是廖雪峰和w3c上的教程。大三的时候没拱小树林了,因为学校把小树林给砍了,所以整个大三没事经常去后山,腰好。


大四
大三就开始出去实习了,然后大四上也一直在外面,期间实习做的是Java后端开发,期间我也一直在不断的学习Python,用Python做公众号开发、Python爬虫、Python数据分析等等,也接了不少的爬虫的单子赚了不少零花钱,也是那时候知道了社区这个神奇的网站。
大四下学期我在想,是该享受大学生活的最后时光了,于是我就果断辞职回学校开始享受了,隔一段时间和女朋友出去旅游一次,大四下玩了吃了很多地方:武汉、长沙、深圳、九江、南昌、苏州、南京、上海……除了旅游,还学会了如何在社区抖机灵。


你看我上面说了那么多,其实都是编的。
早上起床编了两个小时,你忍心不赞吗?
感谢社区:哪个瞬间让你觉得社区真有用?
4#
有关回应  16级独孤 | 2021-5-25 14:29:39
大V的大学学习生活很难复制,所以,即使你知道了大V在大学期间是怎么学习的又有什么用呢?你最需要的是有人能为你的大学生活做一些有用的指导,而不是依葫芦画瓢跟着大V之前的路数走。
对于大学生活,以下这些建议或许会对你有帮助:
1.打好基础
大学里你需要掌握的东西有很多,以下这些基础的东西一定要学好:
算法
  1. 二分搜索 Binary Search 分治 Divide Conquer 宽度优先搜索 Breadth First Search 深度优先搜索 Depth First Search回溯法 Backtracking 双指针 Two Pointers 动态规划 Dynamic Programming 扫描线 Scan-line algorithm快排 Quick Sort
复制代码
数据结构
  1. 栈 Stack队列 Queue链表 Linked List 数组 Array 哈希表 Hash Table二叉树 Binary Tree  堆 Heap并查集 Union Find字典树 Trie
复制代码
语言
需要熟练掌握一门语言,在此基础上,可根据需要和个人时间情况,考虑再掌握1-2门语言
理论知识
  1. 数学(线性代数、离散数学、概率统计)操作系统与编译原理计算机组成原理计算机网络数据库
复制代码
2.积累项目经验
你可以参加一些拥有一定代码量的编程项目课程(Android, Big Data, Machine Learning 等等),参加hackathons,接触开源项目。无论你做了什么,做了多少,都没有关系,重要的是你做过,你从中获得了新的知识和技能,这将为你之后的实习和工作提供帮助。
3.整合所学知识
你不仅需要学习老师教给你的知识,你还需要自觉主动地学习其他知识,对课堂知识进行扩充整合,随着时间的推移,你的知识量将会不断地更新、扩充,并且你将会找到最适合你的学习方式。你可以利用课余时间在LintCode - 主页上刷题,根据不同的类别做题,加深对相应知识点的认识。
4.学会表达自己
你需要学会用语言和非语言来正确地表达自己的想法,这首先意味着你需要有一个清晰的头脑,能够理出清晰的思路。其次,你需要学会表达,能够使他人get到你想要传达的信息,保证信息传递的正确性和有效性。
5.练习面试技能
技术面试中,核心硬实力当然非常重要。但是,一些小的面试技巧也可以帮助你在面试中获得加分。可以通过一些已经在职的软件工程,获取对面试的建议和指导:《顶尖IT企业工程师面试建议和指导》
6.关注技术发展
IT行业的变化日新月异,每个学CS的大学生都需要用发展的眼光看待行业的前景。你可以浏览一些吸引你的网站,比如TechCrunch,Engadget 等,了解业内最新的资讯。
7.展示技术成果
在这个互联网主导的世界中,学会运用网络变得至关重要。所以,在Github,LinkedIn和Stack Overflow等网站上展示自己的技术成果可以为你带来很多的机会。试着写一个技术博客,记录自己的技术成果,终会被伯乐发现。
8.确定职业目标
每个大学生最终都会面临找工作的问题,毕业季的彷徨很多都源于没有明确的职业目标。你需要在大学阶段确定自己的职业目标,明确自己之后的发展路径,这既有利于将来有针对性地找工作,也是对自己负责的一种表现。
9.抓住校招机会
对于CS在校生来说,校招获得实习或者工作的机会大大超过在网上海投简历。你需要随时关注校园招聘的相关信息,积极参加各种校园招聘会,努力地“推销”自己。
10.抵制各种诱惑
当你找工作的时候,你会发现各家公司都会给出丰厚的条件想要吸引你的加入,这种时候,你需要保持冷静,如果你很冒失地就接受了工作,很难保证在入职后不后悔。做足功课是必须的,你需要了解公司的晋升机制、企业文化、薪资待遇等是否与你相契合,你可以关注微信公众号:九章算法(ninechapter),回复“干货”、“薪资”、“简历”、“冷冻期”、“behavior”等关键词了解相关的内容。
11.融入你的团队
你的发展永远离不开团队的支持,你的成败一般都取决于你所在的团队。你需要始终保持谦虚的态度,学习团队中其他人的优点,学会团队合作,积极地与团队成员沟通,融入你的团队。

欢迎关注我的微信公众号:九章算法(ninechapter ),带你了解IT前沿技术,帮你通过面试,拿到offer,找到好工作!
5#
有关回应  16级独孤 | 2021-5-25 14:29:40
不是大V,只是一个初入职场的打工仔
但是我相信我的经历对大多数想转计算机或者正在学习计算机的低年级同学会有帮助,这里分享一下我的大学生活
[h1]大一[/h1]我被调剂到了社区劝退专业,我高中就不喜欢化学,但是偏偏到了这个专业...,很苦恼。于是我开始转专业,一番调研后我选择了计算机,整个大一我都在拼了命的刷绩点,为了应付转专业的笔试,我当时看了浙大的一门 C语言课,算是我程序员生涯的起点吧
[h1]大二[/h1]我顺利来到了计算机学院,迎接我的是铺天盖地的课,初期我有认真听课,但是效率真的低...,后来我就开始了翘课生活,除非迫不得已,不然我肯定在图书馆学习。大二我自学了 数据结构,离散数学,c++,java,操作系统
[h1]大三[/h1]大三是一个转折点,我做出了放弃保研的决定,详见这篇回答。
https://www.zhihu.com/answer/1820546938
为了找到实习,我开始锻炼我的工程能力,刷了很多国外的公开课,做了十个左右lab。大三上是我进步最快的时期,我自学了数据库系统和计算机网络,在leetcode刷了500题。顺利找到了第一段实习...
大三下我边实习边秋招,白天工作,晚上补差,充实的打工生活。功夫不负有心人,我在秋招中取得了不错的战绩。工程能力也进一步提高。
[h1]大四[/h1]最后的自由时光,我没有学习 (ω)嘿


——————我是分割线——————
周末会写一篇详细的学习文章,现在在打工(/ω\)害羞
详细的来了!
能给一个计算机本科生的规划提点建议吗?
6#
有关回应  16级独孤 | 2021-5-25 14:29:41
我在大学时期也接了很多活做,各种技术都有涉及,做多了以后自以为已经无所不能,天下无敌了。

大四有一次去逛招聘会,有个软件公司在招软件工程师和高级软件工程师,我就坐下来说我对高级软件工程师感兴趣,对方呵呵一笑。

后来工作后看了真正的产品代码和工程规范,才知道大学里做的那些就是随便玩玩的。

所以,大学里随便玩玩就行了,涨涨见识,打好基本功。你说的事情急不了,没有在一个领域钻研个三五年的就别谈什么精通了,不要想一口吃成个胖子。

最后,大学里别忘了好好玩。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:136515
帖子:27303
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP