Programming for the Extremely Intimidated: Part 1 — Journey

Most “Learn to Code” guides leave you with inspiration and encouragement but not much real guidance

Shriya Nevatia
The Violet Society
Published in
5 min readNov 24, 2013

--

I have been trying to learn how to program for almost a decade, and in that time I have…

  • [2005] edited HTML and CSS code for Xanga layout designs without realizing that this was very basic “programming”
  • [2007] taken a Web Design summer class (I was the only female student) where I was more interested in colors than code, and a eastern European student told me he was “impressed that I could even use a computer because most women in his country couldn’t”. We used two textbooks plus Dreamweaver, so as you can imagine I drew boxes and buttons and never really learned any programming
  • [2009] spied on a Java class at my high school with 0 female students and assumed I wouldn’t like it or know how to do anything if I signed up
  • [2011-2013] started (and dropped) 3 college Computer Science courses (Intro to CS in C++, Data Structures, and Web Development) after faking my way through an introductory class with help from a friend (who had a bit of prior exposure and a knowledgable dad)
  • [2012] attempted to learn HTML & CSS in a series of four Girl Develop It classes but ended up idly scrolling through tumblr by the last class
  • [2013] completed two of those previously dropped college Computer Science courses (Intro to CS in C++ & Data Structures) after lots of tears and frustration, and only one project done “the right way”—spread out over a few days, in the computer lab, asking the TAs questions whenever I got stuck
  • [2012-2013] finished a handful of classes on Codecademy and Khan Academy and Code School after lots of procrastination and excuses
  • [constantly] assumed everyone around me knew more than I did about programming, and maybe they were all naturally better at it

That last point was the most harmful, and definitely held me back the most. With all of these mind-numbingly frustrating experiences I have become continuously more comfortable with programming itself and the languages HTML, CSS, Javascript, and C++, but I definitely did it the hard way.

For all of you who read Hacker News but feel like the technical links go over your head, for all of you who see amazing startup stories and want to start something yourself without waiting to find a technical co-founder, for all of you who feel like you are too far behind or too old to start (what does it say about startup mythology if I feel behind at age 21—and I know I’m not alone?), I want to show you how to begin your journey into the world of programming.

I’ve mapped out a path that starts with Web Development because I think that this is a good direction for complete beginners because it will allow you to build a basic website and go from there. Hopefully this will inspire you to keep going and make you feel a bit less lost, confused, and intimidated so you start creating rather than just consuming.

The Programming Mindset

For many of the people teaching courses— formally, informally, or virtually— they don’t necessarily remember what it was like to be a total novice. They throw in “comment” and “declaration” and “function” without realizing that if someone has never seen the syntax of code it looks like a bunch of abbreviated words and numbers and punctuation marks in mysterious collections of patterns. I have purposely chosen the most beginner-level resources I could find so that you really get the basics reinforced and repeated to build up familiarity and confidence.

Your learning style may be different than mine, and perhaps you’ll want to skip ahead, but if you really haven’t programmed before I would recommend learning the same language on a few different sites before moving on so that you get really comfortable with it. Tutorials often include less review than our brains really need, and if you just push through them in order without studying the way you would in school, at a certain point you’ll be knee-deep in code and realize that you’ve forgotten a lot of the stuff you learned earlier. The minute you can build something basic, you should keep practicing and improving your skills with little side projects. Another thing that helps with this is consistency and working on some sort of schedule. I have a very hard time sticking to this, but when I have stuck to a schedule in 5- or 10-day stretches, I have retained a lot more information and didn’t have to backtrack.

The biggest thing you will realize when you start programming is that almost every tiny error can totally mess up your program. Imagine writing a paper but every time you typed a sentence your computer responded with something way more intense than spell check—told you that you misquoted a source, or used the wrong word, or forgot a comma, or wrote the wrong number…you get the idea. Now imagine that it’s not actually finished and you can’t email it to your professor unless you have no grammatical or logical errors. That sounds ridiculously difficult! This is why people get easily discouraged with programming.

Thankfully, programming languages have much less ambiguity than human language, and you can do a lot with some basic knowledge, but it’s still extremely hard to get used to this in the beginning. Try not to be discouraged by error messages and bugs because everyone gets them when they are programming. Nobody writes perfect code the first time, even PhDs or professionals, because that’s not really the end goal of programming. Programs can almost always be improved—they can work faster, or with fewer lines of code, or with a more organized structure. Because of this, it’s counterproductive to try and write a perfect program. Keep trying, google things, ask questions, and you’ll be surprised at what you can create when you’re not afraid of making mistakes.

There are so many resources online, with new ones popping up constantly, that it’s easy to get lost in all of them and never finish anything. I’m going to set you on a beginner’s path here, but once you move on from these resources I would recommend sticking to 2-3 at a time and bouncing between them, attempting to complete most or all available classes at your level, rather than spreading yourself too thin across a lot of websites and never really learning anything. And if you want to dig deep into programming and computer science, don’t just learn programming languages— enhance your knowledge by learning about data structures, algorithms, computation theory, and more.

Unlisted

--

--

Shriya Nevatia
The Violet Society

operations @beondeck / founder @violet_society / cs @tuftsuniversity