The Hard Way
I’ve gotten a lot of questions from people who aren’t coders, but want to learn how to code, either for themselves or for their career. If you are one of those individuals, there are a few principles you should know about learning to write code that will save you in the long run and give you leverage in a fluctuating market.
Learn the basics first
If you want to become the best possible coder/programmer that you can be, there are no shortcuts. A colleague and good friend of mine has a good analogy for this. This is it, paraphrased:
You can’t build a house without laying the foundation down first.
Erecting a building requires a foundation to be built first—without it, the building wouldn’t stand very long, if at all. I’d like to make my own analogy: When you pick up a book for the first time, do you open it up halfway through and start reading from there? You wouldn’t, because then you’d have missed half of the plot, and you wouldn’t understand what is going on. It doesn’t make much sense to jump into a higher level concept. I’m not suggesting that one should learn Assembly before jumping into programming, but here are a few examples of the point I’m trying to convey:
Make the Time and Effort
I was teaching someone how to write HTML and CSS a couple of years back. She said to me that she expected to be up and running in a couple of months or so with enough experience to get a job. When I explained that it would take a lot more effort than that, that shocked her.
I have been working with, studying and learning about the web for the majority of my life. Most people don’t understand that learning how to code or program takes serious time and effort. Programming is not magic. Try getting hired as an executive chef without any training and you’ll be laughed out of the kitchen. There is no substitute for diligence and commitment. Read manuals, take notes, practice every day, whatever it takes for you to retain as much knowledge as possible. You can't expect to become a pro in a few months.
Learn the Hard Way
When I began making websites, as a 10-year-old there were only a couple of tools available to me. These included Notepad and FrontPage. Unfortunately, I began making websites using FrontPage, because it was easy. You may remember cheap/free web hosting services like GeoCities, Homestead, Angelfire, etc. My first public websites were hosted on Homestead. I used to fiddle with the WYSIWYG editor that they provided to make stupid, simple websites2 that had some horrifying code behind them. Because of that, I wanted to try to learn HTML properly, so I picked up the book HTML for Dummies and moved onto Notepad and Internet Explorer.3
Using that guide book and Notepad solidified my knowledge of HTML at the time. Features that Notepad has that other programs do not: It’s simple, easy to use, fast and it doesn’t crash. Notepad does not have features like code completion and syntax highlighting. The lack of those features forces you to be extremely strict about closing tags properly and in the right place, closing quotes on attributes, etc. Back then, if you didn’t pay attention, something would happen like your tables would break and look really wonky. You’d then have to look through the HTML and find out what went wrong.
Once I showed more interest in web programming, I graduated to an editor called UltraEdit/UltraEdit-32. My dad bought a license for it back when it (and HTML markup) looked like this:
Notepad was my editor when I wanted to play, but I used UltraEdit-32 when I started to get serious. But I digress. Trying out FrontPage or Dreamweaver once or twice does not make you a web developer. (I didn't consider myself a developer until I picked up PHP.) You have to actually see and manage the code, byte-by-byte to have absolute fine-tuned control of it.
Even though we are now living in a slightly less primitive world and we’ve advanced what feels like eons in computer technology since I began learning 16 years ago, the people who are really good at their profession learned things the hard way. It just produces a much more satisfying result.
1 The front-end framework, not a building’s foundation. 2 “This is Ellie’s homepage!!!1! I like kitties, rainbows and cupcakes!!!!!!!!!!!!!!!!!! LOL?/??!!!” 3 Yes, Internet Explorer was some people’s browser of choice at one time.