分享

我是如何学习写代码的?v2

 Mixlab交叉学科 2020-11-07

代码 」对于我来说,如同「 设计 」一样,都是为了「 创造 」 出某种产品的一种手段。

作为设计师,与开发打交道,难免会有种 ” 巧妇难为无米之炊 “ 的感觉;

而程序员,当自己开发了某个工具之后,为了追求更好的体验,苦于不懂「 设计 」,也很难更上一层楼。

写代码重要吗?

“代码只服雷军”,雷军在小米之前,做了10年程序员。

据网友爆料,京东刘强东在一次讲座上,称自己大三(1995年)的时候,他给别人写代码,一个晚上就能赚5万。

设计师应该会写代码吗?

设计工具的演进,从Sketch 、 Pixate, 再到 Framer,设计师的工具,越来越简单有效地通过原型表现创意。

设计工具引入代码

Framer是一款结合代码与可视化实现的交互设计工具,因为通过代码,可以完全控制交互效果,设计师不仅停留在画图的层面,更多的可以关注到实现的真实效果。

写代码难吗?

一位朋友,在咨询了我一阵子后,开始学习 Python ,但是在坚持了2个月的时候,他逐渐减少学习时间,并最终放弃了。因为,他觉得代码要学习的知识太庞大了,不知如何入手,一旦有新问题解决不了学习进度就卡在那里,从而越学越觉得难。

知识量庞大,问题不断

其实写代码,入门并不难

因为还有积木式编程语言:Scratch

不管是成年人,还是青少年,通过Scratch可以快速得掌握编程的核心思想。但核心思想是什么?往往被许多人所忽略。

学习编程,应该掌握其运行的逻辑,试试回答以下几个问题:

1 我们是如何通过一个个的指令给计算机安排任务的?

2 计算机如何按照我们设定的条件,执行任务?

3 计算机是如何执行重复执行任务的?

4 计算机完成任务的时候,是如何反馈给我们的?

代码最难的是逻辑

引一位Oracle程序员在Hacker News上吐槽自己的工作的讨论。这个工程师的核心痛点是,Oracle经历长期的产品线迭代,代码异常庞大、逻辑复杂。每新增一个特性或者修复BUG,该工程师都需要大量的调试,小心谨慎的进行着日常的工作。而Oracle每次的版本发布都经历数百万次的测试,工作量可想而知。

学习代码也是有方法

一般的初学者是这2类:

零基础,指的是对代码一点了解,或者曾经看过一点点,没有系统了解过编程语言的。

入门级,会一门编程语言,会写一点点代码,但是无法自己完成一个项目从0到1构建的。

以下是给初学者如何学习代码的指南。

01

最小项目实践+系统地刻意练习

如果是零基础,建议先学一门语言,一步步来,按章节进行,同时,适当增加实践项目的练习,比如DIY一个以图搜图引擎等类似的项目。

当你学完这一阶段的入门,不再是0基础之后,就可以尝试了解各种语言的环境安装、最小可运行代码集,以及各种开发工具,尝试各种好玩、复杂的项目了~

02

最小可运行的代码集

主要通过看示例,包括作者提供的示例代码,网上文章提供的示例代码等;举一个turicreate的以图搜图代码示例:

03

理解功能

get到思想就好,理解代码里的每一句的含义,真实的行为,就跟读书一样,知道作者的核心思想是什么;

比如下面这3句,第1句是初始化一个类,该类可以提取图片的特征向量,第2句是通过文件路径打开图片,第3句是从图片提取特征向量。

04

关注输入、输出的数据结构

输入的是字符串,还是一个列表,还是一个字典?输出的是什么也非常重要,比如输出的时候,有None的可能,那下一段代码对此输出结果引用的时候,就要注意啦。

如果输入_idea为"",输出为None,这个时候写代码的时候就要留意输入跟输出的各种可能。

05

即搜即用

当你掌握以上技巧的时候,就会发现没必要从头到尾全部一口气把代码全部学完,需要的时候再快速翻阅文档,通过示例、输入输出、理解功能这三个点,就可以现学现用啦。

06

优雅的代码

对于初学者来说,需要关注如何书写优雅的代码,主要表现在:

代码所在位置恰当;

有适当的注释;

适当的缩进和空行;

以及没有重复代码……

这里面的内功修养,离不开设计模式和代码重构,还要有非常多的实践与刻意练习。这几本书都可以抽空读一读:

《Head First设计模式》

《重构》

《Clean Code》

以上为全文。

写代码是基本功,锻炼的是逻辑思维能力,跟解决问题的能力。

在不久的未来,写代码也是可以机器完成的,不知大家关注过这项研究吗?

pix2code 等论文提出了一个强大的前端代码生成模型,解释了如何利用 LSTM 与 CNN 将设计原型转化为 HTML 和 CSS 网站。

人工智能写代码,未来可期;

学习代码,我们应该更多地关注背后的逻辑思维能力。

欢迎在MixLab讨论相关内容、技术实现,

MixLab是一所面向未来的实验室

    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多