Hacker News new | past | comments | ask | show | jobs | submit login

http://en.wikipedia.org/wiki/Narcissism

Coding and software engineering are not the same knowledge. Coding is just a small part of the big discipline. The difference between software engineer and a coder with even years of practice is the same as between a poet and a full-time typist.

Memorizing syntax (and may be even some standard idioms) of 20 different languages doesn't make you a software engineer, and of course, you can code something after a day to week of practice, but it will be a mere amateur coding, not a programming.

Of course, such kind of coders are dozen for a dime, because having a dictionary doesn't make you a translator or even speaker of the any human language. After memorizing some basic words and you can use some very basic vocabulary and copied sentences from a phrasebook, but you cannot read even a news paper, let alone a non-fiction or a scientific book. You cannot even watch a TV - they're speaking too fast.

The idea behind reading other people's code is not about finding familiar syntax or code blocks, or even use Ctrl-C, Ctrl-V it is about appreciating and understanding the ideas which leads to this exact code and not the other, why this and not that, which is impossible without engineering knowledge.

No amount of memorized syntax can compensate the lack of practice. You may learn the syntax of 50 programming languages, it is not a substitute for years of practice with at least one of them.

Memorizing standard idioms also does not make you a programmer. You should understand why there idioms emerge and remain here, which ideas are behind them, which technology, what are advantages and disadvantages. This knowledge makes you a software engineer, and this knowledge will give you respect of others.

Producing yet another python tutorial, without ever realizing that keeping it short, full of idiomatic examples, and ability to grasp the big picture in an couple of hours is a huge advantage of the classic tutorial http://docs.python.org/py3k/tutorial/ doesn't make you a teacher of humanity.

And of course, language matters. just look at this http://hyperpolyglot.org/scripting and try to appreciate the differences in readability and self-explanatory between PHP and Python/Ruby. Try to grasp why carefully chosen syntax of Python/Ruby is different from chaotic approach of PHP. Unfortunately we can't see the bloatedness of Java syntax on the same page.




Wait, so you link to the wikipedia page on Narcissim, then spend 9 paragraphs pontificating on my experience and how you know all about me in a way that assumes everyone cares what you think?

Right, I'm the narcissist.


I don't know what this way of expressing my ideas assumes. If you have something to say about these ideas - you're welcome.




Consider applying for YC's Spring batch! Applications are open till Feb 11.

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: