如何训练自己的编程思路

最近一个周末班的学员,问黄哥你在讲解编程思路训练时,如何想到这个思路的。

首先要解决一个问题,学习编程是学习啥?是纯学习语法吗?

不是,是要学习计算思维,编程思路。

何为计算思维:计算思维(Computational Thinking)概念的提出是计算机学科发展的自然产物。第一次明确使用这一概念的是美国卡内基·梅隆大学周以真(Jeannette M. Wing)教授。计算思维是运用计算机科学的基础概念去求解问题、设计系统和理解人类的行为;计算思维最根本的内容,即其本质是抽象和自动化。何为编程思路,望文生义,思路,思考的道路,方向也。就是说,从哪里下手,从哪里着手解决问题。
其实就是计算思维的具体体现,用语法来表达解决问题的方法、算法。

没有人天生会编程,计算机科学家总结了很多解决问题的方法(也就是算法),现在学习编程,不是
从头自己发明算法,不是重新造轮子,站在巨人的肩膀上,学习计算机科学家总结出来的解决方法,利用
这些成熟的算法,组合和微创新来解决自己的问题。

编程思路是训练出来的(自我训练或者跟着别人学习)。

黄哥python培训,黄哥提醒大家解决问题时,要将任务切分,大问题化解为小问题,其中有的小问题,已经有成熟的解决方案,直接拿来用,
剩下不会求解的小问题,那么就集中解决它。训练就是要学习成熟的解决问题的方法:if 语句用来做分支判断,循环用来解决反复运算的问题。
穷举法、递推、递归、排序、回溯等等(如果需要当专业程序员,需要学习数据结构和算法,设计模式等等,需要学的东西很多很多。但首先要解决的一个问题是自己能写代码解决一般问题。)
训练函数抽象,类抽象解决问题。如对有序数组,查找特定数值,没有经过训练,初学者,直接用循环遍历。
如果经过二分法算法的训练,下次碰到这样的问题,就用二分法求解。做习题,要像开发项目的流程一样(需求->需求分析->设计->编码->测试->交付等),
拿到一个习题,还没有进行分析,就匆匆忙忙敲代码,这个学习方法,是不好的学习方法。
先要分析清楚题目(所谓的需求分析,何为需求分析,请自己搜索),再设计,用那种数据类型(数据结构)
来组织或保存数据,用何种算法来计算效率最高,用面向过程,还是面向对象的编程范式,还是用函数式编程等等。
设计后,再编写代码,最后写测试。(也可以采用软件开发过程中的应用方法,测试驱动开发等)

很多基础的东西,对于程序员来说,认为是顺理成章的事,但对于初学者有一个习惯的过程。

   1、有超级小白学员问黄哥,计数循环为何要从1起。当时感觉很讶异,为啥有这样的问题,这就是上面说的对于程序员来说,认为是顺理成章的事,但对于初学者有一个习惯的过程。计数循环从1起是为了方便,大家从儿时数数,扳手指也是从1开始啊。如果从负100,开始计数,不是不可以,不方便啊。2、对于这样的问题。python list中放二个变量,有初学者也不理解和习惯。list 这个数据类型(或者说数据结构)中,可以放python任意对象。python 中变量是对象的引用,当然也可以放变量。computer = "剪刀"people = "石头"guess_lst = [computer, people] 相当于 guess_lst = ["剪刀", "石头"]3、看这个程序员认为理所当然的事情。跟黄哥学python序列文章之python方法链(method chaining)https://zhuanlan.zhihu.com/p/209314924、多敲代码,多训练,才能找到感觉。不敲代码,不知道会犯变量名前后敲错了。不敲代码,不知道会犯缩进错误。不敲代码,不知道如何看python报错信息快速排除错误。......................

总结 (没有人天生就有编程思路,编程思路是经过一定训练后,养成的!)

黄哥python培训,黄哥提醒大家如何才有思路,只有先经过训练常见的算法,会分解问题,会做需求分析,慢慢训练,才会养成自觉的思路。
没有人一出生会编程,只有经过训练,才会学会编程。
很多牛逼程序员用vim,敲的啪啪响,一会儿一屏幕代码,为啥那么熟练使用vim,习惯成自然。
当你训练多了以后,学会一定的套路(解决问题的方法),养成独立思考的习惯,假以时日,自然就有思路了。
养成独立思考的习惯,养成切分问题,养成大问题化解小问题,养成套用学过的算法,才会有思路。
简单的判断、循环都不会写,就想玩django,何来的思路?
万丈高楼从地起,希望大家脚踏实地实地的从基础训练起,先达到独立写代码解决一般的问题,再谈项目。
见过盲目上号称牛逼项目的培训班出来的程序员,没有学会独立写代码解决一般的问题的能力,开发项目时如狗咬刺猬无从下手。

共勉!
黄哥写于2016-5-22 早晨 北京

点击黄哥python培训试看视频播放地址

转载于:https://blog.51cto.com/11623242/1784022

如何训练自己的编程思路相关推荐

  1. python写代码没思路_如何训练自己的编程思路

    最近一个周末班的学员,问黄哥你在讲解编程思路训练时,如何想到这个思路的. 首先要解决一个问题,学习编程是学习啥?是纯学习语法吗? 不是,是要学习计算思维,编程思路. 何为计算思维: 计算思维(Comp ...

  2. PTA寒假基础题训练(含解题思路)(下)

    目录 7-36 字符串的冒泡排序 AC代码: 7-37 龟兔赛跑 AC代码: 7-38 N个数求和 AC代码: 7-39 数列求和-加强版 AC代码: 7-40 抓老鼠啊~亏了还是赚了? AC代码: ...

  3. 如何才能训练成为一个编程高手?

    每个人都有成长的渴望,也都会遇到成长的瓶颈. 一个读者问我:如何才能训练成为一个编程高手? 先简单说下这个读者的背景:工作 3 年多,目前在大厂做后台开发,身边有不少编程高手,是他想要追赶的目标.最近 ...

  4. 关于第八届蓝桥杯单片机初赛----电子钟设计的题目分析和编程思路分享

    关于第八届蓝桥杯单片机初赛----电子钟设计的题目分析和编程思路分享 1.前言 蓝桥杯单片机比赛,对于初试者,比如那些没有接触51系列单片机,或者很少编程训练的人而言,确实很有挑战力.而即使对于有基础 ...

  5. 【直播】陈安东,但扬:CNN模型搭建、训练以及LSTM模型思路详解

    CNN模型搭建.训练以及LSTM模型思路详解 目前 Datawhale第24期组队学习 正在如火如荼的进行中.为了大家更好的学习"零基础入门语音识别(食物声音识别)"的课程设计者 ...

  6. PEInfo编程思路讲解01 - 工具篇01|解密系列

    PEInfo编程思路讲解01 - 工具篇01 让编程改变世界 Change the world by program   软件安全是信息安全领域的重要内容,本系列视频教程将涉及到软件相关的加密.解密. ...

  7. FPGA之道(58)关于外界接口的编程思路

    文章目录 前言 关于外界接口的编程思路 按传递方向分类 输入接口 输出接口 双向接口 原理简介 工作模式 主从模式 对等模式 简单示例 按电气特性分类 单端接口 差分接口 无线接口 按功能特性分类 时 ...

  8. PEInfo编程思路讲解03 - 工具篇03|解密系列

    PEInfo编程思路讲解03 - 工具篇03 让编程改变世界 Change the world by program   软件安全是信息安全领域的重要内容,本系列视频教程将涉及到软件相关的加密.解密. ...

  9. 学python最重要的是_基础、语法都不是最重要的,学Python最重要的是什么?编程思路!-站长资讯中心...

    论述 一些朋友自学python过程中,发现书也能看懂,书上的玩具代码也能看懂,但为啥自己不能做习题,不能写代码解决问题,自己不能动手写代码? 原因 初学者没有学会计算思维.解决问题的方法.编程思路. ...

最新文章

  1. 一个浙江人的23条经典经商法则
  2. 偈颂一首《静心莲》【心静如止水,雷打无波澜。佛前忏一刹,万千罪消融。】
  3. CSS margin 属性简介
  4. 华为应用市场AppGallery Connect研习社·直播:百万开发者打造优质应用的奥秘
  5. python配什么数据库_python中常见数据库有哪些
  6. 耗时一周,我用Python爬取全国各地大学校花(高清照片和个人信息)
  7. C++中的set(STL的应用部分)
  8. Proteus 8.13 安装教程
  9. AlphaGo Zero:从头开始学习
  10. 为什么在12306买火车票要装根证书?
  11. Sailfish OS构建(1)
  12. 京东联盟API-二合一链接转链接口-线报转链-京粉转链接口
  13. vs2017安装失败解决
  14. 老板电器应收账款较年初增近七成 Q3净利增速环比拦腰斩半
  15. 二次型相似对角化的原因
  16. linux电脑滚轮不能用,图文详解电脑鼠标滚轮不动了怎么办_电脑鼠标滚轮不能用的三种解决方法-系统城...
  17. 记一次阴阳师挂机脚本开发
  18. mysql函数 动态语句_自定义函数动态执行SQL语句
  19. ajax java首字母检索_AJAX的拼音首字母查找对应中文的portlet
  20. Kubuntu简易安装教程(压缩磁盘版)

热门文章

  1. Node JS Buffer使用理解
  2. Unity+KBEngine实战系列1——棋牌(含完整教程与源码)
  3. ORACLE修改表信息
  4. 不全屏放映ppt的方法
  5. Python的apidoc操作
  6. android adb shell 常用命令
  7. TypeScript极速完全进阶指南-2中级篇
  8. openstack mitaka 完整安装详细文档(亲测,花了3天时间)
  9. Swift iOS : 代码分析DrawController
  10. 转: 深入理解Linux修改hostname