自由职业初学者指南
一、简介
你好!
如果您正在阅读本文,我认为:您正在开始(或想要)成为自由职业者,或者您只是在这个过程本身中寻找一些技巧。目前,我已经从事自由职业 6 年多了,本文的目的是尝试指导您了解我在这些年中获得的不同知识。
老实说,我不能抱怨这些年来我所获得的东西 - 我开始主要是为了体验(但是,我不会撒谎,额外的现金总是感觉很棒),最后我得到了一堆除了单独的经验之外,还有不同的学习内容:从提出一堆不同的想法到与客户更好地沟通,甚至学习我没有机会付诸实践的东西。
这些对我来说,是自由职业者最大的卖点。
2. 入门:客户
首先,我们必须了解一些关于客户的知识。在这里,我们有 3 个重要主题要讨论:
- 寻找并保护
- 谈判
- 法律事务
寻找并保护客户
让我们从第一个开始:寻找和保护客户。这实际上可能相当困难——当我开始自由职业时,我不知道在哪里真正找到客户,所以,我开始访问 Workana 和 Fiverr 这样的网站。
有效果吗?不。我不仅从未从这些类型的网站上获得过客户,而且老实说,这种类型的网站总是让我觉得我正在做的创建软件的工作是廉价且一次性的。公平地说,确实有很多开发者靠这个赚钱,所以,也许,这只是我的不幸。
之后,我开始通过我的朋友,看看是否有人认识正在寻找开发人员的人,不到 2 天,我就有了第一个客户要求网站,不是直接朋友,而是朋友一个朋友的。在与第一个客户完成工作后,他觉得这项工作非常好,并广为传播——自从我一直没有自由职业生涯以来。
这是我给你的第一个建议:不要忽视口对口和有机接触。它非常强大,可以让你走得很远!询问您的网络,很快人们就会开始找到您。没有网络? 开始构建一个(这里有一个供您开始的参考,您可以在尚未准备好时尝试这些网站)。
第二个提示?不一定要接受客户的想法。他们认为自己想要一个应用程序,但也许这个人更适合网络应用程序。您是专家,请利用您的专业知识(或联系其他人以更好地确定这一点)这里最好的课程是什么。
谈判
事情终于发生了,你找到了一个客户,他们想要你的软件!恭喜!现在我们跳到第二部分,即谈判。这是作为软件工程师需要掌握的一项关键技能(如果您想了解更多信息,可以在此处找到更多有关沟通的内容)。
在企业界,你的每一个截止日期都会受到你自己和上级的谈判能力的影响。
通常,当你与客户交谈时,他们希望尽快从你那里得到预算想法——而这就是事情变得糟糕的地方,软件时间很难估计,所以,如果你在这里匆匆忙忙,只有两种可能的结果:你预算过多,客户不会喜欢它,或者你预算不足,你将免费工作。
除了预算之外,他们还想知道日期和时间想法,因为他们不知道他们的项目是否需要一周或一年,并且循环重复,只有两种可能的结果,或者你是要缩短时间,必须比预期工作更多,否则你会花费太多时间让客户感到舒服。
你在这里的工作就是:让正在与你打交道的另一个焦虑的人平静下来。他们想要了解事物,并且想要快速了解它们,您只需提醒他们这是一个工程过程,您必须在精确确定预算和日期之前进行一些改进。
有时候,你会发现一些客户特别着急想了解事情,在这里,如果你之前做过一些自由职业,你可以尝试观察一个范围,让他们更冷静。如果您从未从事过自由职业,并且您觉得该客户属于这种边缘情况,请询问有自由职业经验的人您应该收取多少费用,他们会帮助您。
法律事务
如果您的客户以某种方式认识您,这是一件好事:您可能不会深入了解法律知识!但是,老实说,至少一些合同想法通常是必要的——每个人都擅长要求东西,但并不是每个人都擅长为他们所要求的东西付费。还没有签订合同,钱也没有到账?好吧,这很糟糕——至少你学到了一些东西。在我看来,解决这个问题的最有趣的实现是这个:
kleampa/not-paid:客户没有付款?为 body 标签添加不透明度并每天减少它,直到他们的网站完全消失(github.com)。
对您来说,了解您所在国家/地区有关税收和此类非正式工作的法规也很重要。您不必一开始就深入挖掘,只需了解一些事情如何运作以及您应该支付哪些税(如果有)即可。
3. 项目管理与工程
现在我们已经介绍了寻找客户和处理自由职业的业务方面的基础知识,让我们深入探讨成功的自由职业软件工程师的核心:有效的项目管理和工程实践。作为自由职业者,您不仅负责编写代码;还负责编写代码。您还负责管理整个项目生命周期。这包括几个关键方面:
- 理解和定义项目需求
- 创建准确的时间和成本估算
- 将项目分解为可管理的任务
- 使用项目管理工具和方法
- 每周或定期显示进度
通常,在大学期间,我们有整整 6 个月的时间来学习软件工程流程以及如何精确地做到这一点。没有6个月的时间吗?这是小版本:
- 将整个项目分为一组主要里程碑
- 将这些里程碑分解为功能,使这些里程碑成为可能
- 深入了解这些功能并了解您的客户想要什么
- 尝试以工作小时/天来估计这些功能
- 如果您附近有一些有经验的人,请他们根据您的技能水平修改您的估计
请计划好事情。最近的一项研究发现,在开发开始前明确需求的项目比那些没有明确需求的项目成功的可能性高出 97%。
在估计功能之后,为世界的混乱、错误或修订添加一些额外的时间。这种做法有助于管理客户的期望,并确保您有空间交付高质量的工作——这就是目标,因为这将推动您的有机影响力。
记住:少承诺多交付总是更好。反之则不然。
4.我制作了一个可以提供帮助的工具:Founders Kit
在多年的自由职业生涯中,我尝试了很多不同的工具来帮助我实际组织我的流程。经过大量的试验和错误才意识到没有任何工具能够完全满足我的需求 - 在某些情况下,它们太复杂,带来了大量我没有使用的功能,在其他情况下,它们没有一些必要的东西。
最重要的是我是一名工程师!因此,在过去的一个月里,我努力创建一个解决方案来帮助管理这方面的业务。它叫做 Founders Kit,如果您能帮助我们进行 Product Hunt 并查看它,我会很高兴;D
5. 结论
嘿!你坚持到了最后。我希望您已经开始意识到软件工程中的自由职业如何成为一条有益且富有挑战性的职业道路,它可以为您赚取一些额外的钱并为您带来一些非常酷的体验。
通过遵循本指南中概述的指南 - 从寻找和保护客户,到有效谈判、管理项目以及利用 Founders Kit 等工具 - 您将做好充分准备,开始您的自由职业之旅。
以上是自由职业初学者指南的详细内容。更多信息请关注PHP中文网其他相关文章!

热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

Video Face Swap
使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热门文章

热工具

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3汉化版
中文版,非常好用

禅工作室 13.0.1
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

Python更适合初学者,学习曲线平缓,语法简洁;JavaScript适合前端开发,学习曲线较陡,语法灵活。1.Python语法直观,适用于数据科学和后端开发。2.JavaScript灵活,广泛用于前端和服务器端编程。

JavaScript在Web开发中的主要用途包括客户端交互、表单验证和异步通信。1)通过DOM操作实现动态内容更新和用户交互;2)在用户提交数据前进行客户端验证,提高用户体验;3)通过AJAX技术实现与服务器的无刷新通信。

JavaScript在现实世界中的应用包括前端和后端开发。1)通过构建TODO列表应用展示前端应用,涉及DOM操作和事件处理。2)通过Node.js和Express构建RESTfulAPI展示后端应用。

理解JavaScript引擎内部工作原理对开发者重要,因为它能帮助编写更高效的代码并理解性能瓶颈和优化策略。1)引擎的工作流程包括解析、编译和执行三个阶段;2)执行过程中,引擎会进行动态优化,如内联缓存和隐藏类;3)最佳实践包括避免全局变量、优化循环、使用const和let,以及避免过度使用闭包。

Python和JavaScript在社区、库和资源方面的对比各有优劣。1)Python社区友好,适合初学者,但前端开发资源不如JavaScript丰富。2)Python在数据科学和机器学习库方面强大,JavaScript则在前端开发库和框架上更胜一筹。3)两者的学习资源都丰富,但Python适合从官方文档开始,JavaScript则以MDNWebDocs为佳。选择应基于项目需求和个人兴趣。

Python和JavaScript在开发环境上的选择都很重要。1)Python的开发环境包括PyCharm、JupyterNotebook和Anaconda,适合数据科学和快速原型开发。2)JavaScript的开发环境包括Node.js、VSCode和Webpack,适用于前端和后端开发。根据项目需求选择合适的工具可以提高开发效率和项目成功率。

C和C 在JavaScript引擎中扮演了至关重要的角色,主要用于实现解释器和JIT编译器。 1)C 用于解析JavaScript源码并生成抽象语法树。 2)C 负责生成和执行字节码。 3)C 实现JIT编译器,在运行时优化和编译热点代码,显着提高JavaScript的执行效率。

Python更适合数据科学和自动化,JavaScript更适合前端和全栈开发。1.Python在数据科学和机器学习中表现出色,使用NumPy、Pandas等库进行数据处理和建模。2.Python在自动化和脚本编写方面简洁高效。3.JavaScript在前端开发中不可或缺,用于构建动态网页和单页面应用。4.JavaScript通过Node.js在后端开发中发挥作用,支持全栈开发。
