如何成为专业的软件开发人员

上一篇:https://blog.csdn.net/weixin_42523774/article/details/104085835
· 本文是分享《软技能:代码之外的生存指南》一书中,对我印象深刻内容和读书心得的第二篇。我可以毫无疑问的说,这本书改变了我对自己职业生涯的看法,给我拨开前方的层层迷雾,指引着我职业生涯的正确方向。
· 今天分享的就是,这本书中的职业生涯的第二篇——如何成为专业的软件开发人员。

1.你是哪类软件开发人员

1.1 专业化很重要

· 有大量的软件开发人员并没有具体的专业方向。事实上,大部分软件开发人员完全以自己使用的编程语言来定义自己的专业性。
· 这种专业分工太宽泛了,并不足以说明你能胜任哪种类型的软件开发工作。
· 你也可能会害怕专攻软件开发的某一领域,担心自己陷入很窄的专业领域,从而与其他的工作和机会绝缘。虽然专业化确实会把你关在一些机会的大门之外,但与此同时它将打开的机会大门要比你用其他方式打开的多得多。
· 从表面上看,身为专才后,潜在雇主和客户群都变小了,但是实际上你对他们更具吸引力了。只要你专业能力雄厚,市场没有过渡饱和,与那些自称为 “ 软件开发人员 ” 的人相比,你能更轻松地找到工作或者赢得客户。

· 假设你正在你所在地寻求一份工作,并且你是一个 Java 开发人员。很多大都市对 Java 开发人员都有相当大的需求,所以开始的时候你会拥有一个很棒的大水池 —— 你可以得到很多工作机会。但其实你并不需要所有的这些工作机会,只要一个就够了。
· 假设你所在的地区当前有500个Java相关工作机会,而Java web方向还有250个工作机会,而更专业一点,你选择专攻了Java web 开发栈为方向,这可能让你的工作机会降为了50个。虽然相比于500个工作机会,你的潜在工作机会的数量变少了,但是你获得这50个工作机会的概率增加了。

1.2 你的专业类别

· 软件开发人员有很多不同的专业分类。比较明显的分类方法是按照开发语言分类和按照平台分类,但是也可以按照方法论分类、按照技术或业务种类分类。
· 首先你得弄清楚一件事,自己想从事哪类软件开发工作。你是想做应用程序的前端开发,设计和实现用户界面,想做应用程序的中间件开发,实现业务规则和逻辑,还是想做应用程序的后端数据库或底层操作开发?你甚至可以做到三者通吃,成为传说中的 “ 全栈开发人员 ” ;但是在这种情况下,你还是应该专注于某一特定的技术栈。(例如,一位 Web 网站全栈开发者可能使用 C# 和 SQL Server 专门创建 ASP.NET MVC 网站。)
· 这几归纳了几种专业领域:

  • Web 开发栈
  • 嵌入式系统
  • 特定的操作系统
  • 移动开发
  • 框架
  • 软件系统

1.3 选择你的专业

这里有一些技巧来帮你选择自己的专业。就是依据是否当前是否有此种需求存在。

  • 在你现在或以前工作的公司里,有哪些主要的痛点?你能成为一名专门解决这些痛点的专家吗?
  • 有没有一种特定的工作是无人能做,或者缺乏经验丰富的人?成为这个领域的专家,你就会获得大量业务。
  • 在各种会议上和用户组中哪些话题最常出现?
  • 哪类问题你回复的最多,无论是针对同事还是在csdn这样的网站上?

· 无论你做什么,首先确保你选定了某些专业方向。市场规模决定了你的方向有多么具体,所以一定要让它尽可能地具体。你会在这个细分市场上更抢手。别担心,如果你需要,随时可以改变你的专业方向。

1.4 精通多种语言的程序员该怎么办

· 即使我推荐走 “ 专业化 ” 道路,也不代表我认为你不应该同时具备广泛的技能。
· 这二者看起来似乎是矛盾的,其实并非如此。做一个技术全面、多才多艺的软件开发人员非常棒。能够使用多项技术和多种编程语言,有助于你的职业发展,能让你比那些仅了解一项技术或一种编程语言的软件开发人员更有价值。然而,这种 “ 万金油 ” 式的人才在市场上并不吃香。
· 学富五车,或者灵活变通并同时仍有所专长让自己卓尔不群。如果你非要二选一,那先从专业化开始,再拓展分支。(先成为某一领域的专业人士,然后在拓展其他的领域。

2. 如何成为专业人士

· 前面说的专业化是如何做事,这一节讲的专业化是如何做人。
· 成为专业人士的全部在于:引人注目,恪尽职守,以及不屈服于挫折。成为专业人士,需要你克服自身的缺点,静下心来作出尽可能最好的作品。

2.1 什么是专业人士

· 简而言之,专业人士会严肃对待自己的责任和事业,愿意作出艰难的选择去做自己认为是正确的事情 —— 往往还要自己承担代价。
· 专业人士是我们都应该去努力的目标。专业人士是可以依靠的人,他们恪尽职守,精益求精,也不曲意逢迎。专业人士会让你知道什么事情是不可能的,什么路径是错误的。
· 专业人士不可能事事皆通,但他一定会潜心钻研匠艺,旨在锤炼自己的技能。专业人士会坦承自己不知道答案,但是你可以信赖他会找到答案。
· 专业人士最重要的一点,也许就是持续稳定。专业人士为自己的工作设置了很高的质量标准,你可以期待他每一天都持之以恒地坚守标准。
· 下表中列出了专业人士和外行的差异:

专业人士 外行
遵守自己的原则 让干什么就干什么
专注于正确完成工作 专注于完成工作
不惧怕承认自己错了,不会文过饰非 不懂装懂
持续稳定 无法预测,不可靠
用于承担责任 回避责任

2.2 成为专业人士

· 如果想成为一名专业人士,你需要培养自己的专业习惯。
· 例如在“每日站立会议” 提前写好要说的内容。而不是像我们大多数人那样开会时随口说。这是专业开发人员要养成的习惯。
· 另一个强大的习惯是时间管理技能。每天提前做好计划,就能养成有效管理时间的习惯。专业人士知道每天必须要做什么工作,并且能估算出每项工作大约要花多长时间。
· 这只是对于成为专业的软件开发人员至关重要的习惯的两个例子。为了达到自己在工作中所需的专业化水平,你得明确自己要养成哪种习惯。

2.3 坚守正道

· 一位专业人士需要知道在什么时候说 “ 不 ” ,即使是面对自己的老板。因为,正如 Bob Martin 所说,专业人士有着不可逾越的底线。有时,坚守底线甚至意味着被炒鱿鱼,但这就是你被称为 “ 专业人士 ” 要付出的代价。短期内,这可能是痛苦的,但如果你能持之以恒地选择坚守正道,那么与选择其他路线相比,你的职业生涯会得到更大的回报,并且你也能睡个好觉。
· 有时候,专业人士必须对工作的优先级做出艰难的抉择。不专业的开发人员经常浪费时间去画蛇添足,因为他们要么不能确定下一步要做什么,要么他们得一直让别人来帮自己设定工作的优先级。专业人士会评估需要完成的工作,判定优先级后再开始工作。

2.4 追求品质,完善自我

· 作为一位专业人士,你必须不断改善和提高自己的工作品质。你或许不能一直达到自己期望的工作品质,但随着时间的推移,持之以恒地坚持下,你终究会达到自己设定的标准。许多软件开发人员犯的一个巨大错误就是,当无法达到标准时,他们不是完善自己、迎接挑战,而是降低标准。

3.总结

· 本文介绍了如何在专业化的道路上稳步前行。还介绍了如何成为专业人士。成为专业的软件开发人员是多么重要,而成为专业人士,则需要坚守底线,养成习惯,提升品质。需积跬步,以致千里。从专业化,到专业人士,最后成为专家。

下一篇:https://blog.csdn.net/weixin_42523774/article/details/104085852

你可能感兴趣的:(读书心得,程序人生,经验分享)