标签归档:程序员

RSS feed of 程序员

浅谈程序员职业发展的四个阶段

程序员的职业发展和技能提升是一个持续的过程,可以大致分为几个不同的阶段和境界。这些阶段并不是严格界定的,而是根据个人经验、技能水平、职业目标等因素有所不同。以下简单将程序员的职业发展划分为四个阶段和境界。

初级阶段:新手程序员

特点

  • 刚刚接触编程,对编程语言、开发工具、项目流程等还不熟悉。
  • 需要通过大量的学习和实践来掌握基础知识,如语法、数据结构、算法等。
  • 可能会遇到很多困难,需要不断寻求帮助和指导。

境界

  • 能够编写简单的程序,解决基本的编程问题。
  • 对编程语言和开发工具有了初步的了解和掌握。

中级阶段:熟练程序员

特点

  • 已经具备了一定的编程经验和技能,能够独立完成一些中等难度的项目。
  • 开始关注代码质量、可维护性、性能优化等方面的问题。
  • 开始学习和使用一些更高级的编程技术和工具,如设计模式、框架、数据库等。

境界

  • 能够编写高效、可维护的代码,解决较为复杂的编程问题。
  • 对编程语言和开发工具有了更深入的了解和掌握。
  • 开始思考如何提高自己的编程能力和职业素养。

高级阶段:专家程序员

特点

  • 在编程领域有深厚的造诣,能够解决高难度的编程问题。
  • 对编程技术、工具、框架等有深入的理解和掌握。
  • 开始参与架构设计、系统优化、性能调试等更高层次的工作。

境界

  • 能够编写高质量的代码,解决复杂的编程问题。
  • 对编程领域有深入的了解和认识,能够提出创新的解决方案。
  • 开始思考如何将自己的经验和知识传授给其他人,推动团队和组织的成长。

顶级阶段:大师程序员

特点

  • 在编程领域有卓越的成就和影响力,是行业内的佼佼者。
  • 对编程技术、工具、框架等有深入的理解和掌握,能够提出颠覆性的创新方案。
  • 参与制定行业标准和规范,推动整个行业的发展和进步。

境界 ...

继续阅读

程序员做副业有哪些选择

程序员在做副业方面拥有诸多优势,他们可以利用自己的技术专长和逻辑思维能力,在业余时间开展多种副业。以下是一些程序员常见的副业选择:

  1. 接私单或外包项目

    • 程序员可以在各大外包平台(如程序员客栈、gulu、开源众包、devnors等)或个人渠道上接取软件开发、网站维护、移动应用开发等私单或外包项目。
    • 这种方式能够灵活安排工作时间和工作量,但需要具备一定的项目管理和沟通协调能力。
  2. 在线教育和培训

    • 程序员可以利用自己的技术知识,在在线教育平台(如慕课网、小鹅通、CSDN学院等)或自建网站上开设编程课程,教授编程语言、框架、技术工具等。
    • 通过制定详细的课程计划、准备教学材料、录制教学视频等方式,提供高质量的教学服务。
    • 这种方式不仅能够分享自己的知识和经验,还能获得额外的收入。
  3. 技术博客和内容创作

    • 程序员可以在技术博客平台(如CSDN博客、oschina开源社区博客、Medium、Dev.to等)上撰写技术文章、分享编程经验和技术见解。
    • 通过提供有价值的内容,吸引读者关注,并通过广告、赞助或付费订阅等方式盈利。
    • 这种方式需要持续学习和更新自己的知识,以保持博客的竞争力和吸引力。
  4. 开发个人软件项目或应用

    • 程序员可以利用业余时间开发个人软件项目或应用,如移动应用、网站、桌面应用程序等。
    • 通过销售、广告或提供增值服务来获得收入。
    • 这种方式需要制定详细的计划、进行市场调研、选择合适的技术栈、进行开发和测试等工作。
  5. 技术咨询和解决方案

    • 程序员可以为客户提供技术咨询和解决方案服务,帮助他们解决技术难题、优化业务流程等。
    • 通过在线平台、社交媒体、个人网站等途径宣传自己的咨询服务,并建立长期的合作关系。
    • 这种方式需要具备一定的专业知识和经验,以及良好的沟通和解决问题的能力。
  6. 参与开源项目

    • 程序员可以参与开源项目的开发和维护,提升自己的技术水平和在开发者社区的影响力。
    • 通过分享自己的开源项目,获得曝光和star,可能会吸引需求方向你抛来橄榄枝。
    • 开源项目也可以作为一个简历上的亮点,增加自己的竞争力。
  7. 其他技术相关副业

    • 程序员还可以尝试其他技术相关的副业,如数据分析师、网络安全咨询师、AI应用开发者等。
    • 这些副业需要具备一定的专业知识和经验,以及持续学习和更新的能力。

程序员在选择副业时应考虑自己的兴趣、能力和市场需求等因素,并制定出合理的计划和策略。通过不断学习和提升自己的技能水平,程序员可以在副业领域取得更多的成就和收益。

程序员的《权利法案》

“程序员应有的权利你都要去争取!而且记住:你可以让公司做出改变,要不然你就换一家公司。”

一个公司愿意付给一个开发人员6万~10万美元的薪水,却用糟糕的工作条件以及破烂的硬件设施摧残他,这对我来说是难以置信的。不管怎么说,这买卖一点都不划算。然而,我却总能看到这样的事情。这让人很震惊,竟然有这么多公司依然没有为软件开发者的成功提供必要的基础条件。

我提议,我们应该制定一个针对程序员的《权利法案》,以防止公司拒绝给程序员提供取得成功所必需的基础条件,最终达到保护程序员权利的目的。

1. 每个程序员都应该有两个显示器

在LCD价格跳水以及双输出的显卡如此普及的情况下,如果你还把你的开发者限制在一个屏幕上,那你一定是疯了。通过把电脑桌面双倍扩大可以获得生产力的提升,这已经被充分论证过了。如果你想把开发者的生产力发挥到极致,请确保每个开发者都有两个显示器。

2. 每个程序员都应该有一台快速的电脑

程序员必须运行很多软件才能完成他们的工作:开发环境、数据库引擎、网络服务器、虚拟机,如此等等。运行所有这些软件需要一台快速的电脑,再配上很多内存。程序员的电脑越快,他们每次编译、调试的周期就越短。我不是让你当“发烧友”,花天价去购买最新、最顶级的配置——但是,你也得向高配置看齐吧。给你的开发者配备快速的、带有很多内存的电脑吧。眼巴巴地盯着进度条等待绝对是一种浪费!

3. 每个程序员都应该自己选择鼠标和键盘

在大学的时候,我经营过一个代客油漆的业务。我雇用的每一位油漆工都需要他们自己购买刷子。这是我早期积累的经验之一。将一把标准的刷子扔给一位新的油漆工是行不通的。这些“公司标配的”刷子不被爱惜,很快就会沦落到破损不堪的状况。但是,那些自己买刷子的油漆工很珍惜他们的刷子。他们懂得欣赏花20美元买来的专业刷子与那些从一元店里买来的一次性刷子之间的差别。拥有自己的刷子让他们产生一种持久的责任感和手艺人的感觉。程序员应该和他们的鼠标以及键盘保持一种相同的关系——它们是我们用来实践我们手艺的最基本的日常工具,我们应该加以善待。

4. 每个程序员都应该有一把舒适的椅子

别小看这个问题!很大程度上来说,我们靠屁股每天坐上8个小时来谋生。为什么不在一把舒适的、设计优良的椅子上度过那8小时呢?要坐8个小时啊,仅仅给程序员提供勉强过得去的椅子是不够的,要让他们坐得愉悦才行!当然,你雇用程序员主要是为了他们聪明的脑袋,但是也别忘了照顾他们的其他重要部位。

5. 每个程序员都应该能快速接入互联网

任何东西只要能“偷”来的,好的程序员从来不会自己去写。互联网是有史以来“偷”东西的最佳去处。我完全赞成“读万卷书”,但如果没有快速响应的互联网搜索、不能弹指间找到我想要的东西,很难想象我是否还能正常开展工作。

6. 每个程序员都应该有安静的工作环境

编程需要全神贯注。程序员在一个嘈杂的环境里是没法高效工作的。请确保你的工作环境能够保护程序员的“心流”状态,否则他们宝贵的时间将在各种干扰之下消耗殆尽。

译者注:心理学家米哈里齐克森·米哈里(Mihaly Csikszentmihalyi)将心流(flow)定义为一种将个人精神力完全投注在某种活动上的感觉;心流产生时会有高度的兴奋及充实感。

我们要求的这几个基本权利是容易办到的。这些要求并不过分,但它们对于软件开发者工作生活的质量起着关键性的作用。如果你所在的公司在这方面做得不好,那就改善一下吧,这既不需要大量的资金投入,做起来也并不难。作为程序员,你要去争取应有的权利!而且记住:你可以让公司做出改变,要不然你就换一家公司。

译文来自:呦呦鹿鸣

原文链接:the-programmers-bill-of-rights