我在北京写代码

我在北京写代码(125)

2024-07-20  本文已影响0人  鲁棒棒
我在北京写代码(125)

作者:鲁棒棒

写于:20240721

正文

接了迁安的这个项目我就开始研发工作了,我记得上个项目是 PYTHON 的,然后我的习惯是每次都是用不同的技术栈来做,所以这次我选择了我最喜欢的 PHP,PHP 至今仍然是我最喜欢的编程语言,为什么呢?可能会有人觉得我的品味有非常大的问题,但是我有三百条原因来说明为什么 PHP 是小微企业首选的技术栈,抛开甲方项目不说,因为有的甲方有一些技术方面的要求,我的意思是,如果我开始做一个全新的互联网项目,我还是会首选 PHP,首先是因为它足够简单,没有太复杂的东西,大部分的业务流程,PHP 都可以非常好的完成,并且在完成的同时保持非常简单,我说的是简单,而不是 “简洁”。

有代码洁癖的人可能会非常反感 PHP,因为它的语法丑陋且诡异,并且生态近几年已经落于下风了,与 python 和 Java 相比的话,自然是有一些下风,因为毕竟市场上用 PHP 的企业越来越少了,那么招聘与就业就会受到非常大的影响。其次就是 PHP 这种比较杂合且草根的语言,开发者的质量参差不齐,导致一些工程师可能被 “PHP 虐待过” 所以对它有些偏见。

比如在前几年,大概是 2010 年左右的时候, PHP 风华正茂,那么你可能进了一个互联网公司,然后负责维护一个 PHP 项目的 “Shit Mountain Code”,那么这么多的 “Shit Mountain” 实在是太乱了,最后你顶不住压力,无法解决好老板交给你的任务,然后你不得不在试用期选择离开,之后可能你就因为 “PHP” 而得上了相关的 “PTSD”。这是很正常的,我也维护过一些比较杂乱的代码。

我认为首先是开发者的问题,也就是 “工程师” 的问题,在比较早期的时候,你想找一个专业的,拥有软件工程学位,并且精通软件工程方法论与实践论,以及各种设计模式,同时精通计算机软件研发的人是非常困难的,鉴于在早期大学里的计算机教育与市场有些脱节,导致人才难觅,同时加上 “PHP” 比较亲民,简单学一下也就会了,不管写什么软件,搞个表单,一顿提交,MYSQL 里面一顿 “Select * from users;” 也就全部解决了,项目刚做起来的时候,没人关心有没有性能的问题,代码逻辑好不好,同时未来的问题多还是少,老板也不会关心,因为如果项目能进展到 mysql 的瓶颈期,那么老板可能早就已经找到接盘侠了,接下来维护代码的人,少不得从一开始的 “PHP 草莽英雄” 换成一批 “海归硕博” 或者是 “986/212 天才团队”,因为那个时候可能公司已经不缺资源了,一个月多付出几万元工资,肯定能找到合适的工程师,那么自然就能解决大多数的难题。

在软件工程领域,或者说互联网软件研发领域,几乎没有问题是别人没碰到的过的,你能想象到的最奇葩的需求,可能早已经被实现了一万次,所以我觉得,现在的研发工作,越来越像 “乐高积木” 了,重要的是技术能赋予我们这些企业家什么能力,以及拥有这些能力能创造出什么有用的东西,好玩的东西,能够对人们的生活有所帮助的东西。

然后具体的细节,其实可以不用考虑太多,我一开始是一定要弄明白自己所用的任何一项技术的,任何 “Tech” 都去搞明白,是不现实或者说完全做不到的。比如最最最最常用的 MySQL,如果一个人说他是 MySQL 高手,我是十分怀疑的,包括简历里写着 “精通 MySQL” 的人,我认为精通一个东西,那么必然就能实现一个东西,如果你问他一个问题,比如

“重新实现一个 MySQL 存储引擎,并且使用内存进行存储,你会如何设计和实现,十分钟内简述一下你的思路,并塔讨论与 REDIS 的异同”。

这样的问题想必会难倒一大批工程师,当然包括我在内,虽然我自认为没有任何技术问题可以难倒我,但是我还是没有办法马上回答这个问题,首先我只会用 MySQL 的一些皮毛,这对我平时来说已经完全够用,毕竟我没有任何一个项目因为 MySQL 的应用而砸锅,大部分都是因为市场或者 “经济与运营” 方面的问题而砸锅。

我是否对 MySQL 感兴趣呢,我对 MySQL 确实很有兴趣,但是我并没有太多时间去跟 MySQL 太较真,如果我还在读大学,我可能会花整个学期去研究 MySQL,并且尝试复现它或者给它提交代码。就我现在的想法来说,我可能更想去利用这项技术做一个对大部分人都有用的东西。

其实我不太知道自己该如何表达这个想法,如果硬要说什么是对工程师最有用的知识,我认为不是计算机,也不是编程语言,更不是某某框架,而是 “数学” 和 “物理”,这么说可能有点太奇怪了。可能就一般的工程师而言,觉得数学距离自己很远,其实如果缺乏基础的数学知识,就没有办法去抽象出具体的问题,比如最最最基础的如何预估一个算法的复杂度。

你说你如果真的不知道指数函数,对数函数,你看了十篇教程,教你如何预估算法的复杂度,那么你也看不明白,但是你又不想拿起高一数学课本重新学习 “函数” 相关的章节,因为你太浮躁了,只想赶紧写出能让自己发达的代码,而忽略了所有重要的实事。

最后恐怕这类工程师会很难在研发上有所成就。其次我认为很多研发业务并没有这么细节,所以我觉务实一点可能比较好。

我对自己有最基本的两点要求,首先工程师的工作是我的从小就有的一个理想,这不是 “当宇航员” 这样的比较遥远的梦想,我完全有这个能力去成为一个比较至少算是中上等的工程师的能力。所以我的第一个要求就是能够成为一个合格的工程师。

而我对自己的第二个要求就是能够参与到 “产品” 中来,就是搞出有意义,有意思,有用的东西,不外乎任何形式的产品,这大概就是我接下来的方向了,很难说明白自己的想法不过大概就是这样了。

今天就写到这里,今天是周日,好好休息。

上一篇 下一篇

猜你喜欢

热点阅读