看别人写的代码能看懂 自己写却完全不知从何下手 这样的问题起因是啥 该怎样解决

你看别人写回答洋洋洒洒,都看得懂,自己怎么就写不出来呢?

■网友
谢邀,这个我能理解,当初看八皇后的代码能看懂,但是看之前死活写不出来,看了之后其实也写的磕磕巴巴。这个其实就是还没理解算法的精髓,还在硬背代码。你把算法一点点的理顺了,就能好点,但是还是要多写。我现在写八皇后就可以完全靠自己写出来了,也是这大半年写代码写的比较多的缘故。
■网友
老生常谈的问题了,代码量太少,从最简单的写起,去写去运行去调试,代码量上来就知道从哪里开始了。
顺便,泼个冷水,你以为你看懂了,其实你并没有。
看完一段代码的时候,问一下自己下面三个问题:
这段代码实现了什么功能?
这段代码怎么实现的这个/些功能?
这段代码为什么要使用这种实现而不是其他的方式?

如果你三个问题的答案都了然于胸了,如果要实现一样的功能,你肯定也能写出来。

■网友
一是不会算法。一个问题,不会转化成程序语言,简单到一个爬虫,先发送请求,再解析页面,再存储数据,这个大路线要知道,如果这个都搞不清就无从下手。再到复杂点的,图像处理的洪泛法这些,如何对一个封闭区域内的像素点染色,没有算法完全没法做。二是对语言不熟悉,例如写爬虫不知道request类的库,解析html、json或者正则的库,有思路也无法实现。解决方法,肯定要先培养思维,拿到一个问题,知道该如何解决,分解成哪些步骤,而且是按程序语言的思路;其次是要熟悉语言,多写多看,没有捷径。

■网友
我觉得除了其他人说的你可能还有一个欠缺的能力就是拆解问题。拿到手一个东西不知道该怎么做的时候不妨把大问题化小。举个例子,比如你要写一个在console运行的简单的计算器软件,我可以拆解成以下几个问题
我所需要的运算符有哪些我支持的数字类型有哪些(整型,小数)运算符的计算顺序是什么(*,/ 高于 +,-)我怎么控制输入输入的检测需要有什么(检测运算符,非数字)如何处理输入进来的正确算式等等 【看别人写的代码能看懂 自己写却完全不知从何下手 这样的问题起因是啥 该怎样解决】 把大的问题拆解成小的可以解决的问题(minimum workable unit),再把他们完整的拼起来,就解决了你的大问题。


    推荐阅读