You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: _posts/blog/2016-03-15-better-coding-education.md
+16-16Lines changed: 16 additions & 16 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,25 +1,25 @@
1
1
---
2
2
layout: post
3
-
title: Better Coding <Education />
3
+
title: Better Coding <Education />
4
4
categories:
5
5
- blog
6
6
---
7
7
8
-
The road to better coding education becomes less bumpy each year; but the speed limit hasn't changed much. Online education schools such as *Codecademy* & *CodeSchool* provide an effective and efficient learning experience often referred to as **interactive learning**:
8
+
The road to better coding education becomes less bumpy each year; but the speed limit hasn't changed much. Online education schools such as *Codecademy* & *CodeSchool* provide an effective and efficient learning experience often referred to as **interactive learning**. Students take on a more hands on role, essentially teaching themselves. Interactive learning often involves:
9
9
10
-
* step by step tasks
11
10
* quick feedback on success and failures
11
+
* step by step goals and instructions
12
12
* helpful hints
13
13
* gamification
14
14
15
15
Interactive learning doesn't replace the classroom. Most beginner Bootcamp’s actually make *Codecademy* a large part of the curriculum, with teachers on hand to help. That's right, students are paying for Bootcamps like Galvanize where students do free online courses. Interactive learning doesn't replace teachers - it empowers them.
16
16
17
17
But sites like *Codecademy* leave room for improvement. How so? They could:
18
18
19
-
- Accelerate Content Development
20
-
- Make Tutorials Improvable
19
+
- Accelerate content development
20
+
- Make tutorials that get better with time
21
21
- Move from the browser to offline
22
-
-Lower the cost
22
+
-Eliminate costs
23
23
24
24
I've created a free service, [*CodeRoad*](https://coderoad.github.io), which I believe offers several improvements over what's out there. I think it's pretty awesome, and I hope you will, too.
25
25
@@ -47,41 +47,41 @@ There are no restrictions on:
47
47
48
48
##### 1. The number of creators or contributors
49
49
50
-
As any open-source project, there can be any number of creators or contributors. In fact, a state-wide high school curriculum could be developed in tandem by it's many coding teachers.
50
+
As any open-source project, there can be any number of creators or contributors. In fact, a state-wide high school curriculum could be developed in tandem by its many coding teachers.
51
51
52
52
##### 2. The programming language
53
53
54
54
*CodeRoad* can make tutorials for any number of programming languages, provided the language has an available testing framework. Just create a new [test runner](https://coderoad.github.io/docs/#test-runner), which gets called through a command-line process behind the scenes.
55
55
56
56
##### 3. The size of your project
57
57
58
-
Since *CodeRoad* runs in the Atom editor, it can be used to teach users how to create large projects. How large? Consider the kind of projects that go beyond what would crash a browser-based editor.
58
+
Since *CodeRoad* runs in the Atom editor, it can be used to teach users how to create large projects. How large? Consider the kind of projects that go beyond what would crash a browser-based editor. Hypothetically, you could create a year long course tracing students through the step by step creation of entire sites or applications, such as the creation of a search engine or social networking platform.
59
59
60
60
61
61
## Improving Tutorials
62
62
63
-
Video & most interactive tutorials face the same issue: they are static.
63
+
Video & most interactive tutorials face the same issue: the cost of change is too high. They often remain static.
64
64
65
65
> Most online learning content becomes a snapshot in time of a dynamic and evolving system of technologies.
66
66
67
-
These lessons don’t take pull requests or issues; they don’t update with software or APIs. It's hard to fix errors or add updates or changes. Courses should get better with time.
67
+
These lessons don’t take pull requests or issues; they don’t update with software or APIs. They rarely fix errors or add updates, instead choosing to completing redo courses for the next release. Courses need to iterate to get better with time.
68
68
69
69
##### 1. Versioned tutorials
70
70
71
71
CodeRoad tutorials are version controlled, with new versions published to NPM.
72
72
73
73
##### 2. Issues & Pull Requests
74
74
75
-
Opensource software works on a spirit of collaboration. See a problem, post an **issue**. Want to fix something? Submit a **pull request**.
75
+
Open-source software works on a spirit of collaboration. See a problem, post an **issue**. Want to fix something? Submit a **pull request**.
76
76
77
77
##### 3. Student edits & issues
78
78
79
-
*CodeRoad* provides optional one-click access for students post issues or submit reviewable edits. After all, they better learn about git somewhere.
79
+
*CodeRoad* provides optional one-click access for students to post issues or submit reviewable edits. After all, they better learn about git somewhere.
80
80
81
81
82
82
## Moving Tutorials Offline
83
83
84
-
During the weekend of March 4-6th, *CodeSchool* generously offered it’s courses for free. Unfortunately, increased demand led to peaktime network issues & slow performance.
84
+
During the weekend of March 4-6th, *CodeSchool* generously offered it’s courses for free. Unfortunately, increased demand led to peak-time network issues & slower performance.
85
85
86
86
Putting tutorials online not only increases server costs, but also creates unnecessary issues. *CodeRoad*, on the other hand, downloads tutorials in their entirety and runs them locally on your computer.
87
87
@@ -103,9 +103,9 @@ Even when I taught coding in South Korea, internet connectivity on campus was an
103
103
104
104
At the end of the day, online education companies have to pay the bills. There are server costs, salaries, investors, etc.
105
105
106
-
*CodeRoad*'s only cost is my time. It is hosted on Github & distributed via NPM. The editor and tutorial building tools are open-source and will remain free.
106
+
*CodeRoad*is hosted on Github & distributed via NPM. The editor and tutorial building tools are open-source and will remain free. Any tutorials built are the work of the creators.
107
107
108
-
Any tutorials built are the work of the creators. If the project becomes popular, I'll create a marketplace for tutorial creators who wish to charge for their efforts. However, if there isn't much interest, I'll just have to get a real job.
108
+
If *CodeRoad*becomes popular, I'll create a marketplace for tutorial creators who can charge whatever they'd like for their efforts.
109
109
110
110
---
111
111
@@ -115,4 +115,4 @@ I developed *CodeRoad* out of a love for online education that inspired me not j
115
115
116
116
*CodeRoad* doesn't aim to compete with *Codecademy* or *CodeSchool*, but rather to supplement their great lessons with a greater variety of interactive content.
117
117
118
-
There is a long road ahead.
118
+
We know how people learn best. Interactive learning is not just more fun - its a better use of student time with better results. Coding education can get better. There is a long road ahead.
Copy file name to clipboardExpand all lines: _posts/blog/2016-03-15-building-atom-plugins-with-react.md
+29-11Lines changed: 29 additions & 11 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,4 +1,4 @@
1
-
# Outline
1
+
# The Future of Editor Plugins
2
2
3
3
Ask a coder where he or she works, and you'll hear a variety of answers: at home, a coffeeshop, in an office. The reality: location isn't important, programmers work in an editor. You can customize your editor just as you might customize your workspace.
4
4
@@ -10,15 +10,31 @@ What if you could use modern javascript tools & frameworks to create plugins and
10
10
11
11
There is a lot of untapped potential in the area of plugin development. A lot of this is due to the learning curve involved in creating a plugin.
12
12
13
-
Let's look at some interesting UI dependent plugins in Atom:
13
+
## UI Plugins
14
+
15
+
Let's look at some interesting plugins that rethink UI in Atom:
> What kind of renaissance might happen when simple & modern UI comes to Atom?
35
+
36
+
You can build Atom plugins using *React*, *Angular 2*, or your favorite UI framework. But first you have to understand Atom.
37
+
22
38
23
39
## Fixing Some Atom Misconceptions
24
40
@@ -28,21 +44,21 @@ Atom utilizes [Electron](https://github.com/atom/electron), a cross-platform des
28
44
29
45
Recognize the dev tools in the image above? Yes, Electron is built on top of Chromium using Chrome's V8 Engine. In other words, you can check Atom's ES2015 support by finding:
30
46
31
-
*[Atom's Electron version](https://github.com/atom/atom/blob/master/package.json) (currently 0.36.8)
Short answer: you'll be targeting ES5 for a while.
36
52
37
53
#### X You must use CoffeeScript. X
38
-
Internally Atom source code, documentation and most plugins are written in CoffeeScript. Not a fan of CoffeeScript? Well, CoffeeScript isn't necessary to hack Atom, only a good understanding of how `.coffee` and `.cson` files compile to JS.
54
+
Internally Atom source code, documentation and most plugins are written in CoffeeScript. Not a fan of CoffeeScript? Well, CoffeeScript isn't necessary to hack Atom, but you will require a good understanding of how `.coffee` and `.cson` files compile to JS.
39
55
40
-
I'd recommend learning the basics from the [CoffeeScript Guide](http://coffeescript.org/) combined with using an online transpiler like [js2.coffee](http://js2.coffee/)). Personally, I transpile my code from TypeScript, but there are plenty of options.
56
+
I'd recommend learning the basics from the [CoffeeScript Guide](http://coffeescript.org/) combined with using an online transpiler like [js2.coffee](http://js2.coffee/)). Personally, I transpile my code from TypeScript; Atom allows for a lot of JS options.
41
57
42
58
#### X Atom is built with React. X
43
-
Although there was an experimental effort to [move atom to React](http://blog.atom.io/2014/07/02/moving-atom-to-react.html) back in 2014, [performance concerns](https://github.com/atom/atom/pull/5624) lead to removing React.
59
+
Although there was an experimental effort to [move atom to React](http://blog.atom.io/2014/07/02/moving-atom-to-react.html) back in 2014, [performance concerns](https://github.com/atom/atom/pull/5624) lead to React's removal.
44
60
45
-
The framework of choice for Atom continues to be an [older version of Space-Pen](https://github.com/atom-archive/space-pen/tree/3.x). I suppose if it ain't broke, don't fix it. Don't worry, you can opt in or out of using space-pen for your plugins.
61
+
The framework of choice for Atom continues to be an [older version of *Space-Pen*](https://github.com/atom-archive/space-pen/tree/3.x). I suppose if it ain't broke, don't fix it. Again, don't worry, you can opt in or out of using *Space-Pen* 3.x for your plugins.
46
62
47
63
48
64
## Creating Packages
@@ -54,6 +70,8 @@ Atom provides fairly comprehensive resources including a [Flight Manual](https:/
54
70
##### The bad news:
55
71
None of these examples, and only a small fraction of these packages utilize more modern web tools or frameworks.
0 commit comments