随着时间的推进,今年的“金三银四”求职黄金季悄然到来。在这一年的黄金季,因为受到疫情的影响,很多人可能会因此更改自己的职业计划和求职安排。无论怎样选择,跳槽还是坚持原岗位,职业进阶的问题又摆在了大家眼前。本文选自《大师访谈录:成就非凡的软件人生》,我们一同探讨下,程序员们的那些生存要领。
在程序员的职业发展生涯中,我们都知道应该去重视自己的技术能力,但一种重要的“软技能”却经常被我们忽视。甚至因为忽视这类技能,降低了我们职业发展的天花板,让我们白白失去了很多机会。
评判员工的能力,有两种不同的标准:硬技能和软技能。在软件行业,硬技能通常是指你在学校里学到的那些技术上的能力,而软技能是指在企业内工作时要具备的其他能力。这两类技能都很重要,但在职业生涯初期,技术能力更重要一些。而随着个人职业的发展,软技能的重要性变得更为突出。大家总是期望有资历的人能够成为团队领导者,运筹帷幄,调兵遣将,这时就非常强调软技能。在职业生涯的每个阶段,硬技能和软技能都缺一不可,但在不同阶段,两种技能的重要程度会有所变化。因为在头五年这个阶段,我们工作的性质迫使我们都具备了技术能力。而在行业里待上十年后,情况就反过来了。由于我们担任的角色或所处的环境,大多数人多多少少都具备了一点软技能。而这时,很多人会发现保持自己的技术能力不落伍却成了一个很大的挑战。无论怎样,一旦你认清自己所处的职业发展阶段,就具备了快人一步的优势,因为你了解应该掌握哪些软硬技能,然后花时间提前学习。
你所从事的工作、期望达到的职业目标,以及所在行业的发展方向,在一定程度上决定了你所需具备的技术能力。
在软件行业,市场的发展和变化非常快,你必须不断地学习新技术,才能与时俱进,提高自身价值。总的来说,技术能力的提升可以分为以下几类:
基本技能是你在学校里学到的一些核心开发技能。软件行业瞬息万变,技术能力也需要相应地不断更新。这些基本技术能力包括核心编程语言(Java、C/C++、PHP)、 操作系统、处理器、面向对象设计、GUI 编程、存储系统(RAID)、固态存储设备 (SSD)、存储区域网络和网络附加存储(SAN/NAS)、内存管理、结构和算法、 数据库、XML 和 Web 编程等相关技能。至少掌握一种的用户友好的编程语言,如 LISP、Perl、Python、或 Ruby。
除了基本技能,还应该具备三种开发技能:编码技能、质量保证技能和战略规划技能 。编码:需求分析、功能界定、单元测试、软件架构设计、封装、复用、调试、诊断、可扩展性、评审方法和可用性设计 。质量保证:功能验证测试(FVT)、系统验证测试(SVT)、压力测试、性能质 量保证(PQA)、统计测试、软件可靠性工程过程(SRE)、形式化方法、代码及分支覆盖理论、质量测量、控制和管理、风险分析 。战略规划:需求收集、市场划分、资源规划、规模规划和评估。
不管你在哪个领域工作,都应该努力成为该领域的专家,而不仅仅是局限于软件设计和构建。比如你在Plaxo或Facebook这样的社交网络类软件产品领域工作,你就应该努力成为社交网络领域的专家。再比如你在 Oracle、DB2、SQL Server 或 Sybase工作,就要努力成为关系型数据库领域的专家。拥有一个领域的专业技能才能让你出类拔萃,而且可以让你成为很多方面的领导者 。
这些技能在学校的课堂上是学不到的,但它们都是职场人士需要的真本事。事实上,软技能非常重要,只要看看一个人是否具备这些性格特征,即便是他刚工作才两年,也很容易就判断出他日后是否会成为领导和管理者。但不幸的是,很多人都认为这些真的仅仅是性格特点,而不是可以习得的技能。
情商可以衡量人的多种非认知性智力和情绪技能,这些技能对人们的处事能力和解决问题能力有极大影响。关于情商的定义有很多,但我认为情商是成熟和人情练达的体现。一个人格成熟、洞悉世事的人其生活也会更从容淡定, 能应对行业和企业中的挑战性事务。过去十年的调查显示,智商对于职业成功的影响甚微,其平均影响度仅有 6%。而对情商的研究发现,情商对职业成功有显著的影响,与工作成绩的关联度在 27%~45%之间。如果把这些研究结果放到软件开发领域,你就会很快明白,为何一个每年能写 35,000 行优质代码,但与每一个合作的同事无法和睦共处的程序员,远不如一个一贯踏实(但并非天才)的人晋升到高级职位的速度快。因为后者的判断力、成熟度和商业头脑更胜一筹——简而言之,就是情商高。每天试着有意识地观察自己在不同情境下的情绪反应,心里记下导致自己出现负面情绪的情境,然后慢慢地试着理解为什么自己会出现这种负面情绪。 在与别人讨论或会面时,问问自己,房间里的每个人情绪状态如何,你是如何得知的?是什么给你了这种暗示,是他们的面部表情还是肢体语言,是他们漫不经心的表现还是热情满满的样子? 每天都要有意识地尽量保持微笑,鼓励自己在大多数时间都表现出适当的热情。 现在面对过去会激怒你的一些事情时,完全理智地对待。理解你周围人的职业期望,为他们创造机会实现目标和期望,鼓励他们参与,提高他们的热情。每个公司里都有那么一些人在情感上更成熟、敏锐和更有控制力。好好观察他们是怎样做到的以及都做了些什 么,当你遇到棘手的情形时,想象他们会如何应对。 学会与他人聊天,并建立往来关系,而不是人一走茶就凉(这并不要求你一定要把工作上的关系延伸到私交上)。把自己变成一个易于相处的人。
无论是硬技能还是软技能,想要提升这些能力,为自己制定一个严谨的系统学习计划是必不可少的。我们有这些书,可以帮助完善你的进阶之路。
《剑指Offer:名企面试官精讲典型编程题(第2版)》
何海涛 著
继英文版登陆全球市场后又迎来重大升级
加大题量+更新题目+优化解法+融合中外
本书剖析了80个典型的编程面试题,系统整理基础知识、代码质量、解题思路、优化效率和综合能力这5个面试要点。系统总结如何在面试时写出高质量代码,如何优化代码效率,以及分析、解决难题的常用思路和方法。此书已成为程序员面试图书事实王者,累计销量几十万册,惠及千万考生,被众多企业采入题库。(扫码了解本书详情)
《Java程序员面试宝典(第4版)》
欧立奇 等编著
本书追求的是程序员求职背后的一些知识,即对于技术的本质理解。
第四版在保留原书主干内容的基础上,内容非常新,可以算作面试者求职前的一份全真模拟。同时作者将求职中的细节问题(简历,招聘,签约,违约),以及笔试、面试中的感悟融入书中,给求职者以最真切的人文关怀。真情实感,娓娓道来,指引读者走上理想的工作岗位。(扫码了解本书详情)
《Java程序员面试宝典(第4版)》
欧立奇 朱梅 段韬 编著
就编程而言,虽然Java和C++大相径庭,但在更加有趣的语言后面的知识是设计模式、分析模式、求职解答、算法策略、信息化……也就是说,本书追求的是程序员求职背后的一些知识,即对于技术的本质理解。本书虽命名为“Java程序员面试宝典”,但不仅限于对Java技术的单纯讲解。因为只有这样,求职者才能不被语言所羁绊;而对于一个企业而言,除了看中求职者对语言的熟练程度,更看重工作经验、大局观和整体架构等超脱语言的知识。(扫码了解本书详情)
《Offer来了:Java面试核心知识点精讲(原理篇)》
王磊 著
对Java程序员面试必备知识点的总结,详细讲解了JVM原理、多线程、数据结构和算法、分布式缓存、设计模式等面试必备知识点,在讲解时不拖泥带水,力求精简。
面试时的原理+动手实现脑海已就位,整装待发!互联网寒冬怕什么~(扫码了解本书详情)
《程序员的三门课:技术精进、架构修炼、管理探秘》
于君泽 李伟山 张洪亮 彭首長 刘朋 著
致力于让程序员:不迷茫、成长更快、成长路径更明晰
右军、Hollis等主笔,史海峰、小灰等力荐
我们都有一个共同的梦想——成为更棒的程序员,但是如何做?如何学习和精进自己的技术?如何做业务分析和架构设计?如何做技术管理?本书就广大程序员都很关注的问题提供一些思路和方法。
本书作者均有扎实的技术功底和十分丰富的工作阅历,已经摸索出相对清晰的职业发展路径。他们把自己的亲身经验总结和踩过的坑总结成这本书,以帮助和他们一样致力于在IT道路上走得更远的人。(扫码了解本书详情)
《程序员代码面试指南:IT名企算法与数据结构题目最优解(第2版)》
左程云 著
继英文版登陆全球市场后又迎来重大升级
加大题量+更新题目+优化解法+融合中外
本书剖析了80个典型的编程面试题,系统整理基础知识、代码质量、解题思路、优化效率和综合能力这5个面试要点。系统总结如何在面试时写出高质量代码,如何优化代码效率,以及分析、解决难题的常用思路和方法。此书已成为程序员面试图书事实王者,累计销量几十万册,惠及千万考生,被众多企业采入题库。(扫码了解本书详情)
《大师访谈录:成就非凡的软件人生》
【美】Sam Lightstone 著,李庆雅 等 译
- 软件工程师的职场成长手册,从普通程序员成长为软件大咖
这是一本软件工程师的职场成长手册。作者总结了自己近20 年从事软件行业的经验,为读者们奉上学校里不教而在日常工作中也无处可学的职场知识。(扫码了解本书详情)
《码出高效:Java 开发手册》源于影响了全球250万名开发工程师的《阿里巴巴Java开发手册》,作者静心沉淀,对Java规约的来龙去脉进行了全面而彻底的内容梳理。现在扫描下方二维码,仅需1元!本书作者之一、阿里巴巴集团高级技术专家杨冠宝(孤尽)带你解读《码出高效》背后的故事,并奉上一场编程技术精进分享。
(扫码报名)
假期不停学,弯道好超车