General YPN >> Resolving misconceptions and working towards a better YPN/TPU
Posted by Smerdyakov on 06:39:00 11-23-2002
I feel it's necessary to clear up some misconceptions people here have shown in some posts here and conversations on IRC. I'm going to explain my position and ask that everyone who replies please follow these guidelines:

1) Avoid degenerating to attacks against _people_ instead of critiques of their _actions_. This does not include enumerating very harmful things that someone is doing to hurt YPN or anything else.
2) You can voice any views you want, but if someone asks you to back one up and you refuse to do so in any means but repeating what you have just said, your view will be considered a personal opinion and not relevant to anyone else. We all have different assumptions about the world, and we can't have a decent discussion if you refuse to let us in on exactly what your assumptions are.
3) If someone tells you that he can't understand what you wrote, don't assume that he is trying to get around acknowledging your latest point. Consider the possibility that there is a language barrier, or that you really haven't thought out what you meant by your point enough to be making it. Reply to any questions asking for clarification of what you meant.

I'm aware that someone unfamiliar with the situation would think I am being odd, dictatorial, etc., by starting with these "rules," but I think that past discussions here have degenerated quickly because of people not following them, and I hope that we can use at least this thread to have a rational discussion for once. So here goes:

I have lots of experience with programming, much more than any member of YPN of whom I know. In saying this, I am not claiming to be the all-superior god of the world. Many, many people around the world can say this same thing. They just don't happen to be visitng YPN, and I hope I can speak for many them and distill the lessons they've learned and passed on to me through various sources.

Despite the fact that computer science is a relatively new discipline, the views of those studying it have converged across the world to a great degree in this last half century or so of its formal existence. One aspect of agreement is what skills new programmers need to develop to be successful in software development. There are many YPN members who don't seem to care about final products produced. They just want to "have fun" coding small programs in "obscure" or "difficult" languages. I would guess that most of them would have more fun using superior programming tools and methodologies and thus creating more complicated programs, leading to a very pleased feeling after finishing a large project. However, I'll leave it at that for now and assume for the rest of this post that everyone in YPN is concerned with creating good computer programs as a final goal, as opposed to only caring about the process for creating them viewed as a kind of game.

In introductory programming classes around the world, you'll find the focus on learning to specify computational problems exactly, think about them algorithmically, and decompose them recursively into smaller problems. At the next level above this, you find a focus on modular programming styles to help you keep track of your code and others' in large projects.

In my time in YPN, I have found almost nonexistent focus on these skills, especially the first category of them. I see an overwhelming preoccupation with learning as many languages/API's as possible, writing very small programs in languages like assembly and Forth that make even basic tasks difficult, and generally sticking to solving simple problems where one need never come up with new algorithms. I could describe this as a very "brute force" and "masculine" view of programming where the programmer attempts to demonstrate his raw strength.

Unfortunately, after spending years developing "raw strength" of the kind described above, a programmer can find himself severely behind in ability compared to a student who has finished an introductory programming course of just several months length. The problem is that anyone with patience can learn as many "facts" as necessary write different kinds of programs. However, it takes time to develop the algorithmic thinking skills needed to write programs to solve problems you've never seen before. It puts you above all of the drones writing the same ASP code over and over every day, etc., today. It broadens your thinking ability in general about all aspects of life. Moreover, it's much more challenging and FUN to write programs where you have to solve novel problems!

The idea of merging YPN and TPU into one organization somehow has been brought up in other threads, and I have responded by citing some problems with the atmosphere in YPN today and the ways members reinforce that atmosphere. These include the problems I mentioned above.

I also singled out what I feel are the harmful things that Kagez posts on this message board. I have never hated or said I hated Kagez, I have never said he is "stupid," and I have certainly never directed profanity at him the way he has at me in response to my candid criticism of his actions. I have merely pointed out that he gives advice that people with more experience with programming than he has can clearly see is clearly harmful and inaccurate.

Others have said that I should "always doubt, never think I have the perfect answer." I haven't said that I have "the perfect answer." I've explored many different styles of programming, including many years with all of the styles that I deride above, and come to my conclusions based on my experiences. The results of academic computer science research also back up what I say.

Many YPN members deride suggestions of the superiority of other programming paradigms than their favorites without having tried them themselves. They then paradoxically tell me that I am too convinced that I have the one right answer. This seems like a problem to me. An organization like YPN that encourages people to only learn C/C++ and assembly and not explore other ways of programming seems to have serious flaws. In planning how YPN and TPU can combine, it would be important to me to be sure that these flaws were absent from the combined group. Someone who has tried a different way of programming and comes to the group with a testimonial to that effect and hard evidence of experience that the old ways have serious problems should be _welcomed_, not derided as "overly negative." Such infusions of ideas help everyone learn more about programming and evaluate their own choices.

So, to summarize: I don't feel I've made any attacks against _people_ instead of their _actions_, though I have been the target of such attacks. I do feel that YPN has serious flaws with respect to the goal of helping its members become better programmers, and that it is not possible to discuss these flaws without acknowledging the negative effects of the actions of individuals. It's all right for people to have different opinions, but they should back them up with good reasons if they want to state them or argue against others with different views. I hope everyone can post responses to this that remain civil, logical, and follow the guidelines I requested at the start of this message.
Posted by MooKeen on 07:14:00 11-23-2002
What can I say? Smerdyakov has hit the nail on the head, and I'm guilty of [some of] this myself. However, I don't quite know how you would fix a problem like this one.
Posted by dxprog on 10:06:00 11-23-2002
I have to agree with one thing. It is fun to figure out the algorithm part of programming. But you must remember that in the world of computer jobs C\C++ reigns supreme. If you can get a good solid foundation there you're doing pretty darn good. I'm not saying that one should stick with that language and never deviate from it. NO! Go out and explore new worlds. That's why I was so desperate to get linux working. I wanted to learn and do something new. Go out, explore, and find what you like, don't be a mindless drone and follow the mainstream unless you really want to. Okay, that's my opinion put in a civil and organized manner. [addsig]
Posted by KaGez on 11:08:00 11-23-2002
/me quotes dxprog
well, I'm the same op.
[addsig]
Posted by robost86 on 11:16:00 11-23-2002
I don't want to sound like a MooKeen-clone, but it can't be said in any different way. Smerdyakov is right, and I'm guilty to some of the things he mentions.

However, I've never claimed that Forth and assembly language should be used for anything but low-level tasks. What I've thought about is to change my habit of seeking a lower level, to the opposite. I don't think spending some time learning how a computer works is wasted time, it really isn't. It gives you the answers to a lot of questions.

Soon it's time for me to explore the field of higher level languages. See you on the dark side of the moon.
Posted by sacah on 14:10:00 11-23-2002
Well, I would disagree with what many ppl have siad here, but that would be pointless, so I say, lets bloody join and get this place working.
Posted by MoX on 21:54:00 11-23-2002
So, now it has been made clear:

Our opinions are not that far apart as it sometimes seems

Should suffice to build a solid base for the furture. [addsig]