How will you learn to program? What you learn first can determine your future as a programmer. As a novice, I can only speak to my experience. Here was my thinking process:
I’d like to build useful and interesting projects as quickly as possible, while also making a living from my ability to program. After learning on my own and making steady but not lightning-fast progress, I looked for an immersive schooling program that would speed up my learning. The school I chose, the Flatiron School, teaches students in 4 months to be capable web programmers. Their curriculum prepares students to be Ruby on Rails web developers, with all students finding employment after graduation. This is exactly what I was looking for – fast and effective.
So what do you learn in their curriculum?
Basic Vocabulary – a web developer works both in visual space and data manipulation. Flatiron School’s pre-work begins with a quick grounding in how websites work and the concepts professionals use to design them.
HTML – Just as Twitter uses tags to describe content, “Hypertext Markup Language” is used to describe the content of the Web. For example, a paragraph of text would be surrounded by a paragraph tag, and an image would be surrounded by an image tag. Using HTML makes it easy for search engines to figure out what a website is about, and it also helps web developers adjust the layout of a website.
CSS – “Cascading Style Sheets” work with HTML to adjust the visual design of a website. For example, CSS can tell all paragraphs to appear in 14 point Helvetica font and to start as gray, but to fade to black when a user’s mouse hovers over the text. CSS makes it easier to visually design a site because it separates content from style, allowing for web developers to think about these two topics separately. Furthermore, web developers can overhaul the style of a site very quickly using CSS – rather than changing the style of every paragraph in a large website containing thousands of articles, a web developer can change just one document that will then apply that style to all paragraphs of every article.
Ruby – This is the programming language of Ruby on Rails. It is known for being intuitive to write and, when combined with Rails – to be a fast and effective way to make websites compared with other languages.
Rails – This is an open source web application framework and server, which means that it is a standardized way to create a website. A website has a lot of files that interact with each other, and Rails is a popular way of having those files interact. It’s popular because many of the decisions for how website files interact is defaulted according to a easily-deciphered logic, allowing for developers to focus their mental efforts on adding value.
The Command Line – computers can receive instructions through “the command line.” This is the standard way for programmers to interact with computers because many commands can only be issued through the command line.
SQL – “Structured Query Language” is a popular database language. Databases store data in an easily retrievable format. When a website like Facebook displays the status updates of all your friends, it has to query that data before displaying it. Whereas it would take you or me dozens of hours to find that information in a stack of papers, databases are designed to make that process quick and accurate.
Testing – while not technically requiring its own programming language, testing does use a distinct vocabulary and methodology. Because a website has a lot of moving parts, programmers create tests that let them identify which part suddenly breaks down with any change in the code.
Best Practices – Just as in any discipline, there are some problems that have been “figured out.” These best practices are important to know because they are the best way to solve frequently occurring problems.
I dabbled in programming for a year before deciding to become a programmer. The most important insight for me during this time was figuring out when to take programming seriously. If you want to find out if you’re interested, then dabble by all means. However, if you’re aiming to be capable as a programmer, then the sooner you get serious, the better – you’ve got a lot of work to do.