为了账号安全,请及时绑定邮箱和手机立即绑定

精神小伙: 写代码是世界上最好的工作, 不接受反驳!

标签:
Java 面试 开源


前言

每逢金三银四 , 像作者这样的IT码农, 会按奈住内心对 996 和 产品经理 的一万种脏话, 偷偷将手中的简历更新, 投往互联网各公司的HR手中 , 这时IT论坛里也热闹起来了, 各种大厂内推和求内推的帖子被顶的火热. 有些幸运的 码农拿到了些大厂的 面试邀请, 想着大厂入职后诱人的福利, Double 的薪资, 不少年轻的码农不知不觉流下了口水, 兴奋的彻夜难眠...




https://img3.sycdn.imooc.com/5e98f50100011f0b06400420.jpg




激荡风云

据说今年毕业季找工作是地狱难度, 最近我加了个 计算机应届生 找工作的群, 青年学子们林林总总的只言片语 让我触景生情, 谁毕业时不带着 对未知的慌恐, 当年刚毕业时我也是一个小白 !

有幸去武汉xxx研究中心的一家 IT公司面试, 拿到邀请的当晚激动的彻夜难眠, 因为这是我少的可怜的实习机会。 清晨早早的赶去目的地, 透过公交车窗看到外面的天空雪花飞舞, 我提前 30 分钟到了该公司附近, 那时的我青涩害羞 并没有到办公楼中躲雪。 到了时间我打电话联系了面试官,刷了身份证进入办公楼, 顿时浑身冷冰冰的我置身于暖和的空调房里, 像干枯的白菊花放在了热水中说不尽的自在。

面试官看上去和蔼可亲, 我们聊了一会, 他拿了一份 面试题给我做, 我依稀的记得上面 有一些 关于 Java 排序算法和 多表查询的SQL题目, 那时这些题目对于我来说 有点难度, 我绞尽脑汁的把这些题目做完 颤颤巍巍的交给面试官.

我清晰的记得, 他拿到面试题时, 脸上的表情从蔼可亲变成了面目狰狞, 仿佛我浪费了他的时间。 现实与大家猜想的一样, 我做错了很多道基础的题目, 算法和SQL更是错多对少, 他不厌其烦的和我走了个过场, 勉励了我几句, 结果我信以为真, 以为抓住了救命的稻草 当晚上我用短信恳求他, 希望能加入那家公司.




https://img4.sycdn.imooc.com/5e98f5020001607910801920.jpg




后来做了面试官 也曾有面试者对我这样 低声下气的恳求, 仔细想想其实这是对面试官的一次道德绑架, 一个资质平平的候选者, 一个需要你收拾烂摊子的同事, 谁会欢迎这样的人呢 ?

那时的我在武汉不同的IT公司先后碰壁了 十几次后终于找到了工作, 同时也在这种求职环境中, 没有气馁 十年磨一剑 。 我现在的综合能力已经 超过了大多数面我的面试官, 不懈的努力奋斗下也让我成了 Offer 收割机, 这一切的一切都是 卧薪尝胆的结果。

“三年不翅,将以长羽翼, 虽无飞,飞必冲天;虽无鸣,鸣必惊人!" -- 韩非子

少年 不要恳求别人, 恳求自己吧!

当初为什么选择写代码 ?




https://img3.sycdn.imooc.com/5e98f502000136e110230673.jpg




网传 2020年4月18号, ?周某人即将出狱, 广西南宁市人人笼罩?有车无电瓶的恐惧中, 当年 "流氓无产者代言人" 周某人的至理名言在网络上疯传 好像说什么

"打工这方面,打工是不可能打工的,这辈子不可能打工的!"

"做生意又不会做,就是偷这种东西,才能维持得了生活这样子,进看守所感觉像回家一样,在看守所里的感觉比家里感觉好多啦!"

"里面个个都是人才,说话又好听,我超喜欢里面的。"

这种言论初听很好笑, 疯传的背后也道出了很多人的无奈, 城市生活中房贷,车贷,学贷 ?压的人喘不过气, 很多人开始审视自己的未来, 前段时间有人问我 为什么当初选择写代码 ?

我回答她: 写代码是世界上最好的工作, 不接受反驳!

很多行外人和业内人士都认为, 35岁以后的程序员会被淘汰 ! 写代码是碗青春饭, 年纪大了就学不动了也加不动班了!

我回答说: 这些都是误解,就像说程序员人人都会修电脑一样, (话说作者目前还没有组装过电脑和系统(>人<;), 但是我相信大多数人对我解释并不满意, 说什么 "大厂程序员 35岁就下岗, X厂向社会输出 10年程序员的话来"!

主观上我认为

我无比热爱写代码的这个工作, 假设有一天我 35岁被淘汰了, 我依然会将他当作一个兴趣就和吃饭喝水一样, 那我们不妨设想一下 自己到了35岁应该是什么样子, 在我的想象中把35岁的程序员分为 3类.

  • 当一天和尚撞一天钟型:

    • 毕业十年 换了10家不同领域的IT公司.

    • 业务领域没有深耕, 技术上不精益求精.

    • 偷奸耍滑暴怼产品经理脚踢测试运维 毫无违和感.

    • 早早成了家 背负车贷,房贷 面对任何事情不敢轻举妄动, 逢人便称 中年危机.

  • 斜杠青年型:

    • 毕业十年 早早确定方向, 选择一个领域深耕.

    • 业余深入参与开源社区, 自己做的项目也收获 1W star, 博客好评如潮, 自己就是公司的技术大拿.

    • 在需求上 主动调研, 对工作一丝不苟, 能解决技术之外的一切问题.

    • 工作之余 带队自研产品, 上线过多款 爆款 应用. 副业收入超过主业.

    • 把全部的精力放在了 事业上, 结果导致晚婚晚育 也落得个清净 (有些长辈可能要说, 世界只有剩男的不剩女的,这是反面教材云云).

  • 中层管理型:

    • 毕业十年 海归硕士 | | 985博士 的出身, 让他能在世界500强中的热门领域乱窜.

    • 业余阅读管理与生活类书籍大于技术类书籍

    • 在业务迭代上, 担任项目经理 占主导地位, 统筹全局, 说一不二.

    • 工作之余 爱到处旅旅游, 经常被邀请去各种互联网大会演说架构, 技术上也追求创新而追求稳定.

    • 百万年薪的他, 家庭美满婚姻幸福.

看来看去好像 第一种类型的程序员 更担心被裁也更容易被裁 !

客观上我认为

程序员的价值 35岁 和 25岁是有着巨大的区别, 借用陈龙的一段话.

我觉得Web开发和汽车工业是一样一样的。

我模仿上面这段话,分析一下Web开发啊:这是因为迄今为止,Web开发仍然是大规模生产的互联网产品之中最为复杂的。Web开发涉及到的技术非常多,以服务器端用Java为例:从前端的HTML、CSS、ES\TS、Node、Webpack、NPM、ESLint、NG\React\Vue,到服务器端的:Java、Spring Boot、Spring MVC、Spring Data\Mybatis、Spring Security\Shiro、Spring Cloud\dubbo、Maven\,到部署环境的Docker、K8s,到数据库的各种SQL或NoSQL。开发一个Web应用,细数的话,会用到十几到二十相技术或工具。

上线以后还要经历各种用户端环境,不同的浏览器、微信小程序,不同的移动设备自适应布局。而且还要尽可能用户体验顺滑、占用带宽小。现在计算机软件业的奇迹之一就是能把这么复杂的一个东西做的可靠性如此之高,可维护性如此之好,成本还如此之低。但是,奇迹是不存在的,要造出这么个东西,挑战想当巨大。

Web开发到底难在那?我认为最难的是”系统工程“。

系统工程是一个跨多学科领域的工程学和工程管理,通常专注于如何设计、开发和管理在其生命周期内的复杂系统。系统工程的核心系利用系统性思考的原则,以建构其知识体系。当处理大型、复杂的专案时,所面临的相关议题(例如:需求工程、可靠度、物流、不同团队的协调、测试与评估、可维修性、和许多其他能够成就系统开发、设计、执行、和最终除役的学科)变得更加困难。系统工程借由工作流程、优化的方法、以及风险管理等工具来处理此一类型的专案,并且与技术、和以人为本的学科相互重叠(例如:工业工程、机械工程、制造工程、控制工程、软件工程、电机工程、模控学、组织研究、以及专案管理)。系统工程确保专案或系统的各个层面均被详加考虑、并整合成为一体。 -- 维基百科

就难在要跨多种语言和框架,让多个团队协作起来。这个和造车还是一样的。如果李书福只作汽车轮胎,很容易成功。如果选择去做沙发,也很容易成功。但是去造汽车,不是轮胎+沙发那么简单,而是系统工程。生产汽车的多个部门要协调,还有市场和客户需要满足。

Web开发也是一样,前端团队、后端团队、测试团队、再加上项目经理产品经理配置管理、最重要的还有客户甲方。

如果是以体力来比较 35岁 与 25岁的程序员, 老程序员 体力上并不占优势, 而Bug率,技术扎实程度 上肯定要比 年轻程序员强的不知道那里去 !

那么请问程序员是体力劳动吗? 显然不是 ! 那你说程序员不是要敲键盘吗? 难道你没听说过 轮子吗? 这一点仁者见仁智者见智 !

对代码不感冒, 我应该怎么办?




https://img1.sycdn.imooc.com/5e98f50300013d1e19200899.jpg




作者也曾经有过这样的体验, 在公司完全不想写代码, 想到公司的业务都厌恶, 那么你要重新审视下你当前的状态.

就如我原先的一篇 <作为程序员的你 是喜欢代码还是喜欢工作 ?> 里所描述的一样, 你并不是讨厌工作而是讨厌其他东西,

  • 也许是毫无希望的公司

  • 可能是没有长进的技术水平

  • 也可能是无数改了又改的需求

  • 或者是步步紧逼的DDL(最后期限)

接下来不会教你如何智斗 产品经理, 花式砍需求, 请看到此处的程序员花 3分钟时间, 内视下自己, 向内心深处呐喊 : "作为程序员的你 是喜欢代码还是喜欢工作?"




https://img1.sycdn.imooc.com/5e98f5030001431128011867.jpg




  • 如果你喜欢代码就请去追求技术上的精益求精 不要去一个天天996 写业务代码的公司, 给自己找个对口的东家.

  • 如果你觉得你的工作能让你丰衣足食, 你才选择它, 那么我劝你转行, 35岁怀着这样的思想的你大概会成为 上述所说的第一类人 当一天和尚撞一天钟.

关于职业发展




https://img3.sycdn.imooc.com/5e98f50400019e3d45022832.jpg




  1. 选择一个有前途的领域深耕, 领域具体指的是 电商,教育,金融,音视频,大数据,ML 等, 也可再细分为 ToB , ToC, ToG, ToVC等 ,作者推荐首选 ToB大数据, ToC社交电商 等, 道理很简单 这样选择符合未来趋势并可以随着公司业务发展技术得到发展. 绝对不亏 !

  2. 选择一个有前途的公司, 上面讲了领域, 没有待在一个好点的公司,领域再好也是枉然, 我心中的公司排名 增长公司 > 明星公司 > 创业公司. 增长型公司是指 饿了吗, 美团, 拼多多, 摩拜, 年轻时的它们都有一个共同标签 独角兽, 我们要学会先选择领域 再选择公司, 不要浪费青春.

  3. 创造一个开源的项目 建议这个阶段应该是你工作 1 年后, 你在一个领域深耕了很久之后, 你对开发的流程了如指掌. 这时候你就可以拿出工具箱根据现有的轮子创建出更强大的轮子, 因为你在一个行业深耕了很久你解决的问题和你造的新轮子别人也一定是需要的.

  4. 创造一个自己的产品 建议这个阶段应该是你工作 3 年后, 这时候你一定接触过很多产品, 你对产品经理的设计思路也了如指掌, 那么你就可以联合几个小伙伴 设计属于自己的产品, 比如 解决 番茄钟问题的 小程序, 解决 疫情查询的 APP , 基于自己框架开发的技术产品 等, 只要你想做, 大胆放手去干 !

做个斜杠青年是普通人的最好出路!

? 来一波干货

我们参加面试时经常会聊到一些技术相关 英语名词, 而大多数程序员对英语发音并不感冒, 往往交谈中答非所问 搞得场面一度很尴尬, 当然这里不是叫大家立刻去学好英语, 学好一门语言, 冰冻三尺非一日之寒. 我给大家整理了一个Java相关 单词表 , 面试前复习下即可 . 临阵磨枪不快也光!

单词美式音标技术分类

语义
abstractˈæbstrækt, æbˈstrækt关键字抽象
breakbreɪk关键字打破
extendsiksˈtendz关键字继承
finallyˈfaɪnəli关键字最终
interfaceˈɪntərfeɪs关键字接口
instanceofɪnstanceof关键字实例
protectedprə'tektɪd关键字受保护
synchronized'sɪŋkrənaɪzd关键字同步
transientˈtrænziənt关键字短暂的
volatileˈvɑlətl关键字易变的
ReentrantReadWriteLockrɪ'entrənt riːd, red raɪt lɑkJ.U.C可重入读写锁
StampedLockstæmpt lɑkJ.U.C盖锁
ConcurrentHashMapkənˈkɜrənt hæʃ mæpJ.U.C并发HashMap
ConcurrentSkipListMapkənˈkɜrənt skɪp lɪst mæpJ.U.C并发跳跃表映射
CopyOnWriteArrayListˈkɑpi ɑn raɪt ə'reɪ lɪstJ.U.C复制写入数组列表
LongAccumulatorlɔŋ əˈkjumjəˌletɚJ.U.C长整型累加器
AtomicLongArrayəˈtɑmɪk lɔŋ ə'reɪJ.U.C原子长整型数组
Exchangerɪks'tʃeɪndʒəJ.U.C交换器
ForkJoinPoolfɔrk dʒɔɪn pulJ.U.CFork连接池
ThreadPoolExecutorθrɛd pul ɪɡˈzɛkjətɚ, ˈɛksɪˌkjutɚJ.U.C线程池执行者
Spring Cloud Bussprɪŋ klaʊd bʌs微服务春天云消息总线
Spring Cloud Consulsprɪŋ klaʊd ˈkɑnsl微服务春天云服务网格
Spring Cloud Netflixsprɪŋ klaʊd Netflix微服务春天云服网飞组件系列
Spring Cloud Schema Registrysprɪŋ klaʊd ˈskimə ˈrɛdʒɪstri微服务春天云注册表
Spring Cloud Securitysprɪŋ klaʊd səˈkjʊrəti微服务春天云安全
Spring Cloud OpenFeignsprɪŋ klaʊdˈoʊpən fen微服务春天云网飞公开虚拟调用组件
Spring Cloud Eurekasprɪŋ klaʊdˈ jʊ'rikə微服务春天云网飞注册发现组件
Spring Cloud Zuulsprɪŋ klaʊdˈ zull微服务春天云网飞网关组件
Spring Cloud Stream Applicationssprɪŋ klaʊdˈ strim æplɪ'keɪʃəns微服务春天云流式应用
Spring Cloud Hystrixsprɪŋ klaʊdˈ hɪst'rɪks微服务春天云网飞熔断组件
ElasticSearchsɜrtʃ ɪˈlæstɪk中间件弹性搜索
Kafka'ka:fka:中间件卡夫卡
RabbitMQˈræbɪt mq中间件猎兔消息队列
ActiveMQˈæktɪv mq中间件积极消息队列
Zookeeperˈzukipər中间件动物园管理员
Quartzkwɔrts中间件石英定时器

深入浅出分享 Java 干货 , 找回对代码的 Passion , 助力月入 20K+

点击查看更多内容
1人点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消