首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

学编程的正确姿势

公众号   超人编程

前言

先说结论,很多人学编程长久不得进展本质上是思维方式尚未到位。

网络上流行过穷人思维与富人思维的说法。

编程自然也会有编程思维。

下面介绍几个 coding man 常用的思考姿势。

这几个思维能助你早日从 coding man 的视角看问题,学习起来事半功倍。亲身体会,在以这些思维作思考姿势的情况下,学新的语言如喝水一样。曾在 0 手机APP开发经验的情况下,接了朋友一个手机开发的项目。3天时间把 flutter 摸了个底便开始开发,最后还提前半个月完成了项目。

第一性原理

首先提到第一性原理是因为马斯克,辣个无所不能的男人,所用来描述他的思维模式的词。

虽然这个词最早出自古希腊哲学家亚里士多德提出的一个哲学术语:“每个系统中存在一个最基本的命题,它不能被违背或删除。”

看看马斯克这个男人创办的企业。

Zip2:企业黄页

Paypal:电子支付

Spacex:太空技术探索公司

Tesla:电动汽车

Boring:地下交通开发公司

这几个企业所涉及的领域完全不同,多数人能在一个领域有所建树已是难事。而马斯克几乎在这些领域都做到了行业第一。

在采访中,马斯克透露自己非常推崇的思维模式是“First principle thinking”(第一性原理)

原话:我们运用“物理性”思维而不是“比较”思维去思考问题是非常重要的。我们在生活中总是倾向于比较——别人已经做过了或者正在做这件事情,我们就也去做。这样的结果是只能产生细小的迭代发展。“第一性原理”的思考方式是用物理学的角度看待世界的方法,也就是说一层层剥开事物的表象,看到里面的本质,然后再从本质一层层往上走。

马斯克会这样说跟他是物理学出身有关。但简单理解,不就是老师常说的:“要先理解原理再做题吗”。

我见过很多新手学编程喜欢做笔记,满满一本子的内容。借过来一看,好家伙,全是各类库的接口变说明,比官方文档还详细。

开发的时候不是有google可以查吗,费这劲折腾干嘛。学习时该花的精力应该在理解代码背后设计的原理上。

学习原理对我们有什么好处呢?

因为计算机构成是一层一层搭建起来的。当我们理解系统层的原理后, 由于系统层开放出来的接口对于每个语言都是一致的。 我们就会发现每个语言能做的好像都差不多,语法上的不同更像是一些语法糖。

这样子你会发现 C、java、python等都差不多,设计模式上也都几乎通用,只是由于他们的侧重点不同,应用场景略微不同而已。

我们学编程语言的时候就可以有一个路线可寻了。

了解其应用场景

学习其基本类型与运算操作

理解其面向对象的写法

接触应用场景下常用的第三方库

实战开发

这条路子对任何语言的学习都是相通的,遵照这条路子便能几天内轻松上手一门新的编程语言。

黑盒子思维

黑盒子思维的意思是当我们使用一个东西时,需要把它当作一个黑盒子,无需看透其实现原理,只管使用。

“黑盒子”的思路正在各行各业运用着,即使你并不清楚它的名字。最流行的面向对象的程序设计,就是由底层编程者将很多功能和属性封装到对象中,顶层编程者只需要调用这些属性和功能即可,而不需要关心它是如何实现的。

这条理论乍看之下与刨根问底的第一性原理相互矛盾。

但两者的前提不同,学习时需要应用的是第一性原理,而实际应用时需要我们使用黑盒子思维。

使用黑盒子理论后,可以让我们的代码高内聚低耦合

黑盒子理论乍听起来很抽象,但无非是多多运用以下写法

多多运用函数封装代码。

将可复用的代码写成组件。

将功能不同的代码抽离成服务,使用 socket 或 端口通信。

面向接口开发,养成写代码先定义函数参数、服务接口再写实现代码的习惯。

积木思维

积木思维讲究的是整体上的思考,从大到小来规划我们的代码结构。

我们在搭积木时通常会先构思一个大概框架,再通过对框架的查漏补缺来完成我们的积木。

写代码亦是如此。

比如要写一个网站,便可以像搭积木般进行拆分。

如此便可以将其大致架构理清楚,一步一步往里面添轮子即可。

这样的好处是让我们避免写代码时无头绪,同时能维护一个健壮可扩展的代码架构。

结语

以上这三个思维是日常学习与开发中常用的思维方式。

按照这些思维模式来学习便可达到一个事半功倍的效果。

也可针对自身的习惯再加以微调,内化成自身的思维习惯。本质上还要多练,多多阅读大佬所写的项目,通过实战来固化自己的思维方式。

京ICP备20010819号-5

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20210129A07FR700?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券