• 从无到有:学习程序开发的四个步骤


      常会有人觉得,这些互联网程序员是不是脑袋的构造跟别人有什么不同?

      其实在程序员客栈(www.proginn.com)做项目经理这么长时间接触各式各样的程序员过程中,常有机会见证一个个程序员从无到有学会程序设计的过程。不可否认,的确有不少程序员是“生而知之者”,仿佛上辈子就写过代码一样,无论是怎样的程序语言,总是能一碰就上手。

      就我的观察,能够快速上手程序员,往往跟大家想像的不一样,未必在数理逻辑上有着很好的表现,而是他们的语感特别强,能够快速调节全新的语言(Programming Language)及「文法」(Syntax)。

      或许让很多人出乎意料之外,例如在学习如Java、Python或Ruby等文字界面的程序语言时,女生的表现往往比男生来的好。

      以上这些,只是想让你知道:学程序设计就像学语言一样,是有学习方法及步骤的。

      通过观察程序员客栈将近两千家BAT级别的开发者,很多都和我有过开发合作,我也整理出了学习程序设计的几个过程,毕竟实践出真知,相信只要你用心也做得到。

      第一步–“记”(基础)

      没错,就是记。

      无论你是「死背」、「用实作去记忆」,你总得把一些最基本的指令、语法背起来。就学语言一样,没有最基本的词汇量及文法概念,相信你是连一句话都写不出来的。

      但是比起学人类的语言,程序语言学起来可以说是非常容易。举例来说,我们要具备基础的英文表达能力,可能至少得具备1000以上的单字量以及各式文法规则。相较之下,程序语言可以说简单得多,举例来说,你只要知道以下三个python的规则:

      1,变数名称=赋予数字=>如果这个变数名称存在,将这个变数的内容更新为赋予的数字

      2,函式(传入值)=>将传入值交给函式,并执行函式

      3,a数字* b数字=>将两个数字相乘,并返回结果

      及一个函式:

      1,print(value)=>印出传入值

      2,你就可以写出一个帮你算出倍数的python程序了:

      3,input_number = 17

      4,print(input_number*2)

      熟悉基本语法及指令所需的时数,取决于程序语言及使用情境,基本上至少要知道以下学习元素:

      1,什么是指令?长什么样子?(空格、分号)

      2,变数的宣告

      3,变数的赋值

      4,数据类型(字串、整数、浮点数、布尔值)

      5,数组

      if / else的写法及用法(大括号或缩排?)

      for / while循环的写法及用法(大括号或缩排?index?递增指令?逗号的位置?)

      取得使用者的输入

      印出数据到主控台

      写过代码的人都知道,以上的学习元素其实没什么,就是熟记而已。接下来,要进入的是实战的领域。

      第二步–做一点小东西(应用)

      当学会基本的元素以后就可以试着做一点小东西了,例如:

      1,用for循环印出1到10

      2,在数组中储存10个数字,用for循环一一判读是否大于60。若是,则印出「及格」;若否,则印出「不及格」

      3,让使用者输入5笔数据后,印出平均值

      所谓熟能生巧,以上几个小题目都能让学生运用到之前的学习元素,你可以想像成是他们的练习题,并能够延伸思考到「这个程序解决了什么生活上的问题?」

      第三步–模仿(学习解决方案)

      程序开发教学完全鼓励学生模仿既有的、完整的代码。但是有以下前提:

      充分了解需求:知道自己要写出解决什么问题的程序

      思考:从自己过往的经验出发、检视自己脑中,有没有适合能够解决此问题的知识

      有天赋的开发者是极少的,大多程序初学者是无法解决一个从未见过的问题的,在经历过前面两个步骤后,我们会鼓励他上网找「答案」,看看别人的作法,接触全新的思维,将会延伸你的思考框架。这个过程中,常常会听到初级程序员大呼:“原来可以这样!”

      而在软件产业,几乎所有的问题都有所谓的「最佳实践」(Best Practice)可以遵循,这些最佳路径都是前人不断的修改、优化、验证而成的,其中往往也蕴含了独特的设计哲学。经过一次两次的模仿,这些最佳实践也多少会被内化为自己的养分,或许哪天自己能够设计出更干净、性能更好的代码。

      第四步–原创(设计解决方案)

      当你已经能够消化他人的设计哲学并培养解决问题的思维后,这时应以具备初步的解决问题能力,能够针对一个问题提出自己的解决方案。而解决方案的设计并不局限于代码,叙述、流程图都是可以用来表达程序思维的工具。

      最后小结–学会这些,就是一个成熟的程序员了吗?

      当然,这四步并不是一个纯粹线性的过程,学生有可能会依据问题的难度及情境的不同,而在第三、第四步之间来回踱步。而依据不同的领域及产业,程序员还需要其他不同的技能,如:服务器管理、数据库操作、网页设计、APP设计等等,当这些技能融入了经过以上四步培养的「设计思维」后,才能算是一个能够投入职场的即战力。

      但是就像武侠小说中提到的,有了雄厚的内功(思维),学习任何外功(技能)都是轻而易举。初级阶段的程序员切记不要本末倒置了。

  • 相关阅读:
    [dll注入实现IAT勾取] 计算器显示中文
    [记事本API Hook] 调试器 勾取 WriteFile()Api
    [DLL注入的方法]进程创建期修改PE输入表法
    [DLL注入的方法]静态修改PE输入表法
    [1]编程实现加载驱动
    [保护模式]测试一致代码段
    [保护模式]联系1 三环访问高2G
    15.[保护模式]TSS任务门
    ERP中HR模块的操作与设计--开源软件诞生26
    ERP的主数据的操作与设计--开源软件诞生25
  • 原文地址:https://www.cnblogs.com/proginn/p/5647372.html
Copyright © 2020-2023  润新知