A. 学习爬虫到什么地步才能接单
学习爬虫必须要中级以上的地步才能接单。
我们将爬虫技术分为三段,分别是初中高级。那么需要到达中级以上才能接单,如果仅凭着初级的爬虫技术来接单,一来实力不足不能满足甲方需求,二来就算能做成一单也不能做成第二单,无法形成正向的循环。
中级爬虫的水平可以算是职业爬虫师的基本水平,除了初级爬虫的知识点之外,还应该掌握以下一些知识点:
1、爬取方式
当你的requests 不顶用的时候,你就应该想到数据来源可能是Ajax,你去分析网站的时候就得懂JavaScript;如果想绕过分析Ajax和一些JavaScript逻辑的过程来爬取数据,我们就得用 Puppeteer、Pyppeteer、Selenium、Splash等来模拟浏览器的方式来爬取。
2、爬取速度
除了爬取方式,还有爬取速度,这时候你就得有多进程、多线程、协程的知识储备了。
3、爬APP
如果你只会网页爬虫,那你还算不上中级爬虫的水平,你还得会爬APP,APP也占据着半壁江山。这个时候你就得会Charles、Fiddler抓包了,抓到之后拿来模拟就行;如果接口被加密了,可以用 mitmproxy直接监听接口数据或者走Hook,比如上Xposed也可以拿到。
爬虫简介:
网络爬虫是一个自动提取网页的程序,它为搜索引擎从万维网上下载网页,是搜索引擎的重要组成。传统爬虫从一个或若干初始网页的URL开始,获得初始网页上的URL,在抓取网页的过程中,不断从当前页面上抽取新的URL放入队列,直到满足系统的一定停止条件。
聚焦爬虫的工作流程较为复杂,需要根据一定的网页分析算法过滤与主题无关的链接,保留有用的链接并将其放入等待抓取的URL队列。然后,它将根据一定的搜索策略从队列中选择下一步要抓取的网页URL,并重复上述过程,直到达到系统的某一条件时停止。
另外,所有被爬虫抓取的网页将会被系统存贮,进行一定的分析、过滤,并建立索引,以便之后的查询和检索;对于聚焦爬虫来说,这一过程所得到的分析结果还可能对以后的抓取过程给出反馈和指导。
B. 自学了编程,怎么在网上接单
作为一名开发者,该如何走向自由职业?
这正是这篇文章要讨论的问题,我们会先介绍开发者走向自由职业的 4 种常见方式,然后聊聊开始自由职业前必做的 5 种准备。最后,还会分享我个人的 2 点深切体会。
走向自由职业的 4 种常见方式
技术出色的开发者,通常具有下列能力:
软件开发,即针对特定领域问题,运用思维、分析、设计、想象力等寻找答案,通过语言、技术框架、工具等编写软件来实现答案的能力。
讲授,即把自己明白的技术、软件、解决方案等展示给别人并让别人也明白的能力。
咨询,即通过你所储备的知识、技能、经验、框架等帮助别人解决问题的能力。
热爱分享的开发者还会拥有另一项核心竞争力:写作。
软件开发、讲授、写作、咨询这四种能力,构成了开发者走向自由职业的 4 种常见方式。
软件开发
很多开发者都听说过“私活”,也接过私活。所谓私活,就是个人通过某种途径承接的软件项目,相对于公司的“公”而言,这种形式被称为“私”,现在这种方式还有很多说法,比如外包、众包、任务等。
这是我们开发者走向自由职业的最常见方式。
我个人帮助别人修改过开源代码,用 Qt 开发过 PC 端软件,对这种方式有一些体会。除了软件开发,你还需要下列能力:客户开发、商务谈判、项目管理。
这种方式很直接,不断开发客户,承接项目,赚取报酬。其好处是:你获得的报酬是按项目金额来的,而不是按月薪。套用某二手车买卖平台的广告语,没有中间商赚差价。
想想看,你在公司,一个项目是 100 万,你一个人一个月搞定了,也还是拿三几万的薪水;而如果你自己接到这个项目,一个月完成,那你这个月就赚到 100 万(暂不考虑增值税、个人所得税等隐性成本),天差地别对吧。所以,独立开发软件项目是诱惑力很强的方式!
这种方式也有一些比较困扰人的问题:你并不总是能接到项目。需求可能不断变化,你需要直接面对这点,还要管理这种状况:项目款不一定能及时到账,尾款也不见得能收回来。
还有,如果你想独自承接稍大一点的项目,你还需要注册一个公司来承接项目(稍大点儿的项目都是公对公),拥有一家公司,也会产生一些成本,比如代账、房产税、企业所得税等。
不过现在的众包方式,会好一些,像解放号、云沃客、码市、程序员客栈等平台,都有使用这种方式协作的项目,你只要做你擅长的事情——软件开发——就好了,别的事情由别人或平台来完成(你需要支付平台一些提现费用,一般10%左右)。
讲授
如果你具有良好的讲授能力,就能把自己在某个技术栈上深厚的积累换一个形式变现:讲课。
没错,你可以把自己学精学透的技术讲给别人听,把别人教明白。这是非常有价值的事情!
很多人在初学某种技术时都需要好的老师、好的教程帮助他们跨过从不知道到知道、从知道到做到的距离。
IT 技能类的课程,能帮助别人掌握一技之长,帮助别人赚到钱,需求一直很旺盛。这些年线上的平台发展很快,很多学员也愿意低成本在线学习,像 51CTO 学院、CSDN 学院、慕课网、极客学院、网易云课堂、腾讯课堂、淘宝教育等平台,都很受欢迎。
我个人录制过 Qt 和 Node.js 方面的课程,放在 51CTO 学院和 CSDN 学院出售,有些 3 年前的课程,现在还有人购买。
如果你可以运用讲授能力,把自己的技术积累转化为在线课程,就可以利用在线教育这种方式实现自由职业。
我所潜伏的 51CTO 讲师群里,有不少靠编程课程实现自由职业的讲师,原来都是开发者。在双 11 、IT 充电节等活动期间,有很多讲师一天销售额过万。
这种方式有几项好处:
●启动成本低
●受众面广
●一份时间卖多次
●想象空间大
写作
2013 年下半年,我恢复了 CSDN 技术博客的更新,专注分享 Qt 技术,很快成了 Qt 领域的知名博客,被不少人关注。后来一些文章被编辑看到,联系我出版 Qt 方面的图书,于是我通过 《Qt on Android 核心编程》和《Qt Quick 核心编程》等图书建立了影响力和品牌,反过来博客也因此拥有了更多的访问。
2015 年我开通了微信公众号,一周更新三篇文章,同年出版了《你好哇,程序员》一书。
2017 年 7 月份,凭借写作带来的自信,我离开公司,开始自由职业,通过写作、讲课等方式获取收入。
我的朋友杨开振,因为所着图书《深入浅出 MyBatis 技术原理与实战》销量很好,于 2017 年 4 月份离开组织,通过写作实现了自由职业。
写作是程序员自由飞翔的翅膀,它能帮你积累影响力,建立个人品牌,并且,也能够直接变现。对于开发者来讲,写作是通往自由之路最强有力的武器。
写作这条路具有无与伦比的好处:
●启动成本低
●个人可以独立完成
●可以直接建立影响力和个人品牌
●一份时间卖无数次
●有想象力
它最大的困难在于:
●如何写好
●如何捕捉到更为广泛且强烈的需求
●如何持续写下去
咨询
如果你看过《我的前半生》这部电视剧,一定对贺涵印象深刻,他做的就是咨询工作:用自己的知识、经验、技能、思维、框架等帮别人解决问题。
在 IT 领域,如果你有完善的技能树和丰富的经验,能够站在较高的层面上做全局性思考,善于寻本溯源地分析解决问题,也可以从事咨询顾问之类的工作,不受雇于特定的组织,直接为客户服务。
着名网站库壳的创建者左耳朵耗子陈皓,擅长底层技术架构,对高性能、高可用性、分布式、高并发,以及大规模数据处理系统有丰富的经验和心得。
他有段时间因为个人原因不能在公司上班,就通过为其他公司提供技术咨询来获取收入,并且,收入还蛮高。
我有段时间就希望通过为一些公司提供技术咨询来赚钱,但没有成功。
我还记得有家公司的老板对我说的话:你加入我们公司,带着团队把项目做起来,然后就可以成为我们的咨询顾问。
看见了吧,这就是独立咨询的难处:当你不够牛 X 时,没有人愿意为你不知所谓无法确认效果的咨询付费,开发客户很难很难。ThoughtWorks 的很多咨询顾问虽然有公司为其背书,也还是常常遭人诟病:你自己没做过什么项目,凭什么给我们提供建议?
虽然很难,但这确实是一条路,如果你有志于此,可以看看享誉世界 IT 领域的咨询顾问、美国计算机名人堂代表人物杰拉尔德·温伯格写的《咨询的奥秘》,那是圣经式的着作。
当然,除此之外,你还要在自由之前,就积累一些客户资源,并且为客户留下你具备咨询能力的深刻印象,这样他们才可能成为你自由后的衣食父母。
走向自由职业必做的 5 种准备
如果你确认了走向自由职业的方式,接下来就该做准备了。根据我的个人经验,下面 5 种准备是必须要做的:
●变现方式
●市场测试
●饱和度测试
●预期管理
●B和Z方案
变现方式
我所说的变现方式,包含两种:卖时间和卖产品。
这里的卖时间,指“一份时间卖一次”这种工作方式。你在企业内工作,就是在卖时间,朝九晚五,每天 8 小时,每个月领薪水。
以卖时间的方式实现自由职业,实质还是用你的专业能力为客户提供时间层面上的专属服务(你不可能在同一时刻为不同的客户服务),只是你不再受雇于企业,不再受规章制度约束,能够按照你自己的意愿安排在什么时间用什么方式完成服务。外包、众包、私活、咨询等方式,都是卖时间。
卖产品则是指“一份时间卖多次”这种工作方式,像我们前面提到的写作、在线课程等,都可以归为此类。它相比卖时间的方式,具有更大的想象空间,可以获得规模化的收入。可能你写出一本经典、畅销的书,做出一个爆款的课程,就可以获得几十万的收入。
在自由职业之前,你需要确认你最突出的能力,选定你首要的变现方式——因为你业余时间有限,不可能同时做很多事情。
市场测试
在离开组织自由职业之前,你需要测试一下,你赖以实现自由职业的变现方式,可以给你带来多大规模的收入。
比如你做技术课程,一定要先在业余时间开发几门课程,放到 51CTO 学院或者腾讯课堂之类的在线教育平台上去卖卖看,统计一下收入情况,看这些收入能不能维持你可以接受的生活水平。
比如你写书,也要出版一本,观察半年,看看销量,看看能拿到多少版税。前面提到的杨开振,他是利用业余时间写出了《深入浅出 MyBatis 技术原理与实战》这本书,半年内卖了 2 万册,拿到了十几万的版税,才决定自由职业的。
比如你做软件外包或者私活,也要开发几个客户接几个项目看看收入情况;如果做众包,则可以到云沃客、解放号、程序员客栈、码市等地方去验证半年左右,看自己的开发技能,能为自己带来多少单子多少收入。
如果你不做任何准备,不经市场测试,脑子一热就脱离组织,往往会陷入冷启动的泥沼,肠子悔青。
假如做市场测试时发现收入很低,做不起来,不要气馁,要看看别人,尤其是和你经验、水平、身份差不多的人,有没有做得好的。
比如我写书,版税很低,一本卖三五千册,不赚什么钱。可是杨开振一本书半年卖 2 万册,版税谈得也高,就有很可观的收入。那这个时候,就要找差距,看怎么提高。
饱和度测试
自由职业不是不工作,只是不在组织内工作而已,你依然要投入足够的时间才能创造像样的产出赚到你想要的钱。
你在单位上班时,老板们会给你安排事情,你不用考虑工作负荷是否饱和,哪怕你一天到晚没事儿干,也可以领到一份薪水。自由职业后就不一样了,你必须主动安排工作,让自己有足够的负荷,否则你逍遥自在不了多久就会陷入困境。
饱和度测试就是要让你提前适应自由职业后自我安排工作的特点,看看你规划出来准备在自由职业时做的事情,能不能把你的时间填满。
可以分两步: 先全力去做,看能不能把你现在的业余时间填满。假如填不满,OK,你不用自由职业,就继续现在的工作,业余时间做你想做的事情,赚一份额外收入就行了。
假如你现在业余时间远远不够用,那估算下到底会占多少时间,平均每天几个小时。假如平均每天4个小时,那OK,另外 4 个小时你做什么?你需要再找点儿事情来填满它,可以是赚钱的事情,也可以是兴趣、爱好、休闲,总之你如果有大把时间无事可干,就会出问题。
预期管理
预期管理包括四个方面:
冷启动周期。像接项目、写书、在线课程,都有个回款周期,所以你应该设想一下,你可以承受的无收入的起始阶段有多长,并为此准备一些钱,比如你预计周期为 3 个月,那你就要准备上至少够 3 个月花的钱。
收入预期,最近三年,预期收入达到什么规模。
时间预期,准备做多久来验证自己真的可以持续走下去。
成就预期,你打算在哪个方向上取得什么成就、建立什么名声。
B和Z方案
你要设想,万一你现在规划的事情,收入不如预期,不能保持你的生活水准,你还准备再做些什么?这就是你的 B 方案,你要有至少 2 种可以变现的事情。
再设想一下最坏的情况:万一你无论如何都养不活自己,该怎么应对,是回单位上班?还是吃存款、继续硬撑?你一定要提前做好备案,这样才可以从容应对。
自由职业的自由与焦虑
在这篇文章的开始部分,我们说“你向往想干什么干什么,想怎么赚钱怎么赚钱的生活”,因此你考虑自由职业。但是,真实的自由职业,可能并没有想象中那么美好,它有自由,也有不自由;有高收入,也有与自由和不确定性伴生的焦虑。
自由
女儿看牙,时间约到周一下午,没关系,直接去了,不用请假。复诊,约到周五下午,没关系,直接去了,不用请假。
朋友约见面聊天,周三中午,没关系,直接去了,不用请假,因为不用考虑上班的事情,聊到几点是几点。
今天我累了,就晚点起来,没关系,不用担心上班迟到。今天晚上我有兴致,可以写作到凌晨 2 点,没关系,第二天不用上班。
你看,这就是自由职业最大的好处:拥有安排工作时间的自由。只要你完成任务解决问题,鬼才管你什么时间工作。
然而,你的自由是建立在自律的基础上的,你的自由是如何安排自己工作的自由,而不是不工作想干什么就干什么的自由(那是财务自由)——因为你要赚钱养活自己。
举个例子,你答应了客户周四完成开发交付软件的第一个版本,结果你周一周二都有事情,代码没完成,可以把交付日期更改到下周一吗?不行!
如果你在单位做事情,可以找上司说:“哎呀老板,出现了点状况,是这么这么回事儿,看来这个事情得延期一周才行……”也许这样老板就会答应,你就又有了时间。
可是你自由职业后,没有老板啊,你得自己维护自己“值得被信任”的形象,得让你的雇主觉得你“靠谱”。所以,你承诺了就要做到,哪怕熬夜赶出来!
这就是一种不自由。
焦虑
上班最大的一个好处是:不用考虑你要做什么事情,不用考虑你做的事情能不能创造经济价值,不管怎样,你都每月固定拿薪水。只要你在单位待着,哪怕刷一天朋友圈,也有钱拿!这是多么大的幸福啊!
可是自由职业者就不一样:不做事就没钱啊。而且,更尴尬的是,做事也不一定有钱啊。
所以,自由职业者每天都会受不确定性的干扰。譬如我,用了记账软件记录收支,每次看到一大片红色就焦虑,心里就琢磨:“ 哎呀我的钱什么时候到账啊。” 要是看到这个月的支出已经远超收入,就焦虑得不行,“ 哎呀,差这么多啊,下个月能不能补赚回来啊。”
这是你对收入波动性的焦虑,尤其容易出现在刚刚成为自由职业者的时候。
还有第二种焦虑:你做的事情是否能够持续。
以我为例,我打算每年写两本书做两门课,可是这真的可以吗?一年、两年都觉得没问题啊,但真的可以这样一直做下去吗?3 年、5 年、10 年都没问题吗?我会一直有主题可写?会一直有系统的课程可以开发?
状态好时我觉得这都不成问题,因为既然我之前可以找到话题,将来也一定会有新的话题出现。状态差的时候就会焦虑:能想到的话题都做差不多了,下一个话题在哪里啊?万一明年没什么可写该怎么办?
现在,你知道了一切:开发者实现自由职业的 4 种常见方式,5 种必做准备,以及可能的自由和焦虑。你准备开始了吗?
C. 自学编程学什么才能接私活
什么时候能接私活,不单是技术决定的。
和做生意一样,拉业务要关系网的。
虽然程序员私活,网络一下有一堆平台,但作为新手去接陌生人的单,同行那么多你觉得他一定把项目给你?给你做就一定会打款?就算有协议,都不一定能保障。
当然你想试,也未尝不可。
最保险的,还是靠朋友靠熟人推荐,然后发展关系网找业务。这样及稳定又可靠。
但话说回来,有固定业务来源,那干什么私活,拉团队开公司好了。