How to teach yourself to code in one month
generalassemb.ly
generalassemb.ly
I recently overheard a guy on the train talk about why he dropped CompSci as a major to his friend. He talked about the times where he would leave out a semicolon and the program would crash. And it would take hours for him to find the culprit. Leaving out the efficiency of his debugging, what I listened to more was the tone of his explanation. It was like a diatribe. His attitude was literally that any career where you have to worry about little things like semicolons was not the type of career for him. I suspect he had gone into the CompSci program because of the material benefits. And left once he discovered the devil is in the details. Programming is like weaving more than writing. I remember that he said he had switched majors to Business and loved it. Basically, he said CompSci was torture. Because he did not revel, like many of us do, in the sometimes long and backtracking path that we go through to write code. To make something, to weave lines of code into something tangible.
While coding is a formal style of problem solving, I think the sentiment that those who can't code can't problem solve / dislike problem solving is ill-founded and misguided.
And learning to read documentation.
And learning to plan.
And learning when to admit other people should solve the problem.
Sounds like the guy made the right decision, then.
I started with a couple basic 15 minute guides and then hammered myself from all directions incrementally switching between stuff like Hartl's guide, PeepCode, Railscast, etc.
I do find that learning from diverse sources really accelerates the learning process for me. It also breaks up the monotony of pounding through exercises in a single book.
I guess I'm never getting that time back.
And CSS tricks will prove very useful (mine the backlog!): http://css-tricks.com/
If you can code, then you're way ahead when it comes to translating visuals into functional elements on a screen, in my opinion. Rock!
Anyone who's learned to code in a month able to say otherwise?
Just like learning to ride a bike doesn't mean BMX competitions, it's still a step that could lead people to anything they want to make of it. I'd expect plenty of options for next steps, including learning to do ticks on a BMX style bike. The key is that not all of these next steps are serious endeavors. Some people learn just be be enlightened.
I do hope it inspires students to take steps to learn more. We'll see how it goes and we'll also see what students think after taking the course.
Sure it was no showcase example of Rails development but it works and people love it (it's been a few year now and to be honest, I've only made minor changes since).
Edit: I did have years of programming experience beforehand, but not in a language like Ruby or a framework like Rails. It was at times, mind-bending. I think the key difficulty was combating presumptions.
When you can already code, picking up a new set of tools is a whole different beast to learning how to code from scratch.
1 You know how to code if you can get a simple application to run. (No requirements as to maintainability, performance, security, etc.)
2. You know how to code if you can pick the right tools for the job, foresee and avoid future maintenance problems, avoid introducing well-known security holes, and achieve an appropriate balance between performance, cost, and programming effort.
3. You know how to code if you understand your specialty inside and out, to the point where you could write a book, teach advanced classes, testify as an expert in court, and maintain a leading blog about your specialty.
#1 can probably be attained in a month. #2 will take most people several years of sustained effort. Many programmers don't reach #3, and those who do have usually been in the game for many years and have held multiple programming jobs.
So what does it mean to learn to code? What's a good enough level of expertise to code for you own business?
I learned to program SAS and get a job in about 2 weeks. I had a very strong Math background, but next to no programming background.
6 months later, I'd automated my job, my department's jobs, and another department's jobs.
You can argue that this doesn't count as real coding-SAS is certainly much easier than Ruby. But the point is that it was quite possible to learn enough to provide millions of dollars of business value in a couple of weeks.
I think it's very much depends on your goals and tools.
For example, you can probably design a useful business application in Mircosoft's lightswitch in a short time .And it would probably be reasonably secure ,maintainable etc. , because of MS's help.
Same can be said for using python + numpy as a front end for a lab equipment , used in your business.
Personally I consider anyone who can be given a reasonably difficult[1] problem and solve it on their own[2] as knowing how to code.
[1] reasonably difficult - something that can't be solved by finding an appropriate tutorial (in a sense, the solution has to create new knowledge in your sphere of influence)
[2] solving on one's own - not solving through code archaelogy by frankensteining a solution together from random code snippets found online and/or nontrivially stitching together othe people's API's and libraries
IRC is a really, really, really good resource to learn something technical, and it is better in that it provides real-time help. It is the closest you can probably get to having someone guide you live short of having a friend to help you.
This is a better essay to read though.
Perspective is a funny thing.