分享

无尽学习者修炼指南 v3.0

 Mixlab交叉学科 2020-11-07

当你认准一件事的价值,长期投入;随着时间积累就会慢慢地产生质变。这些年,我就是这样做的——持续在设计与技术交叉领域投入精力。

—— Shadow, 上海


我获得了:能自由地、按照内心的想法,创作软件产品的能力。代码能力对于我来说,和设计一样,都是为了创造出好产品的一种手段而已。



如果你也想自由创作
请继续阅读  

1  跨越职业的鸿沟

不知大家在平时工作中会不会有这样的感觉:作为设计师,与开发打交道,难免觉得 ” 巧妇难为无米之炊 “ ;而作为程序员,当自己开发了某个工具之后,为了追求更好的体验,却苦于不能「设计」,很难发挥更多

以下是设计与技术相互融合的案例 STATMUSE

 
STATMUSE在技术上组合了
“数据可视化+聊天机器人+语音技术”

产品上,通过AI 扮演篮球解说员,为用户讲解各个球星历年的表现;体验上,AI 聊天机器人更像是一个搜索引擎的升级版,这种减轻聊天界面的设计,非常契合产品的调性。
技术与设计的融合催生了新的体验。设计师认真思考了技术的优势及特性,利用设计手段把技术融入产品体验中
 
再看一个设计工具的例子 Framer

这些年,我们在工作中使用的工具一直在演进:从Sketch 、 Pixate,再到 Framer。

Framer 就是一款结合代码与可视化实现的交互设计工具。通过代码,可以完全控制交互效果,设计师不仅停留在画图的层面,更多的可以关注到实现的真实效果。设计工具在进化中影响了使用者融合技术与设计
 

 Infinite Learner 
无尽学习者

如今,技术的迭代速度非常快。比如 web 网页的 css 布局方式,就历经了 float 、 flex 、 grid 的进化;移动端 APP 的混合开发也经历了由 IONIC 、 REACT NATIVE 的变迁;机器学习也越来越普及,相关的深度学习、强化学习、迁移学习等,也越来越大众

技术的变迁,也为用户带来了新体验。具体表现为交互方式的革新、新的设计方法产生。例如,语音识别技术的成熟,对话聊天技术应用的场景越来越多,从可视化的 UI 界面,过渡到了语音的控制。还有文本转语音技术的成熟,使得用户不想看文字的时候,可以选择倾听。

AI产品podcastle.ai

 

人工智能渗透到各行各业,人与机器如何协同创新,产生了人机协同设计的新理念,比如在香水瓶的设计上,通过简单设定一些条件,机器生成大量的参考,然后设计师再进一步深入设计:

协同创新框架

你认为,人机关系变化是由

设计,还是技术带来的?


宁静技术Calm Technology,倡导技术无缝地融入人类的生活,而不是让人类时时感到技术的存在。通俗点来讲,我们不会消失在电脑空间中,而是电脑将消失在我们的生活

通过智能手环,界面融入到我们生活当中。我们需要做的可能只是晃动一个手势,几句语音应答而已。
保持好奇心,以开放的心态,持续学习。我自己每天都会在《MIX+人工智能》更新人工智能交叉学科的习得。

516人正在学习AI+泛设计
扫码加入

 

3  计算机思维是什么?
是写代码吗?

雷军在小米之前,做了10年程序员。京东刘强东在一次讲座上,称自己大三(1995年)的时候,给别人写代码,一个晚上就能赚5万……

但是,写代码是困难的吗?Mixlab群里一位朋友,学习Python,在坚持了2个月左右,最终放弃了。他觉得代码要学习的知识太庞大了,不知如何入手,一旦有新问题解决不了学习进度就卡在那里,从而越学越觉得难
 
我认为,代码最难的是逻辑,尤其是复杂的逻辑

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

那么,问题来了

学代码应该学什么 


试试回答以下问题,来掌握程序运行的逻辑:
01   如何通过指令给计算机安排任务?
02   计算机如何按我们设定的条件执行任务?
03   计算机是如何执行重复执行任务的?
04   计算机完成任务的时候如何反馈给我们?
 
学代码有方法吗? 一般来说,初学者有2类:零基础,指的是系统了解过编程语言的;入门级,会一门编程语言,会写一点点代码,但无法自己完成一个项目从0到1构建的。

我的学习心得

如下:


01 最小项目实践+系统地刻意练习 
如果是零基础,建议先学一门语言,一步步来,适当增加实践项目的练习,比如DIY一个以图搜图引擎等类似的项目。当你学完这一阶段的入门,不再是0基础之后,就可以尝试了解各种语言的环境安装、最小可运行代码集,以及各种开发工具,尝试各种好玩、复杂的项目了。
 
02 最小可运行的代码集
主要通过看示例,包括作者提供的示例代码,网上文章提供的示例代码等;

举一个的以图搜图代码示例  turicreat
03 理解功能
理解代码里的每一句的含义,真实的行为,就跟读书一样,知道作者的核思想是什么;比如下面这3句:
第1句 是初始化一个类,
该类可以提取图片的特征向量;
第2句 是通过文件路径打开图片;
第3句 是从图片提取特征向量。
04 关注输入、输出的数据结构
输入是字符串,还是一个列表,还是一个字典?输出的是什么也非常重要。比如输出的时候,有None的可能,那下一段代码对此输出结果引用的时候,就要注意啦。 如果输入_idea为"",输出为None,这个时候写代码的时候就要留意输入跟输出的各种可能。      
05 即搜即用
当你掌握以上技巧的时候,就会发现没必要从头到尾全部一口气把代码全部学完,需要的时候再快速翻阅文档,通过示例、输入输出、理解功能这三个点,就可以现学现用啦。配合搜索引擎,我们几乎可以解决任何编程问题
 
06 优雅的代码
对于初学者来说,需要关注如何书写优雅的代码,主要表现在:

代码所在位置恰当;
有适当的注释;
适当的缩进和空行;
以及没有重复代码……
 
这里面的内功修养,离不开设计模式(插入文章链接)和代码重构,还要有非常多的实践与刻意练习。写代码是基本功,锻炼的是逻辑思维能力,跟解决问题的能力。在不久的未来,写代码也是可以机器完成的。pix2code 等论文就提出了一个强大的前端代码生成模型,解释了如何利用 LSTM 与 CNN 将设计原型转化为 HTML 和 CSS 网站。


 不变的是什么?
学代码,应该更多地关注底层逻辑思维能力。 

作者:Shadow

    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多