前言

在开发技术和应用市场完全成熟的今天,有人希望深耕技术-打造出自己的一片天地,也有人想广泛学习-在程序员市场中游刃有余。

面试造火箭、工作拧螺丝!

这句话实际上有点讽刺和调侃的意思,描述的意思是说:面试过程的问题非常非常难,就像造火箭一样。实际,入职之后才发现自己干的不过是最基本的 crud(增删改查) 的工作,就像工地上拧螺丝的人一样。
找过工作的小伙伴都会有过这样的感受:就单纯一个大厂校招,你就会感觉面试的时候你什么都得会。
重视基础的大厂(如字节),会在计算机网络、操作系统、算法上面问到你怀疑人生。
重视实战的大厂(如阿里),会在高并发、数据库调优、线上问题检查等领域问到你招架不住为止。

在有限的时间里,如何选择一个明确的方向

编程能力从什么时候开始突飞猛进?小白到大神的必经之路

1.关于一书:

Designing Data-Intensive Applications:

由于我的工作,是云技术相关,给后端的大数据模型,打造成,高并发,高弹性,高兼容的service。

所以数据处理,和云技术是我工具箱里最重要的工具!

因此,我接触了 Oracle, Redshift, HBase, Storm, Cassandra,Hadoop, Spark Kafka, Zookeeper…Amazo。
并且自己学习了,DynamoDB,Step Function, Kinesis, AWS Lambda, SQS/SNS, SimpleWorkflow, EMR…
还有一些看过源代码,内部怎么工作的深度,每个系统至少读过一本书。
当时,我的学习像无头苍蝇一样,是盲目的,什么技术火,就学什么,总觉得这些东西之间模模糊糊的是有联系的,感觉是有一些东西是可以总结起来的。

~~ 脑子里或者说工具箱里里的东西很多,但是却非常乱,概念实现经常记混,我经常在想:如果能总结归类,用更科学的方法去记住所有我学过的技术,那就好了。 ~~

之后我就遇到了这本书,我读了3遍,瞬间感觉,把这些零碎的知识点,一切都理顺了… 如果我先读了这本书,才去学上边这些东西,那么我花费的时间将是原来的3分之一到5分之一左右。

这本书在广度和一定程度的深度(如果对进一步深度有要求,可以读完此书的reference)上,概括和总结了数据系统,分布式或非分布式环境下面临的本质问题,和解决方案的分类,看完这本,我开始理解了“为什么”这么多的分布式系统要这么设计。而这本书上千的引用论文,给我指明了一条系统学习理论的明路。

2.关于多范式编程和最小表达力原则(least expressiveness principle):

学了好多语言(Java,C,Python,SQL,js),设计模式(AOP-面向切面,范型,反射,DCI-函数式编程)。

不知什么时候起,我已经忘记了我为什么要学习他们了,我的代码开始变成一个程序员的炫酷艺术,简直可谓花式编程。

怎样能用别人都不懂的花式技术秀翻全组,变成了我觉得可以体现我的学识的关键(在这里要跟接手和维护我花式行为艺术的同学深深的道歉)。

直到我了解到了多范式编程(Multi-Paradigm Programming)和最小表达力原则(least expressiveness principle), 我才中混沌中惊醒,回归初心,简化程序,用尽可能简单的程序来解决尽可能复杂的问题,才是我们发明和学习了这么多技术的最终目的啊!

编程干货 | 新手容易掉队的地方,个个都是转折点。

❤️Python面向对象保姆式教学❤️,新手速成精英之路!

做出来容易, 做正确难

这里做出来指没bug且完成需要的功能,这是最基本要求,不多加讨论。
这里正确,不是指功能正确,而是指程序可以很容易推理理解,理解意图,理解如何做到的,理解为什么系统不会出错。理解为什么要这么做。正确是现在怎么写不会挖坑害将来的人,现在怎么写能让别人1年后看你代码时候不可能理解错你现在的意图,现在怎么写能在别人将来犯错的时候提示他你错了。

3.关于领域驱动设计(Domain Driven Design):

从具体的大处来说,它让我明白了“为什么要有程序员”,这个话题很大很抽象,下边的引用有一些详述。

从小的来说,它让我懂得了怎么样用系统的方法来设计系统,实现系统,从而让VP,Director,各级开发经理, 产品经理,客户,和我们组配合的机器学习科学家,统计学家,经济学家,他们脑子里的系统,和我们程序员的code的组织,系统的组件设计实现,能够有一个清晰的对应,且这个清晰的对应,如何在无数的需求改变,无数的技术升级中,在长期的时间跨度上,如何能够坚守住,如何持续保证概念模型(concept model)和实现模型(implementation model)的一致,并且是清晰一致。

那么,一个小的脑子里的模型改动,必然只会引起一个系统的小的改动。做到这点,是在长远的时间角度,在考虑了未知的未来,考虑了明天的你,团队,客户,都会收到新的未知的信息的情况下(而不是根据一个时间点的需求)保持一个健康,可业务拓展,有竞争力的,能够成为组部门公司之脊梁的系统的关键!用比喻义来说:如果说Designing Data-Intensive Applications是逍遥子百年功力,是莽牯朱蛤,是张无忌吃的昆仑山蟠桃,给你无穷的内力,那么这些方法论则是北冥神功,九阳神功,易筋经,教你如何驾驭这力量,而不是自爆而亡。

编程是给未来的未知人讲故事

你无法知道将来这个人是谁,他都懂什么,他经历过什么,这个系统将来已经是什么样子了。我们需要在这种无知,缺乏信息的情况下做决定,从千万种把这件事做出来的方法里,选出你觉得最能把这个故事给讲好的那种方式,把故事写下来。编程是一种沟通,沟通是一种艺术,用程序跨越时空之沟通则是一门属于程序员的特有的艺术(就好比数学家用数学公式来沟通) coding is all about the art of communication(引用)。

算法离我们并不远—为什么你排位总是输,原因在这

结语

能被历史记录的程序员,都有一颗让世界变得简单的心,愿我们时刻保持初心,热爱技术给我们带来的便利。

程序员这条路,选择深耕技术,还是全面学习比较好?相关推荐

  1. 原创电子书《菜鸟程序员成长之路:从技术小白到阿里巴巴Java工程师》

    <菜鸟程序员成长之路:从技术小白到阿里巴巴Java工程师> 国庆节快乐!一年一度长度排第二的假期终于来了. 难得有十一长假,作者也想要休息几天啦. 不管你是选择出门玩,还是在公司加班,在学 ...

  2. 程序界面把程序员这条路走下去

    文章结束给大家来个程序员笑话:[M] 大一那年,开始接触C语言,学会了链表.数组.结构和文件,会写一段黑屏上输出结果的程序.大二的时候学习了C++,数据结构.这两年里,一直没有认为我今后的人生会跟程序 ...

  3. 真实!程序员转行之路:从技术到产品经理,再自主创业

    作者 |   诚万兴科技 本文经授权转载自黑马晓程序(ID:zxcknowmore) 已经想不起上次写文章是什么时候了,印象中至少有一年多没有写过--相比之前平均一个月一篇文章的产量,现在不知是被生活 ...

  4. 程序员这条路很艰难,你会坚持走下去吗?

    可能很多人都觉得程序员是个高薪行业,动不动就听见谁月薪几万几万,心里羡慕不已.回头看自己每个月手里可怜的工资条,心里更是烦躁不已,于是乎下定决心一定要像人家一样,月薪几万.但是实际上,高薪程序员并不像 ...

  5. 程序员这条路很难走,你还要坚持下去吗?

    可能很多人都觉得程序员是个高薪行业,动不动就听见谁月薪几万几万,心里羡慕不已.回头看自己每个月手里可怜的工资条,心里更是烦躁不已,于是乎下定决心一定要像人家一样,月薪几万.但是实际上,高薪程序员并不像 ...

  6. 如果我告诉你,程序员这条路很难走,你还要坚持走下去吗

    可能很多人都觉得程序员是个高薪行业,动不动就听见谁月薪几万几万,心里羡慕不已.回头看自己每个月手里可怜的工资条,心里更是烦躁不已,于是乎下定决心一定要像人家一样,月薪几万.但是实际上,高薪程序员并不像 ...

  7. 如果我告诉你,程序员这条路很难走,你还要坚持下去吗

    可能很多人都觉得程序员是个高薪行业,动不动就听见谁月薪几万几万,心里羡慕不已.回头看自己每个月手里可怜的工资条,心里更是烦躁不已,于是乎下定决心一定要像人家一样,月薪几万.但是实际上,高薪程序员并不像 ...

  8. 【奇兔刷机】程序员这条路很难走,但你会坚持下去么?

    [奇兔刷机]:或许每个人都觉得程序员是个很好的职位,薪水很高,前途很好.但是,程序员后面的艰辛又有几人能懂呢? 很多人都觉得程序员是个高薪行业,动不动就听见谁月薪几万几万,心里羡慕不已.回头看自己每个 ...

  9. 程序员修炼之路(十四)IT外企那点儿事--也说跳槽

    最近一个月一直在忙项目,几乎没什么时间写博客,今天中午才有时间看看csdn,在论坛上看到一篇很好的文章,分享给大家.也给自己留作备用. 原文地址:http://www.cnblogs.com/forf ...

最新文章

  1. dubbo与springboot的集成
  2. Composer 中国全量镜像(二)
  3. white-space详解
  4. 【K8S学习笔记】Part1:使用端口转发访问集群内的应用
  5. Java 反射(练习)
  6. Redisbook学习笔记(1)字典(2)
  7. shell中set的用法(转)
  8. 纯手工获取的WINDOWS 7 32位 SP1后续补丁集ver201509的官方下载地址
  9. SpringBoot_MD5加密工具类
  10. python浪漫代码表白npy_【师大表白墙】表白wdl小姐姐,一眼看过去就记住的女孩子,笑起来时眼睛里有星星在闪烁~...
  11. 分享一个强大的网盘搜索平台-猪猪盘
  12. ext2与ext3的区别
  13. SecureCRT中常用linux命令
  14. 微信小程序:从小程序打开H5页面
  15. 内存走线 菊花链_[转帖]关于DDR4内存颗粒、单双面、主板布线和双通道的那些事儿...
  16. 为什么我中签的不是股票,都是转债?
  17. 甘肃两地发生非洲猪瘟疫情 官方全面禁止泔水喂猪
  18. 苹果电脑系统怎么重装?这几步就可以轻松搞定
  19. 灰色预测 GM(1,1) (grey prediction)
  20. COOX基础培训之MTG

热门文章

  1. 标准正态分布alpha分位点
  2. unreal engine 4 如何创建地形、地表贴图。
  3. “拓维元”震撼发布,拓维信息软硬全栈国产自研战略再落一子!
  4. vue cle新建vue项目
  5. python--生成器
  6. Java项目:SSH学生请假管理系统
  7. 那些年我做的毕业设计
  8. 记录12306项目抢票成功的经历:CentOS7环境
  9. Pycharm 使用多个光标进行编辑
  10. DBCO-Raltitrexed-PEG DBCO-雷替曲塞-聚乙二醇