3 ms·
I have been teaching myself how to hack. I see that the first real software engineering classes in most schools is taught in JAVA, usually a data structures cl
by mhidalgo 19y ago
I have been teaching myself how to hack. I see that the first real software engineering classes in most schools is taught in JAVA, usually a data structures class. Should I even bother.... I see the merit of learning ground level stuff , like memory management seen in C/C++ but with JAVA is it useful to learn even if majority of web development is done in LAMP ( I should say majority of web development interesting to me, I know there is alot of JAVA out there) Does anyone know of a good book/tutorial to learn data structures with languages such php/ruby/python.
- gibsonf1 19y agoI only know Lisp and absolutely love working with it and the results we're getting with our web application (I was not a CS major), but my partner who is a Software Architect by profession tells me that programming in Lisp takes about half the code and effort of Java with more impressive results. (See Paul Graham's essays on Lisp: http://www.paulgraham.com/lisp.html) http://www.paulgraham.com/lisp.html) If you are going to learn a language, learn the most powerful and efficient language you can find so that you can reach your goals faster. As far as I can tell, until ARC comes out, that language is Lisp. A lot of people complain about the lack of Lisp open source out there, but in fact, our application is loaded with great open source Lisp libraries. See: http://news.ycombinator.com/comments?id=20010 http://news.ycombinator.com/comments?id=20010 http://news.ycombinator.com/comments?id=12619 http://news.ycombinator.com/comments?id=12619 http://www.google.com/search?q=site%3Aycombinator.com+lisp http://www.google.com/search?q=site%3Aycombinator.com+lisp http://www.cliki.net/index http://www.cliki.net/index http://common-lisp.net/ http://common-lisp.net/
- gyro_robo 19y agoYou only know Lisp? That's like only knowing gourmet cooking. Here, have some gruel like the rest of us lived on for years.
- rms 19y agoLisp is great but Python/Ruby are a great halfway point between C and Java and the purely functional Lisp type languages. It's tough to say whether you're better off learning Ruby or Lisp first. It would probably make a good PhD project for someone to compare the teaching of programming to first-time students with Pascal, Java, Ruby, and Lisp. Anyways, www.hacketyhack.com is a great integrated IDE for learning the syntax of ruby.
- gibsonf1 19y ago"purely functional Lisp type languages" I think Common Lisp actually has one of the most powerful Object Systems: CLOS
- rms 19y agoSorry, I meant languages that actually allow for functional programming, not languages that are exclusively that way.
- BrandonM 19y agoLisp is not at all exclusively functional. The best Lisp is, but you can easily write iterative code in Lisp as well. It's just that most Lisp programmers don't because they realize that the functional paradigm is usually superior in terms of creating clean, simple code that is easy to understand later.
- euccastro 19y agoJust to nitpick, any language that allows functions 'allows' functional programming to some extent. More seriously, any language with higher order functions, lexical scoping, and closures can be considered appropriate for functional programming. You probably meant languages that are biased primarily towards functional programming, as opposed to others where FP is not the dominant paradigm. You have to specify that much if you are going to include the Lisps but leave Python out.
- JamesT43 19y agoThats actually going to be at www.hacketyhack.net.
- staunch 19y agoYour title is broad but here you say you want to do web development. Many of the people here are interested in programming for programming's sake, so a lot of the advice will be computer sciency. That's great, but if you just want to make stuff you can safely skip theory for now and get your hands dirty producing real stuff and fill in the gaps over time. The key is to learn best practices of whatever language you choose. Don't learn bad habits. Read the authoritative books and don't take short-cuts. Don't be the guy writing code people cry at having to maintain. Avoid "cargo cult" programming, where you just paste code you find into your programs without fully understanding it. I recommend never pasting at all in fact. At the very least re-type everything as you're learning and try to understand it as best you can. You can safely skip haskell, lisp, prolog, and all those languages you will never get friends to help you with, many books to read, or libraries to leverage. At least until you've got enough experience to be mostly independent of assistance. With the use of best practices it doesn't really matter if you choose: Ruby, Perl, Python, or PHP. I'd ignore Java because it has so many training wheels, and the others don't. These can all work extremely well for web development and anyone who says different is selling something. The Truth™ is that Perl5 is the best and Perl6 will make them all obsolete :-)
- SwellJoe 19y agoGreat to see Perl is coming back into vogue in these kinds of conversations. It's gotten a bad rap for a while, because it's so easy to write really messy and ugly code...but it's also extremely expressive, and contains more functional constructs than even Ruby or Python. Perl 5 didn't get objects right, but they aren't awful (not nearly as big and clunky as Java/PHP). Perl 6 really will be a killer. I watched Audrey Tang's recent video about it, and it was just astounding how far they plan to leap with Perl 6...I must have known it was coming, since I read the apocalypses years ago, but seeing the example code blew me away. It's still a pretty good learning language, and an unbeatable "get things done" language because of CPAN, but if pressed I would have to recommend Ruby or Python for first time programmers.
- jamongkad 19y agoI was about to chime in Perl but I read down to this. I'm currently using Ruby now but my first step into hacking was Perl. So I have a soft spot for it. If Perl 6 can live up to it I will not have any qualms hacking in Perl again.