Hacker News new | ask | show | jobs
by uiuiuxuxux 3124 days ago
I think learning java first would be very very detrimental to someone's coding skills. They would spend the rest of their careers trying to deprogram themselves from that useless way of structurng problems. For me the best would be first c, then assembly, then lisp. In my experience people That started with java and then learned python or js or something else tend to write horrible convoluted code.
2 comments

I don't think anyone should go with a language that allow him to do bad OOP. In my experience, this lead to poor code in the beginning, even when this person is one of the most brilliant you ever met.

People that learned with C (Pascal too) piss more straightforward code on average, and have better debugging skills. And they are more "aware" of the computer.

PS: I did go C, assembly (had to rewrite some libc functions) then emacs lisp (before trying to write stuff in Common Lisp). I don't think going assembly will help a webdev much (even if he work mostly on backend), but lisp is definitly helpfull for anyone. Assembly is great if you like having some fun, but beside CTF and "that one time" (i had a really nasty C bug), the stuff i learned while writing assembly were not really usefull to me.

You are right about assembly. I was thinking c, then a little bit of assembly just enough to demystify it. I think learning just a little bit assembly makes you a braver programer hahaha. In any case if ound a lot of people really damaged by java. Its horrible what that language can do to some people's coding style and framework when thinking about problems.
> In any case if ound a lot of people really damaged by java. Its horrible what that language can do to some people's coding style and framework when thinking about problems.

What problems are you thinking of, specifically? In high school, I had a semester each of BASIC and C++, but my first serious programming was with Java in college. That is, beyond things like a "guess the number" game, getting into actual study of algorithms and data structures.

I'm mostly a C++ dev now, and I've never had complaints about my coding style. Then again, I never bought into the WidgetFactoryFactoryImpl kind of crap.

Indeed. Like what's the first thing you need to learn to even get a simple program running: that there has to be a class with at method. Insane garbage!

A language like C is already bad because there has to be a function before anything is done, instead of just a sequence of instructions to the machine to do something.

Imagine you told me "can you go to the cupboard and fetch the sugar?" and I said, "Nope: you must wrap that in an instruction sheet called "main", and then ask me to compile and execute it".