首页 > 初级互联网打工人随笔
头像
晓喻
编辑于 2020-12-28 21:17
+ 关注

初级互联网打工人随笔

秋招结束了,但作为一名互联网打工仔的修炼之路可能才刚刚开始。。。周末在睡完一整天后有时也感觉挺无聊的,就想着写点东西记录一下生活。如果能对点进这篇文章的你有点帮助那就再好不过了。欢迎任何建议和批评,虚心接受~


正题

成长,一个反复被提及的关键词,围绕这个词的讨论或许已经不再有多少新意,但这的确是时刻面临年龄焦虑的互联网人最最在意的事情。

对于它的思考是由mentor分享给我的一篇内网文章引发的。

这篇文章的题目名为《如何成为技术大牛》。主要观点精简整理如下:

1.焦虑不可怕,焦虑是渴望在内心的投影,内心焦虑说明对于成长足够渴望。不管身处哪个阶段,校招生、工作几年的高级开发者、甚至是更高职级的首席工程师或者是技术总监,只要想跳脱出原来的舒适区,继续向上成长,都难免焦虑,我们要做的,是正视焦虑,然后接纳它,将它化为己用。

2.程序员的35岁危机,源自于缺乏成长,也就是脉脉人口中的“老白兔”。工作年限没有转化成对应的能力,又有了家庭的负担,于是在人才市场上的竞争力反而不如初出茅庐却活力十足的校招生。

插句题外话,这个观点也许会被喷成“工贼”,尤其是资本家在网络论坛上被喷得一无是处的今天。但网络上的口水终究是淹不死人的,物竞天择的森林法则在职场上具现得更加残酷,如果你是资本家,你会怎么选择? 没事高喊几句内卷,痛骂几声马云,给知乎上的毛选段落回答点个赞,挺简单也挺爽的,但改变不了这个世界的运行轨道。

3.技术成长的方式是刻意练习。包含三个步骤:

  • 找到所在领域的范式

  • 针对范式反复学习和练习

  • 及时反馈(思考、记录、复盘、总结)

正确的学习方式是,进入一个新的领域时,先看一些经典的综述文章,或者通过一个小的点去感受(不过也许这样的点很难找到),快速搭建自己的认知体系框架,具体细节可以先不做了解。之后再针对某个知识点,不断学习,而后在工作中对其加以运用, 之后再去思考、复盘,在运用的过程中碰到了哪些卡点,是否已经是当前最优解。

所以,在一段学习的过程中,最重要的阶段不是最开始的学习阶段,而是对基本知识有了一定了解之后的,运用、反思的过程。这个阶段是你真正将该领域的知识化为己用,甚至是容纳进你自己的能力体系的过程。

所以工作和学习绝对不是割裂的,空学不用等于没学,那只是纯粹的理论,即使全部理解、熟练记忆,最终没办法搭进自己的体系内,属于ROI(投资回报率)非常低下的事情。作者举了自己阅读Linux源码的例子,啃下了许多大部头,但一直没有用武之地,缺少了练习和反馈的过程,收效很低。

对于这样的错误校招生们也许犯得更多,为了求职去看一些Spring源码、JAVA虚拟机的原理,熟背相关面试题目,在面试中能够滔滔不绝,但对于解决问题的能力却几乎是没有提高的。当然,这也是当前应对企业考察的无奈之举,我自己也是这么过来的。

有人说,这是面试造火箭,工作拧螺丝,我觉得也不然。这些知识也不是屠龙之技,只是对于学生来说没有太多的机会去加以运用,那么在工作中,就要做到处处留心,碰到问题多去追根溯源。比方说计算机网络里经典的DNS解析过程、操作系统里磁盘IO方式对于性能的影响、把这些知识在工作中去加以印证,这就是理论和实际相结合的第一步。

碰到问题了,对于底层远原理不了解的增删改查工程师束手无策,但对于技术全链路都掌握了的工程师就能够做到trouble shooting,精准定位问题排查问题,给出解决方案。业务代码也许随便找个人都能写得出,而解决问题的能力才是一个程序员的核心竞争力。


个人体会

复读结束~接下来谈谈我个人的一些想法(虽然已经混杂了一些私货哈哈)不得不说我还是很幸运的,碰到了一个非常nice的mentor,虽然一直被push,但的确能够帮助我成长。在这一个月的相处中,他反复强调的也有很多和上面文章内容相重合的部分)

  • 努力成为一名全链路工程师,需要了解的不仅仅是自己负责的模块,上游的请求,参数是怎么得来的,返回的数据是怎么加以运用的,都可以多去留心,这是解决问题的关键,不要给自己设限。甚至是产品的逻辑,都可以多去思考,在必要时把自己带入产品和用户的角色,不要成为只会做需求的工具人。

  • 写代码只是程序员的门槛,只会写几行代码没什么价值,程序员的核心价值是解决问题的能力。努力做一个所有人一出问题就会想到的人,一个让别人依赖的人。

  • 碰到问题自己先想想,理顺逻辑。这是我比较欠缺的一个点,经常会问一些蠢问题。原因还是缺乏解决问题的经验,以及心态比较急躁,思维有时候比较直,不太转弯。

还有一些感触忘记了。。。比较尴尬,下次可以写在每天的日报里,方便查找。。。确实还蛮佩服mentor的,交流的时候最大的感觉是,我的什么问题他都能很快接得住,并且找出我的问题的漏洞或者是在原本的基础上加以扩展延伸。与之交流确实感觉获益匪浅。


这周也发生了一些比较有意思的事情,圣诞公司发的小礼物是一个小日历,由两个骰子组合而成。我拿到时只是随便把玩了一下,没有多留心,mentor看了一会,给我出了一道智力题:

  • 两个骰子一共12个面,每个骰子上面的数字应该分别是多少,才能组合成日历所必须的01-31内的所有数字。

可以从这样的角度去思考:

  • 一共12个面,每个面的数字只能是0-9中的一个,而0-9也必须在12个面中至少出现一次(否则没办法表示了),那么,就已经占据了10个面的资源。

  • 余下的2个面,代表着有2个数字是重复的,出现了两次(当然也可以抬杠说也许有的数字出现了3次,但其实不可能,没有意义)。那么只要找出这2个数字,问题就基本上解决了,剩下的数字怎么分配给骰子就比较简单了。

  • 很容易想到,重复的数字必须有1和2。否则无法表示11和22。

  • 但吊诡的是,问题到这里还没有解决,因为重复的数字不仅仅只有1和2!0也必须重复,因为我们需要表示01-09的所有数字,如果0只有1个,那么另一个骰子要有1-9里的所有数字,这显然不可能,骰子只有6个面,所以每个骰子里必须都有0、1、2,只有3个面可以自己支配。

  • 可是刚刚已经算出只有2个面的空余,怎么去再重复一个面?答案是6和9可以用一个数字表示

    非常巧妙的实现方式,完美利用了骰子的12个面,小礼物也正是这么设计的。

    mentor兴高采烈的说下次面试就给候选人出这道题。我内心:“魔鬼吧。。。。。”

全部评论

(10) 回帖
加载中...
话题 回帖

相关热帖

热门推荐