聊一聊我的计算机学习经历吧(三)

简介: hey guys ,我是 cxuan,这一篇文章我就要和你聊聊编程如何学习,这一篇文章涉及的内容简直太多了,我将从入门开始,一步一步到如何提高,然后到一些学习的相关问题,还有一些计算机相关的术语等,干货也非常多,准备好了吗?那么我们开始吧。

我太老了,还能编码吗

不,你可以在任何年龄学习编程,并且可能会从事该职业。

我们现在经常会出现 35 岁危机问题,事实上这个问题在各行各业都会出现。上周我家搬家了,和搬家工人聊起来,他已经 40 岁了,还在做搬家工作,要知道这种工作就是体力活,他也很担心没几天就被老板以身体原因开除了。过了 35 岁,身体机能下降是企业衡量用人的最大考虑因素,那么有没有 35 岁不被辞退的现象呢?有,所以就有类似于拿到拼多多和国家电网的 offer,该选哪个的问题。

还有就是,为什么会担心 35 岁危机呢?那是因为你的工作具有可替代性,如果你是一个公司的架构师,公司的核心架构是你搞的,你觉得公司会开除你吗?可能会,因为公司快倒闭了。。。。。。这当然都是意外情况,不可控制。

so,我们担心的 35 岁危机,都是因为我们不想再学了,想摸鱼赚点钱了,但是企业可不这么认为,他们如果不发展就会被替代,那么企业为什么会花大价钱养你呢?这里我并不是说要和企业同流合污,但是你总要知道我们为什么会有 35 岁危机。

一个普遍的神话是,擅长编程的唯一方法是从小就开始学习编码。这是错误的 - 虽然有些人开始早点学习编码(因此可能会有一些先发优势),但大多数人在上大学或以后会开始学习编码。所以什么类似于让孩子赢在起跑线上,只是抓住了一些家长的弱势心理,潜台词就是你的孩子不早点报班,从小就不如其他孩子优秀,而家长们都是心疼孩子的,既然家长们抓住了这个心理,那么培训班能不赚钱?

然而学习是任何年龄的人都可以做的事情 - 不要专注于他人,只专注于自己和个人的进步速度。这篇文章会很有用 https://www.edglossary.org/growth-mindset/

还有一些朋友喜欢问下面这些问题

有什么我首先应该学习的吗

编程的前置条件很少,唯一的先决条件是

  • 你知道如何打字
  • 你拥有一台电脑,并且你的电脑能上网
  • 你知道如何独立搜索答案

OK 就这些,有了上面这几点你就可以直接编程,如果你知道一些数学知识,最多不用超过基础代数;并且你有基本的英语功底,那当然是锦上添花的事情。

如果你想获得大学的正式学位,以上所有这些都是差不多的。大多数大学和学院都希望入学的学生对计算机科学和编程一无所知,并且会从头开始教你(尽管在某些情况下,如果你通过测试或证明有足够的先验技能,则可以跳过一两个入门课程)。如果你是高中或更早的学生,并且想在大学学习计算机科学,那么最好提前开始学习以取得良好的开端。

我必须精通数学吗

不一定,编程和计算机科学是一个广阔的领域,你是否需要精通数学取决于你选择专门研究的学科。

例如,某些编程学科确实需要很强的数学技能。2D 和 3D 戏将频繁使用向量,矩阵和线性代数;数据分析和机器学习利用了统计和微积分中的许多概念;如果你对代数和基本演算有很好的了解,则计算算法的复杂性将变得更加容易。

通常,主题越高级和复杂,就越有可能需要扎实的数学基础。如果你的目标是能够解决这些类型的复杂问题,那么拥有良好的基础将是无价的。

但是,正如计算机科学和编程的许多方面都不需要对数学有深入的了解。你真正*需要知道的唯一事情是如何加,减,乘和除,也许还有一些基本的代数。许多程序员在整个职业生涯中几乎不需要做任何数学运算。

特别是,许多面向产品的角色(例如,Web 开发,移动开发)只需要很少的数学知识。在这些子学科中,最重要的是你编写健壮和可维护的代码的能力,以及找出如何构建对用户有价值的东西的能力。

无论如何,如果你不太擅长数学,那么你绝对可以学习和提高!毕竟,你可能也不是很擅长编程,但是你正在学习编码。

确切地说,CS 学位在数学上的差异会因学校而异。一些学校过分强调涵盖理论,而另一些学校则不再强调两者,而只注重应用。(有些学校同时强调两者)。如果你想了解更多信息,则应直接调查你有兴趣参加的任何学院或大学的学位要求和结构。

总而言之,如果你想成为一名成功的开发人员,则不一定需要精通数学。如果你想成为计算机科学家,你最终将学习大量的数学。如果你想解决更棘手的问题/在某些领域内,那么数学可以是一个很有用的工具。

编程难吗

编程也像大多数技能一样,学习基础知识并应用它们相对容易。但是如果你想成为一名竞争性的保龄球手,你将需要花费数年时间来掌握这项技能,编码也是如此:你将需要花费很多时间来弄清楚为什么即使你已经检查了三遍,这个愚蠢的程序仍然无法运行。。你将需要阅读书籍,坐下来上课,并与人们讨论解决办法。

这就是上手非常容易,但是钻研一个领域,学的越来越深之后会非常难。

初学者在问题和练习上遇到麻烦是正常的吗

我不想给你显而易见的答案。

初学者几次从自行车上摔下来是正常的吗?学习游泳时,初学者沉没几次是正常的吗?对于初学者来说,在学习乐器时遗漏音符或演奏错误的音符是正常的吗?在健身房锻炼时,初学者想要练胸却练的是三头是正常的吗?

绝对没错

失败和煎熬是学习过程中非常重要和自然的部分。每个初学者都会经历失败和煎熬。因此,您不要灰心,而应该拥抱让你煎熬的事情:奋斗是你正在挑战自己的标志。使用它作为指南,可以帮助你弄清楚下一步需要阅读和学习的材料,或者应该问什么问题。

甚至专家在需要学习新东西时也会失败和挣扎(尽管他们往往更善于恢复/利用失败作为帮助他们加快学习速度的一种方式)。

事实上,如果你没有经历煎熬,那么可以表明你肯定在做错事。如果一切都很简单,那就意味着

  1. 你不是在挑战自己
  2. 你不是在强迫自己学习真正的新东西
  3. 你并不会强迫自己通过尝试应用它来真正确保你了解它

这类似于锻炼。如果你在锻炼后不感到身体疲劳,那么你真的得到锻炼了吗?同样,如果你在完成一些编码挑战后没有精神疲倦或精神上的挑战,那么你真的学到了什么吗?

有关学习的问题

我刚刚开始学习语言 X,是否应该开始学习语言 Y

尤其是当你开始学习编程时,最好学习一种语言并坚持使用一段时间,即使特定的问题使用了你尚不知道的特定语言。一旦了解了基础知识(流控制,错误处理,I / O,算法的实现,数据结构等),你就可以开始考虑使用不同的语言了。

我是否应该一次学习一种以上的编程语言

除非你有充分的理由,否则大多数初学者应该只使用一种语言至少几个月。由于以下几个原因,这是一种更有效的学习方法:

  1. 大多数语言的基础知识都非常相似。例如,大多数语言以几乎相同的方式处理 if 语句。花时间学习两种基本的语法不一定是一种好的习惯,并且可能会使初学者感到困惑。
  2. 学习如何编程的最困难部分不是学习编程语言的工作方式:而是学习如何解决代码问题。因此,你要想最大化地利用时间来练习代码解决问题,而不是花费更多的时间来学习特定于语言的细节/必须浪费脑力来跟踪语言之间的差异。
  3. 一旦你精通第一门语言并具有很强的解决问题的能力,选择第二种语言就容易得多。

有一些例外情况,你可以直接学习第一语言和第二语言

  1. 第二种语言不是编程语言。例如,最好与编程语言(例如 C,C ++,C#,Java,JavaScript,Python,Ruby)一起学习标记语言(例如 HTML 或 CSS )。
  2. 对于你感兴趣的各种项目都是必要的。保持自己继续学习的动力很重要,如果那意味着一次学习两种编程语言,那就这样吧。
  3. 如果你有专门的老师或指导者来指导你。称职的老师和导师可以极大地简化你的学习过程,这将足以弥补效率低下的问题。

如果你不认为自己是初学者,并且对使用编程语言来完成中等复杂的项目感到满意,那么尝试一次学习多种语言当然是不错的选择。在这一点上,你应该对编程有足够的了解,以便以更快的速度开始学习新语言,并且应该对自己一次学习多少有一个很好的认识。

如何获得/保持学习编程的动力

这个问题最好看看其他人是怎样做的

如何使用 X

我如何开始制作视频游戏

现代的视频游戏是使用游戏引擎制作的 https://en.wikipedia.org/wiki/Game_engine:比如处理诸如图形,声音,物理和网络等复杂任务的软件库 https://www.reddit.com/r/gamedev/wiki/engine_faq,但是强烈建议初学者使用以下引擎,因为它们可以自由开发,并且具有学习的最佳文档:

  • Unity(C#):适用于 2D 和 3D 移动,桌面,浏览器/在线和控制台游戏
  • Construct2(JavaScript):适用于 2D 移动版,台式机,浏览器/在线
  • Pygame(Python):2D 桌面游戏的引擎
  • LÖVE(LUA):适用于 2D 桌面游戏

永远记住你的目标是开发游戏,而不是开发游戏引擎。

引擎可以帮助你开始使用游戏的图形和用户控件,但是你仍然需要彻底学习编程语言来编写游戏逻辑 ,因此,请选择我上面给你推荐的图书或者在线资源。

最重要的是:从简单开始。您可能会想直接潜入水中并立即创建自己的梦想游戏,但请记住,爬山的唯一方法是采取许多小步骤 https://www.reddit.com/r/gamedev/comments/stg2o/how_i_went_from_knowing_nothing_about_programming/ ,以下是按难度升序列出的简单练习游戏的列表:

相关文章
|
7月前
|
存储 网络协议 Linux
嵌入式技术知识体系问答(找工作笔试面试可能有用)
嵌入式技术知识体系问答(找工作笔试面试可能有用)
118 0
|
7月前
|
网络协议 NoSQL Java
终于有阿里大牛把困扰我多年的计算机组成原理:网络通信讲明白了
终于有阿里大牛把困扰我多年的计算机组成原理:网络通信讲明白了,今天就把这块儿的视频内容分享给大家学习,总共有70P,希望大家能够喜欢,下面我就给大家介绍包含的主要内容是什么?
|
设计模式 存储 算法
编程进阶之路,虽无捷径但有长短
专业的工作能力和经验积累包括多个方方面面,技术、业务、软能力,并且这种沉淀是一个持久的过程。
111 0
编程进阶之路,虽无捷径但有长短
|
人工智能 算法 安全
【C++怎么入门】C++是什么及发展史 | 重要性(工作领域、校招领域) | 怎么学
【C++怎么入门】C++是什么及发展史 | 重要性(工作领域、校招领域) | 怎么学
135 0
【C++怎么入门】C++是什么及发展史 | 重要性(工作领域、校招领域) | 怎么学
|
算法 前端开发 JavaScript
聊一聊我的计算机学习经历吧(一)
hey guys ,我是 cxuan,这一篇文章我就要和你聊聊编程如何学习,这一篇文章涉及的内容简直太多了,我将从入门开始,一步一步到如何提高,然后到一些学习的相关问题,还有一些计算机相关的术语等,干货也非常多,准备好了吗?那么我们开始吧。
聊一聊我的计算机学习经历吧(一)
|
IDE 前端开发 JavaScript
聊一聊我的计算机学习经历吧(四)
hey guys ,我是 cxuan,这一篇文章我就要和你聊聊编程如何学习,这一篇文章涉及的内容简直太多了,我将从入门开始,一步一步到如何提高,然后到一些学习的相关问题,还有一些计算机相关的术语等,干货也非常多,准备好了吗?那么我们开始吧。
|
算法 前端开发 Java
聊一聊我的计算机学习经历吧(二)
hey guys ,我是 cxuan,这一篇文章我就要和你聊聊编程如何学习,这一篇文章涉及的内容简直太多了,我将从入门开始,一步一步到如何提高,然后到一些学习的相关问题,还有一些计算机相关的术语等,干货也非常多,准备好了吗?那么我们开始吧。
|
消息中间件 缓存 中间件
来自一个阿里工作的朋友经验之谈!
第一点:就是阿里的技术。
153 0
|
开发者 Cloud Native 流计算
为了让网速更快,阿里工程师与顶级数学家有一个大胆猜想 | 开发者必读(049期)
最炫的技术新知、最热门的大咖公开课、最有趣的开发者活动、最实用的工具干货,就在《开发者必读》!
6853 0