尝试自己翻译了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

相关文章

Java利用JSONPath操作JSON数据的技术指南

《Java利用JSONPath操作JSON数据的技术指南》JSONPath是一种强大的工具,用于查询和操作JSON数据,类似于SQL的语法,它为处理复杂的JSON数据结构提供了简单且高效... 目录1、简述2、什么是 jsONPath?3、Java 示例3.1 基本查询3.2 过滤查询3.3 递归搜索3.4

Python中随机休眠技术原理与应用详解

《Python中随机休眠技术原理与应用详解》在编程中,让程序暂停执行特定时间是常见需求,当需要引入不确定性时,随机休眠就成为关键技巧,下面我们就来看看Python中随机休眠技术的具体实现与应用吧... 目录引言一、实现原理与基础方法1.1 核心函数解析1.2 基础实现模板1.3 整数版实现二、典型应用场景2

Flutter打包APK的几种方式小结

《Flutter打包APK的几种方式小结》Flutter打包不同于RN,Flutter可以在AndroidStudio里编写Flutter代码并最终打包为APK,本篇主要阐述涉及到的几种打包方式,通... 目录前言1. android原生打包APK方式2. Flutter通过原生工程打包方式3. Futte

MySQL INSERT语句实现当记录不存在时插入的几种方法

《MySQLINSERT语句实现当记录不存在时插入的几种方法》MySQL的INSERT语句是用于向数据库表中插入新记录的关键命令,下面:本文主要介绍MySQLINSERT语句实现当记录不存在时... 目录使用 INSERT IGNORE使用 ON DUPLICATE KEY UPDATE使用 REPLACE

Python实现Microsoft Office自动化的几种方式及对比详解

《Python实现MicrosoftOffice自动化的几种方式及对比详解》办公自动化是指利用现代化设备和技术,代替办公人员的部分手动或重复性业务活动,优质而高效地处理办公事务,实现对信息的高效利用... 目录一、基于COM接口的自动化(pywin32)二、独立文件操作库1. Word处理(python-d

python中字符串拼接的几种方法及优缺点对比详解

《python中字符串拼接的几种方法及优缺点对比详解》在Python中,字符串拼接是常见的操作,Python提供了多种方法来拼接字符串,每种方法有其优缺点和适用场景,以下是几种常见的字符串拼接方法,需... 目录1. 使用 + 运算符示例:优缺点:2. 使用&nbsjsp;join() 方法示例:优缺点:3

Linux修改pip和conda缓存路径的几种方法

《Linux修改pip和conda缓存路径的几种方法》在Python生态中,pip和conda是两种常见的软件包管理工具,它们在安装、更新和卸载软件包时都会使用缓存来提高效率,适当地修改它们的缓存路径... 目录一、pip 和 conda 的缓存机制1. pip 的缓存机制默认缓存路径2. conda 的缓

Spring 中使用反射创建 Bean 实例的几种方式

《Spring中使用反射创建Bean实例的几种方式》文章介绍了在Spring框架中如何使用反射来创建Bean实例,包括使用Class.newInstance()、Constructor.newI... 目录1. 使用 Class.newInstance() (仅限无参构造函数):2. 使用 Construc

SpringBoot项目启动错误:找不到或无法加载主类的几种解决方法

《SpringBoot项目启动错误:找不到或无法加载主类的几种解决方法》本文主要介绍了SpringBoot项目启动错误:找不到或无法加载主类的几种解决方法,具有一定的参考价值,感兴趣的可以了解一下... 目录方法1:更改IDE配置方法2:在Eclipse中清理项目方法3:使用Maven命令行在开发Sprin

Python依赖库的几种离线安装方法总结

《Python依赖库的几种离线安装方法总结》:本文主要介绍如何在Python中使用pip工具进行依赖库的安装和管理,包括如何导出和导入依赖包列表、如何下载和安装单个或多个库包及其依赖,以及如何指定... 目录前言一、如何copy一个python环境二、如何下载一个包及其依赖并安装三、如何导出requirem