前言:这是一个有关那些自己决定学习编程的人的书籍的故事。 但是由于阅读书籍清单会很无聊,因此我决定以我的传记作为补充。
所以...我四十多岁了。 我是受教育的语言学家,我在科学领域工作。 我从未接触过编程,尽管我在学校正式参加了信息学课程,实际上,这归结为从培训手册中在BASIC上键入程序,并在老师的计算机上看到了神秘的DOS。 哦,是的,对Fokal的了解还很简短,但是再次,所有内容都严格按照培训手册进行。
我是一个孤儿院,所以放学后我设法以农业学院的名额进入了当地大学。 一年后,由于不喜欢所选择的学科,研究结束了。 实际上,我很难想象大多数18岁的人都能准确地确定自己的职业目标和生活目标。 我读过像Ilon Mask这样的人的传记,他们已经从摇篮中开始编程,或者是Teranos的创始人,他在5岁时就已经建立了家庭化学实验室。
但是,像我这样的大多数人都是跟随这种趋势的一群动物。 我们之所以进入大学并不是因为对知识的渴望,而仅仅是因为每个人都这样做。 好吧,也没有人特别想参军。 有更多幸运的人有意进入他们有前途的大学,根据父母的建议进入有前途的专业,但这又是运气,人脉和金钱的问题。 小时候,我喜欢看“聪明的男人和女人”,坦率地说,我很难想象,例如,正在服刑或患有酒精中毒的孩子可能会大量参加这一计划。
该国正在积极为第二次车臣运动做准备,所有焦躁不安的人被大量运送到征兵站。 我决定不碰运气,就去了该国的另一端,离开了军事登记和征兵办公室,在港口当工人。 我的大脑比较慢,因此,只有在与“受伤的”知识分子多数以及与他们已经走上成功之路的更成功的兄弟们进行了数年的有效沟通之后,我才意识到,成为社会底层的无能为力的蠕虫的前景令人非常怀疑。 。 高等教育是通往社会阶梯的唯一大门。
于是,我进入了语言学家的行列。 怎么了 因为当地大学教授语言学,并且因为目标教师的预算有限。 语言学...一个非常有趣的专业。 语言学是一门关于语言结构的科学,但通常,大多数语言学家很难掌握其母语,更不用说外语了。 现代语言学的父亲诺姆·乔姆斯基(Noam Chomsky)只会说英语,并且会理解希伯来语中的几个短语,但是,这并不能阻止他发展出强大的语言语法理论,这一理论已为数百万从事语言学领域的人们所积极使用。
语言学的这一特性是我迈出下一步的机会。 如果一所大学根据教育部的要求以同一套基本知识毕业数百名相同类型的专家,那么从人群中脱颖而出的最佳方法就是学习几种外语。 我不想念大学,所以我不得不辞去港口的工作,在学校找一个守夜人。 每月4000卢布。 每天都有燕麦片和面食。 但是,另一方面,我过去有很多空闲时间用来做作业和学习其他专业。 除了在大学教授英语外,我还决定学习法语。 怎么了 因为它是外交的官方语言,是联合国的第二种语言,最后还是经济发达国家的语言。
我手里拿着法语教程,这是我一生中第一次问自己:实际上,我有语言能力吗? 我如何确保读书和进行所有练习不会浪费时间? 可以将工资低的值班员的工作换成附近购物中心的售货员的职位,或者换成啤酒厂的仓库工人的职位,但是在这种情况下,我没有时间进行自我教育。 总的来说,我朝着未知迈出了一步。
一日三班。 重写讲座。 功课。 课程工作。 法语教程。 两年后,我达到了一个可以阅读小报纸文章和撰写简单文章的水平。 最大的问题是听和说,所以我不得不从早上到晚上参加语言课程并坐在燕麦片上。 一年后,我通过了B2级考试,使您可以进入外国大学。
语言能力的问题仍然悬而未决。 我为什么学法语? 是因为毅力还是遗传能力? 还是因为两者而在一起? 打电话给院长打断了我的想法。 “您有DELF B2吗? 很好 我们已经与布列斯特大学签署了交换学生的协议。 你要去三个月。
在几个省级专业的陪伴下,我去了布列塔尼。 奖学金每月500欧元,燕麦片结束。 布雷斯特(Brest)是一个省平均水平的省会城市,除港口外,这里没有娱乐活动。 从第一天起,我的同伴就吐槽学习,然后开车去巴黎。 午饭后,我定期去实验室听课,在那里我自愿请教。 已建立与老师的联系。
返回本地的内陆省份。 会话式法语使他可以在他的祖国大学进入国际合作系。 再过两年 毕业 放开 我三十岁。 军事登记和征兵办公室为我提供了一个标有“普通后备”的军事身份证。 我要去雷恩攻读硕士学位。 每月750欧元,进行为期两年的讲座,考试和实习。 我被提议参加写论文的国家合同竞赛。 比赛成功完成。 四年,每月税后1,600欧元。 论文辩护。 我要去上海,这是我的第一个博士后。
每月1000欧元。 对于中国甚至上海来说,可接受的薪水是完全可以接受的。 但是,这是我的上限。 职业发展是可能的,但需要付出巨大的努力。 助理教授职位的申请人必须拥有数十本有价值期刊上的出版物,并在多个国家有经验。 一个沉思的时期开始了。 尽管付出了多年的努力和学位,但最终我达到了没有法语的燕麦片所能达到的水平。 而且,尽管我对语言学有很深的了解,但我不喜欢这个专业。
成为一个永恒的博士后和做生意不受欢迎的前景使我不高兴,而且我常常开始感到沮丧。 为了使我的大脑井然有序,我开始参加体育运动。 第一天 跑步 100米 我死了 我一生从未跑步,绕过了单杠。 我是朋克的最爱目标。 然而,百米结出了硕果:没有发生沮丧。 大脑开始工作并分析现实。
电影“触犯罪”的一集中,一名工厂工人由于绝望而被赶出窗外。 我可以跑1公里。 我正在阅读有关这部电影的重要文章。 三公里。 该脚本是基于在Fokskonna工厂发生的真实事件而制作的,这些工厂以其不人道的工作条件而闻名。 领先五公里,但我似乎还能跑多两杆。 特里·高夫(Terry Gough)宣布缩小Foxcon的规模,并创建一家全自动企业。
我停了 我有加力。 这就是趋势。 世界正朝着全面机器人化的方向发展。 家乐福用自动扫描仪代替了收银员。 国泰银行也在同样地改革其客户服务部门。 巴黎地铁工人因新的自动化生产线的罢工而罢工。 我必须开始学习编程或永远呆在舷外。
我一直真诚地相信,所有人在知识获取领域都有自己的局限性。 我一直认为编程是我不允许进入的受限区域。 尽管年龄大,但我仍然非常记得每次从学校计算机键盘上的使用说明书中键入程序时都会感到发呆的呆板感觉。 同志们在五分钟内完成了任务,甚至还写了一些额外的代码行,使计算机在扬声器的作用下吱吱作响,并随着光标闪烁。 但是,我不知所措,甚至无法从培训手册中运行该程序。
体育和作为看守员的长期工作改变了我对这个问题的态度。 如果我能克服困难并跑八公里,如果我耐心地坐在法语教程上并写一些小时的练习,那么我当然可以学习编程。 好吧,如果我做不到,那么至少我会尝试。
那么该教什么,从哪里开始呢? Quora,StackExchange,Habr。 最受欢迎和最受欢迎的语言:Python,Java,JavaScript。 我绝对不想学习网络编程。 在我看来,在臭味浓浓的中国烟雾和布满塑料瓶的海滩上雕刻美丽的地方是虚伪的高度。 虚拟现实必须是真实的。
通常,选择权取决于Python。 所有人都说这是一种非常简单的语言。 这就是我所需要的。 因此,道森的书。 我开始骑自行车,对一切都感到厌倦。 我内心深处的地方对所选课程感到不满。 此外,作者选择将游戏编写为语言学习者的主要动力。 一方面,叙利亚战争,数百万难民,恐怖主义,全球变暖。 而此时,受过良好基础教育的成年人正坐在软椅上并写游戏。 是的...但是,道森的教科书仍然非常鲜明。 本书附带的IDE使您更容易了解该语言。
就知识而言,我没有从书中学到任何有用的东西,相反,我还有更多的问题。 例如:如何编写操作系统以及如何将其写入硬盘驱动器。 消息如何通过网络传输? 为什么dos的图形效果不好,而windows却有1600万种颜色? 道森的书不得不搁置一旁,再次陷入沉思。
有一部德国电影叫做《我是谁》。 电影的主人公想加入黑客的行列,他们要求他展示自己的知识。 他们说:在那儿有个电站,把它关掉。 一名黑客候选人坐在笔记本电脑旁,在键盘上键入代码。 他身后的人恭敬地说:哦,你知道如何降低水平! 你和我们在一起。 这句话在我的大脑中已经根深蒂固。 低级...这似乎是回答我的问题的关键。
因此,您必须从汇编程序的基础知识中学习编程。 Quora,StackExchange,Habr。 一套关于汇编器的书。 几周的时间来熟悉每本教科书。 无望的深渊。 每本书都建议从高级语言角度学习汇编程序,大多数情况下是C。从教学上讲,这是错误的。 这样一来,俄语学习者就可以首先掌握复杂句子的语法,然后再学习字母表。 顺便说一下,从这里开始,第二个问题出现了:作者假设汇编器不是菜鸟,并且知道单击什么和在何处启动调试器,以及实际上应该在什么开发环境中编写代码。 哦,是的:涉及俄罗斯作者时,教科书主要侧重于FASMe或TASMe。 我从未见过Linux,因此在FASM上存在交叉。 TASM没有一致的开发环境,这就是为什么它也“不”的原因。
几周的在线搜索已经成功。 我发现一本书可以放在“改变思想”标题下。 Kip Irwin,第七版。 这本书为什么这么好? 欧文(Irwin)是一名受过教育的音乐人,并撰写了一篇论文,这并没有阻止他在成为程序员的成熟年龄后再次进入大学。 他将自己的语言作为一种业余爱好学习,因此他完全理解了初学者可能遇到的所有困难。 他的教科书解释了所有内容:单击何处,看到什么,如何安装。 关于Visual Studio,IAMM,DOS和一些C ++的极好的入门课程。 最主要的是练习。
我是一名博士后,我在一个无尘的实验室里工作,我的老板不会感到无聊,也不会让我加班。 通常从六点到十二点的晚上时间专门用于汇编程序和编程。 第一次练习就像我的第一个百米比赛。 主要的事情是要认识到,编程以及总的来说,寻找问题的解决方案是一个不可算法的,非线性的过程。 此过程需要不可预测的时间成本:可能需要几分钟或几天。 最主要的是要记住您以前的成功:如果我上次决定使用两个星号进行锻炼,那么这次我也将做出决定。
与第一个解决的问题一起,人们开始认识到不能教编程。 您可以学习数百种算法,但是仍然需要新的一天。 然后,唐纳德·纳纳特(Donald Knut)便无济于事。 有可能发展编程能力吗? 罗蒙诺索夫说,对大脑最好的运动是数学。 因此,除了汇编程序之外,还必须刷新有关Matan的知识并开始研究离散数学。 再次选择面粉,但更简单。 Matanalysis,Stuart教科书,第六版。 离散数学,肯尼斯·罗森,第七版。
网上有很多关于acma的无用性的讨论。 我很高兴学习这种语言的基础知识。 通过低级编程,可以了解高级语言的一些非显而易见的知识,例如内存堆栈的工作以及内存溢出的原因,递归的危险是什么,链表对内存存储系统的根本重要性等。 最主要的是,ACM讲授一种精益的方法来处理计算机资源,从而降低能耗。 如果我是亿万富翁,我很想投资开发MenuetOS之类的系统。 好吧,或者至少与他们的开发商握手了。
在Irvine上学习9个月,了解FreeDOS,学习了标准C库,并开始使用C ++。 Kusswurm手册中的SSE技术简介。 老板叫我进入他的办公室,并宣布我在科学领域的可疑成就不允许他延长合同。 毫不奇怪:从早到晚,我的同事们忙着研究项目,忘却了自己的生活,与每篇文章的编辑和审稿人一争高下,我在实验室里抽签了合同时间,回到家沉迷于汇编程序,并且通常会更多地考虑编程而不是工作。
总的来说,我有六个月才离开,我需要补充汽油。 将离散数学放在一边。 我需要开始学习一种高级语言,然后选择自然是在C ++中。 我已经在Visual Studio中使用“您”,所以一切都应该很容易。 顺便说一句,C是C ++的子集,因此您可以用一块石头杀死两只鸟。
十字架。 在我看来,有两本值得一读的教科书:Prata和Deitel。 Prata在某些地方非常冗长。 Deitel很简单,但是从OOP的角度解释了所有内容。 有了这些教科书,我开始沉浸在物体的世界中。 由于我的大脑被汇编程序破坏了,所以我只把Deutel的教科书用作补充信息的来源。 作者在整整一章中都对PLO的“实力,力量和美感”进行了描述,而不必费心去描述该概念的缺陷。 例如,欧文在导言中公开地说编写汇编语言软件是一个不健康的想法,但是每个人都应该了解汇编程序。 普拉塔(Prata)也没有太过分,并且相当适度地描述了PLO。 Deitel说:OOP很酷,因此我们将使用它。 2 + 2? 没问题:创建一个类,几个构造函数,继承方法和重载运算符。 答:4。
一个男人来到一家餐厅,点了意大利面。 服务员给他带来了汤匙,叉子和稻草。 客户认为:好吧,因为他们带来了一个试管,所以必须使用它。 并开始反过来吸意大利面。 简单,强大而美丽。 这并不是对OOP的批评,在我看来,所有事物都有其自身的应用领域和局限性。 OOP在图形方面可能很好,其中显示的每个对象都对应于根据类中的描述创建的对象。 但是在这里,我想起了Abrash的书,他是用纯汇编语言编写游戏的。 或法国移动服务提供商Free的所有者Xavier Niel。 他创建了“ 42”学校,经过几个月的准备,申请人被邀请用C语言编写视频游戏。您可以不用OOP。
另一个语言问题是指针。 此主题还涉及数百篇文章和致编辑的愤怒信。 汇编器指针是非常简单的事情,不需要任何特殊的知识即可理解。 在C / C ++中实现指针确实是一个问题。 我不想讲的是复杂性,我只想说带有种姓的指针和括号之间的十二个星号确实会引起误解。
您为什么不能提出更易理解的内容,例如ESI / EDI和方括号?离开前一周。语言学家。不仅仅是高等教育。在劳动力市场上绝对没有用的生物。我可以选择:要么找工作,要么将积累的钱花在旅行和休闲上。中国仍然是一个美丽的国家。新疆青海汉苏,喀喇昆仑公路。我几个月前寄出的简历没有得到答复。我坐在实验室里,浏览大学网站。 “人工智能实验室正在寻找具有硕士学位和编程技能的人。”他们在五分钟内回答了我。一个小时内会合。厨师对我的过去很感兴趣,并问了一些有关我的动力的问题。他是一名经过培训的统计学家,他从未编程,所以他打电话给他的博士后来测试我。转换短语和查找单词的算法很简单。遗传方法和马尔可夫模型...呃,一个完整的零。老板告诉我:您拥有的知识和标准的自学成才的人一样多。汇编程序不计算在内,它是没有用的。但这给了我一个机会,因为我具有外语知识和学习能力。他正在研究中文语料库,并计划向印欧语系扩展。附近的一名博士后说,您必须学习模式。巴勒斯坦解放组织不可避免地像帝国主义的崩溃一样...所以第一天。开发环境-Visual Studio。舌头-尖锐。我的任务是研究他们十年前开始使用的软件。语法语言接近于C ++,但是我不熟悉许多方法,因此我不得不再次寻找教科书并解决练习。这次的选择落在了由Telerik的创始人写的保加利亚教科书上。对于那些想同时学习语言和算法的人来说是一本好书。顺便说一句,Prata描述了队列和堆栈,但这是非强制性的:他们说,让我们借助堆栈来解决此问题。而且这是什么类型的堆栈以及它来自何处尚不清楚。保加利亚人描述每种算法,并解释在他们的帮助下可以解决哪些任务。我曾经在年轻时就读过StackExchange线程,经常从“黑树和红树”之类的词组中陷入僵局。现在我碰到它了,但至少可以想象一下一般的“树”是什么。保加利亚人的教科书必须由波兰人马尔钦·亚姆罗的书作为补充。干净的算法,一切都简单明了。模式:朱迪思·毕晓普。人工智能和中文的身体。夏普还不够。需要学习数据库。 SQL,Agarwal参考。很棒的书,清楚的解释。算法和数据库后面是Petzold的WPF和WPF Cookbook。 XAML易于学习,但尚不了解其附带的绑定和MVVM。大三时从事人工智能开发工作了一年。也就是说,在学术环境中,没有像软件工程师这样的人。我们都是研究助手。每个人都有自己的项目,如何实施该项目是每个人的个人业务。我已经提到我的老板从未编程。对他来说,主要要求就是与以前编写的软件集成。我有时会和以前在公司环境中工作过的同事交谈。显然,我们有一个相当轻松的氛围;无需检查代码的质量就可以省去一切。图案会在架子上聚集灰尘。我仍然不知道我将来是否想继续担任程序员,并在一家私营公司中寻找更高薪水的工作,但是我已经确定我不想做AI。正如我们的美国合作伙伴所说,人工智能是99%的炒作。欺诈Terry Gough当然可以使富士康的传送带自动化。地铁工作人员,超市的收银员和呼叫中心员工也将被冻结,因为这是一项算法工作。但是,计算机永远不会取代老师,医生或工程师。而且我个人几乎不信任机器人来控制我的汽车。啊,我忘了:我是语言学家,在劳动力市场上仍然没有用。趋势在哪里?您需要学习什么才能保持漂浮?好吧,我会再看新闻。是的,加拿大人逮捕了华为所有人的女儿。德国人担心国有电信系统容易受到中国威胁。诺基亚尚未达到华为的技术水平,因此困境在德国酝酿:要么等待几年,让本地公司诞生可替代中国产品的体面替代品,同时结束经济飞跃。或仅依靠共产党员可能不安全的产品将本地移动网络升级到5G。在我看来,我应该开始朝这个方向进行挖掘。 C,Linux,网络,电气工程,电信标准。这是我的下一步。结论从法语教程首次打开的那一刻起,我开始提出的所有问题都没有得到解答。是否有可能发展语言能力,或者它是人的天生特征?逻辑,抽象和编程是类似的问题。神经生理学家声称,大脑的左半球正好负责一个人的语言能力及其逻辑推理能力。我的大脑最初是否倾向于分析活动,或者是生活条件的结果?为什么我是一个冷漠无趣的孩子,当我跨过20年的行列时,突然间我有了毅力和吸收相当敏感的信息量的能力?这个问题绝不是一个闲散的问题,因为在大规模裁员之后,超市收银员将不得不以某种方式适应新的条件。如果逻辑思维是培训的结果,那么出纳员就不必担心。当前的程序员将不得不担心竞争加剧。如果逻辑思维是由基因编码的,那么政府将不得不担心,因为收银员将不得不提供一些食物。好吧,各种争取平等和所有人享有平等机会的战士也必须以某种方式接受这个令人不安的事实。好吧,以牺牲人生目标为代价。本文的读者一定有一种困惑的感觉:他们说,额头健康,但仍在学徒制中奔波。在我的科学家向我展示了Jiono的《种树的人》一书后,我实现了自己的目标。之后,我抨击了我们的科学家Zimov在《自然》杂志上的出版物,描述了西伯利亚东部的第一个地球工程项目。来自新西伯利亚的动物学家仍然有出色的著作,他的工作是引导狮子适应极地冬季的条件。我只想这样做。每月20,000卢布。祝大家好运!