From Writing Essays to Writing Code
As a student at Dana College, I graduated with majors in English Secondary Education and History. I was able to meet my math and science requirements through my ACT scores and AP credit, so I didn't take a single math or science class during my undergraduate years. I did take a statistics class for my master's degree, but even that was geared toward education majors and involved more general concepts rather than specific math application.
For someone with my background, learning to write code seemed like a 180-degree shift. As I got into it, though, I discovered that the thought processes are remarkably similar.
We teach students a 5-step writing process that goes like this:
- Brainstorm
- Outline
- Write Rough Draft
- Revise / Edit
- Publish Final Copy
The process is essentially the same whether the final product is a story, an essay, a web site, or piece of software.
1. Brainstorm #
What do I want to create??? What is my goal? How will it look? What do I want to include? What will some of the pieces be? What are some different directions I could take? Which possibility do I like the best (for now)?
2. Outline #
Now that I have my goal in mind, what are the steps I need to take to get there? What are the major pieces or sections that I need to include, and in what order? What resources will I need? Is there any research I need to do or resources I need to gather?
3. Write Rough Draft #
Sometimes the most intimidating thing in the world is a blank page or a blank screen. The mind races or stops altogether. The only thing to do is take the first item from the outline and begin typing. If that first piece is too challenging as a whole - break it into smaller pieces and keep moving forward.
Whether I'm writing a story, a blog post, or a website, I always get bogged down in this process by trying to make things perfect before I move on. Sometimes I just have to write myself a note to come back later and keep pushing forward.
4. Revise and Edit #
What is working well? What could be better? What sections are clear and smooth and easy to follow? What could be organized better, consolidated, or expanded? And who can look at this for me with fresh eyes and give me perspective on how it comes across to someone who hasn't been living it and breathing it like I have?
5. Publish Final Copy #
At last! So exciting!!! (And also scary...) It's time to release this creation into the world and hope it will speak to people and achieve its purpose. Of course, "Final Copy" is something of a misnomer. There's a good chance I'll be back to do some further editing/revising/expanding in the future.
This might be the step where software development diverges from writing the most. With most writing, there is a publication date when the copy is finalized. In modern software development, we often use an iterative approach with ongoing updates and expansions. In this situation, the care that was taken in the early stages of the process will pay great dividends by providing a solid foundation to build on.
Conclusion #
It turns out that my undergraduate work as an English major was great preparation for a career in software development after all. I would encourage any fellow word nerds who are interested in coding to give it a try.