Kaiyun(中国)开云·官方网站

非计开云体育 开云官网算机专业计算机如何入门? | 开云(Kaiyun.com)
× 快速导航
新闻资讯
分类
非计开云体育 开云官网算机专业计算机如何入门?
发布日期:2023-10-07 05:49:57

  终于看到了一个自己会的问题了,首先说明,我也是个菜鸟,然后上次逛知乎时,看到了@萧井陌的一个专栏,有一篇文章,《编程入门》.....最近闲的蛋疼,就按照上面的内容画了张思维导图,当然,也加入了自己的一些东西........................希望没有侵权吧.........

  先说结论,不推荐c语言,除非你的实验室有很多代码之前是用c写的,需要你去接管它们。首推Python因为简单,或者lz也可以试试OCaml,因为业用的也不少.

  lz研究生专业是,而非计算机,那么主要需要编程的地方应该是数据分析。lz说只有四个月,应该是指初期拿来学习编程的时间吧,四个月之后应该就要上手实际的研究或者项目了。这种情况下,不推荐学习c/c++,除非你的导师师兄已经有了大量的c/c++代码,你需要接管这些代码。c/c++的入门时间是比较长的,对于非计算机专业出身的同学,四个月想要做实际的开发还是比较困难的。在此我推荐两种选项给lz,这两种语言上手速度比c快,而且更容易做数据分析

  1. Python. Python的主要优势是简单,不需要考虑既然机硬件,可以专注于算法。lz可以用两三周熟悉python的基本语法,然后熟悉一下矩阵运算包numpy,再买本书或者到网上学习一下专门做数据分析的包pandas,再看看简单的机器学习,用用scipy和scikit-learn,lz就可以上路啦。这些内容四个月完全足够。lz可以去continuum.io上下载anaconda,上面提到的软件都包含在里面了。然后在上可以找到python教程。在numpu pandas scipy scikit-learn各自的官网上都能找到对应的教程。

  2. 如果lz对自己的数学和算法能力有一定信心,可以试试学习OCaml这门语言。OCaml在业被不少人采用,最著名的就是量化公司Jane Street啦,Bloomberg也用OCaml做风险管理。OCaml是一门函数式编程语言,Kaiyun App下载 全站比Python上手困难一点,但表达能力很强大,代码通常非常简洁,而且运行速度接近c语言,某些场景甚至比c还快。至于如何学习OCaml,可以去官方网站ocaml.org下载编程软件和教程,上面有很完善的学习资料。

  你老板的要求是不可能的。C/C++是非常麻烦的语言,C++又是特别麻烦的那种。对于没有编程基础的人,四个月勉强能掌握语言特性(其实都悬)。

  现在已经在我的One Piece的路上,在这儿,有许多许多的小伙伴,我们志同道合,臭味相投。每天都过得非常的开心!

  我是一个计算机专业的大三学生,马上就要去找实习单位开始寻找我的one piece.

  对于题主的问题,我觉得有点大了,这个问题就好像我问一个学习的人这样一个问题:对于非专业的学生,怎么入门学?

  我所认为计算机是什么呢? 他是一种辅助设备,能够拓展人类的能力。能够轻易完成人类很难做到和很费时间和精力才能做到的事情。

  计算机分为硬件和软件,硬件就是你看得见摸得着的,软件是你看得见摸不着的。介于题主是想说入门,我就不推荐计算机有关硬件的东西了,我主要推荐的是软件的方向。

  通常对于计算机专业的人来说,了解计算机的硬件组成是非常有必要的。因为这不单单只是告诉你现象,还告诉你的本质。

  学习计算机的软件(还有硬件):首先,你要看一本叫《计算机科学技术导论》的书(事实上不管你专攻硬件还是软件,这本书看看绝对没错),这本书包含了很多的基础内容,

  比如2进制(“计算机世界”的语言,计算机非常笨,哦,也就是cpu非常笨,只能明白01010101,其他的统统不知道),

  汇编语言(因为010101对于人类来说过于麻烦和难以理解,所以就把一段010101用几个字母定义,例如“mov”),

  然后就是c语言,一些很懒的使用汇编语言的程序员觉得汇编语言还是不够方便,所以就发明了高级语言---c语言。(可以看出来计算机的发展史真的是一群很懒的人的奋斗史:),我希望有幸成为他们其中的一员。)

  C++ 。推荐书目:《C++ primer》 ,C++是一门计算机高级语言,计算机语言是拿来干什么的呢?就是和计算机交流的,你看,你和英国人说话要说英语,要和广东人说粤语,要和荷兰人说荷兰语。一样的道理。随着“hello world”在那个黑黑的界面中显示出来的时候,你甚至会怀疑:这TM就是编程?!

  你要开始了解什么是变量,什么是常量,什么是循环,什么是类,什么是判断语句,什么是继承,等等等等。

  如果你学习完了语法部分(就是上述说的),那么,恭喜你,基本上已经可以和别人说:我学过编程了。

  因为题主的研究生是的,而且boss是做risk management的,那么算法就是必不可少的了。

  《算法艺术及信息学竞赛》 这本书还不错,介绍了一些基本的算法(当然里面不会告诉你怎么进行风险管理,那是专业的事)。我只是粗略的过了一遍,所以就不献丑了。不过研究算法感觉就像在原始丛林里面爬山,一般人进去就跪了,有了大量的经验以后才能生还。

  《操作系统》,了解了操作系统的原理以后,才能更好的操作我们正在使用的系统。属于中级的课程吧。

  《编译原理》, 如果说计算机语言是魔法咒语的话,编译原理就是告诉你,这些魔法咒语是怎么生效的

  《计算机组成原理》 哦,这个非常有趣,和操作系统有很大关系,但是这个是从硬件的层次上面(大部分来说)来解释计算机的组成

  《软件工程》 估计题主暂时看不到这里的了,什么是软件工程呢?我的理解就是,把写软件规范化。形成一种规范以后好处就不言而喻了。

  比如说语言选择的问题,你会听说JAVA无所不能,C#简单方便,python优雅至极,php开发速度快到带你飞。

  我个人觉得,语言不是重点,语言只是个工具而已,重要的是人,就好像我们都会写中文,为啥俺和莫言的差距咋就这么大呢!

  1.想要开发个简单的网站,PHP是不二的选择(你可以想象用C++写网站的“快感”么?)

  2.windows下的程序,开云体育 开云官网C#绝对是王道,还有比微软自家的东西更懂自己的么?

  4.考虑到性能问题,如果你是个大神(那是不可能的,如果这样你就不会问怎么入门了)那绝对会使用到C++,对于一般的凡人,JAVA的回收机制以及够用了。

  如果你想要买书,个人觉得最好不要买国人写的,因为国内大部分都是你抄我我抄你的节奏,最好买国外的书。图灵系列的我觉得不错。

  我个人觉得,学习计算机并不神秘和复杂,甚至有些可怕的简单,有付出,就一定有回报。因为计算机的严谨性,他永远不会出错,你给出了正确的方法,就会得到正确的结果。

  我推荐你花 10 个小时看看《计算机科学速成课》,这套课程是 Crash Course 旗下的计算机科学相关的视频,早期发布在 Youtube 上,整个系列课程高达 12 亿的播放量,令人开心的是,你可以在 B 站上免费观看,有汉化哟。

  Crash Course 的这套计算机科学视频一共 40 集,基本上每集控制在 10 分钟左右,所以,只要不到 10 小时就可以粗略了解计算机科学这门学科,如果你是一个门外汉,相信我,通过这个短短的 10 个小时足以帮你打开计算机的大门。

  你可能会不禁疑惑,十几分钟能学到啥?而事实上,Crash Course 的视频信息量很大,每一秒的时间都是精华,视频里面不仅有图像、视频资料、图表等,更有老师面授,老师的语速也是很快的,如果跟不上,建议 0.75 的速度进行观看。

  如果你是小白,想了解一门学科,不妨通过该系列视频作为切入点;如果你是某学科学生,可以用该视频梳理总结课程的框架结构;如果你想拓宽知识,这个系列视频作为下饭菜也是十分合适的。

  学习计算机网络,我首先推荐的 UP 主湖科大教书匠,他讲的计算机网络十分通俗易懂,重点的地方讲的十分细致,并且还有一些实验,更好的是有考研 408 的难题的讲解,也是非常适合考研,除了课程内容外还有很多习题讲解视频,特别赞的一点是每天动态里都会更新一道考研题,播放量也非常的多。

  既然说到了考研,那我就不得不提一下王道考研了,恭喜你发现了宝藏。王道考研的计算机网络视频,播放量非常多,而且老师是一位小姐姐,声音十分动听,声音这么好听的老师给你讲课,妈妈再也不用担心我的学习了呢,总之,这个视频的质量也非常高,弹幕全是对小姐姐的高度评价。(王道考研其他的视频也不错哦,暗示一下:操作系统,数据结构等等)

  韩立刚老师所讲的计算机网络视频,内容比较多,但是讲解的通俗易懂,并且老师讲课的经验也十分的丰富。配套的教材是谢希仁老师的计算机网络教材,韩老师的最近的一个视频视频比较新,播放量还比较少,但是他讲的是真的不错,相比于王道考研所讲的计算机网络,韩老师更加细致一些。

  在计算机网络方面,我还想推荐的一位老师就是方老师,也是一位小姐姐老师。她的视频配套的教材也是谢老师的网络教材,在线看的小伙伴也超多,弹幕都是对方老师的评价。

  相信很多小伙伴,学习数据结构、算法的时候,非常的头大,emmm.... 俺也一样。

  我个人觉得他讲得非常好,郝斌老师的思路是以初学者的思路来思考的,非常适合小白,你不理解的问题,基本上他都会详细说一下,有的地方他讲的不是非常的全,但是讲的比较深刻,课程的使用的书是严蔚敏的《数据结构》可能比较晦涩难懂,可以去看看《大话数据结构》或者《啊哈!算法》这两本书。

  B站很多小伙伴都管陈越老师叫做陈越姥姥,陈姥姥的课简单易懂,二叉树和链表说的多,但是对于图太少,后面概念解释多程序少,对于新手不友好,开云体育 开云官网并且这门课程到中后半段是另一位老师讲的,何老师。何老师讲解的也是非常的通俗易懂,并且拥有着强者的发型。

  王卓老师基本上把大学数据结构期末考试的重点全部都讲了,内容和 408 高度吻合,也是非常的适合考验人,还有在这里提一下王道考研的数据结构还是很不错的,总之学习数据结构重点还是需要理解,要多做题才行。

  推荐了这么多 C 语言的数据结构,就来一个了 Java 语言的吧。尚硅谷--韩顺平老师的课程,韩老师视频内容全,并且每次课都会带着你写代码,把每一个例子都会实现,这也是张阿姨梦开始的地方。韩老师的口碑我就不多说了,评论弹幕都是对韩老师的“表白”。

  给大家推荐一位关于 LeetCode 的大神,闫学灿老师,他的视频不仅会讲力扣的每日一题,还会讲解每一次力扣周赛的题目等等。你看就完了,yyds。

  (PS:感谢大家耐心的阅读,算法是程序员的重中之重,必须攻克,大厂面试必考,顺便送一份阿里大佬刷Leetcode总结的算法笔记,如果你能吃透,那我相信80%的技术面试都会不在话下:

  南大的课质量真的硬,蒋炎岩老师讲的是真滴好啊。老师讲课时用的课本是 Remzi 的 Operating Systems: Three Easy Pieces ,老师的每一节视频都比较长,一次肝完贼爽,老师把晦涩的东西讲的也非常的通俗易懂,豁然开朗,很多同学都是慕名而来,看完这个也算上过南大的操作系统啦 哈哈哈。

  目前清华计算机系本科的操作系统课目前都是由这两位老师讲授(向勇、陈渝),网课内容和他们课堂授课内容是一致的,同时配有一套完整的实验,实验内容是从无到有地建立起一个小却五脏俱全的操作系统(ucore),能从头到尾做下来的收获绝对是听课所不能比的,理论课上老师照顾大多数人,娓娓道来。现在有很多同学已经整理出了这门课程的随堂笔记,这门课程强烈推荐!

  整体看了一遍,个人觉得是 b 站上很不错的操作系统课程了(经典课程如 mit6.828 在 b 站上的似乎都没有字幕而且拍摄角度实数刁钻)。这门课的前几讲涉及 OS 启动(老师谜之口糊),需要一点汇编知识,不过遇到不会的直接网上搜即可,大可不必因为汇编而被劝退;之后的内容如多进程、信号量、内存管理等讲得很好,不做赘述。如果对这部分有不解的地方可以网上搜资料或者去看 b 站上新竹清华大学的 OS 课程最后在学这门课前建议对计算机有个整体认识,可以去学习一下经典的 csapp 或者 mit6.004(对应国内的计组,一个偏软件,一个偏硬件)

  刘宏伟老师主讲,他的课不仅适合考研人,也非常适合初学者,初学者也听得懂。建议 1.5 倍速食用。之前有一个一百多万播放量的视频,不知道为啥没了...

  来来来,清华的来了嗷,这门课是 2013 年的,距离 2021 年有点遥远。

  刘卫东老师主讲,质量很高。我非常喜欢他讲话的逻辑和风格,看就完了,贼好。(收藏是点赞的六倍还多,就离谱哈哈哈)

  陈鄞老师的 PPT 做的非常认真,讲得也很通俗易懂,思路清晰。这个是我目前为止,觉得讲的最直观简洁的了,全程没有一句废话,认真听会有很大的收获,每一句话都要仔细琢磨,并且老师那种温文尔雅的气质,你不认真听课?啊?小伙子。 认真学完真的会收获很多。

  在校招和社招中,这两者的比例会有所调整,大致上可以这么说,校招寻找的是那些基础好的同学,他们具备更强的可塑性,方便培养成为公司的骨干中坚力量,所以关于计算机基础的考察是重点;而社招寻找的是那些能快速干活的同学,他们能尽快的熟悉项目,能给公司带来收益,所以关于专业技能知识的考察是重点。

  可以看出,无论是校招还是社招,计算机基础都是必考的内容,因为对于程序员来说,计算机基础就相当于是内功心法,而专业知识相当于外功,如果内功修炼的不扎实,那么很可能走火入魔,也就是基础不牢,地动山摇。

  所以互联网公司在招聘的时候,往往在一轮二轮面试中重点考察计算机基础,比如笔试考察算法、计算机网络,面试问一下操作系统的知识点,如果说计算机基础掌握的不够扎实,那么基本上就一轮游,除非你的简历和专业知识能力十分的出众,让面试官觉得你很优秀,否则后面的面试环节和你无缘,也就拿不到 Offer。

  并且,计算机基础这个能力是伴随着程序员的整个职业生涯的,它并非像高考时学的化学、物理、地理知识,高考结束后迅速忘掉,在程序员的工作中,计算机基础内容时刻出现。

  如何你熟练掌握了各种数据结构的特点的话,那自然而然想到使用 bitmap 来存储权限,相反,如果你计算机基础知识不扎实,可能需要花一周时间却写十几个糟糕的接口。

  我们把权限划分成最小粒度之后,每一个 bit 都它的含义, 例如我们把权限划分为以下几种:

  每勾选一个选项,就代表着这个权限被授权,为了保证可扩展性,我们使用一个 uint64 来保存这些 bit ,也就是说,我们一共可以划分 64 种细分权限,然后对这些权限进行组合。

  例如,第一个 bit 如果设置了,那么就代表可以获取你的昵称、头像、地区、性别等基本用户信息, 第二个 bit 如果设置了,就可以用你的身份发状态。

  再者很多互联网大厂不喜欢培训出来的程序员,除了因为一些培训出身的程序员喜欢简历造假(一年工作经验伪造成三年工作经验),还有一个重要的原因就是他们的计算机基础几乎为零,Kaiyun App下载 全站只具备简单的 CURD 干活的能力,那么一旦业务中出现一些问题,他们很难站在更高的维度去发现问题、思考问题。

  如果科班出身的计算机专业的大学生计算机基础都不扎实的话,那么是远远不如培训出身的程序员,最起码他们还具备干活的能力。

  初学者可以先通过视频入门,知道你学的那些东西是什么、怎么用,细节和进阶通过书籍、源码、文章、项目去完成,并且第一遍视频快速过完,后面的视频边看边思考,不要抄代码,作业可以隔天再写;同时多去尝试,减少路径依赖,时不时和视频里面的正确方案对着干,看看会发生什么,以及怎么处理。

  计算机组成原理介绍了计算机的基础知识,包括计算机的各子系统(运算器、存储器、控制器、外部设备和输入输出子系统等)的基本组成原理、设计方法、相互关系以及各子系统互相连接构成整机系统的技术。

  这三本书是一套书,把构成当前社会基本组成单元的计算机、程序和网络,用最通俗易懂的语言,讲的清清楚楚。

  对于编程来说,兴趣最重要,没兴趣,给你推荐再多的经典书都是白搭,所以学习计算机组成原理最好从这套书入门。

  我一直认为读书是世界上性价比最高的成长方式,书很便宜但分量很重,是让我们摆脱平庸走向卓越的方式之一。

  对于计算机专业的学生而言,读计算机经典书籍不光能让你快速提升知识和能力,更会让你在校招之际如虎添翼。

  视频则推荐伯克利大学 Brian Harvey 的 SICP 课程,CS61A。建议至少学完 SICP 的前三章,并把练习题做完。

  无论你学习什么编程语言,和都避免不了和操作系统打交道,比如你学习 Java,用到多线程技术,实际上操作系统才是负责管理进程和线程的;比如你学习到内存分配的知识,c++里可以直接分配一段内存,此时实际上是调用操作系统提供的API进行内存分配。

  如果不懂操作系统,你在未来学习编程语言的高级特效,涉及到线程进程调度,内存分配,或者是学习Linux相关的知识时,都会一头雾水,所以,只有学会了操作系统,那么才能够更好地学习其他语言和技术。

  我一直认为读书是世界上性价比最高的成长方式,书很便宜但分量很重,是让我们摆脱平庸走向卓越的方式之一。

  对于计算机专业的学生而言,读计算机经典书籍不光能让你快速提升知识和能力,更会让你在校招之际如虎添翼。

  编译原理的学习和实践通常基于对计算机编译过程、计算机基本工作原理、甚至一定的数学知识有一定积累,这些知识分别分布并应用在了编译原理的不同阶段。没有这些基本知识的积累,很快就会在某个阶段由于功底不够而无法再继续后面的学习。

  编译原理非常难,而且非常枯燥,需要要很强的功底才可以入门学习,所以,先认认真真的积累上述的一和二在入门学习吧。

  计算机网络的相关知识在工作时使用的频率还是挺多的,毕竟,所谓的CURD工程师总是在处理 API 相关的业务。

  学习计算机网络,你需要懂得Socket编程,知道TCP/IP网络模型,了解OSI七层网络架构,知道一个数据包是如何层层包装,再层层拆包,从客户端发送到服务端。

  相信无论是已经毕业的同学还是正在学校学习的同学,都或多或少地被数据结构与算法这门课给折磨过。数据结构与算法这门课开篇就讲了一个非常重要的概念:程序 = 数据结构 + 算法,对于初学者可能还不能完全地理解这句话,不过对于已经工作两三年的同学相信对这句话是深信不疑的。

  1、首先先大致了解什么是算法,可以通过一些科普读物来入门,这个过程我称之为入门阶段;

  2、接着可以尝试实现一些比较容易的数据结构和算法,这样可以更加深对数据结构和算法的了解,这个过程我称之为实践阶段;

  3、最后去了解数据结构与算法背后的相关数学原理等,这个过程我称之为原理阶段。

  不要一来就拿着《算法导论》开始啃,初学就去啃这些书肯定会很费劲。你一旦啃不下来,挫败感就会很强。

  所以,入门的同学,我建议你找一些比较容易看的书来看,比如《大话数据结构》和《算法图解》。

  《大话数据结构》 这本书最大的特点是,它把理论讲得很有趣,不枯燥。而且每个数据结构和算法,作者都结合生活中的例子进行了讲解, 能让你有非常直观的感受。

  《算法图解》 跟《大话数据结构》走的是同样的路线,就像这本书副标题写的那样,“像一样有趣的算法入门书”,主打“图解”,通俗易懂。它只有不到 200 页,所以内容比较少。

  通过基本入门算法书的,你已经逐渐体会到了算法的魅力,现在正是时候踏入基础系列算法的领域!!!

  虽然代码并不会很严重影响阅读,但还是有很多强迫症的同学喜欢看到文章的解释代码是自己擅长的。

  我这里推荐《数据结构和算法分析》,这本书非常系统、全面、严谨,而且又不是特别难,适合对数据结构和算法有些了解,并且掌握了至少一门编程语言的同学。而且,这个作者也很用心。

  他用了三种语言,写了三个版本,分别是:《数据结构与算法分析 :C 语言描述》《数据结构与算法分析:C++ 描述》《数据结构与算法分析:Java 语言描述》。

  所以,推荐三本有益于面试的书籍,分别是:《剑指 offer》《编程珠玑》《编程之美》。

  这本书几乎包含了所有常见的、经典的面试题。如果能搞懂这本书里的内容,应付一般公司的面试应该不成问题。

  另外,我每天都在 B 站录制《看动画图解剑指 Offer 系列》,到今天已经坚持了半个月,目的也是为了能够帮助到校招和社招的同学,让他们学会算法,进入心仪的大厂。

  相信我,基本上你看一遍就会觉得这道题目没什么难,觉得《剑指 Offer》也就那样,能坚持下去学习。

  同时,我把《看动画刷剑指 Offer》整理成了 PDF 与视频版,大家可以免费领取,一起学好算法,进大厂。

  这本书最大的特色就是讲了很多针对海量数据的处理技巧。这个可能是其他算法书籍很少涉及的。面试的时候,海量数据处理的问题也是经常会问的,特别是校招面试。不管是开拓眼界,还是应付面试,这本书都很值得一看。

  《编程之美》这本书有多位作者,其中绝大部分是微软的工程师,所以书的质量很有保证。不过,这里面的算法题目稍微有点难,也不是很系统,这也是我把它归到面试这一部分的原因。如果你有一定基础,也喜欢钻研些算法问题,或者要面试 Google、Facebook 这样的公司,Kaiyun App下载 全站可以拿这本书里的题,先来自测一下。

  (PS:感谢大家耐心的阅读,算法是程序员的重中之重,必须攻克,大厂面试必考,顺便送一份阿里大佬刷Leetcode总结的算法笔记,如果你能吃透,那我相信80%的技术面试都会不在话下:

  这门课由斯坦福大学计算机科学系教授Tim Roughgarden授课,适合至少掌握一种编程语言的编程学习者。斯坦福的课强调理论和概念上的理解。学完这门课后,对你今后面对技术面试时将会非常有利。

  Daniel M Kane、Pavel Pevzner等五位老师共同授课,这门课程的最大特点是理论和实践的结合,你将学习到解决各种计算问题的算法技巧,并实现大约100个算法编码问题。

  Kevin Wayne和Robert Sedgewick共同授课,涵盖了有关算法和数据结构的基本信息,开云体育 开云官网重点是Java实现的应用程序和科学性能分析。第一部分包括基本数据结构、排序和搜索算法。第二部分重点讨论了图形和字符串处理算法。

  目前已经有很多常用的数据结构与算法的可视化,如:常见的数组、链表、队列、二叉搜索树、红黑树、各种排序等,如下图所示:

  下面这是一个高赞回答合集,建议大家点赞&收藏,Mark住别丢了,大学期间绝对用得上。

  1、怎么学好数据结构,看下面这个回答,已经获得了21000+ 的赞和 50000+的收藏。

  2、如何系统地学习算法,看下面这个回答,已经获得了11000+ 的赞和 26000+的收藏。

  3、新手该如何使用 GitHub,看下面这个回答,如果在大学期间就知道使用 GitHub ,那么能力远超同龄人。

  4、想成为一名优秀的程序员,那么这些程序员平时都喜欢逛的论坛怎么说你也得收藏一些吧。