标签归档:软技能

程序员的基本常识——职业篇

这个系列是《软技能》一书的摘抄整理。这本书名声在外,读过后发现并没有那么好。一来是内容比较水,废话太多;二来掺杂着大量的俗套励志段落,还包含一些不靠谱的建议(理财)。

尽管如此,经过提纯后,书里还是有一些有价值的信息,可以算是程序员基本常识。对刚刚入行,或是打算做程序员的人来说会比较有帮助。

这个系列会有 4 篇文章,分别对应职业、自我营销、学习和生产力 4 个主题。我会抽取书中有价值的部分,适当进行改写和扩充。欢迎评论补充相关信息,或是纠正错误观点。

1. 绝不要做他人都在做的事

  • 对待职业的首要原则:程序员要主动管理自己的职业生涯,「工作是属于公司的,而职业生涯却是属于你自己的」。
  • 当你为了谋生一头扎进写代码的世界时,其实你和中世纪小镇上开铁匠铺的铁匠没什么差别。
  • 把自己当做是一个公司,而不是打工者。把雇主当做是你的软件开发企业的一个客户。你的工作就是出售你提供的服务。
  • 集中精力成为一位专家,专门为某一特定类型的客户提供专业的整体服务。你只有真正专注于一类客户,才能找到非常好的工作。

2. 必须要设立自己的人生目标

  • 为了安逸,我们倾向于遵循已经设计好的路线。缺乏对人生目标的具体认知。「死都不怕,就怕不安逸。」
  • 大目标必须足够清晰,比如你希望自己 5 或 10 年后在哪里,获得怎样的成绩。最好把大目标写在纸上,放在每天能看见的地方。
  • 逆向反推,将大目标分解为每年、每月、每周、每日的小目标。
  • 定期检查和调整目标。

3. 选择职业类别

可选项通常有三种:

类别 好处 坏处
雇员 稳定的收入;相对轻松的工作 固定的收入;不自由
自由职业(比如做外包、培训、咨询) 自由;有赚钱的潜力 考验自制力;应付更多的事情;可能会找不到项目
创业 巨大的赚钱潜力;完全自由 风险巨大;需要学习大量的技能,包括市场营销、管理、财务等;可能需要长时间高强度工作

通常情况下,你会先做一份全职工作,积累了实力和各类资源后,再考虑尝试自由职业或创业。确保你做好了准备,比如积攒了能够维持数年开支的积蓄,以便应对没有稳定收入的情况。

你可以在业余时间启动你想创建的业务,等能从这项业务中产生足以维持生计的稳定收入时,再考虑辞职。采用这种方式时,确保你和公司签订的劳动合同里没有规定你的所有工作成果(包括业余时间,或是使用公司资源的情况下)都归公司所有,如果有相关条款,可以考虑咨询律师。

4. 选择技术方向

  • 对于自由职业 / 创业者来说,通常会选择有潜力的小众市场。这对选择技术栈同样适用,尝试在一个专业方向上拥有专长(专业化),比如 Python 开发、Python Web 开发、Python 特定 Web 框架开发三者的专业化程度逐渐递增。
  • 专业化的规则是:专业化程度越深,潜在的机会就越少,但获得这些机会的可能性越大,竞争者也更少。
  • 可以尝试发展两个方向,选择这两个方向的交叉点作为职业方向。比如会 Excel 的老师,会英语的导游,会编程的律师,都要比普通的老师、导游和律师更有竞争力。
  • 但同时注意不要只会某种语言和专业方向,否则会因为行业变化而被淘汰。先从专业化开始,再拓展分支。
  • 避免陷入对某一技术的狂热之中,这会让你在职业生涯之路上走得更远。不要试图寻找最好的语言、框架、操作系统和文本编辑器,更没必要为此浪费大量时间进行争论。
  • 对技术保持开放的心态,而不是固守自己已经了解的技术,声称它是最好的,你会发现更多的机会为你敞开大门。

5. 选择公司

类别 好处 坏处
小公司(创业公司) 面临更多的挑战;容易建立影响力;回报潜力大 可能会身兼多职;工作强度大;稳定性差
中型公司 工作稳定;加班较少 变化很慢;没有机会使用前沿技术
大公司 完备的流程和规范;培训机会多;大型有影响力的项目 官僚主义;只负责代码库的一小部分;很难获得关注

考虑自己适合哪一种公司,可以在工作前和目标公司的雇员聊一聊。

6. 破解面试之道

  • 让面试官对你怀有好感会有助于通过面试。方式有很多,包括:

    • 提前建立个人品牌
    • 提前熟悉目标公司的员工
  • 内推有推荐人的声望背书,会更容易获得面试机会。
  • 想办法与公司内部人员建立联系,比如参加本地开发小组和行业会议,在论坛、IM 群聊、社交网站、GitHub 上建立联系。
  • 面试的时候,你要集中精力证明自己就是无需监督也能自动自发做好事情的员工;同时还必须要证明:在技术上你确实胜任工作;最好还能说服面试官相信你非常能干,不会被困难阻挡。

7. 获得晋升机会

  • 在任何公司里能让你脱颖而出的最重要法宝就是承担更多的责任。

    • 没有人愿意涉足的领域是搜寻机会最好的地方。
    • 成为团队中其他人的导师,建立声誉。
    • 增加自己的曝光度:做内部分享,发表意见,解决技术难题。
  • 关于办公室政治:尽管不能完全避开,但至少应该知道会发生什么,哪种人需要避开,那种人永远不要有交集。
  • 如果脚踏实地努力后仍然无法晋升,可以考虑换工作。

8. 成为专业人士

成为专业人士能帮你获得更好的工作和更多的客户:

  • 遵守自己的原则。
  • 专注于正确完成工作。
  • 不惧怕承认自己错了,不会文过饰非。
  • 持续稳定。
  • 勇于承担责任。
  • 完善自己,迎接挑战,而不是降低标准。一旦你越多了底线,选择妥协,就很难回头。

9. 成为自由职业者

你为自己工作的时候通常会比为别人工作时更加努力,但热情通常不会持续很久,你每天真正工作的时间也没有你想象的那么多。缺乏监督可能会让你长久的陷入拖延和偷懒的境地,为此你需要:

  • 学习时间管理,并建立一系列日常原则。
  • 自我激励,培养自制力。尽量排除干扰和诱惑,让它们远离你的工作环境。
  • 适应孤独感,并适时的走出去,参见开发者聚合或行业会议,和其他从业者交流。

获得客户的最佳途径:吸引式营销(inbound marketing)。简单来说,就是免费提供有价值的东西。通过写博客、录视频和播客、演讲等方式提供与自己的服务相关的有价值的内容(大多是免费的)。

你的收费标准应该按照全职工作的两倍时薪收取,因为你通常需要自己缴税,购买商业软件。如果你的工作能够为客户带来更大的价值(提高他们的业务或是节省大量开支),你可以根据你能带来的价值来定价。记得向客户说明为什么你的服务值这个价格。

如何创建你的第一个产品:

  • 不要在没有找到客户之前就构建产品。
  • 一个产品要解决何种问题,以及目标受众是哪些人,这些问题必须在创建产品之前就弄明白。多和目标客户沟通交流,不断检验自己的想法。
  • 捷径是提前在对应的领域建立影响力,通过创建博客,演讲等方式发展受众。
  • 通过测试市场来验证你的产品,看看你的潜在客户是否真的愿意为它买单。比如进行一场预售,为提前付费的客户打折,看看有多少人愿意买单。
  • 如果是创业产品,那么就从小处着手,关注核心功能实现,快速建立产品原型并上线,及时获得反馈并不断改进,想法行不通就及时脱身。你可能需要重复多次这个过程才能创建一个成功的产品。

10. 成为创业者

  • 创业拥有巨大的潜在回报,但也极其危险。
  • 大多数创业公司的创始人都有所谓的退出策略,比如:

    • 当公司成长到一定规模的时候被收购
    • 上市
  • 当你有了一个好点子,有技术或是有技术合伙人,你最好还要拥有独一无二的知识产权或行业资源,这可以确保你的产品不会被大公司快速复制。而且你的项目要有规模扩张的潜力。
  • 除了持谨慎策略的自力更生型创业公司外,大多数初创公司都希望获得外部投资以快速成长。在开始的时候可以尝试申请加入创业孵化器计划。
  • 对创业公司来说,第一个重要里程碑就是获得第一笔资金(种子资金),一般天使投资人会投给早期创业者,即种子轮 / 天使轮。拿到天使投资后你可以雇佣员工,开始扩张。
  • 种子基金烧光后,如果你的点子仍然可行,将会获得第一轮投资(A 轮),风险资本通常会在这一轮介入(风险投资人 / 风投)。这之后,大多数创业公司还会经过几轮融资,最后成功实现盈利,或者被收购。 

本文首发于公众号「李辉的代码厨房」。