5

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

 3 years ago
source link: https://greyli.com/programmer-common-sense-career/
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

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

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

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

这个系列会有 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 轮),风险资本通常会在这一轮介入(风险投资人 / 风投)。这之后,大多数创业公司还会经过几轮融资,最后成功实现盈利,或者被收购。 

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


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK