软件工程之美
宝玉
Groupon资深工程师,微软最有价值专家
立即订阅
6741 人已学习
课程目录
已完结 54 讲
0/4登录后,你可以任选4讲全文学习。
课前必读 (3讲)
开篇词 | 你为什么应该学好软件工程?
免费
特别放送 | 从软件工程的角度解读任正非的新年公开信
学习攻略 | 怎样学好软件工程?
基础理论 (9讲)
01 | 到底应该怎样理解软件工程?
02 | 工程思维:把每件事都当作一个项目来推进
03 | 瀑布模型:像工厂流水线一样把软件开发分层化
04 | 瀑布模型之外,还有哪些开发模型?
05 | 敏捷开发到底是想解决什么问题?
06 | 大厂都在用哪些敏捷方法?(上)
07 | 大厂都在用哪些敏捷方法?(下)
08 | 怎样平衡软件质量与时间成本范围的关系?
“一问一答”第1期 | 30个软件开发常见问题解决策略
项目规划篇 (8讲)
09 | 为什么软件工程项目普遍不重视可行性分析?
10 | 如果你想技术转管理,先来试试管好一个项目
11 | 项目计划:代码未动,计划先行
12 | 流程和规范:红绿灯不是约束,而是用来提高效率
13 | 白天开会,加班写代码的节奏怎么破?
14 | 项目管理工具:一切管理问题,都应思考能否通过工具解决
15 | 风险管理:不能盲目乐观,凡事都应该有B计划
16 | 怎样才能写好项目文档?
需求分析篇 (5讲)
17 | 需求分析到底要分析什么?怎么分析?
18 | 原型设计:如何用最小的代价完成产品特性?
19 | 作为程序员,你应该有产品意识
20 | 如何应对让人头疼的需求变更问题?
“一问一答”第2期 | 30个软件开发常见问题解决策略
系统设计篇 (4讲)
21 | 架构设计:普通程序员也能实现复杂系统?
22 | 如何为项目做好技术选型?
23 | 架构师:不想当架构师的程序员不是好程序员
24 | 技术债务:是继续修修补补凑合着用,还是推翻重来?
开发编码篇 (7讲)
25 | 有哪些方法可以提高开发效率?
26 | 持续交付:如何做到随时发布新版本到生产环境?
27 | 软件工程师的核心竞争力是什么?(上)
28 | 软件工程师的核心竞争力是什么?(下)
29 | 自动化测试:如何把Bug杀死在摇篮里?
30 | 用好源代码管理工具,让你的协作更高效
“一问一答”第3期 | 18个软件开发常见问题解决策略
软件测试篇 (4讲)
31 | 软件测试要为产品质量负责吗?
32 | 软件测试:什么样的公司需要专职测试?
33 | 测试工具:为什么不应该通过QQ/微信/邮件报Bug?
34 | 账号密码泄漏成灾,应该怎样预防?
运行维护篇 (6讲)
35 | 版本发布:软件上线只是新的开始
36 | DevOps工程师到底要做什么事情?
37 | 遇到线上故障,你和高手的差距在哪里?
38 | 日志管理:如何借助工具快速发现和定位产品问题 ?
39 | 项目总结:做好项目复盘,把经验变成能力
“一问一答”第4期 | 14个软件开发常见问题解决策略
经典案例解析篇 (7讲)
40 | 最佳实践:小团队如何应用软件工程?
41 | 为什么程序员的业余项目大多都死了?
42 | 反面案例:盘点那些失败的软件项目
43 | 以VS Code为例,看大型开源项目是如何应用软件工程的?
44 | 微软、谷歌、阿里巴巴等大厂是怎样应用软件工程的?
45 | 从软件工程的角度看微服务、云计算、人工智能这些新技术
“一问一答”第5期(内含彩蛋) | 22个软件开发常见问题解决策略
结束语 (1讲)
结束语 | 万事皆项目,软件工程无处不在
软件工程之美
登录|注册

28 | 软件工程师的核心竞争力是什么?(下)

宝玉 2019-05-02
你好,我是宝玉。在上一篇中,我们讨论了什么是软件工程师的核心竞争力,也就是学习能力、解决问题的能力和影响力。
今天我就来跟你谈一谈,如何提升软件工程师的核心竞争力,也就是说,如何分别提升你的学习能力、解决问题能力和影响力。

如何提升学习能力?

学习能力是软件工程师最基础的能力,学习能力直接决定了你掌握技术的速度。现实中,有的程序员掌握新技术就是比别人要快,似乎有什么秘籍,可以让他们快速学习和掌握新技术。真有这样的秘籍吗?如果有,那是什么样的内容呢?
前不久我要写一个家谱的微信小程序,要实现列表、检索等功能。此前我没有任何关于小程序的开发经验,于是我粗略地看了下开发文档,搭建了开发环境,下载了几个示例程序,前后花了一天时间完成了一个不算简单的小程序开发。
为什么我能在一天时间就可以学习掌握小程序的开发呢?其实只是因为我已经构建了自己的开发知识体系,而小程序开发所需要的知识,绝大部分在我的知识体系里面已经有了存储。这些部分我就不需要重新再学习,我只要去学习小程序所独有的知识就好了,而这部分知识只有很小比例,所以很快就可以掌握。
那么你可能会问,怎样可以构建自己的知识体系呢?
首先需要在一个技术领域深耕
每个人精力其实很有限的,一开始专注在一个技术领域容易在短时间取得成绩,同时也相当于建立起了最初的知识体系,在未来的知识森林里种下的第一棵大树,这样当你开始学习新的技术的时候,已有的知识就可以直接借用,相当于这棵大树可以帮助新的知识树的成长提供很好的养分,快速培养出新的大树。
取消
完成
0/1000字
划线
笔记
复制
© 版权归极客邦科技所有,未经许可不得传播售卖。 页面已增加防盗追踪,如有侵权极客邦将依法追究其法律责任。
该试读文章来自付费专栏《软件工程之美》,如需阅读全部文章,
请订阅文章所属专栏。
立即订阅
登录 后留言

精选留言(9)

  • kirogiyi
    提升技能方面的核心竞争力,除了提升思维能力,还要加强基础技能的知识储备,不能去学一些表面能解决问题的知识散点。

    拿组件库、框架来说,在面试的时候,一旦问到组件、框架相关的计算机基础知识,怎么实现的,原理是什么,用了哪些设计模式,经常得到些似是而非的答案,更有愠怒的面试者说:我会用就行,那些东西在写程序的时候用不到。对于这样的面试者我的定级是“码农”(我很反感这样的称呼,但实力不允许的情况下只能这么称呼),因为“码农”不需要过多的思考和创造力,只需要按规矩流水线操作就行。

    IT行业流传着这样一句话:面试造飞机,工作拧螺丝。偶尔听身边的程序开发人员提到这句话的时候,都是浓浓的不屑和抱怨,还有受侮辱的委屈。在我看来,这样的人只有拧螺丝的本事和认知,没有造飞机的理想和目标,眼界和格局的限制,已经决定了今后的高度和成就。

    对此,IT行业的技术从业人员不应该忽视计算机基础知识的培养和储备,去了解一些本质上、核心上的东西,比如:计算机组成原理、计算机网络、操作系统、编译原理、数据结构与算法等等比较内在的东西,了解和熟悉了这些东西后,无论计算机上层建筑更新换代如何迅速,都无法将你甩出到行业的边缘或者淘汰的边缘,所谓的学不完、35岁的限制也就不攻自破了。

    当然,发现问题、分析问题、解决问题的能力会水涨船高,学习能力的提升自然也不在话下。曾经有一位领导这样跟我说过:技术人员需要的是静心沉淀,不是努力浮华。

    作者回复: 👍感谢分享,节日愉快

    2019-05-02
    10
  • hua168
    基础不牢,地动山摇
    我发现很多人,基础都没学好,更别谈什么深耕了……
    比如基础的基础是自学能力,很多人都不具备自学的能力,所以他们连自学都没学好。
    比如很多人想学习运维问我要资料,我就想让他学网络开始,给他一本CCNA学习指南,过几天问我,问他有什么疑问吗?他说没有疑问,根据我的经验,那肯定没学好。我问了他,我就出一道题问他,他都没办法回答出来。
    有些人回答的更无语,Ta说书上没说😰,
    然后我就很无奈回答“如果书上都有直接答案了,我这样问会不会觉得我很傻?”
    后来我才发现,他们学习都从来不会体会作者的思想,都不会去了解原理上的东西。
    还有人问我:这本书600多页,我看完了前面后面忘了怎么办?
    我:如果你能了解作者的表达意思、思想并用自己的语言去表达出来,那肯定是不会忘记的。

    一个没有自己独立思想的人就像一个木偶,
    如果一个木偶有了思想,那就是比诺曹😄
    最后我都建议他们做一个有灵魂的人😄

    作者回复: 👍很好的总结。

    书看一遍肯定记不住,得经常翻才行,看完得思考,思考完了还得实践,实践完了还得总结思考,最后才能变成自己的知识。

    2019-05-02
    1
    8
  • Gao
    老师所讲排查生产问题的案例,首先回滚版本,再看日志。这会引发更多的系统功能不可用吧,两个版本之间的功能差异尚不清楚就直接回滚,系统风险是否被进一步扩大?

    作者回复: 这个确实要具体情况具体看,因为我日常的系统上线,都会有回滚方案,回滚也是自动化的很方便。有些跟数据库相关的如果数据库结构发生变化又产生了新数据,确实没法直接回滚。

    这是我没讲清楚,这里可以作为一个参考即可。

    2019-05-05
    2
  • hua168
    所说的T型人才,一专多能,先一专后多能?
    IT运维和开发基本上都需要学网络、linux、编程、数据库、一些安全知识吧,之前侧重点不同…
    开发注重编程和数据库
    因为注重服务器管理、编程实现自动化,开发运维工具,平台

    作者回复: 这篇主要还是讲的构建知识体系,只是构建知识体系也要先专注才行。

    2019-05-02
    2
  • 感谢大佬分享经验,听君一席言,胜读十年书

    作者回复: 🤝有收获就好!

    2019-06-18
    1
  • 纯洁的憎恶
    提高学习能力,用知识体系对抗复杂多变的问题。提高解决问题能力,明确问题,拆分与定位问题,提出解决方案并总结。塑造影响力,深耕业务能力成为专家,做事超出预期,尽可能多的输出价值,分享是施加影响力的有效途径。

    我很早就知道知识体系的重要性,我也比较重视构建知识体系,但并没有什么亲测有效的方法,且对知识体系是个什么样的存在缺乏体感认识。可能还是学得太浅,用的太少。

    作者回复: 方法不是最主要的,最多让你学习提升一点速度。关键还是坚持,多练习多实践。

    从知识转变成技能,一定需要通过反复的刻意的练习,才能形成条件反射,最终掌握。没有任何学习方法能替代练习,最多有像催化剂,可以加速练习效果的学习方法。

    还有就是对技术的学习,不能太依赖于工作上的输入,工作上如果项目好用户多,那还是很有挑战的,但大多数时候没有那么多挑战,可能就是个增删改查,那么几年的工作经验可能只是简单的重复,不能达到刻意练习的效果。那还是要在工作之外寻找一些练习的途径,比如上次我建议的:自己做一点项目、参与一些开源项目。

    要想对知识体系有体感认识,还是建议先在一个领域有深度,有一棵树了才能想像出来森林是什么样子的,不然只能看到一片灌木丛。这过程难免要踩很多的坑,经历很多次的失败和挫折,反复的思考、总结和重试。

    2019-05-10
    1
  • 果然如此
    1.技术方面
    后端.net、扩展到java,前端jquery扩展到vue、小程序等,大数据solr扩展到es、mongodb、redis、rabbitMQ等;
    2.产品
    3.沟通
    4.项目管理
    5.团队管理
    6.影响力
    超出预期帮助同事
    与同事搞好关系
    乐于分享

    作者回复: 👍感谢分享

    2019-05-07
    1
  • 小老鼠
    1、把事情做到极致有必要吗?这样作是不是成了强迫症思维?2、推销自己是不是会让人感到作广告之嫌?3、去别人微信郡拉好友进自己微信郡道德吗?
    2019-09-23
  • Gao
    感谢老师补充
    2019-05-05
收起评论
9
返回
顶部