最近阅读了《这就是软件工程师》这本书,在本书的使用指南上面说着本书适合大学阶段的学生,正在规划职业道路切换的人等,而我正好属于以上描述的人,所以我抱着好奇的心思去阅读了这本书。
这本书主要分为6个部分:
第一部分描述了行业的地图,就是全面的描述了,我们需要掌握的知识,具备的能力,面临的机遇与挑战,同时也描述了计算机行业996的现实等:
下面是996的原因:
组织管理能力
会议太多且时间长。
注:会议不是解决问题的,因为争论太多问题难以解决,并且浪费时间。会议是用来发现问题,跟进问题的;要求在开会前一定要有一定的议题和议案。
几乎所有人都会混淆行动与进展,混淆忙碌与多产。 ——《代码大全》
第二部分描述了我们需要具备的知识储备,平台,方向的选择,在工作中的组织编码规范,解决问题时的思维等,在工作中的代码测试等,一系列流程等,相信会在我以后的工作中有很大的帮助,同时在现在的学习中我也会有意识的培养自己的编码能力和规范代码的能力
选择平台时——这家公司是否面对未来,是否受技术驱动计算机和互联网的发展都太快,如果要选择,一定优先选走在未来航道上的那些快速发展的公司
认识自己:找到适合自己的路线——特长 兴趣 方法 勤奋
第三部分描述了程序设计时需要考虑的问题,其中我认为描述更重要的是架构设计,抽象能力和团队合作。架构设计就是把需求进行抽象和分解,抽象能力重点用于对问题的拆解,帮助我们更好的完成任务。
外部沟通:知道怎么“规训”业务你要告诉业务,不要把技术仅仅当作需求解决方
你要告诉业务,不要直接将需求丢给技术,而是要告诉技术真正想解决的核心问题是什么
你要告诉业务,今天我们面临的所有问题都不是单纯的技术问题,大家一起努力,才能从根本上解决问题
内部协作:平衡前台团队和中后台团队
长期目标和短期目标平衡的问题
中后台团队一般都希望把系统尽可能做大做深 ,前台团队的目标主要是怎么尽快给业务交付功能。目标不一致,两个团队的诉求不一样,就很容易发生矛盾。
还有在技术和业务上的精进,首先选择自己的发展路线,分为技术路线和管理路线,面对不同的路线选择合适的公司和道路完成高手的进阶同时在进阶时需要具备的一些能力等。
两种不同组织结构的软件公司
小商品工厂:这种公司是不需要技术路线的,项目经理拿钱更多,因为这种公司就是做项目的,它希望项目经理能够带得动大家
电影工作组:是做产品的,它们做产品就像拍电影一样,有导演、编剧、演员…所有人都可能成为leader,都有自己的晋升通道,这种公司里有管理通道,也有技术通道业务上的精进
前瞻能力:前瞻能力不仅要求软件工程师看到系统的演进,还要看到未来的趋势,对未来有预判,根据预判对技术选型做一些决策
之后描述了几个行业的大神和他们的伟大成就
丹尼斯·里奇——C语言之父 (保持简洁)
林纳斯·托瓦兹——Linux之父
——开源运动的发起人
——发明了Git版本控制器 (每个软件工程师都知道的GitHub,就是基于Git构建的)
吉多·范罗苏姆——Python之父 (允许不完美、保持开放)
玛格丽特·汉密尔顿——拯救人类登月计划
杰夫·迪恩:开创分布式系统
法布里斯·贝拉:一个人就是一支队伍
最后还推荐了一些计算机方面的书籍,真的是一本很好的帮助有点技术基础的人规划路线的一本值得推荐的书籍,相信在两年之后的求职之前重新回顾一下这本书能对我又更大的帮助。