by eluos on 8/26/12, 7:20 AM with 35 comments
by nostrademons on 8/26/12, 7:59 AM
(BTW, "beautiful, modular, maintainable code" is one skillset necessary to be a great programmer, and a relatively minor one at that. Much more important is knowing when to write beautiful, modular, maintainable code, and when to bang out a piece of shit that nobody will ever want to look at again, but will quickly prove or disprove a hypothesis and let you know whether an idea is worth pursuing.)
by adolfopa on 8/26/12, 8:48 AM
1. Read a ton of (good) books: this will expose you to new (and old) ideas and techniques.
2. Read a lot of code: this will expose you to good, bad and awful code. As you suffer other people's bad ideas, you'll learn to recognize and avoid them.
3. Practice, practice, practice.
About the #1 point, it's very important to read not only fashionable books or things related to your immediate work. Try to be broad: read the classics, even if their ideas seem outdated to you. Read about the history of the field and the old programming languages and systems (you'll notice that things haven't changed that much).
Also, try to learn a couple of languages that are really different from each other. If you know Java, learning C# won't give you anything. Good languages to expand your mind are: Racket/Scheme/CommonLisp/Clojure (DSLs, metaprogramming, FP, OO, almost anything ...), Haskell/Scala/ML ("real" static typing and FP), Smalltalk (like Java but fun!), Factor/Forth ...; explore a couple of them and pick the ones that make you feel "weird": those are the ones you'll learn interesting things from.
And don't rush: becoming a good programmer will take your whole life; but it's fun and extremely rewarding.
by exDM69 on 8/26/12, 8:47 AM
And if you don't come up with an interesting learning project, you can always learn new programming languages. I've found that the best learning experiences have been the languages that least resemble what I use daily. I'm a C programmer but for learning purposes I recommend learning a Lisp, ML or Haskell and Prolog. An alternative to Prolog is going through the logic programming chapter of SICP and writing your own Lisp-based logic programming language and having fun with that (I actually used Haskell + Parsec to implement a logic language).
by abecedarius on 8/26/12, 10:18 AM
by aniketpant on 8/26/12, 8:00 AM
It's absolutely impossible to turn an average coder into a great coder. Because the things about code you mention in the question -
1. Beautiful 2. Modular 3. Modular 4. Maintainable
All of the four things above do not come by direct learning. They come with experience and a lot of practice.
I agree with the fact that you can make a platform to provide the user with questions that will challenge him but still there will be a part where you will give him some hints. And that will just spoil the entire working.
by SudarshanP on 8/26/12, 7:58 AM
by Jemm on 8/26/12, 12:20 PM
by geofft on 8/26/12, 6:07 PM
This has two benefits, and the primary one is that it gets you _reading_ good code. The second benefit is that, if the project is any quality, it forces you to write good code, both because of the project's standards and because the software is well-designed enough that the easiest thing to do is to make new features match that good design.
by gersh on 8/26/12, 9:10 AM
by ludicast on 8/29/12, 5:03 PM
You really would do well to subscribe, bang through their javascript/coffeescript/git stuff and if rails/ruby intrigues you stay a while. Otherwise cancel your subscription (they are very rails-centric so there will be a continued focus on that I believe) and just go forth from there.
Not to throw conspiracies out there, but I think they are suspiciously un-emphasized here a lot because they are competitors of codecademy with a better product...
by TheMiller on 8/26/12, 12:34 PM
by ozne on 8/26/12, 11:25 AM
http://www.safaribooksonline.com/ This site is awesome for computing information, its about $10 per month and you can read 5 books per month. Books in general give you a more comprehensive understanding of the subject.
Amazon top sellers lists for programming category's are also worth looking at:
by douglascalhoun on 8/26/12, 9:57 AM
Peep Code, Destroy All Software, Railscasts... It's like watching over the shoulders of some of the best programmers in the world as they teach you everything they know.
by redsquirrel on 8/26/12, 5:31 PM
by kellros on 8/26/12, 7:49 AM
by davidjnelson on 8/27/12, 3:30 AM