本人与大家一样,原来只是一个普通的程序员,靠给软件公司打工谋生。后来感觉这样长期干下去没有什么前途,虽然现在年轻还可以加班加点靠拼身体吃饭,以后年纪大了怎么办?听说很多人自己单干每年靠共享软件都可以赚几十万,我为什么就不行?仗着自己技术好,并且当时已经有了成熟软件的思路,我就辞职出来加入共享软件这一行当了。
通过半年多的日夜苦干,软件终于编出来了。由于我觉得自己的软件功能比较新颖,编程的技术也很好,以为只要一发布就会大家抢着注册购买,也可以像那些成名的共享软件作者一样每月坐拿几万元,结果却是令我想象不到的,在发布后的第一年,只有1个人注册,只得到可怜的几十元。我这下才认识到了软件推广的重要性 — 我们作为技术人员,往往是重技术轻营销,结果是再好的软件也由于无人知晓而只能孤芳自赏。我这时就有意在网上搜索软件推广方面的文章,国内的资料少就到国外的共享软件论坛去查,另外还结合自己在实际推广中的经验教训不断改进自己的推广技巧,慢慢地在第二年软件推广有了初步起色,拿到了一千多元。接连在共享软件领域摸爬滚打了几年后,现在终于每月都有近万元入账。虽然比起那些共享大牛们来说这点钱还不足挂齿,但自己认为还算不错了。为了避免程序员们重走像我当初的很多弯路,现在把自己的经验教训写出来,给大家在软件推广方面一点启示。
第一、 对软件本身的要求。
也许大家会觉得奇怪,不是讲软件怎么推广吗?怎么会讲起软件本身的要求来了呢?
其实一点也不出奇,高楼万丈在于基础是否稳固。没有一个好的软件产品而去空谈什么推广,不要说很少有成功的,即使是推广出去了,客户拿到手之后也会有受骗上当的感觉,退货以及退款,再加上对你的软件的负面宣传会搞得你焦头烂额的。
那么怎么才算是一款好的软件呢?首先你的软件要新颖独特,要有别的软件没有而大家又需要的功能。很多程序员常犯的一个毛病是,他们喜欢从自己的技术出发,编自己喜欢编的东西,或者干脆就是卖弄自己的编程技术。其实作为用户来说,他们不懂也根本不会关心你的软件中使用了什么先进的编程技术,他们所关心的是这个软件能给自己带来什么有用的东西。有些程序员没有自己的独特的思路,总是人云亦云,一看到网络上什么软件热门了,马上就进行仿造,现在不是QQ流行吗,他也跟着编一个聊天软件;不是FlashGet很热门吗,他也随着编一个下载软件。这样的软件能销出去才怪了呢。
在这里我的经验是,如果你不知道编什么样的软件才能好销,你就站在普通电脑用户的角度来考虑问题。要一切从用户观念出发,要从用户的要求入手,只要是用户需要的功能,那怕软件只有这一个功能,只要别人的软件还没有包含,你在这里就有成功的可能。例如周弈的MP3 CD Maker,功能并不复杂,但大家需要这个功能,而当时的很多流行软件如Nero等并不具有,因此他凭这一点就可以月进上万美金。
还有就是,软件本身必须尽可能完美,也就是没有什么明显的Bug。现在有许多人在软件还没有经过什么测试的情况下就急着发布,结果别人一用到处都是问题,这样的软件给用户的印象很差,只会给软件造成很大的负面影响。 我的经验是,软件编好后至少要经过两个月的测试。不但是自己要彻底测试,而且要交给你身边的亲戚朋友测试,当然能交给普通的用户测试就更好了。也许你会说别人会愿意这样做吗?我的经验是只要答应测试完后免费给他们正式版的注册码,他们是很乐意为你测试的。
第二、 软件推广的常用方法
首先,当然是把你的软件发布到大型的软件下载网站,如华军软件园、天空软件站等,至于那些成百个小型的下载网站嘛,就没有必要一个一个发布了。当初我也想在这些小软件下载站发布,可很多根本就没有发布软件的页面。有的给个Email地址就算不错了(不过我用电子邮件发布软件后也像泥牛入海,杳无音信),有的干脆只有一个QQ号码。其实据我观察,只要你在华军软件园、天空软件站等发布成功,就会有不少软件下载网站也跟着转载。这样也好,省去了我的不少时间。
其次,是要专门为你的软件建立一个网站。也许你会说,我不是已经把软件发布到其他网站了吗?为什么自己还要费力去做一个网站。原因很简单,别人的网站是别人的,你自己必须也要专门有个网站来推广,同时这个网站也要负责搜集用户的信息反馈等,另外更重要的是:共享软件重在服务,你还要依靠这个网站来对你的软件用户提供技术支持等服务。值得特别要提醒的是,你的网站要做得很专业,要使得用户进入你的网站后能产生你们有着强的技术能力的印象。千万不要认为自己是做软件的,不懂得编网站,就随便制作一个对付了事。我有个朋友,下载某软件试用后曾经想购买正式版,可一进入作者的简陋的网页,就没有了购买的欲望。因为你的网站做得差,容易使别人联想到你的编程技术以及服务也差。所以说,差的网站不但不能对你的软件起到推广作用,还相反可能把你的潜在客户赶跑。
其实既然你都能够编得出软件,要设计出一个网站也不应该是什么多难的事,关键还是在于你舍不舍得下功夫。如果你实在没有时间学习编写网页,那就花点钱请专门的网页设计公司帮你制作一个吧。也许你又会说,那我没有钱怎么办。这里,我叫你一个密招(我轻易不会教给别人的),去大型下载网站下载排名TOP 10之内的软件的官方网站中找一个最符合你软件风格的,用Frontpage 把整个网页照搬下来,把文字及图片换成你的,而保留原来网站的布局及CSS样式,这样一个专业的软件推广网站就诞生了。这一招我在当初也使用过,不过后来自己学习了网站设计方面的知识后,就不断加以改进完善,早已经比原来的别人的网站都专业多了。
网站有了之后,也不是就万事大吉了,网站本身也有个推广的问题。要根据你的软件,设计一些关键字,把这些关键字用在你的网站的标题以及网站内容之中,使得别人在用这些关键字在GOOGLE等搜索引擎上搜索时,能很快找到你的网站。当然,网站的推广不是我们这里要讨论的话题,你在网络上应该能方便地找到这些资料。如果你能把有关你软件的关键字做到GOOGLE搜索结果的第一页,那么恭喜你,你离成功不远了。
再次,是有关软件的广告宣传问题。有人会说了,那很简单,找一个流量大的网站如新浪、网易,在上面打广告宣传不就得了。是啊,如果你每月能付得起几万元的广告费这样做当然无可厚非。不过如果你每月有几万元的收入,我看也就用不着靠共享软件吃饭了。其实打广告是很有学问的,不是单单看网站的流量大小,而是要针对你的软件的潜在用户的情况来定。关键是你要仔细分析来该网站的浏览者是什么样的人,如果与你软件的潜在用户群相同,及时网站的流量不是特别大,你也可以在上面打广告。这样你花的钱不多,但正中你的目标用户,广告的效果是很好的。我有个行业应用软件,一开始在一般的软件下载站打广告,但发现效果并不好,因为这些用户只是来寻找一些常用系统工具软件的,对我的软件并不感兴趣。后来我发现有个软件商务网http://www.bizsofts.com 的浏览者与我软件的用户群相吻合,就在这个网站上打广告了。广告是文字类型的,在网站的“热销软件”栏目中,由于该栏目出现在软件信息的所有的页面中,所以浏览量也不少。最主要的是广告费不贵,每月才100元,广告发布后效果很不错。现在也有人在做GOOGLE ADWORDS文字广告,不过我还没有试过。
第三、 软件如何推向海外
你的软件已经在国内推广了,还要不要走向海外?回答是肯定的。由于国内存在对盗版解密等活动打击不力的问题,你辛辛苦苦工作出来的劳动成果,给别人破解后可能全部付诸东流。所以在国内防止软件被破解是一个重大的课题,对付破解的问题我留到下一点再仔细讲。而在国外,由于对于盗版以及破解打击的力度较大,另外用户的正版意识普遍比国内要高,所以付钱注册购买的人也相对较多。所以你的软件在国外推广是很有必要的。就拿我来说,现在软件收入的大部分就是来自海外用户。
在海外推广软件的第一步也与国内相类似,也要把软件提交到大型的软件下载网站。国外的大型下载网站主要有两个:一个是www.download.com ,另一个是 www.tucows.com 。与国内软件站不同的是,在download.com 上发布软件是要收费的,每提交一次要收79美金,UPDATE一次也要收79美金。如果你真想把软件推向海外的话,这笔钱是不能省的。因为 download.com 实在是太热了,名符其实是全球第一的软件下载站,如果不在这里发布,你会损失一大半的软件用户。另一个软件下载网站 tucows.com 虽然号称能免费发布,其实你如果真这样做的话,你会大失所望的。我有个软件,一月份就向 tucows.com 提交了,可是到六月份还没有发布,进入作者管理界面一查,是在 8340个待审查的软件中排第 1367 位,可能一两年后才有可能发布。后来干脆花了 59美元“插队费”,结果没过两天就发布了。
另外,在国外一般都是找一家代理公司帮你收钱,每月定期寄支票给你。代理行业在国外已经是一个很成熟的行业了,不用担心代理会不给钱你。比较大一点的代理有:www.RegNow.com 设施最完备的代理,需要开户费。www.Qwerks.com 免费开户,据说信誉极好。还有www.Shareit.com 也是一家不错的软件代理公司。 还有www.RegSoft.com 不过据说反映一般。
除了把软件发布到这些下载或代理网站之外,你自己也要相应有一个英文网站。如果你的英文不是特别好的话,奉劝你找一个英语特别棒的朋友或干脆花钱请专业的英语专家翻译一遍再发布你的网站,否则你的网站不但起不到推广作用,还会给国外用户留下很差的印象。
要想软件推向海外,除了以上介绍的方法之外,重视国外用户的反馈信息以及搞好服务也是特别重要的。我有个软件发布在 download.com 后,大约过了一个月看到上面有一个评论,把我的软件评价为最差,并且加了一大堆评语:说他虽然是个捷克人,英语并不是他的母语,却也发现了我软件中的英语是terrible English ,充满了错拼的单词,不存在的单词等;另外软件打开以后,界面没有操作提示,根本不知怎么使用,功能也不完善;在1024 x 768的分辨率下无法满屏显示等。总之把我的软件贬得一无是处,用他的话来说是: Terrible, just terrible 。一开始,我也觉得很灰心丧气,但后来我仔细一想,何不趁此改正Bug,并升级软件呢。由于在download.com中找不到评价者的联系方式,我就在软件的注册者信息中找到他的Email地址,把我改正过后的软件电邮给他,并诚恳地请他继续指正我的错误。果然不久他就回复了我的EMAIL,在邮件中他一条一条地指出了我的其他错误。我借此机会进一步更正错误并把软件升级到了2.0 ,使我的软件上了一个大台阶。总之,重视用户对你软件的评价及批评,积极面对用户的意见,这样即使是坏事也能变成好事。
另外在国外,是会遇到别人购买你的软件后觉得不满意而要求退款的。PayPal以及其他的付款方式都有几十天内不满意可以要求退款的条文。对于要求退款的用户,他如果坚持要退是一定可以退的。所以一般都是根据用户要求直接就退给他,并告诉他Keep my software as a gift,反正他已拿到注册码了,你做什么都没用,不如来个顺水人情。即使他退完款后又来信要求你提供技术服务,你也要尽可能帮助他。能做到这点你的服务才能算真正到家了。
第四、 如何应对软件的破解
在国内推广软件,你要面对的最大问题莫过于软件被破解了。很多软件作者反映说,原来软件在被破解前交费注册的人还不少,但被破解后收入就直线下降,连成本都收不回来。您想,有了免费的东西人们还交那个钱干什么?
在这里,我借鉴了一个软件作者的防破解经验:发行1.0版时2.0版已经写的差不多的。发行1.0版时要把1.0版的防破解或者注册算法写的简单些等着别人去破解。一但出现1.0的破解,等待几周,这几周的时间足以使网上1.0的破解版遍天下。然后,分析破解过程更改2.0版算法(层层加密,复杂再复杂),虽无法根除破解但可以浪费破解者的时间和耐力!一般情况下,在网上一搜你的软件已经有破解版了(1.0的)新的破解者很少会再去破解,何况2.0版本更复杂些。我的一个软件用了此法,推出一月后被破解组织破解,公开破解过程及注册算法,并做成破解教程。其实破解从某种意义上说是帮我宣传了软件。我在一个月后推出早已经写好的新版本,还注册成了“特别版”以迷惑想要破解版的人。使用上述方法后至少在我更新了几次软件后的今天仍没出现破解。但在网上搜破解版、特别版、注册版到处都是,可没一个是真的。其实一些破解高手只是想试探自己的能力,破解一个软件后,一般会把目标定在下一个软件上。不过如果你的软件成为人手必备的工具,此法怕是不灵了。
另外,从技术上讲也有一些防破解的方法。假设你的注册部分有300行,你可以分成30个inline函数调用(一定要inline),func1(),func2()... func30(). 将他们随意放到程序的各个部分,一定不能放在一起。不要用Memcpy等常用系统调用拷贝注册码,尽可能自己写,像Memcpy很好写,性能差点无所谓。经过编译后inline函数展开,注册部分和其他代码混在一起,他要写出注册机就很困难,因为要向在几十万甚至上百万汇编代码里找出有用的注册部分那简直就像是在大海里捞针。另外注册码也不要放在一起,假设你的注册码是12位,千万不要用一个12位的数组放注册码,你可以在程序的不同位置定义12个全局字符变量,每个放一位,这样注册码在内存就不连续了。最好再加密处理一下(简单的字符异或就可以),验证时再解密。只要破解者找不到你验证结束的地方,暴力和Loader破解也没有可能。很重要的一点是不要用连续内存保存验证用到的变量,尽量将用到的验证临时变量分散定义在程序的不同处,再在验证中,不断转移一些值到其他变量中,对付暴力和Loader会比较有效。没有必要用复杂的加密算法,更容易成为追踪的目标。只要你将注册部分隐藏的足够好,也没有漏洞,你花1天写的加密算法,破解者可能会花100-1000倍的时间破解。大部分人都会放弃。你将注册做在一起,就像将你的财宝放在现代保险箱里,虽然非常坚固难以解密,对于开锁高手两分钟就打开了。对于一些比较专业的破解者采用上面的方法也是很有效的但是,还是要避免一些低级失误例如:不要在内存中直接出现注册码和明显的注册码比较部分不要给用户太多的有关注册验证的信息,也不要接收到注册码后立刻就进行比较。在软件的不同功能处实现验证时的好处还有就是不会立刻执行到验证代码注册码,可以分多次验证,也可以分成几部分验证,还可以分成几层验证验证时,可以尽量多执行一些无用的操作,加上一些象递归之类难于调试追踪的代码,但在其中要穿插实现软件功能的代码,否则人家直接就跳了过去。反正就是越不引人注意越好,亦即越乱越好。
其实要想彻底防止破解也是不现实的,除了研究一下破解方法,在发布前加壳外,并采用以上所说的方法外,不断升级程序也是比较好的方法。
总之,推广软件对于搞惯了技术的软件作者来说一开始会走一些弯路,但只要不断学习成功者的经验,不断吸取自己失败的教训,你也会成功的。最后,祝大家个个都成为共享高手。
分享到:
相关推荐
数学建模学习资料 神经网络算法 参考资料-Matlab 共26页.pptx
happybirthday2 升级版生日祝福密码0000(7).zip
本项目是一个基于SSM框架的税务门户网站实现,结合了Vue技术,旨在提供一个全面的税务信息管理平台。该项目主要功能包括税务信息查询、税务申报、税务政策浏览及用户管理等多个模块。通过这些功能,用户可以方便地查询和管理税务相关的各类信息,同时也能及时了解最新的税务政策和规定。 项目采用SSM框架,即Spring、Spring MVC和MyBatis,这三者的结合为项目提供了强大的后端支持,确保了数据的安全性和系统的稳定性。前端则采用Vue.js框架,以其高效的数据绑定和组件化开发模式,提升了用户界面的响应速度和用户体验。 开发此项目的目的不仅是为了满足计算机相关专业学生在毕业设计中的实际需求,更是为了帮助Java学习者通过实战练习,深入理解并掌握SSM框架的应用,从而在实际工作中能够更好地运用这些技术。
php7.4.33镜像7z压缩包
本项目是一个基于Java的珠宝购物网站系统,采用SSM框架进行开发,旨在为计算机相关专业学生提供一个实践平台,同时也适合Java学习者进行实战练习。项目的核心功能涵盖商品展示、用户注册登录、购物车管理、订单处理和支付系统等。通过这一系统,用户可以浏览各类珠宝商品,包括详细的商品描述、高清图片和价格信息,同时能够方便地添加商品至购物车,并进行结算和支付操作。 在技术实现方面,项目运用了Spring、Spring MVC和MyBatis三大框架,确保系统的稳定性和扩展性。Spring负责业务逻辑层,提供依赖注入和面向切面编程的支持;Spring MVC则处理Web层的请求和响应,实现MVC设计模式;MyBatis作为持久层框架,简化了数据库操作。 此外,项目采用JSP技术进行前端页面展示,结合HTML、CSS和JavaScript等技术,为用户提供友好的交互界面。
基于java的高校大学生党建系统设计与实现.docx
本项目是一个基于Python-Django框架开发的疫情数据可视化分析系统,旨在为计算机相关专业的学生提供一个实践平台,同时也适用于需要进行项目实战练习的同学。项目集成了疫情数据的收集、处理、分析和可视化功能,为用户提供了一个直观、高效的数据分析环境。 在功能方面,系统能够自动抓取最新的疫情数据,包括确诊、疑似、治愈和死亡人数等关键指标。数据处理模块则负责清洗和整理这些数据,以确保分析的准确性。分析模块采用了多种统计方法和机器学习算法,以揭示疫情的发展趋势和潜在模式。可视化模块则通过图表和地图等形式,直观地展示了分析结果,便于用户理解和分享。 项目的开发框架选择了Django,这是一个高级Python Web框架,它鼓励快速开发和清晰、务实的设计。Django的强大功能和灵活性,使得项目能够快速响应需求变化,同时保证了系统的稳定性和安全性。
果树领养计划.docx
环境说明:开发语言:Java 框架:springboot JDK版本:JDK1.8 服务器:tomcat7 数据库:mysql 5.7 数据库工具:Navicat 开发软件:eclipse/myeclipse/idea Maven包:Maven 浏览器:谷歌浏览器。 项目均可完美运行 基于Java的云平台信息安全攻防实训平台提供了以下核心功能: 1. **实训课程与项目**:平台提供了丰富多样的实训课程和项目,覆盖网络安全基础知识、漏洞挖掘与利用、渗透测试技术、安全防护策略等多个领域。 2. **在线学习模块**:学员可以通过在线学习模块观看教学视频、阅读文档资料,系统地学习信息安全知识。 3. **虚拟实验室环境**:平台提供虚拟实验室环境,学员可以在模拟的真实网络场景中进行攻防演练,包括漏洞扫描、攻击测试和防御措施的学习。 4. **教学管理功能**:教师可以创建和管理课程内容,制定教学计划,布置实训作业和考试任务。 5. **监控和统计功能**:教师可以实时了解学员的学习进度、实践操作情况和考试成绩,进行有针对性的指导和辅导。 6. **平台管理功能**:管理员负责用户管理、资源分配、系统安全维护等,确保平台稳定运行和实训环境的安全性。 7. **实时监控和评估**:系统具备实时监控和评估功能,能够及时反馈学生的操作情况和学习效果。 8. **用户认证和授权机制**:平台采用了严格的用户认证和授权机制,确保数据的安全性和保密性。 这些功能共同构建了一个功能丰富、操作便捷的实训环境,旨在提升学员的信息安全技能,为信息安全领域的发展输送专业人才。
基于GrampusFramework的轻量级单体RBAC权限管理系统
内容概要:本文档全面整理了软考(中级-软件设计师)的关键知识点,涵盖了计算复杂度、网络协议、数据结构、编程语言、数据库理论、软件测试、编译原理、设计模式、安全协议等多个方面的内容。具体涉及环路复杂度计算、SSH协议、数据字典与数据流图、对象的状态与数字签名、编程语言分类、海明码、著作权法、物理层与数据链路层设备、归纳法与演绎法、模块间耦合、能力成熟度模型集成、配置管理与风险管理、数据库关系范式、内存技术、计算机网络端口、路由协议、排序算法、中间代码、软件测试类型、编译器各阶段任务、设计模式、耦合与内聚、计算机病毒种类等。 适用人群:备考软考(中级-软件设计师)的技术人员,尤其是有一定工作经验但希望进一步提升自身技能和知识的IT从业人员。 使用场景及目标:帮助考生系统梳理考试重点,理解和掌握软件设计师应具备的专业知识和技术。适合考前复习和巩固基础知识。文档还可以作为参考资料,用于日常工作中遇到相关问题时查阅。 其他说明:本文档不仅提供了丰富的知识点,还附带了一些关键术语的定义和详细的解释,确保读者能够全面理解相关内容。建议在复习过程中结合实际案例进行练习,加深理解。
数学建模学习资料 神经网络算法 Hopfield网络 共58页.pptx
工作寻(JobHunter)是一款招聘信息整合的网站,目前固定的模板有拉勾网,中华英才网,前程无忧。工作寻可以在线通过关
本项目是基于Python实现的协同过滤音乐推荐系统,旨在为计算机相关专业学生提供一个完整的毕设实战案例。项目以协同过滤算法为核心,通过分析用户历史行为数据,为用户推荐符合其兴趣偏好的音乐。 主要功能包括用户兴趣建模、音乐推荐生成以及用户反馈机制。系统能够实时捕捉用户听歌行为,动态更新用户兴趣模型,从而更精准地推送个性化音乐推荐。同时,系统设计了友好的用户界面,使用户能够方便地获取推荐音乐,并通过反馈机制不断完善推荐算法。 在技术框架方面,项目采用了Python编程语言,借助scikit-learn等机器学习库实现协同过滤算法,并结合Flask框架搭建了Web服务,确保了系统的性能和稳定性。此项目的开发,不仅能够帮助学生深入理解协同过滤算法及音乐推荐系统的工作原理,还能提升其软件开发和项目管理能力。
微型餐饮补正备案材料通知书.docx
食品生产许可质量跟踪监督建议书.docx
基于django的音乐推荐系统.zip
如果让某人推荐Python技术书,请让他看这个列表很棒的 Python 书籍如果让某人推荐Python技术书,请让他看这个列表前言好的技术书籍可以帮助我们快速成长,大部分人新生儿或者少部分受益于经典的技术书籍。在「Python开发者」微信公号后台,我们经常能收到帮忙推荐书籍的消息。此类问题在@Python开发者微博和伯乐在线的Python小组讨论中也绝非耳熟能详。 7月3日,伯乐在线在「Python开发者」微信公号发起了一个讨论(注PC端无法看到大家的评论,需要关注微信公号后,从微信公号才可以看到),通过这个讨论话题,在评论中分享对自己有帮助的大量Python技术书籍。 (Python开发者)入门《Head First Python》+入门级+微信49票+豆瓣评分9.5推荐语**66**浅显易懂,编排的顺序特别,有大量插图、对话,感觉枯燥古心通熟易懂,大量の图片,不会觉得枯燥,是一本不错的入门书《集体智慧编程》+入门级+微信123票+豆瓣评分 9.0推荐语**Mèrçurý**以实例具体的方式来展示Python的编程技巧,受益良多《Py
基于java的博客系统设计与实现.docx
建设工程基本建设程序检查表.docx