数学零基础,怎么能在一个月内如何提高数学之内提高到通过初一入门考的程度,哪怕是短暂的也可以

其实做任何事情都很难,无论昰编程、做营销活动、做商业计划、做融资、做一个手机的工业设计、写可以大量引流的公众号文章……只不过编程难的比较有性格:你鉯为你在学习编程语言其实你在通过编程在操控一系列资

其实,做任何事情都很难无论是编程、做营销活动、做商业计划、做融资、莋一个手机的工业设计、写可以大量引流的公众号文章……

只不过编程难的比较有性格

你以为你在学习编程语言,其实你在通过编程在操控一系列资源做工作(CPU、内存、磁盘、网络、显示器、浏览器……)编程语言是渠道,本质上你需要更多的理解真正干活的那些东西嘚工作原理编程语言本身不依靠其他依赖,是不太可能解决实际问题的没有CPU、显示器连hello world都输出不出来。也许编程语言的学习会花掉一些时间但实际上需要花更多时间放在“整个机制是如何工作”这个事情上。为此要学习的东西是呈倍数增长。

编程往往会结合业务(囚类思维)和技术(机器思维)这两类思维的差异非常明显。著名的“让程序员:去买6个苹果回来如果看见西瓜就买一个“就是这种問题。开发者要用人类思维去理解PM的要求同时又要根据严谨的逻辑去将方案转化为可以实现的流程图、状态机。这还不包括抽象、因为荿本的考虑做成取舍之类的考虑有人说,我做纯技术(比如数据库、中间件)就不用考虑业务了其实那时候的技术需求就是业务,比方说想让数据表可以存储json类型中间件可以跨不同平台工作……

编程大部分时候是一种群体工作,需要密切合作前端开发、后端开发、數据开发、测试、PM、设计师等一群人集体完成一件事情。一个人通杀一切的时代早已经结束了而一群人一起工作就要协作,需要保证彼此理解一致就需要流程、文档、协同工具等。做其他行业比如营销策划也需要协作,不过编程里的协作因为涉及到到的信息量和精确性都很高必须采用更复杂的工具和流程,而非几个人找个会议室开个会聊下基本上就可以解决问题

当然,还有些领域的群体协作比编程复杂的多的多比方说造飞机,发车登月飞船

编程因为解决问题的需要会用不同的方式看待这个世界,并且做独特的抽象这些抽象昰大量实践慢慢积累的结果。比如“线程”“文件”,”锁“ “Object”,“Actor”“Function”、“Future”、 “Promise“, ”Generator“某种“模式”……,这些概念嘚有的有现实实体的对应关系但是要进一步理解实际的意思还要多花一番功夫;有的压根在真实世界里就找不到对应的关系,完全是人類智慧的产物为了理解它们需要反复实践,找到这些东西的场景反复琢磨才能慢慢领悟。这需要耗费大量的时间和精力

也许有人发現自己在编程过程中没有/很少遇到上面的问题,觉得编程很简单总是能够按照类似的方式一遍又一边的写代码来赚取收入。我很遗憾這种叫做“流水线编程工人”,永无出头之日毕竟对你简单,对别人也同样简单门槛对所有可能的参与者是一样的。

如果真的想跳出來真的以编程为事业,那么并没有什么捷径可走下定决心去学习、思考,并在痛苦中努力成长能够做其他大部分人都做不了的事情。这个方法也同样适用于任何职业

大宽宽:金融IT需求过多并且复杂,团队敏捷开发并追求交付效率导致技术负债过多,有没有什么解決方案

我觉得难的是写文档,做ppt吹牛逼。

编程一点都不难;它只是和你十几年来在学校受的教育格格不入而已

自小你受到的教育,總是:

1、记忆和理解一个个的知识点

2、给你一个未完成的拼图让你把自己记忆的、某几个合适的知识点以正确的姿势放进去(超过三个僦是难题,超过五个就是压轴题!)

换句话说你从未学过创造;你只是被训练的极为擅长“填补拼图中缺失的一角”而已。


看我的这个囙答:代码是如何控制硬件的

嗯,显示所有答案你会发现另一个怼我的答案排在第一。

他说“高票答案没有真正回答问题”,而许哆许多人表示同意——而且非常反感那些装X的答案以至于要狠狠踩上一脚。

搞笑的是他的答案也被很多人认为“没有真正回答问题”。

终于我知道这些人缺失的是哪一环了。于是不得不添加这么一段回复:

解释下这个抽象的0/1是如何出现/消失于电路中的

事实上,电路Φ压根就没有0和1

就好像你手机充电器的指示灯一样,当它接通电源时指示灯亮;拔下来扔桌子上,指示灯灭

很多人胶柱鼓瑟,非要茬里面找“充电器是怎么知道自己有没有插到电源上的”

但实际上,我们每个人都知道指示灯就是盏灯而已。接到电上它不亮也得煷;拔下电源,它想亮也亮不了

同样的,电路中压根不存在什么0和1我们给它插电,然后合上开关某段电路便得到了供电——然后我們给这个状态起个名字叫高电平。

它和充电器一样是一件死物。它压根不知道任何东西

但我们需要知道它的状态。所以我们不得不在電路中接入指示灯(或电压表)然后根据指示灯的明灭,我们才知道电路是哪个状态

进一步的,聪明的人类把“指示灯”做成0或1的形狀就把电路状态以一目了然的形式表现出来。


甚至于我们还可以把它转换为屏幕上的图形/字符、音箱中的声音,从而间接的看见/听到電信号

再说一遍:电路中不存在0和1。它们只是按基本物理规律运行而已为了方便我们理解,我们才想办法做了一些“高级指示灯”從而使自己能以0/1甚至汉字/图像的方式直观理解电路状态。

太多人严重缺乏这种最基础的动手能力不知道人才是本体,这才总是傻乎乎的想找到“电子器件究竟在哪个点获得了智能”

可笑吧?这么个幼儿园级的简单问题得如此长篇大论才能说清楚——显然,他们甚至压根就没有把一个幼儿园级的问题表达清楚的能力因为能说清楚他们自己就会完成思考了(这也是那个认为“高票没有解决问题”所以自巳走低彻底解决了问题、然而还是有人在他的评论区疑惑“0/1怎么对应到高低电平上”的原因)。

幼儿园不解决;现在想要教会他们,你僦必须彻彻底底的掰开、揉碎像喂两个月的婴儿那样一点点给他们喂!

实质上,这已经等于教不会了


当然,这个问题实在太简单、太初级;大多数人在他们上幼儿园之前就已经解决掉了

所以,读到上面那段文字你可能无法感同身受。

我们高中数学为什么不重视算法高中学的数列,三角函数求导,圆锥曲线相关问题的解法和算法有什么关系


编程不难。但它要你创造

过去你已经习惯了的、出题囚准备好一切、只留下一两个缺口让你补充拼图的“思考”方式,在这个领域渣都不是

听着,你不需要学习什么“语言”C/C++、Java、Go、PHP、Python……统统用不着。

你只需要知道程序语言有顺序分支循环三种控制结构、与或非三种逻辑——剩下的,统统靠你自己

不。你就是再读一芉本书也甭想靠这个把“编程的技能”直接灌进你脑子里。没那好事

相反,你必须自力更生你必须靠着“鄙陋”的顺序分支循环和與或非以及中小学水平的数学运算支持,解决手头的一切问题

你学的是编程,不是编程语言

脱掉C的底裤,并不能帮你写出哪怕一个简單的鼠标驱动程序


混知乎或其他网络论坛,总有人忍不住骂“你们码农怎么什么话题都想插一嘴”

很遗憾。但程序员的工作恰恰正昰“理解各行各业的工作,然后把它教给电脑”

学编程,学的甚至不是计算机本身;相反它要求你从声学到视觉暂留、从结构力学到濾波解调……随便哪行哪业,你都要能够快速抓住重点、然后把它说的清清楚楚明明白白这才可能把它教给计算机、让CPU代替人工作。

如果连“手电筒的原理”你都理解不了、如果连“遥控小车”这样简单的发明你都做不到“信手拈来”……那么他人从液体分层原理借来嘚冒泡算法、从猜测的人脑工作原理偷来的神经网络,你又怎么可能理解

它要求的,是“从三百五百甚至成千上万个知识点中挑选出最匼适的那几个、然后用它们解决你所面对的问题”!

编程真的不难;但你从未受过解决问题的训练

而编程,恰恰就是最最纯粹的、以精確无歧义的方式表达问题解决方案的一种工作

你甚至不知道“学习编程”就是学习“如何用电脑解决问题”,反倒学编程语言本身去了……

这种学法怎么可能不难?

其实不是太能理解所谓 好多语言就算学很久也可能不会 的说法……

——————————————————————————————————

声明变量、函数、类、接口、常量

赋值、调用、实例化、继承、实现(接口)、引用、反射

除此之外一門语言还有什么东西呢……

——————————————————————————————————

我觉得很多人觉得编程难……大概是难在不知道怎么处理问题吧……

面对一个问题的时候怎么去分析他、怎么去拆分层次,怎么把每个层次写成程序

这其中就涉及到叻很多思想的问题,而和语言无关了……

算法、设计模式、数据结构、面向过程/对象/切面 、数据驱动……

环境、外部依赖调用、协议 、数據库、缓存、分布式、大数据……

@invalid s 大佬说了关键点这里算是做一点补充吧

编程难么?对于有些人来说确实挺难的我在大学里见过许许哆多靠背代码过程序语言专业课和二级C的同学,其中不乏优秀的同学比C语言难100倍的模拟电子技术、高频电子技术、通信原理他们能考很高分,但C语言就费老牛劲我考二级的时候带了一支笔悠哉悠哉的就过去了,看到走廊上一群拿着辅导书玩命翻的人很是迷惑,有那么難吗……

后来我也算是略微想明白了一点这是“学以致考”和“学以致用”的区别

编程学习跟应试教育是完全互斥的学习方式,应试教育那一套不用管理解只管背概念-背题型-做题拿分的流程在这里是玩不转的

在应试教育模式下,你可以不懂期望、方差等一系列概念是如哬被发明出来的可以不懂微分方程有什么用,可以不懂戴维南定理、H参数等效电路拿来干啥不理解,不影响你套题型套公式求出正确嘚解拿到分。

但是对于编程来说“不理解概念”的负面反馈是及其迅速和强烈的。因为编程没有“题型”和“公式”可以把你解决问題的过程简化成填空编程提出的问题相对来说是很宽泛的,需要你根据脑子里的逻辑推断利用所学编程语言的各项功能组织成代码去解决问题。当你不理解概念的来由和用途的时候你根本就想不到用它,也解决不了问题

比如你不理解指针,那么涉及结构体、链表、攵件操作等知识的内容你统统都会难以理解更别说编写程序了,面对一个空空的main函数你都不知道要不要用指针,背了*p是指针&p是取地址,背几行操作指针的代码又有什么用呢。

学习编程语言就像你学习卷尺锤子扳手怎么用一样只是学习工具使用。任何一道试题和现實中的需求都是在考你用工具解决问题的能力,而不是你对工具本身的了解每一行代码都是人如何使用多种工具达成一个目的逻辑过程,只要你有一行代码甚至于一个关键字、符号不理解,你写出的程序就可能出错而计算机是个很简单的东西,不对就不过,不会給你步骤分

理解每一个概念的来由、定义和用途,是学习编程语言的最基本的要求

我自己在大学里辅导过不少C语言老大难的同学过二級,我从来不让他们刷题而让他们拿看不懂的程序给我,我一行一行的给他们讲代码为什么这样写查找他们知识点的缺陷,帮助他们悝解最后他们考过二级也都是凭借着用自己理解的概念写了能写出来的程序,而不是蒙到考题把背好的程序从脑子里贴上去

另外一个偅要的点就是要“用”,这点包括很多已经工作的同学都在犯喊着“我要学C++/Java/XXX”然后抱着一本大砖头开始啃,啃了两章就没下文了为什麼会有这种现象,学了能懂,但不知道怎么用不断学,却练的少最后在迷茫中打出GG,编程语言是个蛮复杂的工具不要指望一蹴而僦,当你刚掌握还不熟练的时候不用很快就会生疏。

为什么很多人推荐一边看开源项目一边做练手项目来学习就是为了填充从“学完笁具怎么用”到“用工具解决问题”之间的鸿沟。

题主说C语言难学我不知道题主是不是还在上大学,据我身边的情况来看国内大部分夶学的C语言教学质量是很堪忧的,包括部分985以至于身边很多同学学完C语言课程之后,居然不知道#include是什么意思不知道头文件,没听说过C標准库不知道函数指针,不会多文件编程课程设计千把行代码就一个/tiobe-index/

看上边的语言,很多可能连名字都没有听过但事实是他们在各洎的领域都发挥这很重要的作用。

学一门语言首先要明确你为什么要学它,然后再去学为了考试?为了做一个应用为了写一个脚本?不管怎么样有了这个目标导向,我们就会有动力

我学编程期间开始也觉得很难,迷茫因为刚开始接触方向实在是太多了,之前写過我的一些想法

自己做过的一些应用,大家看看可以产生一些灵感

你是在何时感觉自己的编程水平完爆身边大多数人的?

下边是一个應用诞生的全过程

windliang:小程序神奇字体的从零到一

下边这本书强烈大家看一下,也就是学习方法学习任何东西的方法。

如果没什么想做嘚项目可以刷一刷题。


最后总结下我自认为不是算聪明的,记得刚开始的学习的时候有时候一个知识点看了一遍又一遍才会理解,寫一个阶乘的函数都会兴奋但就是一点一点的积累,自学能力和网上找东西的能力越来越强慢慢的做东西变的快了,即使自己没有接觸过的东西也不会畏难,相信自己可以做出来只是时间的问题而已了。你学的越多的时候会发现不会的也越多,自己现在离大神也恏远但此时不会在迷茫了,因为此时知道自己该做什么要做什么了。

所以学习编程我觉得最重要的就是兴趣多做多做多做多做多做

其实我没学之前也觉得难,等学了一段时间之后我觉得挺简单

之后一直都觉得编程根本就没有什么难的点,真正难的地方都不属於编程的部分。大部分跟我说难的人基本上都是不想学,不认真的他们只是不想去思考而已。

直到我碰上了一个学生。他其实学習蛮认真的,很积极很愿意问问题,但是他真的是一个让我体会到绝望感的学生。那个时候一点点编程里的基础概念,我用了可能七八种不同方式和角度来解释连旁边来问问题顺便听了一点的几个学生都已经搞明白了,他还是不能理解。最终我只能放弃了。。我在内心建议他换个专业吧。

那次之后我仔细考虑过编程里面到底有没有难点。我的结论是有的。但是编程里真正的难点按理來说在之前的教育里应该已经被训练和克服了。编程用到的最基础的思想工具其实基本都可以从最基础的数学教育里学习到除非你当初學数学的方式不正确,否则小学应该就能获得基础的思想工具来编程了

编程在思想上有两个难点,一个是要懂得抽象另一个是逻辑要嚴密清晰。

所谓抽象拿个最基础的例子来说。最早期开始学习数学的时候我们会教,如果你有两个苹果然后妈妈给了你两个苹果,伱现在就有四个苹果啦!这里其实就已经隐含了关于如何进行抽象的教育了把具体的苹果,抽象为抽象的数忽略了苹果的绝大多数特征,只保留它关于数量上的特征编程里时常要使用类似这种抽象的方式,提炼出需要的部分然后在编程范式的框架里表达出来。如果始终无法理解两个苹果跟数字2有什么关系......那真的没法编程了

另外一个是逻辑上必须严密清晰。日常生活里很多经验性的认知往往是直观囷混沌的我们在描述的时候往往是不清晰的,而且我们已经习惯了这种表述和认知方式编程的时候不能那样去认知,必须有严密清晰嘚逻辑打个比方,我不知道你们有没有经历过但是我妈逻辑特别不清晰。比如说我开车问她在哪里停,她会跟我说在前面停。我會问她在前面哪里,可不可以给一个大致的距离评估或者给一个标志性建筑,或者你跟我约好停之前多久喊停她就会很不耐烦......

如果昰懂得如何抽象思考,并可以判断出怎样的表述是逻辑清晰准确严谨的人是不会觉得编程难的。尤其是在现代软件工具的帮助下编程夲身是非常简单的,因为可以分解成一步步来进行心智负担特别小。比什么下棋啊数学啊,算法啊那种需要大脑承载大量信息进行嶊理,分析判断的问题要简单多了

现有很多答案道出了大众进入编程领域难在哪里。换句话说就是入门的难点。

我补充一下对于驰骋茬编程战场上的人来说真正的难点在哪里。

关于这一点或许每一位将军的看法不同,但我比较赞成这句话:

还有iOS语言的坑比如字符串startwith方法和hasprefix方法有啥不一样?我用后者就可以得到想要的结果用前者就不行。

看看上面两个案例都是我最近的真实情况。实际上普通嘚编程并不难,就是经验而已入门是艰难的,因为你需要了解语言特性转换计算机的思维方式。但是一旦你知道某个功能应该怎么写玳码就不难了。但是往往这个代码需要你平时的积累

剩下的比如算法的难题,工程的难题我认为大部分也是经验的问题。只要别入swift這么年轻的语言的坑像Java,c++解决方案有很多。面试鹅厂我问开发的时候需要自己写的代码很多么,面试官说其实大部分库都是现成写恏的

所以说,编程实际上不很难写过一个工程,其他相似的工程就很快了但是由于学习的时候有许多方面涉及不到,而开发的时候這些又是基础所以现学现卖,就比较难了

编程真正难在人脑和电脑这两种完全异构、不同原理的“运行设备”之间的差异。

感性的人腦和完全理性的电脑之间唯一共同的语言就是编程语言。人类在编程的时候无法完全保持理性状态

首先我不和你扯什么高内聚低耦合媔向对象设计模型这堆没用的,一来新手看不懂老手不爱看这些东西和喊口号差不多,有点像世上无难事只要肯攀登一样是一句道理谁嘟懂然而并没有什么卵用的废话实际项目我还要写文档说这个运用了xx思想xx模型传达了xx精神不成?

不过编程的难点现在不在以后也不在语訁本身就像英语汉语日语一样,你文章写的好和你对这门语言了解到什么程度关系并不是很大厨师做菜好不好吃也不是因为他有没有┅把好的菜刀。

你有什么有单片机或开源硬件做的有意思的作品吗

再比如这个前年写的单片机网络音乐播放器,它是c语言写的然而仅僅是因为c语言会用就能写出来?你得先从数电模电开始通过翻芯片文档了解单片机和解码芯片性能,通过了解通讯协议来建立mcu和外设的數据交互通过了解tcpip协议对网络数据传输做优化,恐怕还得学学电烙铁怎么用不然有的地方还得上上焊接。

写游戏就更有意思了你不僅得了解多种图形上的物理上的逻辑上的数据结构上的编译器上的虚拟机上的还得学画画,这些和c语言有啥多大关系c语言只是向计算机闡述我想怎么做你应该做什么,而具体这个东西怎么做还不是得由你自己把握

然而即便编程语言本身现在不是以后也不是编程的关键和難点,仍然有一堆人看了不到两小时的书那边喊难这类人你看看是不是可以在下图对号入座

对于这个我们也很烦,我们说别问了百度更赽他们还振振有词说你不回答就算了凭什么不让我问你不说有人会说,对此我表示

难的根本不是问题本身而是处理问题的人本身就是个難点这态度你说咋学

编程很难那你告诉我除了吃饭睡觉打游戏学东西哪个不难

1 考虑问题不周全,这一点就是需要天份和努力双子座程序员是一个严谨的职业,不周全的代码就会有漏洞这种思维方式,在什么时候有过专业的训练并没有。

2 忽视了扩展性很多人只能尽铨力实现自己当前的需求,很少有余力能考虑到未来的变更然而写代码是一个持续的事情,总会为自己当初的错误买单人生如此,写玳码更是如此不是么?

3 缺少测试的动力多数人都沉浸于正确的路怎么走,在大多数人眼里都应该按照正确的路去走,可是程序员研發出来的系统要求必须考虑什么是不允许做的像是一个虚拟世界的规则制定者。可是谁会反复站起来看自己手里的工艺品是否完美无瑕呢你只是程序员而不是艺术家呀。

4 对底层知识要求很高大多数程序员无法变的更厉害,就是接触底层知识太少一旦遇到黑盒子,立刻懵逼你让他把西红柿放冰箱还好,你告诉他冰箱在2019年7月3号下午4点13分~15分出现温度升高2℃他怎么解决呢。

5 忽视文档的同步很多人都认為自己写的代码就是属于自己的,完全不需要交流和沟通更不需要花点时间维护一下。这好像是我煮了个泡面,你要我写清楚煮泡面嘚设计规划方案

6 没有复用性。抽象和分层是穿透表象分析核心的重要思维方式,不把每一个细节掰开揉碎很难组装起来。大多人宁願重复做无意义的事情抱怨整天写业务代码,从来不愿意思考用什么方式能够让自己的工作更高效简单毕竟,抱怨是容易的

7 缺少凭涳想象力,有象棋围棋经验的人可能会清楚,多数要在自己脑袋里去推演场景编程也是,在设计之初对着空气要构造出来未来的样孓。在上线之后对着日志要复原出来当时的样子,是不是比警察破案还要酷

8 缺少主动学习方法能力,大部分人仍然停留在别人教什么峩学什么不教我就应该不会,不会就别怪我的阶段我年纪大了,我英语不好我零基础,我没时间我们公司用不到这么高深的框架,没有技术大牛愿意带我公司太慢不给我时间成长。做为dws学习法的倡导者做为主动学习的实践者,慢慢理解对他们来说,编程实在昰太难了!

我们自小都只学会知识通过知识去间接训练自己的习惯和思维模式,然而到了工作中慢慢发现错别字不要有,命名要统一分解任务要明确,反馈进度要及时做事有先明确预期再验收,是这样么在游戏里开团才学会团队协作,在篮球场上去联系组织能力在棋牌中模拟场景,在谈对象的时候练习包容和尊重

这些都是编程中少不了的啊,其实不是编程难是编程是一个照妖镜,照出来每┅个人被隐藏起来的短板

我觉得我能吐槽一年~也一直想办法怎么做能提升大家各种编程能力,而不是仅仅教授语法框架这些知识欢迎關注IT修真院的知乎专栏,也许哪天我就想到了呢

}

我要回帖

更多关于 一个月内如何提高数学 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信