半路出家的菜鸡程序员,北漂五年,给刚入行朋友的一些忠告,发自肺腑

2021年07月21日 14:53 70 次阅读 来源: _陈哈哈 作者: 路人甲

大家好,我是陈哈哈。认识我的朋友们知道,我是非科班出身,半路出家,大学也很差!这种背景来北漂,你都不知道你会经历什么。
如今虽没有风生水起,但在技术这块儿也算是有了些许发自内心的底气,去年和今年有幸得到了几个(< 3)普通大厂(非一线)的offer邀约。在这里多谢各位引路人,确实还没到时候,在此抱歉。

前车之鉴,后事之师。希望我的文章们能帮助你少走些弯路。打工人不易,加油!

今天想把我的一些真实的小故事分享给大家,包括我的菜鸡学生时代 → 入行 → 现在,以及工作五年结合亲身经历的一些忠告。如果对你有用,请记得分享给你的朋友们!

一、六年前的LOL电一大师,六年后的北漂程序员

从高中(s1)到大学(s7)打了7年的LOL,电一大师、网一王者,一度准备打职业。多的不再赘述,要知道,那些除了纪念和情怀,对我都不再有意义。

难以启齿,LOL算是陪伴了我的半个青春,因此我对它的情怀冲淡了他对我职业生涯的伤害。去年我挤地铁时看到了s10总决赛,才发现我已经快4年不曾想起过这个游戏。甚至突然想写一篇文章叫《六年前的LOL电一大师,六年后的北漂程序员》,太有感觉了,脸上发热,我越写越投入,好像激活了心底尘封多年的一些记忆。我恍然发现自己曾经也是那个奔跑在阳光下的少年,有梦想。有一起拼命奔跑的朋友,时常因训练失误我们全队人不吃饭一起惩罚。

但我停笔了,不愿再回忆那段往事。唉,或许你也知道那种感觉。

是的,我怕回不来,回不到这个真实的社会、职场。自己接受不了,分不清这个社会到底给我们这代人带来了什么。。就像我来北京前最后一个晚上,改名为:忙碌充斥回忆。

分享我最喜欢的一句台词:
我曾踏足山巅,也曾坠入低谷,二者都使我获益良多。---- 塔里克

二、刚入门时的苦,只有熬下来的人知道

出来混的都不容易,刚入门时的苦,只有熬下来的人知道。

半路出家嘛,你知道的。

大家坐到一起的都是朋友,一开始三四十位同学,现在还有消息的,不到十位了。

都是如出一辙的身世。但,既然选择入这行,态度至关重要,凭本事吃饭,如果只冲着混个工作去的,我建议你还是耗子尾汁。

我属于没有天赋型的,一开始咱啥也不会,听啥都模模糊糊的,似懂非懂,很多知识点都学到那种意会了但不能言传的水准,一度还挺自信的~~后来我知道,其实这就是不懂!那半年我和几个朋友每天早上7点到8点和部队的大爷们打蓝球,然后上课,晚上坐到九点多看门的大爷来撵人,周末一天必须回顾一周学的知识,尽量搞点东西出来。

周六我休息一天,这天我喜欢找个角落看看视频,看看博客,体验一把程序员996生活的那一抹闲暇。

直到拿了两个offer下山。

希望刚入坑的同学们明白:不要以看完多少课时为目标,或晚上学到几点为榜样。

三、五年程序员生涯,给你的一些建议

北漂五年了。岁月如梭,不是么?

坦白说,其实这里才是我想和你分享的第一段内容。

希望你理解,毕竟,人到中年,总会容易勾起很多过往。像每当夜晚下班经过后厂村路时,哼起那首熟悉的歌谣,“春风不解风情,吹动少年的心~ 让昨日脸上的泪痕,随记忆风干了”

1、与人交谈比与机器交谈更重要

编程是一项团队运动!

现在早已不是那个一把刀闯天下的年代了,更多是需要多元化技术团队的整合,才能够创造出一个出色的产品。

沟通技巧可以成就一个项目,也可能会毁了它。相比存粹的技术,软技能对一个项目的成功起到更重要的作用。我们需要学习如何与不同的人有效地交流我们的想法和思想,以解决我们(作为一个团队)面临的问题。

就像我常常和同事们开玩笑说,每当我遇到难攻克的技术难题,我都会买两瓶可乐去找产品,和他一起抽根烟,打会儿球,谈谈人生理想,往往能解决我难以解决的问题。

2、知晓你在做什么以及为什么这么做

人一旦有了明确目标,效率和主动性会明显提高,就像我每每深夜读完鸡汤文,我就睡不着。其实,在工作中也是一样的。

作为软件开发人员,你的目标不应该只是把 JIRA 转换成 JavaScript,或者把 Github 中的开源项目合到你的 Java 程序中。

你的目标应该是用代码来解决问题。

如果你对要构建/维护的系统有深刻的了解,则可以在纯技术之外做出决策。这个功能是必需的吗?它解决了什么问题?可以用其他方式来解决这个问题吗?真的有必要解决这个问题吗?在强调一下,有时解决问题是不需要任何代码的,你懂我意思的。。

这种思路有时被称之为业务环境,如果你想把工作做好,不仅应该了解项目情况如何,还应该能够塑造和影响环境。即使你在公司里不是Leader,也不影响你这么做,至少,你要明白自己在做什么。

你的领导会看到你和其他的同事不一样,肯定是优于他们的。

3、防患于未然

墨菲定律:会出错的事情就一定会出错。

这是太真实的事情之一了。设计系统时,我们要始终假定某些东西可能会损坏。

比如开发登录表单提交功能时,要假设用户会把百度里的任意一篇博客或一堆符号粘贴到你的密码输入栏中。

如果系统中使用了数据库,它一定会在某个时刻挂掉。如果你没有尝试过使用你的binlog日志或延迟从库等途径的备份来恢复数据库,那它们就算不上是备份!比如和你对接的那个前辈对你说“别想太多,不可能宕机”这种话,别信他的,记住一定要找他问清楚,搞清楚里面有哪些坑。否则,真正出现这个问题的时候,你只能做好跑路或背锅的打算。

如果你在给客户做演示,请确保这个演示在任何情况下都能正常进行,哪怕是同事把服务器电源拔了!我经历过在会议室演示时,公司wifi断了,连不上服务器。客户和老板吃着西瓜等我恢复,运维告知我一时半会儿恢复不了。

坦白说这种情况完全可以甩锅给公司网络组,但是锅不能让老板背吧?于是怎么着,我叫运维把服务器从机房运到会议室旁,拉一条网线继续演示。如果你是老板,会咋想呢?

4、别害怕让别人看到自己的一无所知

我们曾如此渴望命运的波澜,到最后才发现:人生最曼妙的风景,竟是内心的淡定与从容……我们曾如此期盼外界的认可,到最后才知道:世界是自己的,与他人毫无关系。– 《一百岁感言》杨绛

这里用杨绛先生的话来当引子,作为一位工作多年的资深程序员,当别人问一些我不懂的问题时,我可以很淡然地告诉他们:这个东西我也不懂,因为以前没有遇到过,不过我可以看一下,然后再告诉你。这样也会让他们感到被尊重。

当我还是一个初级程序员的时候,我总是很害怕别人会看到我的无知。经过几年的磨练,我才明白,如果碰到了自己不懂的东西,说明学习的机会来了。终身学习绝对不只是一个“口头禅”。

5、学会分享

等你把不懂的东西搞懂了,记得把它们分享出来。写一篇博客,录个教学视频,或者有机会能在公司里搞个分享演讲……你不要认为你刚学会的东西别人也都懂,即使是一个非常资深的人,他们也能从初级人员身上学到东西,反过来也是。

分享的过程其实是一个检验你是否真正理解所学的东西的过程。要知道,当你在教一个人的时候,其实有两个人在学。

记得早先在一个问答中问到:

你的编程能力从什么时候开始突飞猛进的?

有个令我印象很深的回答:突飞猛进往往是自然发生的。你在某个夜晚苦熬一个知识点时,不会觉得自己突飞猛进;只有在多年后某日熟练地给别人讲解这个知识点后,内心才会小小地波动一下,猛然忆起当年深夜中的青灯一盏。

共勉。到这里,我想你也是个有故事的程序员,请不要吝啬你的赞个收藏哦!

~阅读全文-人机检测~

关注下方微信公众号“Java精选”(w_z90110),回复关键词领取资料:如Mysql、Hadoop、Dubbo、Spring Boot等,免费领取视频教程、资料文档和项目源码。 微信搜索小程序“Java精选面试题”,内涵3000+道Java面试题!

Java精选专注程序员推送一些Java开发知识,包括基础知识、各大流行框架(Mybatis、Spring、Spring Boot等)、大数据技术(Storm、Hadoop、MapReduce、Spark等)、数据库(Mysql、Oracle、NoSQL等)、算法与数据结构、面试专题、面试技巧经验、职业规划以及优质开源项目等。其中一部分由小编总结整理,另一部分来源于网络上优质资源,希望对大家的学习和工作有所帮助。
还可以输入136 讨论区:
评 论