← Back

前五年

2025-09-30

计算机相关的专业一开始必学C/C++,边学边会伴随着一些科班经典课程:数据结构与算法、数据库、计算机网络、汇编等等。等到这些课程学完了以后,就好像没事干了一样,笔者也闲不下来,又不是特别喜欢C/C++,于是从网上找了一本《Java编程思想》,大三没课的时候,天天抱着这本书在图书馆啃,早上啃代码,中午吃饭,下午把书里面提到的习题实践一遍,基本上一天就这么度过。等到大三结束的时候,笔者算是掌握了怎么写Java了。也庆幸这一学期的“刻苦”,让我这个上大学前还是个计算机小白的人,逐渐对编程有了基本的认识,也逐渐了解到了毕业以后到底要干什么了。会了Java以后,我又开始去学习如何系统性的开发一些软件,比如使用SSH架构(OMG,当时的经典架构,Spring Struct2 Hibernate)开发Web应用程序,用JSP写Web页面;用Java Swing框架开发客户端软件。在没有如今AI的帮助下,当时各种问题就是baidu,去各种论坛找解决方案。幸亏当时还比较喜欢折腾,真的是非常原始的方式去开发应用,让我如今对于一些开发技术能够很直观地去理解,而不是像现在一些开发者一上来就接触的是比较“黑盒”的框架。

等到毕业以后,我到了一家传统公司工作,招聘时考察Java,进去就去做C#的东西了。这家公司的一些业务技术栈是.net framework框架(还不是现如今的 .net core),专注于Windows桌面客户端程序开发。不过笔者上手C#很快,因为它们太像了,甚至笔者主观上认为C#比Java要好的多。至于为什么C#没太流行,我倾向于微软一开始的让它绑定到Windows 平台以及闭源有很大的关系。使用C#的一年多的时间还挺快乐的,比起服务端程序,这些用C#开发出来的桌面客户端对于笔者来说成就感更大,因为你能看着它一步一步建立起来,是一个很具象的东西。也是在这一年多的时间,对GUI程序的基本模式也更加了解了。比如UI组件的事件机制,GUI程序的事件循环等。后来又接触了WPF,让我好像发现了新大陆,OMG,原来GUI开发的数据驱动是这么舒适。WPF里面的一些思维模式也直接对笔者后来的Web前端开发产生了深刻的影响,以至于后来的上手Vue、React的时候,简直不要太简单。

是的,后来一次偶然的契机,公司让笔者开发一套前后端分离的Web应用的时候,笔者从这个时候开始接触了Web前端应用开发(当然这个时候笔者还要写Java后端服务)。等到这个应用开发完成后,笔者已经对Vue这块基本上掌握了,于是笔者趁热打铁,接下了公司的IM产品重构项目,调研了一番发现了Electron,又使用Electron + Vue开发了一个桌面的IM应用给公司里面的业务方使用。开发完了后,又搞了一阵子的Qt,不过这个时候有一个比较拿的出手的东西就是用Qt结合了CEF做了个客户端渲染H5的框架,在空闲时间把这块的知识整理了下,开源到了Github(放心,没有泄露任何公司业务),也写了一系列的《使用CEF》文章进行了总结,收获了很多也在搞这块的同行的好评,甚至还收到几笔付费咨询。但是这块做的差不多还没收尾的时候,组织架构调整了,我被调到了另一个组开始搞基于React的低代码平台(那年好火)。搞低代码的这段时间很累,概念是新的,还伴随着大老板的压力,整体做下来了,收获了客户,也收获了质疑,质疑这东西的价值。不过我倒是挺沉迷技术的,也就没有在意这些。

在这家公司我学到了很多东西,但大多数都是技术的,都是自学的。因为这家公司是一家大公司的子公司,相当于“内包”,很多需求都是leader通过业务方提出的零散的诉求“想象”出来的,没有专业的PM来进行产品分析。直到去了后来真正意义上的互联网公司,我才真正了解到了一款产品究竟需要多少团队的公共合作才能做好,不过那都是后话。

本来我在第一家公司待的挺好的,公司也给到我很多激励。不过作为白羊座的人,一旦产生了某些想法一些,就会下定决定去完成它,比如离职。为什么产生了离职的想法?因为团队内的一些人事物让我很不舒服,就像我上面说的一样,没有真正的PM和好的leader去让一个产品走向正确的道路,这个团队就会做出一些无效的付出,这些无效的付出会逐渐消磨一个人的精力,人的精力是有限的,并且笔者也不再是少年了。

暂时就写到这吧。