尝试自己翻译了FreeCodeCamp的文章,技术方面多认识了几种技术,文章标题:Transparency in Action Free Code Camp is Now Open Source...

本文主要是介绍尝试自己翻译了FreeCodeCamp的文章,技术方面多认识了几种技术,文章标题:Transparency in Action Free Code Camp is Now Open Source...,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

这是FreeCodeCamp其中一篇文章,趁着学习英文的时间,翻译这篇文章,其中讲到作者创建FCC过程,本文属于原创,第一次翻译,翻译还有诸多不足之处,请大家包含。

原文地址:https://medium.freecodecamp.com/transparency-in-action-free-code-camp-is-now-open-source-9dae1985d925?gi=a0f3f763f735#.gzz9xmlvl 

 

透明行动:Free Code Camp 现在开源了

  现在我们非常激动地宣布Free Code Camp完全开源了。你可以fork我们的代码库,用它来创建一个属于你自己的交流学习网站。如果你发现一个bug或者想到一个提升FCC的方法,你可以即刻行动,提交你的请求。

 

我们的代码

       我最初是用Ruby on Rails建立FCC的,因为用着它很舒服。但是现在很明显javscript才是未来。Node.js和Express.js这些新工具已经可以把FCC整合到一个完全javascript的栈了,确切来说,很多学校和公司正在做这件事。FCC正在帮助勤奋的人们消除杂念,集中精力于学习一个自用的工具集。如果一个代码库不支持javascript,它会发出错误,因此我们学习了全栈的javascirpt。之后我如在刀尖漫步中废除了Rails 应用,学习足够多的异步Node.js知识,来开始搭建FCC。

 

图片1:我建立FCC 0.1.0 的小办公室

 

       我评判了Meteor.js 和 Mean.js ,(在Mean.io分支出现之前这样做是正确的),甚至考虑只使用angular.js来做Google App Engine的后端。但是由于Hackathon Starter App的认证套件、集成API和本身的框架,最终我决定使用它。

       不久后,我启动了FCC,那时候里面没有超过五个编码挑战,还有一个叫HipChat 聊天室。慢慢地,人们开始访问我的网站。我很吃惊,因为大部分人都选择驻足观看。

      

图片2:从开始搭建到10周后,FCC长成这个样子

 

       FCC是我的第一个Node.js应用。我将代码展示给一位js大牛看,他翻阅我的代码库后,嚷嚷对我说,“你在想什么鬼?” 。不过老司机说FCC也不是太糟糕,毕竟它一天内打开上千个页面不崩溃。

       所以我们安装了Helmet.js来增加安全性,把API密钥放入a.nev文件中,来清理git的历史线。看,精准化的代码现在可以免费使用了。

 

我们的基础设施

       之前我们只是使用一个免费的Heroku dyno云平台,直到网站偶尔出现超过20个并发会话后,我们增至两个,需要35刀一个月。我们通过amazon S3来服务图片、视频、音乐、文档这些资产,为我们有发言权的论坛实现一个小小的AWS实例。我们每一年花费在Vimeo Pro和Screen Hero 上是240刀,一个独立的企业级Google Apps 是60刀。所有的这些基础设施,每年花费不超过2000刀。

 

我们的志愿者和训练营的指导员

       我们是一群热衷学习代码的人,我们自称“代码训练者”。其中一部分人甚至更加勤奋,因为我们志愿用自己的时间来积极改进FCC上。我们的训练营的指导员团队会逛聊天室、论坛,会尽我们最大努力欢迎新同学和回答各类代码问题。我们唯一的目标是想让更多像我们一样,用自己方式通过挑战的人加入我们,共同创建一个非营利性的投资项目,然后获得一份工作。

      

图片3:提问者们以及热心的指导员

 

       没有人会获得报酬。如果我们最终接受投资或者通过项目合作来赚钱,我们会找出一条公平、公开的方式给我们的志愿者发行股票、给他们发工资。我们大部分交流通过聊天室和频繁地组对来编程。虽然我们身处异地,但是只要有可能,我们就会见面。我们的指导员会提出新的特点和内容、讨论其优先级和细节,然后配对,开始建立。举个例子,这篇博客帖子,已经被几个辅导员编辑和校对过了。

 

我们的目标

       不到3个月的时间,我们发展到接近5000个成员。但是真正让我们自豪的是成员的质量而不是数量。将宝贵的时间投入到编码上的他们,有的是参加工作的,有的是学生,有的是孩子,有的甚至是孙子女辈的。在三周前,我们彻底颠覆我们的课程,从那以后,成百上千的人通过我们的小时挑战。我们将所有公共有用的指标放在这里。作为边注,如果你对分析匿名数据感兴趣,或者想帮助我们更好地显示它,欢迎你来推动它。

 

我们的展望

       不要期望任何形式的秘密启动仪式或者宏大的的开幕式。我们更感兴趣的是在公共场合中进步,就像互联网一样 ,然后像原子弹爆炸一样做一个爆炸性的登场。我们相信开源的副歌说的,“给予足够多的眼球,所有的错误都是肤浅的”,并且欢迎任何能让FCC更好、更有效率地学习编码的建议。

       最后,我更喜欢把FCC的哲学与Ubuntu的哲学进行比较。不是促进了互联网的Ubuntu Linux发行版,而是跟它同名的非洲南部的Ubuntu 哲学。Ubuntu是一个祖鲁语,大致意思是,“我就是我,因为我们都是”。

 

莱伊曼·古博薇,利比里亚和平活动人士和诺贝尔和平奖得主,负责最被广泛接受的Ubuntu的英文定义。

 

       FCC就是FCC,因为我们都是代码训练者。勤奋的人帮助其他人学习编程,使得我们不断进步。

   

转载于:https://www.cnblogs.com/xiang-little/p/6036182.html

这篇关于尝试自己翻译了FreeCodeCamp的文章,技术方面多认识了几种技术,文章标题:Transparency in Action Free Code Camp is Now Open Source...的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/325289

相关文章

nginx跨域访问配置的几种方法实现

《nginx跨域访问配置的几种方法实现》本文详细介绍了Nginx跨域配置方法,包括基本配置、只允许指定域名、携带Cookie的跨域、动态设置允许的Origin、支持不同路径的跨域控制、静态资源跨域以及... 目录一、基本跨域配置二、只允许指定域名跨域三、完整示例四、配置后重载 nginx五、注意事项六、支持

MySQL查看表的历史SQL的几种实现方法

《MySQL查看表的历史SQL的几种实现方法》:本文主要介绍多种查看MySQL表历史SQL的方法,包括通用查询日志、慢查询日志、performance_schema、binlog、第三方工具等,并... 目录mysql 查看某张表的历史SQL1.查看MySQL通用查询日志(需提前开启)2.查看慢查询日志3.

MybatisPlus中几种条件构造器运用方式

《MybatisPlus中几种条件构造器运用方式》QueryWrapper是Mybatis-Plus提供的一个用于构建SQL查询条件的工具类,提供了各种方法如eq、ne、gt、ge、lt、le、lik... 目录版本介绍QueryWrapperLambdaQueryWrapperUpdateWrapperL

检查 Nginx 是否启动的几种方法

《检查Nginx是否启动的几种方法》本文主要介绍了检查Nginx是否启动的几种方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学... 目录1. 使用 systemctl 命令(推荐)2. 使用 service 命令3. 检查进程是否存在4

详解C++ 存储二进制数据容器的几种方法

《详解C++存储二进制数据容器的几种方法》本文主要介绍了详解C++存储二进制数据容器,包括std::vector、std::array、std::string、std::bitset和std::ve... 目录1.std::vector<uint8_t>(最常用)特点:适用场景:示例:2.std::arra

一篇文章让你彻底搞懂Java中VO、DTO、BO、DO、PO

《一篇文章让你彻底搞懂Java中VO、DTO、BO、DO、PO》在java编程中我们常常需要做数据交换,那么在数据交换过程中就需要使用到实体对象,这就不可避免的使用到vo、dto、po等实体对象,这篇... 目录深入浅出讲解各层对象区别+实战应用+代码对比,告别概念混淆,设计出更优雅的系统架构!一、 为什么

SpringBoot返回文件让前端下载的几种方式

《SpringBoot返回文件让前端下载的几种方式》文章介绍了开发中文件下载的两种常见解决方案,并详细描述了通过后端进行下载的原理和步骤,包括一次性读取到内存和分块写入响应输出流两种方法,此外,还提供... 目录01 背景02 一次性读取到内存,通过响应输出流输出到前端02 将文件流通过循环写入到响应输出流

C++打印 vector的几种方法小结

《C++打印vector的几种方法小结》本文介绍了C++中遍历vector的几种方法,包括使用迭代器、auto关键字、typedef、计数器以及C++11引入的范围基础循环,具有一定的参考价值,感兴... 目录1. 使用迭代器2. 使用 auto (C++11) / typedef / type alias

python项目环境切换的几种实现方式

《python项目环境切换的几种实现方式》本文主要介绍了python项目环境切换的几种实现方式,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一... 目录1. 如何在不同python项目中,安装不同的依赖2. 如何切换到不同项目的工作空间3.创建项目

Python结合Free Spire.PDF for Python实现PDF页面旋转

《Python结合FreeSpire.PDFforPython实现PDF页面旋转》在日常办公或文档处理中,我们经常会遇到PDF页面方向错误的问题,本文将分享如何用Python结合FreeSpir... 目录基础实现:单页PDF精准旋转完整代码代码解析进阶操作:覆盖多场景旋转需求1. 旋转指定角度(90/27