毕业就要满6年,前1年半全职上班,然后自由职业一年多,再后来在一家公司远程工作到现在(刚辞职)。
走上自由职业的路完全是一个巧合,当时我并没有一个明确目标,只是在某个地方看到了这么个名词,颠覆了我的观念。因为业余时我刚好写了个CMS系统作为平常练手用,所以当时想,要不我就用这CMS来接网站的单,只要一个月能接一单,赚3K左右让我活下去,我就继续走这条路,否则就找工作。
网站项目是没接到,倒是接到一同学介绍的一个企业项目,借着这个项目我开始了自由职业。项目本来预估一个月,结果做了一年,一个人从Web前端做到C#后端,还有工厂扫描枪上的程序 (扫描枪装的是Windows Mobile,所以其实也就是一个WinForm程序,倒也没什么新东西),还从厦门跑到沈阳深入工厂做项目实施 (这是一个企业信息化项目,Web端接受经销商订单,然后和工厂中的设备对接,完成订单到生厂这个流程的信息化,工厂设备有相应接口,所以主要还是做Web部分)。这个项目两期最后收了大概3W左右,自由是自由,但是穷得一塌糊涂。
这期间因老师介绍也到另一家做教育方面的企业系统的公司以兼职形式客串了两个月,后来老板想留我在那,给我画了不小的饼,年少的我当时也纠结了半天,还好后来想清楚了,当时他们公司大多数员工薪水只有两三千,虽然老板画的饼里暗示我的薪水会比他们高得多,但低薪环境意味着这不会是一家尊重程序员价值的公司,给我再多也不敢拿,更重要的是,公司发通告要求员工上班不能上网看网页,这种通告让我感觉很无语。
自由职业时工作时间很灵活,但极缺在项目估时和商务谈判上的经验,每次都亏本,我也比较好说话,中间加了N多需求我一分钱都没要,工厂那个项目的老板可能也感觉有点对不住我,后来主动给我打了几千块的补偿。不过不管怎样,这个自由职业是继续不下去了。
说来也巧,在我快活不下去时,第一家公司联系我,表明不想全职以后,对方表示有一个客户的项目可以接受在家兼职工作,计时薪,这意味着有干活就确定有收入,不用冒着低估工作量的风险,只要每天记录一下工作内容,月底发他们即可。我很感谢他们对我的信任,事实上,他们应该没有看我的工作记录,只有财务算钱时才会看一下里面的工时统计。有朋友感觉不可思议,说要是我乱写怎么办?但我相信人与人之间基本的信任是会存在的,而且正直一定是成功的基础,我没有必要这样自毁前程。
然后,我就开始了兼职远程工作的生涯。当时找我去是因为项目人手极缺,但接触项目后,我感觉根本原因是技术债务太重。代码里太多的 Copy-Paste,不使用的代码也不删除。所以当时我想改变这种状况,一方面开始重构部分业务变化最频繁的模块,另一方面制定一些 Code Review 规则,鼓励写单元测试,但似乎总是缺了点什么。这是一个客户的项目,项目组的成员相当于是人员外包给这个客户,客户没有技术团队建设的概念,我的计划还没实施多久,因为客户另一个项目的负责人走了,我就被调过去填上了,之前的计划自然也就停住了。
但新接手的这个项目更糟糕,项目业务逻辑相当复杂,是一个B2B的电商项目,B2B项目里的计价方式和B2C有很大差别,算一个订单价格时要从零件价格算起,不同零件还有不同的规则,但这些代码全都是用 IF-ELSE 加硬编码加到处 Copy-Paste 写的好吗!!此外还有,4千多行的JS文件到处都是(4K行最后被重构到三四百行,重复得有多严重)。但既然接手了,就决定把它做好,和一个产品经理一起(他设计功能和用户体验),两个人,一年多,至少从我的角度,这个项目后来算是比较可控了,包括计价规则,原本是客户经常发邮件过来说帮忙改下某产品的计价规则,后来我改成让客户自己在后台通过公式来配置了。我对重构、单元测试这种事热情比较大,倒不是我闲得蛋疼,主要是想让客户少烦我一点。
后来公司想把我拉到研发部,但这个B2B项目的客户不肯,这个客户带来的收益应该不大,所以公司干脆就和这个客户中止了合作,于是就进了研发部,做框架型产品,所以这时的主要任务是设计扩展点和API。
研发部的项目就更自由了,因为这种项目根本就没有明确的需求,只有老板的一些基础想法,你要做的就是和团队成员一起设计更好的需求,然后实现它,你可以尽情发挥你的想法,这也挺合我味口,说实话我不喜欢那种“项目经理分解任务(这在软件工程里好像还有个什么术语,三个字母的),再分配给程序员”的团队,每个人按部就班地完成工作,你要做的就是完成任务,没有一点意思。
但这毕竟是一个老板直接领导的项目组,说实话和老板一起工作多少有那么点不自在。但更多的是,在研发部呆了两年后,我发现我开始有一股很强的冲动,想找一个至少一半以上的人都比我厉害的团队,做一些我没做过、做不来的事情。
突然发现已经离题八万里了,哎,每到深夜时情感就会泛滥...切回正题。近期打算开始找工作了(项目交接中)。
ASP.NET/C#/JavaScript,主要做后端,MongoDB, RavenDB 这些也都用过,但因为公司项目用不到,所以只在业余项目用一些,用得不深,不过我对文档型数据库模型设计特点应该也还算比较熟悉。
前端偶尔也做,但没太花心思去研究,了解得不是太深。用过两次 SPA (DurandalJS),偶尔也写一些简单的JS库项目内用 (主要是封装一些项目相关的UI组件,或对第三方JS库做一些扩展,不重复造轮子)。因为产品类型的原因,所以现在大部分工作内容都是设计框架、扩展点等。
我真觉得每天花两小时挤公交是浪费生命,两小时干什么不好,非要在路上颠簸,通常晚上挤完公交回来,人也很累;其次,我看到太多的同事中午趴在桌子上午休,这么艰苦的午休,怎么保证下午的工作效率?再者,我工作中间休息时,会想要看看书,或练练吉他,这在办公室是做不到的;
前段时间看到一网文,说是某著名团队创始人讲,我们一起工作基本靠吼,我不太认可这种观念,“吼”是方便了你,但这是以打断另一位(或多位)同事的工作为代价的。你“吼”一声可以迅速解决你的问题,但别人要花十几分钟甚至更多时间来“接”上刚才被打断的工作。
外包是一次性项目,即使我写再好的代码,这个项目数月后也会终止。而我希望我写的代码能对项目产生长远影响,今天重构一段代码,意味着以后踩坑的机率可以小一点,多写一个单元测试,被紧急电话吵醒的机会就少一些。文艺一点说,就是我希望我能对项目产生感情,这在外包项目上是不可能做到的。
谢谢大家。
1
abelyao 2015-06-24 03:36:38 +08:00 via iPhone
全文看下来,觉得楼主是个有想法的开发者,本想了解更多,可以博客打不开…
目前项目还没准备好,过后如果有机会再和楼主联系。 |
3
blueandhack 2015-06-24 04:56:55 +08:00
晚上在发邮件,没事看到这个帖子,驻足细看了很久,大学刚起步,未来目标也是telework,希望今后楼主多传授经验
|
4
woojuno 2015-06-24 05:43:22 +08:00
我也想找个远程的,关键是客户不同意啊。遇到这种必须到现场的客户,我只能说谁叫人家是上帝呢。
|
5
zsk425 2015-06-24 08:16:32 +08:00
觉得楼主是很靠谱的人,加油。我也对远程感兴趣,一直在观望。
建议把“栈溢出”直接写为“stackoverflow” |
6
ueleaves 2015-06-24 09:06:47 +08:00
路过顺便赞一个kooboo的cms,站群理念、关系管理、即见即得的主页修改方式很是惊艳。
祝lz早日找到理想的工作。 |
8
keroro520 2015-06-24 09:22:12 +08:00
自由职业是蛮开心的,我也很想体验一下。但有个问题想咨询一下楼主,楼主准备自由职业到几岁?对未来有什么打算吗?
|
9
mugbya 2015-06-24 09:29:36 +08:00
够厉害的...兴趣还蛮多 :) 吉他
|
11
angkec 2015-06-24 09:36:03 +08:00 via iPad
楼主看一下这个帖子 http://www.v2ex.com/t/192404 有兴趣私信我
|
12
inmyfree 2015-06-24 09:41:44 +08:00
看到lz不解析www的记录就觉得周身不舒服...
|
13
SilenceLive 2015-06-24 09:45:19 +08:00
@mawing 那叫SO也可以..国外很多人都喜欢缩写成SO..
|
14
em70 2015-06-24 09:54:57 +08:00 via Android
这样靠接单不是长久之计,你如果想长期自由职业,应该自己做产品自己创业
|
15
Bottle 2015-06-24 10:05:36 +08:00
楼主其实是在晒脸; // :D
长的真心帅气; 上不去楼主博客的可以用梯子; 简历和Github上有楼主的照片; 速速围观; return; |
16
likuku 2015-06-24 10:14:14 +08:00
上个月有朋友所在公司要在2周内开发上线完成一个iOS APP,后来得知报酬就有3W。
接着又要作安卓App,牵线介绍了个人来作,得知相关文档资料纯英文,这位安卓开发者觉得压力蛮大的。 |
18
mouhong OP @zsk425 一开始是写 StackOverflow,这也是我第一次写成“栈溢出”,后来发现写“栈溢出”对得比较齐一点...
|
19
mouhong OP @Bottle 那可是千百张中好不容易挑出来相对比较上镜一点的...真头像是最近才用的,主要是看到有一部分人习惯用真头像,我觉得这样也很不错,尤其是在找工作时,对方应该会感觉比较真实
|
20
ety001 2015-06-24 11:10:35 +08:00
顶一个,我也是个远程工作者。
|
21
anubiskong 2015-06-24 11:12:20 +08:00
同求js方面的全栈职位
|
22
mouhong OP @woojuno 其实是公司 A 为工厂 B 提供信息化服务,A 卖进口机器给 B,后来 A 想在软件方面加强一下才找的我,我相当于是为 A 服务的。项目实施包括硬件和软件,A 说怕软件实施他们搞不定,希望我能和他们的硬件工程师一起去,我就过去了,当时感觉是按项目收钱的,所以实施期间我一分钱都没收...
虽然实施很累,但一个沈阳的清晨,我看到酒店附近的一片被秋天染成红色的小树丛,这一幕现在仍记忆犹新,在只有冬夏的福建呆了二十多年,终于第一次感受到了什么叫秋天 |
23
wincat 2015-06-24 11:32:25 +08:00
哈哈,我接手你你在A做的项目,并维护到现在。你算我不收学费的老师吧!祝你一路顺风!加油!
|
24
mouhong OP @keroro520 做外包的自由职业我两年前就不太想做了,虽然也能学到不少东西,但沉淀很少,成长太慢,在我前两年远程工作时,有时业余还接些外包晚上和周末做,弄得我非常忙,我现在都有点后悔,因为那段时间几乎学习就停滞了,如果让我再来一次,我会选择把更多的时间拿来看书。
至于远程工作嘛,我现在已经没有办法适应朝九晚五每天打卡的生活了,所以目前的计划是,远程工作到我退休 (如果有合适机会,可能也会考虑创业)。到办公室上班是不太可能了,除非办公室离我家非常近,走路能到。这样倒是可以每周去公司上两三天班,一个人远程工作也有一点不好的地方就是比较孤独。 |
25
CIVITAS 2015-06-24 11:34:44 +08:00
|
26
MOsky 2015-06-24 11:35:28 +08:00 1
已关注楼主的 GitHub。
我也是一个远程工作者,不过没有做个自由职业。楼主的文章全部看完了,深有感触。 我曾经很认真的思考过如果我做自由职业的话,我会是一个什么样的生存状态,而我能够做什么样的工作。不过我总有一种感觉,搞技术的开发者做自由职业的话几乎都是在接外包。 那就说外包吧。如果你专心技术的话,做外包就必须分出精力来维系自己的人脉来接单,同时要维护自己的商业形象(信誉,技术实力)。不论是通过熟人接单,还是通过 freelancer 这样的平台,都要花很多精力在非技术面上。 同时还要进行风险管理(又是非技术上的),包括评估单的价值,评估单的隐形风险。有些垃圾单最好一开始就拒了。但这样还是无法避免踩坑,如果被坑了,就只好接受现实了,这就考验你承担风险的能力。 总结:如果做一个单打独斗的自由职业者,你将不得不分出很多精力在非技术面上,即便如此,还得承担不小的风险。 我个人认为,自由职业者也许应该抱成团,这个团可以是临时的(随时走不拦着),也可以是比较稳定的(成立一家远程工作的公司)。这样,通过一个团队来分散风险,并通过分工将非技术面的或集中在部分成员身上,以让其他成员能在技术面上投入更多的精力。 可以参考这个网站 yizaoyiwan.com 的创建者的例子。他也是做外包,但他们成立了一家公司,远程工作着可以全职或兼职与他们合作。 当然,以上内容即便的确是我认真考虑后所想的,但我毕竟没有做过自由职业者(我远程工作的资历也不如楼主)。如果楼主发现有错误的地方,还请赐教。 |
27
CIVITAS 2015-06-24 11:37:58 +08:00
对了,我们公司就在福州……
|
28
mouhong OP @mugbya 其实我小学时是画素描,当时我的数学很差,去奥赛一道题都不会做,导致在后来的十几年中,我对理科都有一种条件反射式的恐惧感,后来才慢慢好了。初中时就想学吉他,但当时没有这样的环境,直到去年,我才找了个老师开始学...
|
30
CIVITAS 2015-06-24 11:46:02 +08:00
@mouhong
换个人来和你扯。事情很简单:我们是创业公司,对你感兴趣。 不过,不确定在这里和你沟通是否合适,或者应该换邮件? 当然,首先需要确定你是否有风险偏好,尽管我们发工资非常准时,有五险一金,薪资水平也很好谈。 但你可能对创业公司毫无兴趣,那也只有表示遗憾了。这也是人之常情嘛。 |
31
mouhong OP @MOsky 赞同你的观点,只是我花了很多时间去验证了 (走弯路)。初入行时做外包可以学到很多,毕竟是真实的项目,但如果要走纯技术道路,还是要适可而止,外包项目不如自己的产品那般能带给人成就感。
|
32
CIVITAS 2015-06-24 12:05:07 +08:00
上一条回复似乎不符合这里的社区礼仪,抱歉。
稍微翻了翻您提供的各类地址,暂未见到电子邮件? |
33
exuxu 2015-06-24 12:07:17 +08:00
"我真觉得每天花两小时挤公交是浪费生命,两小时干什么不好,非要在路上颠簸"
你在说我喽? |
36
yangmls 2015-06-24 12:35:21 +08:00 via Android
@MOsky 赞,我也做了两年多的remote worker,因为是一个国际团队,氛围很好,也学到了很多东西。
如果是纯粹接外包的自由职业的话,我觉得有追求的技术都不应该去考虑,如果技术得不到长进,那我你宁可在路上浪费两个小时。 |
37
mouhong OP @CIVITAS 不好意思,回复太频繁刚刚被禁言了T_T。我 GitHub 主页左侧有邮件地址。不过我对游戏基本一窍不通。初中有段时间极其沉迷于小霸王,但有次一个游戏打通关后,居然没有漂亮的祝贺页面,让我感觉很失落,从此对游戏就再也提不起兴趣了...
|
38
CIVITAS 2015-06-24 12:37:40 +08:00
@zhonghua
[email protected] 这是我的个人邮箱。 [email protected] 这是 HR 的个人邮箱。 工作场合,我们俩换着用邮箱。 另外,我们支持远程工作。我就是远程工作的,lol |
39
CIVITAS 2015-06-24 12:38:45 +08:00
出门有点事,晚些时候回来和你说。
我们做的东西超级特别,国内现在没法归类。 当然,这事也是挺让人郁闷的一点。 |
41
CIVITAS 2015-06-24 12:41:10 +08:00
另外,在交通时间上,我完全同意你的观点。不过这意味着我本人非常之宅,lol
当然我有一项特殊技能:在公交车或地铁上随时睡着,不担心过站。可以练练看,节约生命。 |
43
kecichina 2015-06-24 13:00:07 +08:00
鼓励自己创业,入驻创业园区,看看里面的资源对能不能引起自己的兴趣。发现好项目以后直接招募补充团队。别怕,你还能胡来几年。
|
44
mouhong OP @kecichina 其实业余也有做过自己的项目,但多数失败。如果是前两年,我还能不顾一切搞一场,现在有点不太行了,有生活压力。我远程工作时是以欧元结算工资的,虽然每年涨薪,但涨薪根本抵不过欧元对人民币汇率的下降速度,这也是我辞职的原因之一,一方面在有生活压力的情况下,工作很难专心,另一方面没有足够的存款,也难“胡来”。
|
46
wincat 2015-06-24 13:28:01 +08:00
@mouhong 我不是那位,我是后面进来的。和你还算是校友,不过我是2000年毕业的。但却进了A才真正学习写代码,你留下的东西我受益颇深,谢谢了!
|
48
CIVITAS 2015-06-24 14:30:36 +08:00
回来了。邮件在线否?如果在线,可以做一些非正式的沟通。有些内容可能不方便公开发表。
|
49
zonghua 2015-06-24 14:45:25 +08:00 via iPhone
远程工作的话一般是怎么去交流?视频会议吗?还有怎么把学习和工作分开?
|
50
CIVITAS 2015-06-24 14:50:00 +08:00
已经回复了。视频,语音,更重要的是文档和代码本身。
我们做的是全新的东西,没考虑过借鉴谁。所以任何事都是新的,也就都是学习过程。 |
51
CIVITAS 2015-06-24 14:55:23 +08:00
|
52
mouhong OP @zonghua 个人不是很喜欢视频会议,当然,适当的视频会议是合理的。我的意思是,想要开会时,或许可以考虑下是不是有更好的沟通方式。
现在远程团队应该比较流行用 Trello, Worktile, Basecamp 这类的协作工具。我曾经呆过的一个团队,日常交流靠邮件和MSN (现在是 Skype 了),但后来决定所有交流必须在 Trello 上进行,因为邮件经常找不到,MSN 更不用说了,很难跟踪,但放到 Trello 上就好多了。 学习的话嘛,其实我开始编程纯粹出于兴趣,所以当工作变成都是输出我现有的知识时,我就会开始感觉无聊。感觉比较完美的应该是,工作内容充满挑战,那我一边工作一边就能学习。除了上班时间,业余就自己看书研究了吧,我不喜欢加班,一方面也是因为加班会占用我业余学习时间。 |
53
cxshun 2015-06-24 15:08:52 +08:00
|
55
mouhong OP @cxshun 说到语言和平台,其实我曾一直想深耕于 .NET,C# 的优雅相信很多人也认同,但近来思想发生了一些变化,长期用一种语言和平台容易让思维变得狭隘,所以这次换工作我很期望做 .NET 以外的东西。不过这也怪我执行力一直不高T_T,其实很早以前我就开始对 Scalar, F# 之类的感兴趣,但因为没有项目在用,所以一直都只停留在会拼写名词的水平T_T
|
56
CIVITAS 2015-06-24 15:16:51 +08:00
|
57
CIVITAS 2015-06-24 15:19:13 +08:00
@mouhong 我们倒是主要在用 .Net。但你未必非得做这玩意,具体可以给你列个技术栈。
来个有意思的事情:我自己写的代码,几乎全是 Visual Basic (.net)。跨平台的时候遇到很多啼笑皆非的问题,好在都能解决。 |
58
Daghlny 2015-06-24 15:34:03 +08:00
希望楼主的blog可以加个目录
|
59
mouhong OP @Daghlny 当时用的这主题没有提供目录,我也有想加个目录,包括系列类的文章都分开列出来,但实在精力有限,只能缓一缓了T_T
|
61
CIVITAS 2015-06-24 16:02:40 +08:00
@mouhong
这个问题很有趣,Unity3D 的最致命问题是他们在 .Net 上的技术力量很薄弱,至今还停留在 Mono 2.6。当然微软最近和他合作了,市场原因。然后展开一系列的问题,我可以写一篇专栏了 :D 至于微软自己的跨平台,还是麻烦先把 Windows Store App 和 Windows Mobile 上的阉割框架补全比较好……噩梦般的体验。 |
63
qianyanseu 2015-06-24 16:22:37 +08:00
@zsk425 看到“栈溢出”三个字直接笑出来了,改成 stackoverflow 可没这个效果。另外,这三个字和上面列的几个排版上做到了严丝合缝,感受得出楼主的良苦用心啊。
|
64
mouhong OP @qianyanseu 没办法,也是被处女座给逼的
|
66
sxrw123 2015-06-24 17:28:27 +08:00
一直是个门外汉,看了才知道自己心不诚啊。
|
67
ivanlw 2015-06-24 17:29:32 +08:00
楼主在厦门怎么来的两个小时上下班……
|
68
a15819620038 2015-06-24 17:31:55 +08:00
远程,好羡慕呀。
工资减半我也愿意。 |
69
mouhong OP @ivanlw 我住的地方附近的公交站到软件园,25分钟直达,但从我家走到车站15分钟,高峰期从开始等车到挤上车,怎么也得个20分钟(我挤车水平比较差)
|
70
mouhong OP @a15819620038 那只是一开始,久了你就有生活压力啦,减半就没办法接受了
|
71
jiangzhouq 2015-06-25 09:54:08 +08:00
nb啊 nb坏了
|
73
mouhong OP @CIVITAS 这就是所谓的围城嘛,我刚开始自由职业时目标是能活下来就行。创业那就不太一样了,应该是一种权衡吧,要想又轻松钱又多,只能去找富婆^﹏^
|
76
ArvinXiang 2016-05-05 10:28:07 +08:00
远程工作可以关注这个网站: http://yuancheng.work
|
77
mouhong OP 一转眼已经 8 年过去,创业 7 年。偶然翻进这个老贴,也是有些感慨,8 年过去,心态已经完全不一样。当年的行文果然是很小年轻,看了一遍都起鸡皮疙瘩了 :(
|
78
jacktanwhu 141 天前
@mouhong 你觉得鸡皮疙瘩,但对一个开始探索远程工作模式的小菜来说,文章很有启发👍 嘿嘿~
|
79
jacktanwhu 141 天前
@mouhong 想问下 OP 现在还在 Team247 吗?还是 17 年就离开自己创业了?
|