百科问答小站 logo
百科问答小站 font logo



你们周围有在 GitHub 、博客上很活跃,但工作收入并不是很好的码农吗? 第1页

  

user avatar   luckystar 网友的相关建议: 
      

有在github、博客上很活跃,但工作收入并不是很好的码农吗?

有的。


这个问题引申出一个有趣的话题:对于程序员来说,在 github 和博客活跃 VS 拿高薪,这两件事有什么样的联系?


一个事实:在 github 和博客活跃的程序员,平均薪资更高一些

这个结论是根据我的公司的用户数据得出的。

我们做程序员拍卖,优秀的程序员通过我们的审核,获得拍卖跳槽的机会。Github 主页是我们审核程序员的依据之一。

虽然看起来很像打广告,但我发誓真的不是打广告,只是交代我得出结论的背景。。。


我们怎么判断程序员是否优秀、是否在求职市场抢手:

1. 玩不玩 Github,不是审核通过的必要条件。我们有很多优秀的程序员用户,是不玩 Github 也不写博客,但不妨碍人家任职 BAT 一年赚几十万。

结论1:不玩 Github 不写博客,照样可以拿高薪。

结论2 :如果你是一个应届生,那么 Github 活跃和写技术博客,会对你求职很有帮助。

我这里有一个真实的榜样案例可供参考:有一个非常优秀的女性工程师,还没有毕业,来我们网站申请拍卖。

我至今对她印象很深,原因如下:

  1. 这是一位非常优秀的女性工程师,这在大多数从业者都是男性的编程届,很容易给人留下深刻印象。
  2. 她在知乎 github 都有几千关注者,github 显示她有非常棒的个人项目
  3. 她当时还没有毕业,来我们这儿申请拍卖。原则上我们是只通过两年工作经验以上、一线互联网公司的程序员通过申请的,但依然通过她的申请,因为她确实很优秀
  4. 她做了一个网站,我是其忠实用户,所以对她印象非常深刻

以上这个例子,是想说明:一个在求职市场上找工作的程序员,如果想受欢迎,必然要有一个「筹码」让招聘方留下深刻的第一印象。

比如上面这位未毕业的工程师,我第一眼注意到她的简历就是那十分具有含金量的 github 主页。

对于已经工作的人来说,这个筹码可以是「8 年开发经验」、「 BAT 从业经历」。

而对于应届生来说:一个有含金量的 Github 主页和技术博客,就是一个很好的筹码。


结论 3:在 github 和博客活跃的程序员,平均薪资更高一些


我们曾经做过一个统计,我们平台上拿到 offer 的程序员,有 Github 或技术博客的程序员平均年薪是 22 万,没有的则平均年薪是 18 万。两者平均年薪相差 4 万



上图来自一份很有趣的数据报告,详情见我的专栏文章:

数据说话:怎样的程序员最抢手? - 程序员的自我修养 - 知乎专栏



当然,这个数据只区分了有没有 github 和技术博客。

至于具体是否活跃和薪资:我刚刚抽取了几十份数据手工计算,活跃的比不活跃的确实平均薪资要高一些,这也也符合我的经验印象。

至于所有数据,计算起来是一项大工程,等我有时间会跑一下数据分析,再和大家分享。


但是!

在 github 活跃、写技术博客的程序员平均工资高一点,这个结论是对的。

但这并不是因果关系。如果一个人说:我在 github 活跃、经常写技术博客,所以我一定能拿高薪。——这样的说法百分之百错!

这就好比:社会富裕阶层中,喜欢听古典音乐的人更多一些。而我也喜欢古典音乐,唱片买了很多,音乐会的票根也攒了一盒子,但我依然是个穷人。因为听古典音乐并不是导致富裕的原因。




说到这里,我补充一个很有意思的案例

有个应届生程序员,听过互联网公司在面试时会参考 github、技术博客,就去临时刷了很好看的 github 主页和博客主页。

但后来这个应届生根本就没有通过简历筛选,你们猜原因是怎样的?

github 主页一片绿,都是刷提交刷出来的。

技术博客上都是抄袭的。博客上虽然表面显示这些博文都是他在大学四年一篇篇发表的,其实不然,全都是临时抱佛脚搬运的,只不过他通过技术手段伪造了每篇博客文章的发布时间


HR 看到这份简历存疑,发给技术 leader 看,技术 leader 经验丰富,很快便瞧出端倪。

事情的结果就是:这家公司此后再也不会录用这个人,因为公司不录用不诚信的人

------------------

结论四:在 github 活跃、写技术博客,也是有好处的:了解新技术趋势、扩大自己的社交影响力

扩大社交影响力,对自己求职跳槽是很有帮助的。

补充案例,这样的案例我听过不止一个——程序员通过在 github 上和技术博客上认识的朋友内推,跳槽去了更好的公司。

------------------------------------------

观点五: 硅谷的优秀程序员更喜欢在 github 活跃、热衷于维护技术博客,我国 90 后程序员群体在向这个趋势靠拢

国内很多程序员大牛是不玩 github 也不写技术博客,可能是因为工作忙没时间,可能是没有兴趣。

但从硅谷的情况看,多数优秀程序员都喜欢在 github 活跃、热衷于维护技术博客。我国 90 后程序员群体,在向这个趋势靠拢。


最后推荐我另一个回答:

如何成为在硅谷受欢迎的程序员? - luckystar 的回答

下面这个回答中的工程师 Feross Aboukhadijeh,就是一个在硅谷受欢迎的工程师的代笔,文章第三部分记录了他活跃于 github 的事迹,第四部分则翻译了他学习编程的经验,原文便来自他常常更新的博客。

在工作中,我常常和硅谷地区的工程师交流,时常讨论这样一个话题:什么样的工程师,在硅谷是极受欢迎的?

90 后硅谷工程师 Feross Aboukhadijeh 是一个极好的学习榜样。他并非扎克伯克那样的硅谷明星,但作为普通硅谷工程师的一员,他的事例对于大多数程序员来说,都是「踮起脚能触及」的学习榜样。他的经历不仅仅对向往硅谷的工程师有帮助,对所有在北上广深杭工作的程序员,都有极好的启发。



下面分成四个部分来阐述,第四部分是 Feross 分享他如何学习编程的经历。


一、建立自己的个人品牌

在水平相同的情况下,拥有更高社交影响力的程序员,在职场中占有更大的优势和更多的机会:想换工作时拥有更多的选择,与同行中的佼佼者学习交流的机会,还总有人邀请你加入他的创业团队当 CTO —— 不一定要做出改变的决定,但有更多的机会和见识总是好的。

和 Fenng 编程能力相当的工程师,很难有和他一样的影响力,这是建立个人品牌的魅力。你不必担心说:我没有 Fenng 那么好的文笔,也错过微信公众平台的发展红利期。条条大路通罗马,只要愿意在网络上分享,你就离成为下一个 Fenng 近了一步。

一些方法可以帮你事半功倍,比如建立你在网上的个人主页。它可以是独立博客的 about 页面,也可以是你的 about.me | your personal homepage 账户。然后在你的微博、知乎、微信、github、V2EX、技术社区的主页上放上它的链接。就像涓涓细流汇成大河一样。

让我们看看 90 后硅谷工程师 Feross 的做法。他在 Github 上拥有 2300 名关注者,8390 名推特粉丝,在问答社区 Quora 有 12500 名关注者。他在这些网站主页上都附上了个人主页:feross.org.


从 Github、Twitter、Quora 吸引来的网络访客,在这里开始了解他:毕业于斯坦福,在 Facebook、Intel、Quora 工作过,还有他的项目经历、他的爱好等信息。



二、什么样的简历是「完美硅谷求职简历」

个人品牌影响力 = 能力水平 × 传播度

经验丰富、能力突出的工程师,如果不善于在网络上分享,「酒香也怕巷子深」。前一部分便叙述了对此的解决方法。但自身能力才是根本,如果技能不够,再传播无济于事。

简历是求职的第一步。作为一个程序员拍卖平台的运营,我阅读过数以万计的简历,但 Feross 的简历是我见过的最完美之一。在这里贴上一部分:



这份简历有两点非常出色:

1. 完美的版式

HR 每天要看不计其数的简历,眼花缭乱的状态下能看到这样美观清晰的简历,简直是一种视觉享受。

一份能被 HR 和技术负责人看懂的简历,才是真的好简历。这种看懂包含两方面:一是简历结构清晰、信息充足但不冗杂,二是要让不懂技术的 HR 也能从简历中清楚地读懂你的经历和项目经验。在这两方面,Feross 的简历都堪称完美。

特别要强调后一点。在互联网公司里,HR 要对技术有一点了解是必须的。但无奈有的程序员简历写得深涩难懂,甚至不是同方向的其他技术人员都看不懂,更遑论 HR 了。「HR 水平不够看不懂简历,不是我的责任。」永远不要有这样的想法。


2. 从这份简历透露出的经历

斯坦福毕业的教育背景、知名硅谷公司的工作/实习经历、创办过公司并被雅虎收购、丰富的项目经验、有影响力的事迹,还有 Organizations、Hackathon Wins、Awards 等加分大杀器。这样的简历就是「完美硅谷求职简历」。

比如 Projects 中的 Youtube Instant,我们从链接中得知 Feross 的光辉事迹:

Feross 在斯坦福上大三的时候,Google 推出了一项新功能 Google Instant,可以实时显示搜索结果。Feross 觉得也可以为 YouTube 开发一个服务,让 YouTube 实时显示视频。于是他用 3 个小时完成了 Youtube Instant 网站。
有一百万人在 10 天内访问了这个网站。Feross 因此收到了来自 Youtube CEO 的 offer,还有 Engadget、TechCrunch、NY Times 等一票知名媒体报道了这事。


三、善用 Github


Github 对于程序员来说,是一种生活方式。越来越多的公司在招聘时,技术负责人会关注求职者的 github。我所在的公司 100offer,也鼓励用户在填写简历时附上自己的 github 主页。

这是 Feross 的 github:

当然,为了表面好看去刷提交次数或者 star,是没有意义的。善用 github,对求职、精进自己的代码水平、扩大在同行中的影响力,都有非常好的正面作用。



四、Feross Aboukhadijeh 是如何学习编程的


Feross Aboukhadijeh 在自己的博客上记录了自己学习编程的经历(此链接为原帖地址), 同时发表在 Quora 上获得了四位数的赞同。现在全文翻译如下:


我是怎么学习编程的——别人常常问我这个问题,特别是在我建立了 Youtube Instant 网站并被很多媒体报道之后。在这里我决定分享我的经历。

一句以概之:我学习编程的方法,就是大量创建网站。

我在很小的年纪就开始学习编程,学习的方法就是创建大量的网站。下面我将介绍几个自己创建的网站,其中最早的一个,是我在 11 岁的时候开发的。我希望读者能从我的叙述中了解到:如果你想学好编程,做大量的练习性项目是非常重要的。

学习一种技术最好的方法就是练习、练习、练习。我知道的所有优秀的程序员都非常享受编程——编程是一件让他们乐在其中的事情,所以他们大量编程甚至常常到达废寝忘食的程度。学会如何编程——还有如何做好这件事——并不需要有超出常人的能力。只要你愿意动手开始做就行。




下面就是我如何学习编程的故事:




一、我的第一个网站




在我十一二岁的时候,我决定给自己做一个网站。我记不清那时为什么想到要做一个网站,只记得这样我便开始做了。于是,我开始在网络上搜索关于网页、浏览器、HTML 工作原理的知识。虽然在这过程中,我发现网上很多信息已经过时了,甚至是明显的错误(例如为 IE 和 Netscape 浏览器分别建立网站),但这个过程让我觉得非常有趣,学到了很多新知识。


尽管在网络上得到的信息质量层差不齐,我最终还是完成了一个简单的网站,我称之为「Feross的网站」。我用 Frontpage 开发了它,那是一个很棒的所见即所得的HTML 编辑器。我用很常见的语法,比如粗体和斜体对网站做修改,在编辑器里即时查看这些 HTML 标记的效果。这是个非常有效的学习方法。


这是我的第一个网站的截屏,现在它已经不存在了。



这个截图不能完全反映网站的状况:事实上,网站上的每个元素都在动,有闪烁的动画,还有声音。我在网站的每个网页上都放了不同的 MIDI 格式的歌曲,并且全是自动播放,无法把它们停下来,除非把电脑设成静音。哈,在当时这是很流行的网页设计风格。


过了几年后,我重新设计了这个网站,使它变得更美观。我在网上找了一些免费的网站模板并使用它们,还用微软的画图工具修改图片。



虽然我在建立网站的过程中大量依赖现成的模板,但这仍然不失为一个学习 HTML 和Web 浏览器的好方法。「Feross的网站」除了用来收集我小时候的一些视频外,没有其它用处,所以不久后我便对它失去了兴趣。




我第一个真正的项目


在我 9年级,也就是我 14 岁的时候,我和朋友们都沉迷于在 Newgrounds 和 eBaumsWorld 等网站上观看 flash 视频和动画(这是2005年之前,那时 YouTube 还没有出现)。我每天花大量的时间泡在这些网站上,所以我熟知所有最棒的视频和游戏。


我产生了一个想法:如果我做一个网站,收集所有我喜欢的 flash 动画、视频、游戏,那真是一件非常酷的事情。于是我便做了 FreeTheFlash 网站,它是这样的:



感谢我在开发「Feross的网站」过程中学到的 HTML 知识,同时我还使用了Macromedia 公司——也就是现在的 Adobe——制作的 Dreamweaver 编辑器,通过这个软件,我可以在网站重复的页面上使用同一套模板。




过了一段时间,我想到可以让网站动起来我听说可以用一种叫做 PHP 的编程语言来做(动态的)网站,而不是只用静态的 HTML。于是,我花了 20 美元在 Amazon 上买了一本书,叫做《PHP and MySQL for Dynamic Web Site》。我通过学习,使用 PHP 和 MySQL 重新设计了网站,同时还对它进行了新的美化:



在我读高中的时候,我对 FreeTheFlash 网站的开发持续了2年。这是我第一次尝试做一个「真正的」网站。对于一个初手来时,这个网站是成功的——在 2006 年,它获得了 60 万人次的访问,以及 300 万的页面浏览量。FreeTheFlash 让我感受到,做出一个成功的产品并看大量的人使用它,是一件多么自豪的事情。从此,我决定做出更大更好的网站。




我的第二个网站


在中学时期,我在计算机课上做了很多笔记。在我 11 年级的时候,我决定把这些笔记放到网上,让那些不喜欢看课本的学生使用。我做了一个叫做 StudyNotes 的网站。在开发过程中,我使用了 PHP 和一种叫做 Joomla 的内容管理系统。我也尝试使用 Drupal,但最后发现它太复杂了。




还是这一年,我为我的学校的 Key 俱乐部建立了一个网站。


在这段时间里,我花了很多时间泡在 WebmasterWorld 论坛里,这里有很多网站站长和 SEO专家,他们推测 Google 的算法,讨论 AdSense 技巧,调试网站问题等。





大量的学习和阅读


在我进入斯坦福大学后,我学习了大量的计算机课程,诸如 CS106XCS107,我还提前学习了一些 CS106 课程。


我把所有的课余时间都花在阅读设计、编程、浏览器和 JavaScript 等领域的资料,平均每天 4-5 个小时。


我在读些什么?五花八门,什么都有。其中有大部分,是我敬仰的设计师和程序员写的博客。




一件意义重大的事


那是 2010 年的夏天,我在 Facebook 实习的时候,因为和一个朋友打赌,我开发了 YouTube Instant 网站,它可以让人们实时搜索 YouTube 上的视频。这个网站在建成后的 10 天里获得了一百万用户的访问量,甚至连 YouTube 的 CEO 都表示愿意给我一个 offer。你可以点击 这个链接 阅读媒体们对这件事的报道。


我很清楚地明白,YouTube Instant 的成功归功于好时机和幸运。





继续前进

我发现有很多人使用 YouTube Instant 来听音乐视频,这让我想到了另一种使用YouTube API 的好方法。浴室我和朋友 Jake Becker 在 2011 年的前 3 个月里开发了 Instant.fm,它能让人们轻松地向朋友分享音乐播放列表。通过这个项目,我们学到了很多新东西。




在这个项目里,我学到的技术:




还有其它一些我们学到的东西:




动手去做

我详细叙述了我从 11 岁开始做的东西,就是希望能告诉你:如果你想学习编程,你需要动手开始做!现在就去做,不要找任何借口。


动手做是最好的学习方法。


把编程语言书从头读到尾是一件很枯燥的事,常常读到一半你就坚持不下去了。但如果你打算做一个项目,你会在做的过程中明白自己应该学习哪些知识,这是学习知识更有效的途径。



计算机课程


大学里的计算机课程,是另一种十分有效的学习编程的方法。那些好的计算机课程,都十分强调学习计算机科学领域里的重要概念,而不是局限于教会某个特定的语言。这可以帮助那些没有接受过正规教育的人在自学时开阔眼界。


我还清晰地记得,在斯坦福大学里我上的第一堂计算机课(那是一堂关于 C++ 的课程)。当时我还在想「变量前怎么可能不带 $ 符号呢?」——因为那时我只使用过PHP :-) 我用了很长一段时间,才改掉在变量前加 $ 的习惯。




在 IT 公司工作

另外一个提高编程水平的方法,就是去 IT 公司实习,比如 Facebook 或者 Quora。最近的两个夏天里,我就是在这两个公司里工作。你可以从优秀的同事那里学会如何更好得编程,如何阅读和理解他人的代码,如何在大项目中进行团队合作。


还是那句话——比什么方法都管用——学习编程最好的方法就是做项目练习。我是不是已经重复这句话无数次了 :-)




如何学会编程:


  • 做 side projects
  • 看编程书
  • 做 side projects
  • 上计算机课
  • 做 side projects
  • 读编程类博客
  • 做 side projects

这就是我能给出的最棒的建议。


Happy hacking!


---------------------------------------------


如果想去硅谷工作,我的其他两个回答应该有帮助,可以看看:


中国程序员怎么去 Facebook 工作? - luckystar 的回答


IT 民工去美国通过 H1B 移民到底靠不靠谱? - luckystar 的回答




  

相关话题

  如何看待网上关于「阿里P7程序员、资深架构师不知 jvm、红黑树」一事的争议? 
  Github、Node、React、pytorch 等官网声明支援乌克兰,如何看待开源组织参与政治? 
  大一被调剂到计算机,但对电脑根本不了解,就只会上上网聊聊天,连入门都算不上,现在应该怎样入门? 
  如何评价11岁编程「天才少女」万海妍? 
  代码结构中Dao,Service,Controller,Util,Model是什么意思,为什么划分? 
  程序员工作压力大,身体也垮,为什么还这么多人想做程序员?是因为喜欢吗? 
  在小组合作中拒绝交出源代码合适吗? 
  博主是从欧美国家开始流行的吗? 
  如何看待不到40M的wps和1G多的office? 
  Qt 为什么在桌面应用(Windows 平台)中不流行呢? 

前一个讨论
作为工作很久的人,你有哪些告诫职场新人的经验?
下一个讨论
24岁女人跟37岁离异无小孩的优秀男人在一起会有什么问题?





© 2024-11-05 - tinynew.org. All Rights Reserved.
© 2024-11-05 - tinynew.org. 保留所有权利