我太老了,还能编码吗
不,你可以在任何年龄学习编程,并且可能会从事该职业。
我们现在经常会出现 35 岁危机问题,事实上这个问题在各行各业都会出现。上周我家搬家了,和搬家工人聊起来,他已经 40 岁了,还在做搬家工作,要知道这种工作就是体力活,他也很担心没几天就被老板以身体原因开除了。过了 35 岁,身体机能下降是企业衡量用人的最大考虑因素,那么有没有 35 岁不被辞退的现象呢?有,所以就有类似于拿到拼多多和国家电网的 offer,该选哪个的问题。
还有就是,为什么会担心 35 岁危机呢?那是因为你的工作具有可替代性,如果你是一个公司的架构师,公司的核心架构是你搞的,你觉得公司会开除你吗?可能会,因为公司快倒闭了。。。。。。这当然都是意外情况,不可控制。
so,我们担心的 35 岁危机,都是因为我们不想再学了,想摸鱼赚点钱了,但是企业可不这么认为,他们如果不发展就会被替代,那么企业为什么会花大价钱养你呢?这里我并不是说要和企业同流合污,但是你总要知道我们为什么会有 35 岁危机。
一个普遍的神话是,擅长编程的唯一方法是从小就开始学习编码。这是错误的 - 虽然有些人开始早点学习编码(因此可能会有一些先发优势),但大多数人在上大学或以后会开始学习编码。所以什么类似于让孩子赢在起跑线上,只是抓住了一些家长的弱势心理,潜台词就是你的孩子不早点报班,从小就不如其他孩子优秀,而家长们都是心疼孩子的,既然家长们抓住了这个心理,那么培训班能不赚钱?
然而学习是任何年龄的人都可以做的事情 - 不要专注于他人,只专注于自己和个人的进步速度。这篇文章会很有用 https://www.edglossary.org/growth-mindset/
还有一些朋友喜欢问下面这些问题
有什么我首先应该学习的吗
编程的前置条件很少,唯一的先决条件是
- 你知道如何打字
- 你拥有一台电脑,并且你的电脑能上网
- 你知道如何独立搜索答案
OK 就这些,有了上面这几点你就可以直接编程,如果你知道一些数学知识,最多不用超过基础代数;并且你有基本的英语功底,那当然是锦上添花的事情。
如果你想获得大学的正式学位,以上所有这些都是差不多的。大多数大学和学院都希望入学的学生对计算机科学和编程一无所知,并且会从头开始教你(尽管在某些情况下,如果你通过测试或证明有足够的先验技能,则可以跳过一两个入门课程)。如果你是高中或更早的学生,并且想在大学学习计算机科学,那么最好提前开始学习以取得良好的开端。
我必须精通数学吗
不一定,编程和计算机科学是一个广阔的领域,你是否需要精通数学取决于你选择专门研究的学科。
例如,某些编程学科确实需要很强的数学技能。2D 和 3D 戏将频繁使用向量,矩阵和线性代数;数据分析和机器学习利用了统计和微积分中的许多概念;如果你对代数和基本演算有很好的了解,则计算算法的复杂性将变得更加容易。
通常,主题越高级和复杂,就越有可能需要扎实的数学基础。如果你的目标是能够解决这些类型的复杂问题,那么拥有良好的基础将是无价的。
但是,正如计算机科学和编程的许多方面都不需要对数学有深入的了解。你真正*需要知道的唯一事情是如何加,减,乘和除,也许还有一些基本的代数。许多程序员在整个职业生涯中几乎不需要做任何数学运算。
特别是,许多面向产品的角色(例如,Web 开发,移动开发)只需要很少的数学知识。在这些子学科中,最重要的是你编写健壮和可维护的代码的能力,以及找出如何构建对用户有价值的东西的能力。
无论如何,如果你不太擅长数学,那么你绝对可以学习和提高!毕竟,你可能也不是很擅长编程,但是你正在学习编码。
确切地说,CS 学位在数学上的差异会因学校而异。一些学校过分强调涵盖理论,而另一些学校则不再强调两者,而只注重应用。(有些学校同时强调两者)。如果你想了解更多信息,则应直接调查你有兴趣参加的任何学院或大学的学位要求和结构。
总而言之,如果你想成为一名成功的开发人员,则不一定需要精通数学。如果你想成为计算机科学家,你最终将学习大量的数学。如果你想解决更棘手的问题/在某些领域内,那么数学可以是一个很有用的工具。
编程难吗
编程也像大多数技能一样,学习基础知识并应用它们相对容易。但是如果你想成为一名竞争性的保龄球手,你将需要花费数年时间来掌握这项技能,编码也是如此:你将需要花费很多时间来弄清楚为什么即使你已经检查了三遍,这个愚蠢的程序仍然无法运行。。你将需要阅读书籍,坐下来上课,并与人们讨论解决办法。
这就是上手非常容易,但是钻研一个领域,学的越来越深之后会非常难。
初学者在问题和练习上遇到麻烦是正常的吗
我不想给你显而易见的答案。
初学者几次从自行车上摔下来是正常的吗?学习游泳时,初学者沉没几次是正常的吗?对于初学者来说,在学习乐器时遗漏音符或演奏错误的音符是正常的吗?在健身房锻炼时,初学者想要练胸却练的是三头是正常的吗?
绝对没错!
失败和煎熬是学习过程中非常重要和自然的部分。每个初学者都会经历失败和煎熬。因此,您不要灰心,而应该拥抱让你煎熬的事情:奋斗是你正在挑战自己的标志。使用它作为指南,可以帮助你弄清楚下一步需要阅读和学习的材料,或者应该问什么问题。
甚至专家在需要学习新东西时也会失败和挣扎(尽管他们往往更善于恢复/利用失败作为帮助他们加快学习速度的一种方式)。
事实上,如果你没有经历煎熬,那么可以表明你肯定在做错事。如果一切都很简单,那就意味着
- 你不是在挑战自己
- 你不是在强迫自己学习真正的新东西
- 你并不会强迫自己通过尝试应用它来真正确保你了解它
这类似于锻炼。如果你在锻炼后不感到身体疲劳,那么你真的得到锻炼了吗?同样,如果你在完成一些编码挑战后没有精神疲倦或精神上的挑战,那么你真的学到了什么吗?
有关学习的问题
我刚刚开始学习语言 X,是否应该开始学习语言 Y
尤其是当你开始学习编程时,最好学习一种语言并坚持使用一段时间,即使特定的问题使用了你尚不知道的特定语言。一旦了解了基础知识(流控制,错误处理,I / O,算法的实现,数据结构等),你就可以开始考虑使用不同的语言了。
我是否应该一次学习一种以上的编程语言
除非你有充分的理由,否则大多数初学者应该只使用一种语言至少几个月。由于以下几个原因,这是一种更有效的学习方法:
- 大多数语言的基础知识都非常相似。例如,大多数语言以几乎相同的方式处理 if 语句。花时间学习两种基本的语法不一定是一种好的习惯,并且可能会使初学者感到困惑。
- 学习如何编程的最困难部分不是学习编程语言的工作方式:而是学习如何解决代码问题。因此,你要想最大化地利用时间来练习代码解决问题,而不是花费更多的时间来学习特定于语言的细节/必须浪费脑力来跟踪语言之间的差异。
- 一旦你精通第一门语言并具有很强的解决问题的能力,选择第二种语言就容易得多。
有一些例外情况,你可以直接学习第一语言和第二语言
- 第二种语言不是编程语言。例如,最好与编程语言(例如 C,C ++,C#,Java,JavaScript,Python,Ruby)一起学习标记语言(例如 HTML 或 CSS )。
- 对于你感兴趣的各种项目都是必要的。保持自己继续学习的动力很重要,如果那意味着一次学习两种编程语言,那就这样吧。
- 如果你有专门的老师或指导者来指导你。称职的老师和导师可以极大地简化你的学习过程,这将足以弥补效率低下的问题。
如果你不认为自己是初学者,并且对使用编程语言来完成中等复杂的项目感到满意,那么尝试一次学习多种语言当然是不错的选择。在这一点上,你应该对编程有足够的了解,以便以更快的速度开始学习新语言,并且应该对自己一次学习多少有一个很好的认识。
如何获得/保持学习编程的动力
这个问题最好看看其他人是怎样做的
- http://redd.it/uzt31
- http://redd.it/1c1bnj
- http://redd.it/2j6b7i
- http://redd.it/1s347g
- http://redd.it/javfv
- http://redd.it/gy0xa
- http://redd.it/1xvdte
- http://redd.it/1hh76b
如何使用 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/ ,以下是按难度升序列出的简单练习游戏的列表:
- 猜数字游戏 https://www.funbrain.com/games/guess-the-number
- 二十一点 https://en.wikipedia.org/wiki/Blackjack 或者井字游戏https://en.wikipedia.org/wiki/Tic-tac-toe
- 猎杀乌贼 http://www.ifiction.org/games/playz.php?cat=&game=249&mode=html 规则 https://en.wikipedia.org/wiki/Hunt_the_Wumpus
- 选择自己选择的冒险或 Zork https://en.wikipedia.org/wiki/Zork 克隆
- Pong,Tetris或 Minsweeper 克隆
- 水平/垂直滚动空间射击游戏
- 简单的《毁灭战士》,《马里奥》或《塞尔达传说》