这可能是我见过最好的编程指南了!做一名技术爱好者

从大一入学被调剂到计算机专业,到喜欢上这个专业,再到毕业拿到10多个offer,最终进入理想的大厂工作。回想起来这些年确确实实踩了很多坑。我刚开始学习编程的时候也想一口吃成一个胖子,想速成,但是有时候却是不尽人意。

我个人是一名计算机专业的学生,很多人可能会认为我是在课堂上学到的编程,其实不是这样。

我认为科班出身和非科班出身的学生最大的区别在于科班出身的学生知道去学什么,知道每一门课程是干什么的;还有一些必须完成的作业、小项目,促使他们去做一些实际的编码练习,除此之外,真的全靠自学。

1.我应该选择什么编程语言

刚上大一的时候,我也很想知道应该选择什么编程语言。我问了很多人,网上各种查资料,但所能得到的答案都很片面,多数对这个问题答非所问,总是回答说“某某编程语言难”,“某某编程语言性能好”。其实作为初学者,我们对计算机体系都不了解,就不要过多地去纠结性能,或者难易等因素,原因我等下再说。

如果你有明确的方向,那么很好选择。如果你想做算法、机器学习方向,那么python是最好的选择。如果你想做web开发,java、php等都可以。如果想做一些更底层的工作,那么就可以选c。当然这是建立在你有明确方向的基础上。可是,很多人都没怎么接触过计算机行业,特别是和我一样刚入学就被调剂到计算机专业的人。对这些同学来说,各个编程语言就只是个名字,除了叫法不一样,你根本不知道它们有什么差别。所以索性不要纠结了,我替你选一个吧。

2.学习编程,我需要学习哪些课程?

我要学哪些课程?我为什么要学习如高数、离散数学、线性代数、概率论等课程?

这个问题也是之前困扰了我很久的问题。不过我现在想通了,对于【高数、离散、线性代数、概率论】等课程,很好解释,做算法的同学肯定知道为啥要学习这些课程。机器学习中会大量用到上述提到的课程,所以会比较好理解。对在校生而言,学校开设的很多课程我们不知道为什么要学,我们很疑惑,不知道学它有什么用,这个时候我们就会很纠结,还会产生抵触情绪。这很正常,因为我们学习得不够深入,自然不能理解它们的用处。

如果你在大一的时候就有一个明确的定位,知道自己今后想从事哪方面的工作,课程与课程之间是可以调一下优先级的。不过像大学物理,这种课程确实是对编程没有帮助,但是像我前面所说的,大学教育更注重广度,大物等课程可能就是为了给你普及生活常识吧。

下面先给出一个树形图,从上往下每一个圈都代表了学习过程中遇到的难点,如果你现在看不懂,没关系,我想告诉你的是一种梳理知识的方法:

如上图所示,就是一个项目驱动式学习的例子,我们的目的是为了获取数据,所以选择了爬虫:

推荐大家观看的在线java学习视频,自我感觉讲的挺不错的:

3.学习编程是否需要制定计划?

学习编程是否需要制定计划,该制定什么样的计划呢

到了16年的时候,我做计划做得更加有条理了。下图是16年10月30日的计划,那时候我已经大四了,并且已经找到了工作、签了满意的offer,并且没有什么课,按理说可以放松放松了,不过我还是制定了一些学习计划,并且选择在11月去百度实习。从内容上看,主要是学习英语和计算机专业课,因为大一大二的时候我确实不明白为什么要学习专业课,到了大三下想清楚原因以后,我也就一直在重新学习,因为计算机专业课真的很重要!学好了这些课,能让你在日后的学习工作中轻松不少:

除了大四制定的计划外,大二的时候我也制定过较为详细的学习计划(如下图),把需要学习的内容进行了编号,存入表格,这样才能让你过得有条不紊。当然,很难完全按照计划去执行,不过制定相应的计划能让你清楚地知道自己应该干什么。

4.编程是否需要做笔记和写博客?

我觉得,写不写博客无所谓,因为博客是要写出来给大家看的,可能要保证格式美观、语法也要尽量准确,最好比较有文采,我觉得太麻烦也就一直没写。而笔记是必须要做的,并且记笔记是一个长期的过程。在学习的过程中,我们一直都在追求一种最高效的学习方法,比如,同一个班的同学,他用他的学习方法考上了清华,而你用同样的方法就不行,为什么?因为他的方法对他自己而言是定制化的,可能且大概率不适合你,比如他的笔记你不一定能看懂,因为他可能设计了一套属于自己的符号。而就编程而言,很多同学说善用搜索引擎,是对的,可是搜索引擎搜出来的是别人的答案。你照搬过来,也许可以用,但是你没有记住,这些知识并不属于你,之后你可能还会遇到同样的问题,又要再搜索一遍,可能很难找到之前的那个答案了。但是记笔记就不一样,记笔记是定制化的,对你自己定制,你可以用自己最爽的表达方式来描述一个问题,是自己写给自己看的东西,看了几遍之后就能非常迅速和容易地理解。之后遇到相同的问题可以快速地通过找笔记解决。

举个例子,下图是我记录的一些关于gdb【linux下调试c++的工具】的使用的一些笔记。我只记录了我自己最常用的一些内容,也许你看着很乱,但是我就能很容易看懂,这就是我的定制化。

记笔记的习惯一定要坚持,等过个一年或者两年,这就是你巨大的财富,因为那是只有你才能看懂的东西。我已经记录了4年多、1G多的内容,现在的笔记基本已经形成了体系,可以给大家展示其中的一部分。

一些类目:

5.有什么比较好的编程方法?

6.我需要刷oj么?

7.看书还是看视频?

网上有不少人鄙视看视频学习的同学,我不知道为什么,因为我认为看视频是一个很好的学习方式。不过我们得明白看书和看视频分别有什么优缺点。

看视频入门,看书进阶。

8.多久能学会编程?

其实这个问题是没有答案的,如果只是想做出一个小应用,2个月足矣,而就我个人而言,我认为学习编程不是学习一种编程语言,而是学习一个生态,一个计算机系统,所以无止境。

9.我应该选择什么资料,看什么书?

其实这个问题也是很多编程新手容易困惑的问题。网络上拥有我们一辈子都看不完的教程和资料,所以现在应该不会存在找不着视频教程、找不着书看的问题。而问题就是我们不知道看什么视频、看什么书。从开始学编程到现在,我也买了上百本书,而真正适合自己的好书并不多。而视频教程的问题就更严重了,东看一点、西看一点,知识很难组织成网络。所以学习编程的过程中,我们遇到的最大的问题是:当我们遇到问题的时候,在大量资料面前,我们不知道选择什么资料去学习。即使我们使用项目驱动式学习的方法找到了我们的方向,但是同一个路径下,也有很多资料。前文列举的项目驱动式学习的图中,我们是自上而下的去发现问题,然后再解决问题。如果能有人帮我们组织好学习路径,然后自下而上地去学习,那么效率可能会提高很多。

不过不用担心,我已经尽我所能,将我看过或者我认为好的课程和书本资料给串了串,整理好上传了,所有学习资料均免费,无任何收费课程。

--------------------------------------------------------善知软件实训----------------------------------

THE END
1.成为算法工程师需要学习哪些课程?算法工程师要求很高的数学水平和逻辑思维。需要学习高数,线性代数,离散数学,数据结构和计算机等课程。专业要求:计算机、电子、通信、数学等相关专业;学历要求:本科及其以上的学历,大多数是硕士学历及其以上;语言要求:英语要求是熟练,基本上能阅读国外专业书刊;必须掌握计算机相关知识,熟练使用仿真工具https://zhidao.baidu.com/question/1994330805504728707.html
2.手把手教你,做算法工程师需要哪些数学知识?说了这么多,结论也就很明显了,学算法需要一定数学能力,但不是需要数学家,够用即可。如果你想看从事算法方向的工作,纠结选数学还是选计算机的话,那我建议你还是选计算机吧。 应用数学是给那些不知道以后要干嘛,准备读研了之后再想的人准备的。 需要学哪些数学 https://cloud.tencent.com/developer/article/2083695
3.科研前端十大热门计算机专业方向,需要学哪些课程?选修课程: -移动应用开发:学习为移动平台设计和开发应用程序的技术。 -网络安全与密码学:探讨网络安全的基础知识和加密技术。 -云计算:了解云服务模型、分布式计算和大数据处理。 -人工智能与机器学习:介绍AI的基本概念、算法和应用。 -企业软件系统:学习企业级软件的设计和架构,如ERP、CRM系统。 https://jsjxy.xync.edu.cn/info/1037/15941.htm
4.人工智能基础:五大机器学习经典算法入门课程哔哩哔哩集齐人工智能机器学习经典五大算法,系统地学习带你轻松入门发布者 关注 Momodel平台 授课教师吴超,现任浙江大学长聘副教授、计算社会科学研究中心主任、伦敦帝国理工学院计算机系研究员。 课程概述 评论(14) 常见问题 Q:课程在什么时间更新? A:课程更新频次以页面前端展示为准。购买成功后,课程更新将通过账号动态提示,https://www.bilibili.com/cheese/play/ss10026?search_query=%E6%B1%9F%E5%8D%97%E5%A4%A7%E5%AD%A6%E7%AE%97%E6%B3%95%E8%AF%BE
5.数据分析需要学习哪些课程?数据分析需要学习哪些课程? 1、数学知识 数学知识是数据分析师的基础知识。对于初级数据分析师,了解一些描述统计相关的基础内容,有一定的公式计算能力即可,了解常用统计模型算法则是加分。 对于高级数据分析师,统计模型相关知识是必备能力,线性代数(主要是矩阵计算相关知识)最好也有一定的了解。 而对于数据挖掘工程师,除https://36kr.com/p/1460600365894406
6.智能车,车联网方向发展,大学期间应该具体自学哪些课程and知识有一点要记住,无论你是什么专业,只要选择自动驾驶软件开发方向,你都要按照CS学生的标准要求自己,所以刷题准备面试很重要!在开始刷题之前,基础的算法与数据结构一定要上,另外很多公司爱问并行相关的内容,也一定要记得上一下,这里推荐两门相关课程: https://www.coursera.org/specializations/data-structures-algorithmshttps://maimai.cn/article/detail?fid=1648577318&efid=_Veh36ANj0UOQZwhJuE7ZQ
7.工程师/科学家喜欢使用MATLAB开发产品的7大理由本次课程适合哪些人报名学习? 中小企业从事人工智能、大数据、物联网、电子信息技术、物联网技术、自动控制技术、机电一体化技术、图形图像处理、计算机多媒体、视觉传达设计、教育技术学、计算机科学技术等各行业相关负责人、研究人员、技术人员等。 为什么要开设这个课程? https://www.elecfans.com/d/980665.html
8.张栋伟:老百姓需要学AI课程吗?澎湃号·湃客澎湃新闻不同于李一舟那种199元入门,逐步升级费用的套娃套路,现在AI课程已然明码标价: 有点儿身份的人士,课程3000元左右; 有点儿情怀的人士,基础课免费,进阶课收费。 最卷的则是直接免费,只求名,不求利。 那么,对于老百姓来说,这些课真的有价值吗? 2、AI是“算法”,不是“工具” https://www.thepaper.cn/newsDetail_forward_26518050
9.2022新课标数学课程标准心得体会(精选13篇)“人人学有价值的数学;人人都能获得必需的数学;不同的人在数学上得到不同的发展。 ” 这是新课程标准努力倡导的目标,要求教师要及时了解并尊重学生的个体差异,承认差异;要尊重学生在解决问题过程中所表现出的不同水平。为此,我想教师应该先了解所教学生的情况,根据学生的知识基础、思维水平、学习态度、意志强弱、智https://www.ruiwen.com/xindetihui/5098504.html
10.知乎精选运筹学(最优化理论)如何入门?运筹OR帷幄3 高级课程 多目标优化、随机优化、鲁棒优化、整数规划,混合整数规划,动态规划,元启发式算法、半正定规划等等高级课程这里就无法一一去点评了,如果具备了之前的基础相信去学这些高级课程会轻松一些。 作者·留德华叫兽 链接: https://www.zhihu.com/question/22686770/answer/113176244 https://www.shangyexinzhi.com/article/5050232.html
11.算法工程师要学什么常见问题算法工程师要学什么小老鼠 2024-06-03 18:33 3879浏览 原创 算法工程师必备七大技能:数据结构和算法编程语言数学基础算法设计与分析分布式系统机器学习和深度学习软件工程实践,助力解决计算机科学和工业中的复杂问题。 算法工程师必修技能 算法工程师是计算机科学领域的专业人员,负责设计、分析和实现高效算法来解决计算https://m.php.cn/faq/816502.html
12.小学三年级数学《除法》教案集锦15篇1、重视实践探究,提倡算法的多样化。 《数学课程标准》指出:学习活动不能单纯地依赖模仿和记忆,动手实践、自主探究和合作交流是学生学习的重要方式。本节课的教学设计通过组织学生利用手中的小棒动手摆一摆并进行交流,让学生亲身经历探究的过程,获得口算方法。在说算理的过程中引导学生把过程说完整,培养学生的语言表达能力https://www.fwsir.com/jiaoan/html/jiaoan_20221231090823_2175528.html
13.中职数学高一教学计划(精选11篇)认真学习新课程标准,钻研教材,把握各单元、各节的教学要求和重难点,熟悉教材的特点和编者的意图,订好所教学科的教学计划。计划要体现每单元重难点以及采取的措施,研究解决难点的方法。从而改进自己的教学方法和练习策略。对教材中存在的问题及教学中出现的问题要及时进行记录,及时进行反思,认真反思个人的'教育教学心得。https://www.unjs.com/jiaoxuejihua/202204/5034426.html