Do you think shortcuts help or hurt programmers?
Hurt
 20%  [ 1 ]
Help
 80%  [ 4 ]
Total Votes : 5

I see it every day on programming forums. People come in looking for advice on their programs. Don't get me wrong, I think that's great; it's when they are looking for the easiest possible way to get something done that irritates me. More often than not, people use the algorithms of others without giving much thought as to how they were created. Personally, I see this as detrimental to the programmer. I feel that one should learn all aspects of a language and not skip over the hard parts or the tedius parts. Perhaps this is just the crying rant of ASM nostalgic who can't get with the times and realize that higher level languages are easier and with todays processors run at the same speed. I still feel that we are creating a generation of diluted programmers whose base understanding of computers is that the processor understands keypresses, can add floating point numbers, and display objects to a screen itself. I recognize the need for higher level languages to do the tedius tasks for programmers, but to me a "true programmer" not only understands ASM or another very low level language, but takes no shortcuts and relishes in the tedius and the challenging.

Of course, I would like to see what you all think on this subject. And I appologize in advance if anyone takes offense, this was more of a philosophical dilemma instead of a rant Smile
I see where you are coming from, and I have a basic understanding of ASM enough to know what a computer can't do without a lot of work. what agrevates me is people who don't even really want to learn the basic of a high-level language and get right to the good stuff. One step at a time here people
New programmers should always try it themselves and challenge themselves - to a certain degree that is

HOWEVER, i wouldn't think twice about grabbing someone else's code without fully understanding it. i would glance over it, then use it. This is the beauty of OOP, and i embrace it. Think of all the API's and such in widespread use. I have absolutely no clue how to tell the xserver (in any OS) how to draw a pixel, but with wxWidgets i can do all the drawing i want in a simple, fool-proof-ish way
I agree that experienced programmers can't be hurt by reusing code, and can even learn from it if they take a few minutes to examine it. Oh, and those poll options are a bit ambiguous...
Thanks Kerm, I fixed that... Laughing

Edit: I agree that it's good to have these routine out there, but I think it would be better if people understood a little how they worked and didn't just assume they did Wink
This is kinda a hard question. Because both answers are valid. If you start to learn a programming language and dont get any help on it you may find yourself in a ditch. This is when you ask for help, but you dont want to ask for too much the question is mearly trying ot learn more when your lost. But its the people who probably already know the code but want someone else to make it for them, typ thing, that irritates i thikn all of us. its not that people can just run around acting like they dont know anyhting when actually they can, but they just dont try hard enough. Its laziness which anoys most of us. But, still I am not sure what to post on the poll. My answer is it helps when you have tried your best adn need a push from someone else.

-Swivel
I agree with you on that, Swivel. I think that beginner programmers should try to get as far as they can on their own, and if they want to examine some established code to try to figure out how it works as a learning tool, then great. But if they want to haphazardly combine other people's coding fragments (as I've seen with far too many websites by programmers who don't actually know HTML or Javascript), then that's detrimental both to their learning experience and to the people who will try to use such bloated, unstable programs.
I don't think an in-depth understanding hardware architecture is necessary to being a good programmer. In fact, trying to teach new programmers the nuances of assembly language and how a processor works serves only to confuse them. New programmers should learn computer science, not hardware and assembly. Knowing that stuff is nice, but not incredibly useful. I cannot understand ASM myself, yet I am a fairly competent programmer in a number of languages. I'm not mooching off the hard work of people who wrote the BIOS and the operating system - the reason we have those is to avoid tedium.
Yeah, but with z80 programming, for example, you need to understand exactly how the display is mapped to memory, for example, to be able to output anything to it bit- or byte-wise.
Well yeah, if you're doing z80 programming. Very Happy
...and understanding that makes you a better computer programmer. Smile
KermMartian wrote:
...and understanding that makes you a better computer programmer. Smile


now there i strongly disagree, for COMPUTER programming anyway. I know no z80 or ASM, i do not know how the display is mapped to the screen, yet I know how to draw individual pixels to the screen in 2 different languages (Python and C++). I can (and have) create socket connections without any knowledge of what is actually going on, and have them work flawlessly (gcnX anyone?). I can even spawn new threads, and launch other programs sync or async, yet have no knowledge of how to add two numbers in ASM....

And I would even venture that the partial REVERSE is true. For example, in ASM GOTOs and JUMPs are heavily used (correct me if i'm wrong), yet in any mid/high comp lang (From C to Python, from non- to OOP), jump statements are insanely frowned upon, and often poorly (or incorrectly) implemented by the compiler, as it is, ironically, difficult to do.
personally, once I understand a language I think that shortcuts are great. there is know reason to reinvent the wheel every time you want a forum or a CMS or an RPG engine. Find a good, opensource, base to start from and customize it to every extent possible. in the end you won't even be able to recognize the base you started from among the rest of the code, yet you saved yourself all the hundreds of hours that went into developing the original code.

thats what I am doing with my website right now. if you look at some of the stuff Ive done. I have a system for using phpBB's poll feature as a progress bar. I have a file manager built into my ACP. I have redone the entire header and footer files and redone the layout of the avatar section.
Kllrnohj wrote:
And I would even venture that the partial REVERSE is true. For example, in ASM GOTOs and JUMPs are heavily used (correct me if I'm wrong), yet in any mid/high comp lang (From C to Python, from non- to OOP), jump statements are insanely frowned upon, and often poorly (or incorrectly) implemented by the compiler, as it is, ironically, difficult to do.
ASM is so low there are no "loops." The only conditional looping you have is with jumps, but its highly efficient. More efficient than any while loop in BASIC.

To put it bluntly jumps in ASM =/= jumps in higher level languages (the interpreted ones at least, I am less sure how it is implemented in compiled languages, although I have no doubt it is less efficient than code produced directly in ASM). Jumps in ASM are direct hardware jumps meaning that the processor knows where exactly to jump and doesn't have to fumble around looking. Also it doesn't have to mess with the stack to find where to jump to. In higher level langauges it has to search for the correct address to jump to when using GOTO's and it has to work with the stack to find addresses when in While, For, or Repeat loops. Plus if you compare the two, a higher level language would end up doing the same processes as an ASM program (but in much much much more and inefficent code) during loops.

Jonathan_Pezzino wrote:
I don't think an in-depth understanding hardware architecture is necessary to being a good programmer. In fact, trying to teach new programmers the nuances of assembly language and how a processor works serves only to confuse them. New programmers should learn computer science, not hardware and assembly. Knowing that stuff is nice, but not incredibly useful. I cannot understand ASM myself, yet I am a fairly competent programmer in a number of languages.
I agree you don't need an indepth understanding to be a good programmer, but the more you understand the inner workings of the processor the better off you are. I guess I don't mean that everyone should learn ASM, but at least understand that the processor works off a set number of processes that are represented by set patterns of 1s and 0s.I think to consider one's self a programmer, one should understand multiple languages, understand some basic computer architecture, and know some "somewhat" low level languages.

Most people in my VB class, for instance, don't know jack-sh!t about what a processor is or how it works. Often they copy routines out of the textbook without even considering what is going on in them. Then, when their programs don't work, they turn to me and whine until I help them. It sickens me that all they know how to do is copy out of the book, use some primitive data storage structures (most don't use anything but variant datatypes), and do simple math; yet these "programmers" are passing the class fine. Evil or Very Mad
exactly the cr@p I had to deal with in my VB class last year...this year's VB6 hero worships me Laughing
Yup, ASM is unique because labels and jumps are the only control structure; you have to use some nifty shortcuts to makes loops, like the djnz opcode. It's this kind of thing that makes you appreciate the ease of using higher-level languages.
  
Register to Join the Conversation
Have your own thoughts to add to this or any other topic? Want to ask a question, offer a suggestion, share your own programs and projects, upload a file to the file archives, get help with calculator and computer programming, or simply chat with like-minded coders and tech and calculator enthusiasts via the site-wide AJAX SAX widget? Registration for a free Cemetech account only takes a minute.

» Go to Registration page
Page 1 of 1
» All times are UTC - 5 Hours
 
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum

 

Advertisement