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

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

相关文章

OpenCV在Java中的完整集成指南分享

《OpenCV在Java中的完整集成指南分享》本文详解了在Java中集成OpenCV的方法,涵盖jar包导入、dll配置、JNI路径设置及跨平台兼容性处理,提供了图像处理、特征检测、实时视频分析等应用... 目录1. OpenCV简介与应用领域1.1 OpenCV的诞生与发展1.2 OpenCV的应用领域2

Python中你不知道的gzip高级用法分享

《Python中你不知道的gzip高级用法分享》在当今大数据时代,数据存储和传输成本已成为每个开发者必须考虑的问题,Python内置的gzip模块提供了一种简单高效的解决方案,下面小编就来和大家详细讲... 目录前言:为什么数据压缩如此重要1. gzip 模块基础介绍2. 基本压缩与解压缩操作2.1 压缩文

Go语言代码格式化的技巧分享

《Go语言代码格式化的技巧分享》在Go语言的开发过程中,代码格式化是一个看似细微却至关重要的环节,良好的代码格式化不仅能提升代码的可读性,还能促进团队协作,减少因代码风格差异引发的问题,Go在代码格式... 目录一、Go 语言代码格式化的重要性二、Go 语言代码格式化工具:gofmt 与 go fmt(一)

Python虚拟环境与Conda使用指南分享

《Python虚拟环境与Conda使用指南分享》:本文主要介绍Python虚拟环境与Conda使用指南,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、python 虚拟环境概述1.1 什么是虚拟环境1.2 为什么需要虚拟环境二、Python 内置的虚拟环境工具

Python处理大量Excel文件的十个技巧分享

《Python处理大量Excel文件的十个技巧分享》每天被大量Excel文件折磨的你看过来!这是一份Python程序员整理的实用技巧,不说废话,直接上干货,文章通过代码示例讲解的非常详细,需要的朋友可... 目录一、批量读取多个Excel文件二、选择性读取工作表和列三、自动调整格式和样式四、智能数据清洗五、

JDK9到JDK21中值得掌握的29个实用特性分享

《JDK9到JDK21中值得掌握的29个实用特性分享》Java的演进节奏从JDK9开始显著加快,每半年一个新版本的发布节奏为Java带来了大量的新特性,本文整理了29个JDK9到JDK21中值得掌握的... 目录JDK 9 模块化与API增强1. 集合工厂方法:一行代码创建不可变集合2. 私有接口方法:接口

电脑系统Hosts文件原理和应用分享

《电脑系统Hosts文件原理和应用分享》Hosts是一个没有扩展名的系统文件,当用户在浏览器中输入一个需要登录的网址时,系统会首先自动从Hosts文件中寻找对应的IP地址,一旦找到,系统会立即打开对应... Hosts是一个没有扩展名的系统文件,可以用记事本等工具打开,其作用就是将一些常用的网址域名与其对应

SpringBoot请求参数接收控制指南分享

《SpringBoot请求参数接收控制指南分享》:本文主要介绍SpringBoot请求参数接收控制指南,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录Spring Boot 请求参数接收控制指南1. 概述2. 有注解时参数接收方式对比3. 无注解时接收参数默认位置

Python通过模块化开发优化代码的技巧分享

《Python通过模块化开发优化代码的技巧分享》模块化开发就是把代码拆成一个个“零件”,该封装封装,该拆分拆分,下面小编就来和大家简单聊聊python如何用模块化开发进行代码优化吧... 目录什么是模块化开发如何拆分代码改进版:拆分成模块让模块更强大:使用 __init__.py你一定会遇到的问题模www.

Python解析器安装指南分享(Mac/Windows/Linux)

《Python解析器安装指南分享(Mac/Windows/Linux)》:本文主要介绍Python解析器安装指南(Mac/Windows/Linux),具有很好的参考价值,希望对大家有所帮助,如有... 目NMNkN录1js. 安装包下载1.1 python 下载官网2.核心安装方式3. MACOS 系统安