专栏首页MixLab科技+设计实验室我是如何学习写代码的?v2

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

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

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

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

写代码重要吗?

“代码只服雷军”,雷军在小米之前,做了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(mix-lab)

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2019-04-23

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Salesforce新的业务执行方式

    十多年前,Salesforce.com成为在线销售,客服服务领域第一的科技公司。现在它的年收入超过50亿美金,市值接近500亿美元。因为它的业务模式是建立在将产...

    臭豆腐
  • Linux CentOS 7 安装JDK详细步骤

    https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151....

    zoro
  • 大数据ETL实践探索(1)---- python 与oracle数据库导入导出

    本系列文章主要针对ETL大数据处理这一典型场景,基于python语言使用Oracle、aws、Elastic search 、Spark 相关组件进行一些基本的...

    bigxdl
  • 谈谈JVM内存区域的划分,哪些区域可能发生 OutOfMemoryError?

    首先,程序计数器(PC,Program Counter Register)。在 JVM 规范中,每个线程都有它自己的程序计数器,并且任何时间一个线程都只有一个方...

    葆宁
  • Tag是博客标签?搜索关键字?还是什么?

    很多人认为所谓的标签管理就是博客标签,知识库标签或搜索引擎关键字?事实上标签管理与这些中的任何一个都没有关系。 营销领域的标签管理是特指在网站或移动应用中收集数...

    臭豆腐
  • SaaS的春天,新时代来了!

    第一次听说“云”的时候还是出自几年前湖南卫视《天天向上》一名互联网公司技术人员之口。当然,云计算的概念要比这早得多,云计算最早出自 Google 首席执行官...

    臭豆腐
  • 甲骨文与Salesforce同时出手人工智能:技术对决哪家强?

    全球最大企业级软件公司甲骨文与客户关系管理(CRM)软件服务提供商Sales force都承诺将开发人工智能(AI)助理应用,这些应用将具备机器学习和自然语言互...

    臭豆腐
  • Java常见的垃圾收集器有哪些?

    Serial GC, 它是最古老的垃圾收集器, “Serial”体现在其收集工作是单线程的,并且在进行垃圾收集过程中,会进入臭名昭著的“Stop-The-Wo...

    葆宁
  • 大家都在讲的客户体验究竟是什么?

    你有没有发现这几年客户体验这个词出现的频率越来越高了,特别CRM的厂商顾问会经常把这个词挂在嘴边。客户体验到底是什么?如何提升客户体验?主流的CRM厂商的客户体...

    臭豆腐
  • Salesforce“冷门”产品,数据管理平台Krux介绍

    Salesforce去年十月份收购了DMP(数据管理平台)初创公司Krux,Salesforce为什么收购Krux,它到底能给Salesforce带来什么样的价...

    臭豆腐

扫码关注云+社区

领取腾讯云代金券