关于
github: https://github.com/zhou-yg
语雀: https://www.yuque.com/zhouyg/uwo0d3
过去做了很多类型的业务(B端,C端),各种不同技术项目(通用低代码,专用低代码,node框架,脚手架,组件库),有些项目很有意思,让我收获了很多成长。
随着编程生涯的推进,对于这些有“个人价值”的项目,我总结出如何通过一些特征,从而把时间花在正确的方向上
会分为3个关键部分:
- 我对什么兴趣
- 我会什么
- 不会什么,但会提升的
一、我对什么感兴趣
以下是列举一些特征
Visual media
通过屏幕媒介进行视觉信息传达的内容,主要包含文字,2D/3D图像,视频,可视化应用,互动游戏等,
配合音频,通过设计的互动操作,这类内容能够传达丰富的内容信息,让人获得快乐
效率工具
工作和生活总会碰到各种不便捷的事情,使我们的效率变低,不快乐,甚至于感觉呼吸都不顺畅,那么如果能够把一些稳定,低价值水平的事情交给机器来做,那么我就会有时间做更多有“创造性”的事情和休闲
所以效率工具很重要,以及能够高效率创建“效率工具”的工具更重要
二、我会什么
在我不久的编程生涯里,学习了很多编程语言,各种平台的API。在早期,我曾经以为所谓编程技能的提升是要能够掌握很多语言特性,编程框架。
但现在我有了一些改观,会回于语言自身,更多时间思考关于“如何设计更好的抽象”之类的问题,在这之前我会列举一些对于提升“抽象水平”的关键知识或工具
Typescript
编程语言是开发的最通用的底层工具
而且这是一门全新开源的,在现代设计研发的语言,不是简单描述为 js + 类型系统。
深入Typescript,是非常难得的,能够近距离的旁观到一门语言的发展,得知为什么要这么设计,以及它的语言自身实现原理是什么。
异步编程
源自JavaScript的异步单线程模型,通过异步编程,我能够解决IO密集型和事件驱动的场景,这得益于对全局变量,任务队列 以及 低负担的无锁编程
DSL
我通用会使用 DSL + runtime(或出码)的思路解决领域内的问题,并沉淀了为一个特定DSL。
这非常考验DSL的设计,一旦问题域边界错误,意味着DSL就需要迭代,甚至于完全重构。
这块持续深入之后,还可以延伸图灵完备的通用DSL,即我们熟悉的编程语言
低代码
低代码的核心在于DSL和可视化,
三、不会的
过去做过简单尝试但是没有深入的
多人协作
在web应用平台普遍流行的今天,多人协作是越来越作为一个基础功能而存在。这个功能是兼具通用属性和业务属性,值得深入探索
多线程场景的并发编程
由于习惯于异步单线程的思维方式,使我在并发编程中总是习惯于加锁和任务队列,然后将问题简化异步单线程模型。也许应该多花一点学习真正的高性能并发编程
物理硬件
大部分时间我学习的都是编程语言 和 平台API等上层软件,得益于它们的良好封装,使我对于硬件知之甚少。但现实情况是每次的硬件设施升级换代才有机会带来上层软件的革新,需要保持对新硬件的关注和对应的解决方案
WebGL
增强web的图像化表达能力,突破在极端场景的视图性能瓶颈,提升视觉效果的天花板。类似于webAssembly,此类能够提升天花板的技术都是值得投入的