zoukankan      html  css  js  c++  java
  • 软件工程师如何定义自己的职业路线

    一、专业技能学习捷径

    1、爱上你的编码神器

      众所周知,软件工程师要做的工作就是写代码,准确地说,你的目标应该是写出满足业务需求并且无法找出 Bug 的代码,而不是写一大堆没用的文字。既然你的任务是写出高质量的代码,那么你首先应该训练的就是打字速度,你需要掌握键盘盲打技能,甚至还要爱上你的“编码神器”,并做到将此工具的用法烂熟于心,闭上眼睛都能正确敲中你想要的快捷键。

    2、熟悉底层技术原理

      当你完全驾驭了计算机的输入设备以后,你需要进一步了解计算机的内部工作原理,不是让你把机器大卸八块,而是你需要全面了解计算机的组成结构与工作原理。如果你不是计算机科班出生也没关系,在网上买一本关于计算机组成原理的书自学即可。你无需做到精通,能全面了解即可,因为接下来你需要在编程的世界中,慢慢去体会计算机的工作感受,你就是计算机的管理者。

    3、深入一门编程语言

      好了,现在是时候学习一门编程语言了,最好的选择是 Java,为什么呢?原因很简单,因为市场需求量最大,我敢保证,你学 Java 肯定比学 PHP 更容易找到工作(希望 PHP 程序员们淡定一些,其实我始终认为 PHP 是世界上最好的编程语言)。当你在学习 Java 时,首先需要掌握它啰里吧嗦的编程语法,此时没有什么比写一个“Hello World”来得更爽快一些。随后你需要深刻理解的是 Java 的面向对象概念(每次我说到面向对象,总会被一些单身汉吐槽,其实我想说,对象是可以 new 出来的),这些概念看上去比较虚,但是它们却能撑起一个强大的软件架构。所以,在面向对象技术上面花再多功夫都不为过,因为它能训练我们对业务的抽象能力,就像当初我们学习数学一样,它能训练我们的逻辑思维能力。

    4、选择一位对的老师

      看书、看视频、看源码、看技术文档,其实这些都是较为低效的学习方法,掌握编程技能的捷径就是拜一位资深的程序员为师,你可以尊称他为“码神”,记得一定要把他伺候好,让他愿意传授一些编程技能给你,其实也就是一个微笑外加一顿小龙虾的事情,他就能被你征服。一定要看他写的代码,思考为什么他会这样写,一定要将你不理解的地方记录下来,并且在下班之前紧紧地抓住他,让他一次给你讲个够,此时你一定会有一种打通任督二脉的畅快之感。所谓“师傅领进门,修行在个人”,你需要比你师傅更加努力,甚至十倍于他人的付出,才能在编程之路上尝到甜头。此时你需要学习更加高深的武功,研究更加优秀的源码,实践更有挑战的项目,还需要花整块时间,系统地看技术文档以及技术参考书。假如你想成为架构师,不妨看看我所著的《架构探险》这本书,也许它会对你的专业技能有所帮助。

    5、乐于分享你的技能

      你最好要让自己变成一位豁达开朗之人,千万不要吝啬,一定要懂得分享你所学的专业技能。可以尝试做点自己的开源项目,并让这个开源项目变得更加开放,不妨结合开源,写点技术博客,并厚着脸皮给你身边的朋友阅读。这件事情一定要持之以恒,不要担心有人吐槽你,你肯定会被吐槽,那是因为大家在关注你,此时你需要更加努力,让自己变得足够专业。当你成为真正的“大神”时,就不会有人再吐槽你了,他们只会吐槽自己的技术不如你,此时你将得到的是无限的膜拜和称赞。相信我,这绝不是奇迹。在学习专业技能之路上,多一点自信,多一点勤奋,多一点思考,再争取一点机会,你就会成功。

    二、不可或缺的软技能

    1、软技能 ≠ 务虚

      如果将专业技能比喻为“硬技能”,那么在我们的职场中,与专业性无关的技能就可以归纳为“软技能”了。但每当我提到软技能时,难免会让人误解为这是“务虚”的一种功夫,我们虽然是“吃软饭的”(做软件开发的),但我们却十分讨厌虚伪。没错!我也很厌恶虚伪之人,尤其是在职场中遇到这样的人物,我从心底鄙视他们,但我从来不会和他们发生任何冲突,反而还能和他们愉快地共事,这种本领靠的就是软技能。

      软件工程师每天都在和机器打交道,机器是没有感情的,你告诉它是0,它一定不会认为是1。但我们与人打交道却不一样,你告诉他是真,他却可能认为是假。与人打交道,正是软件工程师们最为欠缺的方面,有些软件工程师甚至害怕与人交流,害怕在公开场合讲话,害怕抛头露面,害怕做一些组织性的工作。如果你也有以上这些心里负担,那么恭喜你!因为你即将从本文中找到克服这些困难的灵丹妙药,至少我希望是这样。

      需要强调的是,软技能是一种职场必备的核心技能,我敢直言,如果缺乏这方面的技能,你的职业生涯将会变得非常糟糕。软技能包括的方面非常广泛,沟通、协调、组织、气场这些都是最基本的软技能,甚至情商也是一种软技能,会不会讲话,听不听得明白,这些都是软技能。那么我们不妨先从沟通这项软技能开始吧,因为我认为他是软件工程师最重要的软技能之一。

    2、口语流利 ≠ 会沟通

      很多人都容易将沟通理解为讲话,说一个人语言很流利,很会讲话,口若悬河,夸夸其谈,其实并非他的沟通能力很强。我认为,沟通可以理解为两方面,即“沟”和“通”。“沟”指的是你将心中所想很清晰地表达出来给对方听,考验的是你的表达能力;“通”指的是让你确信对方是否真明白你所表达的意思,考验的是你的倾听能力。所以,我们很多时候都是在“沟”,往往忽略了“通”,从而形成了“沟而不通”的情况,因此,现在全世界人民都在提倡如何“有效沟通”。

    三、正确制定职业路线

    1、给自己提几个问题

    当你正走在职场的十字路口徘徊,思考走技术,还是走管理?我的答案只有一个:根据你自己的优势来决定。合理利用好自己的优势,会让自己走的更加顺畅,让自己无怨无悔。

    2、转管理之前,先理解管理

      当我们在纠结是否应该转管理时,不妨首先理解一下什么是管理?以及什么是管理者?只有当我们正确理解了这些概念以后,再来思考自己是否具备这样的特征,才能顺利帮助自己转型。

      管理(management)是协调和监督他人的工作,从而使他人的工作可以有效率且有成效地完成。效率(efficiency)指的是以尽可能少的投入,以获得尽可能多的产出,效率常常被说成“正确地做事”,即不浪费资源。成效(effectiveness)常常被称为“做正确的事”,即做那些可以实现目标的工作活动。管理者(manager)就是完成所有管理工作,并使组织目标能够实现的人。管理者的工作包括计划(planning)、组织(organizing)、领导(leading)和控制(controlling)四种职能。

      以上都是管理学告诉我们的知识,如果你想成为一名管理者,那么你必须首先正确理解这些概念的真实含义,才能完全驾驭管理者的岗位,否则你会从管理岗位上摔下来,自己一定伤得不轻。

      如果你想成为一名优秀的管理者,那么你需要做些什么呢?

    • 亲自且专业地给团队激励。
    • 激励团队完成你无法独立完成的任务。
    • 对问题提供指导和指引。
    • 对团队的表现给予反馈。
    • 帮助团队改善绩效。
    • 使团队对组织的改变知情。
    • 改善团队小伙伴们的生活。

      如果团队和你共事过,那么团队应该觉得他们是幸运的,因为你能够让他们更加愉快和高效地工作。

      不论选择技术还是管理,在任何时候都不要放弃你的硬技能,因为它是你的“生存之本”,同时你也需要具备强大的软技能,因为它是你的“发展之源”。

      学习硬技能其实是有捷径的,你无需一味地学习这些知识点,更多的其实是与人交流以及加以应用。软技能其实是可以训练的,你只需抓住一切可以抓住的机会,有意识地加以训练和反思,你就能悟出很多宝贵的经验。软件开发是一门艺术,你需要能够静得下心,不断地优化和雕琢你的作品,因此你需要具备工匠精神。如果你想成为一名工匠领袖,那么你就应该比他人思考得更多、更高、更深、更全面,你需要更多的软技能。你只有认识到自己的优势,才能正确地选择自己的职业路线。

  • 相关阅读:
    【FPGA篇章四】FPGA状态机:三段式以及书写方法
    【FPGA篇章三】FPGA常用语句:Verilog基本语法要素
    【FPGA篇章二】FPGA开发流程:详述每一环节的物理含义和实现目标
    【FPGA篇章一】FPGA工作原理:详细介绍FPGA实现编程逻辑的机理
    学习python随笔记
    Spring中的@Bean注解、@Configuration注解、@Value
    什么是Maven项目
    SpringBoot(四)thymeleaf+MyBatis+MySql
    SpringBoot(三)thymeleaf+JPA+MySql
    SpringBoot(二)thymeleaf模板的引入
  • 原文地址:https://www.cnblogs.com/mms912/p/8551849.html
Copyright © 2011-2022 走看看