分享“我的作为自由职业者的那些日子”

2024-06-21 20:48

本文主要是介绍分享“我的作为自由职业者的那些日子”,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

在一篇博客上看到这篇文章,挺喜欢的,转过来供大家参考

2006年夏天,一个朋友告诉我,我可以在一个叫做Rent A Coder(现在叫做vWorker)的网站做编程,挣些外快。我当天就注册了。由于在一个项目上耽误的时间,没有来得及做,我就对“编程挣钱”的想法失去了兴趣。我几乎忘记了这个事儿。

很快两年后,我在北美洲的一个大学攻读博士学位,身上只有一种学生的visa卡,口袋里空空。很多月里,我都是靠学校的奖学金维持生活,直到有2个月,他们忘记了给我打款。哦,一个半月只吃大米的日子真是享受… 很糟糕,也很刺激。

这段“黑暗”的日子让我意识到,我应该干点什么来防止这种日子再次发生。我一直很喜欢编程;我的博士攻读的是计算流体动力学(Computational Fluid Dynamics)的编码方法。我的不足?我只会Fortran这种一种语言,对C语言只有初级水平。当然,我非常擅长写小的Bash和awk脚本,能用来处理我的数据文件,我知道的也就这些了。

我重新激活了Rent A Coder上的帐号,开始寻找一些小的项目。我的第一个“项目”是一个区区5美元的C程序,为了这5美元,我给这个挑剔的客户干了1个星期(对于新手,这是个好事,一个挑剔的客户会督促你实现更强健的程序,提高你的水平)。一周后,我提交了代码(用来统计任务的,通常的输入数据的文件会有10-100MB),还要完成“C语言(第二版)”这本书里的所有习题:-)。

我以一个只知道写简单的“Hello World”的初学者开始了我的这个C语言项目,到了一周的结尾,我已经学会了使用C语言,能用它来处理大型数据流。当然,我的C程序都是以Fortan为样板,依葫芦画瓢出来的,在我的博士项目里也是这么干的。我对Fortan非常的熟悉,1999年我就参加了Fortran学习的课程。

从这第一个C语言项目后,客户开始每周都给我一个C语言任务,我要的报酬越来越多,因为任务开始变的复杂(使用Liunx上的系统程序包做并行程序编程)。此时,我也开始研究C++了。

我学东西很快,这是我跟其他竞争者比较时最大的优势,因为我的数学很好,运用这些知识我可以在几天内学会一门新的语言。我非常积极的寻找新的项目,第一年我干的非常努力和辛苦。

头一年末尾,在Rent A Coder上,我已经能从一个新项目上挣到100美元了。我从来不拒绝新客户:要做一个Flash和ActionScript的交互式凸显程序?没问题,我几天就能学会…Processing?这是什么?哦,OpenGL方面的,没问题,我可以做。Python,Ruby,JavaScript,C#,Matlab。那是一段很刺激的时期。

另一方面,作为一个新手,你需要跟那些具有各种经济水平的程序员竞争,这会使价格拉的很低,一个人不可能靠做这些项目为生。竞争在初级水平层面上尤为残酷,特别是挑剔的客户只愿意出10美元,还要不停的往项目里加新的需求。

做自由职业的第二年,我不再任何项目都接了,我开始挑选客户,接每个项目愿意出至少要500美元的客户。这样的交易不错,一个月4到5个项目,在加拿大,我的收入也算中等水平了。后来我也开始挑选项目了。很烂的项目不再接受。这感觉很好!

2年多来,我已经从每个项目5美元,到了一年3到4万美元了,我对编程的知识突飞猛进,我还参加了数据结构的课程。我在那个网站上已经跻身前500名了(总共有20万会员)。这来之不易,有时候我需要每天工作8到12小时来完成一个项目,或学习一种框架。

现在,我有了一些私人客户,可以直接给他们干活,我有充裕的时间来做自己的一些事情,例如开一个编程博客,写一个Scheme语言的解释器,或写苹果应用商店里的程序。我偶尔的还到那个网站上干活(现在叫做vWorker里),只做一些有兴趣的项目(通常是并行程序编程和图形计算)。我不需要再四处找项目,现在我可以竞标参与我感兴趣的项目。一旦你能跻身前100名,你基本上就能自己定价,只干自己想干的项目了。

但这最重要的你要知道的是,做自由职业只是你事业的第一步,你的最终目标应该是挣一些具有主动性的钱,例如开发苹果应用商店程序或直接面对你的客户,而不是一辈子干的活都是去实现别人的梦。

这篇关于分享“我的作为自由职业者的那些日子”的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1082301

相关文章

Golang操作DuckDB实战案例分享

《Golang操作DuckDB实战案例分享》DuckDB是一个嵌入式SQL数据库引擎,它与众所周知的SQLite非常相似,但它是为olap风格的工作负载设计的,DuckDB支持各种数据类型和SQL特性... 目录DuckDB的主要优点环境准备初始化表和数据查询单行或多行错误处理和事务完整代码最后总结Duck

将Python应用部署到生产环境的小技巧分享

《将Python应用部署到生产环境的小技巧分享》文章主要讲述了在将Python应用程序部署到生产环境之前,需要进行的准备工作和最佳实践,包括心态调整、代码审查、测试覆盖率提升、配置文件优化、日志记录完... 目录部署前夜:从开发到生产的心理准备与检查清单环境搭建:打造稳固的应用运行平台自动化流水线:让部署像

C#读取本地网络配置信息全攻略分享

《C#读取本地网络配置信息全攻略分享》在当今数字化时代,网络已深度融入我们生活与工作的方方面面,对于软件开发而言,掌握本地计算机的网络配置信息显得尤为关键,而在C#编程的世界里,我们又该如何巧妙地读取... 目录一、引言二、C# 读取本地网络配置信息的基础准备2.1 引入关键命名空间2.2 理解核心类与方法

Golang使用etcd构建分布式锁的示例分享

《Golang使用etcd构建分布式锁的示例分享》在本教程中,我们将学习如何使用Go和etcd构建分布式锁系统,分布式锁系统对于管理对分布式系统中共享资源的并发访问至关重要,它有助于维护一致性,防止竞... 目录引言环境准备新建Go项目实现加锁和解锁功能测试分布式锁重构实现失败重试总结引言我们将使用Go作

Python中列表的高级索引技巧分享

《Python中列表的高级索引技巧分享》列表是Python中最常用的数据结构之一,它允许你存储多个元素,并且可以通过索引来访问这些元素,本文将带你深入了解Python列表的高级索引技巧,希望对... 目录1.基本索引2.切片3.负数索引切片4.步长5.多维列表6.列表解析7.切片赋值8.删除元素9.反转列表

Python中处理NaN值的技巧分享

《Python中处理NaN值的技巧分享》在数据科学和数据分析领域,NaN(NotaNumber)是一个常见的概念,它表示一个缺失或未定义的数值,在Python中,尤其是在使用pandas库处理数据时,... 目录NaN 值的来源和影响使用 pandas 的 isna()和 isnull()函数直接比较 Na

Ilya-AI分享的他在OpenAI学习到的15个提示工程技巧

Ilya(不是本人,claude AI)在社交媒体上分享了他在OpenAI学习到的15个Prompt撰写技巧。 以下是详细的内容: 提示精确化:在编写提示时,力求表达清晰准确。清楚地阐述任务需求和概念定义至关重要。例:不用"分析文本",而用"判断这段话的情感倾向:积极、消极还是中性"。 快速迭代:善于快速连续调整提示。熟练的提示工程师能够灵活地进行多轮优化。例:从"总结文章"到"用

【专题】2024飞行汽车技术全景报告合集PDF分享(附原数据表)

原文链接: https://tecdat.cn/?p=37628 6月16日,小鹏汇天旅航者X2在北京大兴国际机场临空经济区完成首飞,这也是小鹏汇天的产品在京津冀地区进行的首次飞行。小鹏汇天方面还表示,公司准备量产,并计划今年四季度开启预售小鹏汇天分体式飞行汽车,探索分体式飞行汽车城际通勤。阅读原文,获取专题报告合集全文,解锁文末271份飞行汽车相关行业研究报告。 据悉,业内人士对飞行汽车行业

java常用面试题-基础知识分享

什么是Java? Java是一种高级编程语言,旨在提供跨平台的解决方案。它是一种面向对象的语言,具有简单、结构化、可移植、可靠、安全等特点。 Java的主要特点是什么? Java的主要特点包括: 简单性:Java的语法相对简单,易于学习和使用。面向对象:Java是一种完全面向对象的语言,支持封装、继承和多态。跨平台性:Java的程序可以在不同的操作系统上运行,称为"Write once,

分享5款免费录屏的工具,搞定网课不怕错过!

虽然现在学生们不怎么上网课, 但是对于上班族或者是没有办法到学校参加课程的人来说,网课还是很重要的,今天,我就来跟大家分享一下我用过的几款录屏软件=,看看它们在录制网课时的表现如何。 福昕录屏大师 网址:https://www.foxitsoftware.cn/REC/ 这款软件给我的第一印象就是界面简洁,操作起来很直观。它支持全屏录制,也支持区域录制,这对于我这种需要同时录制PPT和老师讲