Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • World
  • Users
  • Groups
Skins
  • Light
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse
Code Project
  1. Home
  2. The Lounge
  3. CS-insanity and things that make me want to quit

CS-insanity and things that make me want to quit

Scheduled Pinned Locked Moved The Lounge
questionjavagame-devalgorithmstesting
97 Posts 38 Posters 3 Views 1 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • T theoldfool

    semantics. Some people say copy/paste, some people say OOP.

    If you can keep your head while those about you are losing theirs, perhaps you don't understand the situation.

    L Offline
    L Offline
    Lost User
    wrote on last edited by
    #26

    Well, OOP is good in that sense that it doesn't require from you that you copy and paste it line by line. You just import some library and call an appropriate method so that you can focus on solving problems which aren't solved yet.

    1 Reply Last reply
    0
    • L Lost User

      Of course, its a good analogy. You can add a pepperoni to it, but it still follow the same recipe. Just like conways life of game, you can add some function, you can create a class, but you have to implement four for loops, and there is no other solution to the problem, so even if you sit down and come up with that solution on your own is not any different than the code that other people copied from the internet, and the teacher and the interviewer will not see a difference between the code that you fought with for a week and the code someone copied and just learn how it works. Maybe your variable's name in your loops is int row and int column but in his is int i and int j. Just like in pizza, in Ahmed's pizza is pepperoni, in Steven's is chicken but still is made from same recipe. There is no pizza made of rice or made of noodles. The same goes for those common algortihms. You can't invent anything new here. Bubble sort has only one solution, and you can name your variables different and maybe use some function but still it follows only one formula which you have to memorize. It's not the same when you create your own program. Here your imagination is the limit. You can make it whatever you want it to be. You can create your own game, with even more complex logic than Conways game of life. That's why I start to hate programming because I just reinvent people's ideas. I would like to come up with my own ideas not follow someone's formula.

      W Offline
      W Offline
      W Balboos GHB
      wrote on last edited by
      #27

      It appears, in the real scheme of things, you've given up on life. Back to your pizza. No rice pizza? Wrong! An imaginative person or person(s) made that. And also cauliflower pizza crust - solving the problem for those who can't (or won't) eat gluten. And pizza made with noodles? Wrong again: pizza with ziti as a topping. Or, look at it another way - by various names there are casseroles made with noodles, tomato sauce, and cheese. Well - someone without imagination points out that the noodles are just flour-and-water, so it's just the same. Did you ever have sex? OK - if so, did you try it a second time? It's always basically the same. You know what's curious? My coding theme is to do treat things just as you think about them - to try to make everything the same. Solve an extremely generic problem with as much of neither TRUE nor FALSE as decisions, but more of "DON'T CARE". In fact, if you abstract it enough, everything is the same - but then there are the accessories. But that's not at all how you think. Aside from your outright obsession with "Corway's Game of Life", you think seeing things the same is a bore - I see that as a way to build from the lowest common denominator extreme functionality. Your problems extend far beyond your CS classes - they just brought them to your attention

      Ravings en masse^

      "The difference between genius and stupidity is that genius has its limits." - Albert Einstein

      "If you are searching for perfection in others, then you seek disappointment. If you seek perfection in yourself, then you will find failure." - Balboos HaGadol Mar 2010

      1 Reply Last reply
      0
      • L Lost User

        Well, I have few books on problem solving. But how helpful are they when I have a problem with only one solution? Like Conways game of life. it has only one solution. I can't be creative and maybe use a while-loop or just one loop. No, this problem has only one solution - 4 loops. And what we actually learn as students is to copy these fourr loops, because there is no other way to recreate this game. If the problem was, create a program with such and such funcionality than I could create anything I wanted as long as it had thsi functionality. Let me give you an analogy of food. If someone told you: make a pizza. How creative is that? You have to follow a recipe, copy that recipe, or it's not a pizza. These is how those algorithms work, you have to recreate certain recipe, otherwise you didn't solve the problem. So you memorize all those recipes and you recreate them, and the worst thing is that in the end of the day, you don't even use them because you have huge libraries with all those algorithms prewritten. If I at least have use of them, but I don't. When I create my own programs I solve much complex problems and I don't find it hard at all. Why? because I see meaning in what I do. Here I don't see a meaning besides to pass exams and make the interviewer glad.

        K Offline
        K Offline
        Kris Lantz
        wrote on last edited by
        #28

        Eesh, this is why I had to stop making pizza; got tired of copy and pasting pepperoni from other companies. On the serious side, look at your pizza analogy a different way. Each ingredient is a piece that has already been solved. You might not care how that cheese or pepperoni came to be, and you'll probably not have an improvement on how it's made, but you know it goes on that pizza. At some point, you learned how to use that ingredient, and why you might want it in the first place. You likely know what makes a good pizza topping, and what does not. In some cases, maybe you'll want to make your own dough. Are you going to reinvent dough into something the world has never seen? -of course not, but it can still be satisfying to make, even knowing others have already done so. At the end of the day, appreciate the learning of why you might want that/a solution, rather than just, "I know where to copy the answer from." Your creativity will certainly not suffer.

        L T 2 Replies Last reply
        0
        • Greg UtasG Greg Utas

          There is some truth to what you're saying, but it's also difficult to design "real world problems" that can be solved in a university setting. Depending on what school you're at, many of your instructors may not even have much real world experience, because there's quite a gulf between pure CS and software engineering. Many of your classmates probably wouldn't be able to handle real world problems at this stage anyway. In later years, there's typically a course or two where you work in teams, the same way you would in industry, because this introduces issues that don't arise when working on your own. The project that a team implements, however, might be something that's already been done, like a microkernel or a simpler version of MS Word.

          Robust Services Core | Software Techniques for Lemmings | Articles
          The fox knows many things, but the hedgehog knows one big thing.

          L Offline
          L Offline
          Lost User
          wrote on last edited by
          #29

          I'm so mad at myself... I took a loan for be able to make this degree. I was so stupid, now I'm stuck and I have to continue that path to get a job. Well, nevermind I just memorize all those algorithms just to copy them from my memory and explain to the teachers and the interviews what it is that I copied - they don't even know the difference. Let them be glad. Let me copy and paste all this crap from my memory, and take money in the end of the day... Whatever... If there is something that you find you love to do, don't be too enthusiastic, it's a trap. You will never do in your life what you love to do even if it's related to what you love to do. Life is a torture, whatever path in life you take... Sorry for all those messages, I'm so disapointed with life...

          M 1 Reply Last reply
          0
          • L Lost User

            Of course, its a good analogy. You can add a pepperoni to it, but it still follow the same recipe. Just like conways life of game, you can add some function, you can create a class, but you have to implement four for loops, and there is no other solution to the problem, so even if you sit down and come up with that solution on your own is not any different than the code that other people copied from the internet, and the teacher and the interviewer will not see a difference between the code that you fought with for a week and the code someone copied and just learn how it works. Maybe your variable's name in your loops is int row and int column but in his is int i and int j. Just like in pizza, in Ahmed's pizza is pepperoni, in Steven's is chicken but still is made from same recipe. There is no pizza made of rice or made of noodles. The same goes for those common algortihms. You can't invent anything new here. Bubble sort has only one solution, and you can name your variables different and maybe use some function but still it follows only one formula which you have to memorize. It's not the same when you create your own program. Here your imagination is the limit. You can make it whatever you want it to be. You can create your own game, with even more complex logic than Conways game of life. That's why I start to hate programming because I just reinvent people's ideas. I would like to come up with my own ideas not follow someone's formula.

            OriginalGriffO Offline
            OriginalGriffO Offline
            OriginalGriff
            wrote on last edited by
            #30

            Why do you assume that there is only one solution? There is one algorithm for the GoL, but there are a huge number of different ways to implement it, many of which don't use a single for loop, much less four! And that before you even start thinking about multithreading solutions, pointer arithmetic, and so forth. Think about the first "only way to do it" for GoL: why do you want a 2D "board" when you can use a 1D array much more efficiently? Think about Bubble Sort: there are as many different way to implement it as there are developers actually writing the code! And when you've written it, it's obvious that it's not very efficient for most "real world" collections to be sorted, and that a couple of simple changes would vastly improve the efficiency, and implementing that and a testing framework to measure the improvements. Going in with the mindset of "it's all been done" is a major limit on how you can think about problems, let alone solutions...

            "I have no idea what I did, but I'm taking full credit for it." - ThisOldTony "Common sense is so rare these days, it should be classified as a super power" - Random T-shirt AntiTwitter: @DalekDave is now a follower!

            "I have no idea what I did, but I'm taking full credit for it." - ThisOldTony
            "Common sense is so rare these days, it should be classified as a super power" - Random T-shirt

            L L 2 Replies Last reply
            0
            • T trønderen

              OriginalGriff wrote:

              Beginners don't have the skills to analyse a problem, design a system, implement it, document it, test and debug

              Yet that is where they should start: At "analyze a problem". That is what software development really is about - far more than coding, testing and debugging it. Or, so it ought to be. If you don't have to implement / test / debug, you can, early in your studies, analyze quite large systems and design the solutions - far larger problems than those you have the resources to code / test / debug. While you are learning methodologies for problem analysis and solution design (at an implementation independent level!), you should, in parallel, learn implementation, testing and debugging techniques, applied to small, manageable problems for a beginning student. But that is not the main focus of a software developer's education. The problem analysis and (implementation independent) solution design is. Modern education programs start with a typing course: Student learn to type "int main(int argc, char *argv[]) {}" first, and taught the finer details of lambdas, and only after that start asking what the problem is all about. That is to turn things upside down. But that is how we want it nowadays. Even if it is upside down.

              L Offline
              L Offline
              Lost User
              wrote on last edited by
              #31

              I had actually one project that I hade to do for my school, and it was a small program that have different functions, but it was a whole program. This was the only thing I really enjoyed and loved to do and I learned much more about problem solving and algorithms than from those stupid exercises.

              1 Reply Last reply
              0
              • W W Balboos GHB

                My impression is that he's in a world of copy-and-paste. He may think of it differently. He may describe himself differently. His first source is to see what someone else has done and copy it. I'm one of those self-taught types. Wallowing in errors - and the thrill of solving one - and even more, all the stuff learned in solving it. And - like "way back when" with a paper encyclopedia or dictionary: after you look something up, how can you resist looking at some other things that followed it or preceded it since, after all, the book's already opened and before you. In C, I looped through an array using indices. Then I came across someone incrementing a pointer, instead, and using that? Why? It was a tool in my mind for recursive functions (like English-to-Piglatin converter). So much overhead just went away.   Ah Ha ! Even his complaint is a rehash of Ecclesiastes. The difference, of course, is that Solomon experimented with changing his views and developed insights. As you know, I occasionally get harsh - but this guy's so full of himself. It is the one facet of his arguments that is consistent. Admittedly, I follow the philosophical hubris of Hannibal:

                "If I cannot find a way I shall make one!"

                (or know the reason why)

                Ravings en masse^

                "The difference between genius and stupidity is that genius has its limits." - Albert Einstein

                "If you are searching for perfection in others, then you seek disappointment. If you seek perfection in yourself, then you will find failure." - Balboos HaGadol Mar 2010

                OriginalGriffO Offline
                OriginalGriffO Offline
                OriginalGriff
                wrote on last edited by
                #32

                There is an argument for ignorance being really useful - not only for debugging, where describing a problem to a moron can really help you work out what you did wrong, but also in the sense that if you don't know something can't be done, there is no barrier to your trying. And sometimes, just sometimes, you can get it to work and then it was obvious all along! I've done that a few times, and it's wonderful when you have the impossible working ... but most of the time you fall flat on your face, or set fire to the desk by accident :-D But this one comes over as a child: he wants to be handed solutions but he wants to "solve" really complicated problems without the effort of learning how. Sad really - particularly since it's costing him a lot of money to ignore the opportunities he has in front of him.

                "I have no idea what I did, but I'm taking full credit for it." - ThisOldTony "Common sense is so rare these days, it should be classified as a super power" - Random T-shirt AntiTwitter: @DalekDave is now a follower!

                "I have no idea what I did, but I'm taking full credit for it." - ThisOldTony
                "Common sense is so rare these days, it should be classified as a super power" - Random T-shirt

                W 1 Reply Last reply
                0
                • L Lost User

                  Hi! I study CS already few months and I start hating programming - something I used to love. I thought that programming was about being creative, about inventing things, but the only things that we keep doing at school is copying and pasting other people's ideas. I don't know what is the point of copying and pasting other peoples algorithms? Especially when you program in Java which have a massive library with all those alorithms prewritten. What is the point of building a bubble-sort algorithm from scratch if you have a massive Java-libraries with all algorithms already prewritten? So what's the point of the classes and whole idea of object orientation and reusable code if the job-interviewers and the school is expecting from you to reinvent the wheel? Because they want to test your intelligence? How is this testing my intelligence if solving algorithmic problems is just about memorizing other people's solutions thanks to photographic memory and pasting them on the whiteboard from your memory then explaining to the teacher or the inteviewer what it is that you copied. And those problems are all the same - only written with different words. By memorizing all common algorithms from books you can solve all of them by finding analogy without even using your brain for a second just like those russian chess players who won tournaments by memorizing all chess openings from books. The funny thing that I always read on the internet is people writing something like "I was bored, so I created Conway's game of life". Like what? You didn't create anything. You just reimplemented someone's idea from a book or from a tutorial from a guy who also copied it from a book or a tutorial. You copied and pasted a solution that someone already came up with. Because, can you make a Conway's game of life without those famous 4 loops? You can maybe create a class or a different method but those 4 loops you have to copy and past. So what is the point of doing all this copying and past? I'm so bored. Why is programming so boring? All these stupid games and algorithms that we have to copy and past. I would love to build my own program, that I invented, with solutions that I came up with and not recreate some prehistoric code... Is this hwo this job will look like in the future? I thought I would be free to create something that is mine, that I can stand for and not be a living scanner. Maybe I should be a writer instead? As a creative person I feel tormented by my school and the thought that this is how my job will look like the rest of my

                  C Offline
                  C Offline
                  Chris Losinger
                  wrote on last edited by
                  #33

                  Member 14971499 wrote:

                  I don't know what is the point of copying and pasting other peoples algorithms?

                  there are a number of problems which show up again and again in programming (call them patterns or algorithms or whatever). and as a professional programmer, you're going to spend a lot of time recreating them in slightly different ways, in different languages, on different platforms, forever. might as well learn them.

                  1 Reply Last reply
                  0
                  • L Lost User

                    Hi! I study CS already few months and I start hating programming - something I used to love. I thought that programming was about being creative, about inventing things, but the only things that we keep doing at school is copying and pasting other people's ideas. I don't know what is the point of copying and pasting other peoples algorithms? Especially when you program in Java which have a massive library with all those alorithms prewritten. What is the point of building a bubble-sort algorithm from scratch if you have a massive Java-libraries with all algorithms already prewritten? So what's the point of the classes and whole idea of object orientation and reusable code if the job-interviewers and the school is expecting from you to reinvent the wheel? Because they want to test your intelligence? How is this testing my intelligence if solving algorithmic problems is just about memorizing other people's solutions thanks to photographic memory and pasting them on the whiteboard from your memory then explaining to the teacher or the inteviewer what it is that you copied. And those problems are all the same - only written with different words. By memorizing all common algorithms from books you can solve all of them by finding analogy without even using your brain for a second just like those russian chess players who won tournaments by memorizing all chess openings from books. The funny thing that I always read on the internet is people writing something like "I was bored, so I created Conway's game of life". Like what? You didn't create anything. You just reimplemented someone's idea from a book or from a tutorial from a guy who also copied it from a book or a tutorial. You copied and pasted a solution that someone already came up with. Because, can you make a Conway's game of life without those famous 4 loops? You can maybe create a class or a different method but those 4 loops you have to copy and past. So what is the point of doing all this copying and past? I'm so bored. Why is programming so boring? All these stupid games and algorithms that we have to copy and past. I would love to build my own program, that I invented, with solutions that I came up with and not recreate some prehistoric code... Is this hwo this job will look like in the future? I thought I would be free to create something that is mine, that I can stand for and not be a living scanner. Maybe I should be a writer instead? As a creative person I feel tormented by my school and the thought that this is how my job will look like the rest of my

                    L Offline
                    L Offline
                    Lost User
                    wrote on last edited by
                    #34

                    Member 14971499 wrote:

                    The funny thing that I always read on the internet is people writing something like "I was bored, so I created Conway's game of life". Like what? You didn't create anything. You just reimplemented someone's idea from a book or from a tutorial from a guy who also copied it from a book or a tutorial.

                    Then do it in a different way. Sure there is the "standard way" that every tutorial keeps copying, put that aside and find a more interesting way. Do it entirely with bitwise hacks, throw SIMD at it, use memoization on blocks, whatever you can think of. There is a standard way that perhaps you are expected to use in school, but there isn't actually only one way to do it.

                    1 Reply Last reply
                    0
                    • OriginalGriffO OriginalGriff

                      Why do you assume that there is only one solution? There is one algorithm for the GoL, but there are a huge number of different ways to implement it, many of which don't use a single for loop, much less four! And that before you even start thinking about multithreading solutions, pointer arithmetic, and so forth. Think about the first "only way to do it" for GoL: why do you want a 2D "board" when you can use a 1D array much more efficiently? Think about Bubble Sort: there are as many different way to implement it as there are developers actually writing the code! And when you've written it, it's obvious that it's not very efficient for most "real world" collections to be sorted, and that a couple of simple changes would vastly improve the efficiency, and implementing that and a testing framework to measure the improvements. Going in with the mindset of "it's all been done" is a major limit on how you can think about problems, let alone solutions...

                      "I have no idea what I did, but I'm taking full credit for it." - ThisOldTony "Common sense is so rare these days, it should be classified as a super power" - Random T-shirt AntiTwitter: @DalekDave is now a follower!

                      L Offline
                      L Offline
                      Lost User
                      wrote on last edited by
                      #35

                      Actually when you are telling me that, it sounds really fun and I would love to try that, but my CS-exercises are not like that. They are like: You have a 2-d array and bla, bla, bla and yes make that game with those ingredients. Well, there is not much space for creativity here. Believe me, I sat few days and try to impress my teacher that I'm really passionate about it, and I'm not like those who just copy and paste and go the easy way... But I looked in my books for some inspiration, but it looks like there is only that one solution - those four for loops... If there is you can do that in different way, if I missed something. Beleive me, I will fight with that program from morning to night to find a better way. Because what I see is that I sweat and sweat and in the end of the day I come up with the same solution that everyone copied, and the teacher doesn't see a difference from my code and theirs anyway... The difference is just that I was stupid and didn't sleep in many days and they just memorize the solution and learned how it works. But thank you fro your answer, it really gives me a hope.

                      D 1 Reply Last reply
                      0
                      • K Kris Lantz

                        Eesh, this is why I had to stop making pizza; got tired of copy and pasting pepperoni from other companies. On the serious side, look at your pizza analogy a different way. Each ingredient is a piece that has already been solved. You might not care how that cheese or pepperoni came to be, and you'll probably not have an improvement on how it's made, but you know it goes on that pizza. At some point, you learned how to use that ingredient, and why you might want it in the first place. You likely know what makes a good pizza topping, and what does not. In some cases, maybe you'll want to make your own dough. Are you going to reinvent dough into something the world has never seen? -of course not, but it can still be satisfying to make, even knowing others have already done so. At the end of the day, appreciate the learning of why you might want that/a solution, rather than just, "I know where to copy the answer from." Your creativity will certainly not suffer.

                        L Offline
                        L Offline
                        Lost User
                        wrote on last edited by
                        #36

                        But this is the problem. If I sweat and work on my solution, I usually come with the same solution that many people just memorize and learn how it works and it's not different from my code which make me sit from the early morning to the latly night to write it and in the end of the day, the teacher will probably think that I also copy that from somewhere. Not even at real exams I can prove that my hard work was worth it. When I fight with some problem because I want to come up with my own solution, someone writes down what he/she memorized from a tutorial or a book and he/she gets better grade. This is what I hate about those algorithms, they don't measure your knowledge anyway. Making your own program shows that no one did it, you invented yourself.

                        1 Reply Last reply
                        0
                        • W W Balboos GHB

                          My impression is that he's in a world of copy-and-paste. He may think of it differently. He may describe himself differently. His first source is to see what someone else has done and copy it. I'm one of those self-taught types. Wallowing in errors - and the thrill of solving one - and even more, all the stuff learned in solving it. And - like "way back when" with a paper encyclopedia or dictionary: after you look something up, how can you resist looking at some other things that followed it or preceded it since, after all, the book's already opened and before you. In C, I looped through an array using indices. Then I came across someone incrementing a pointer, instead, and using that? Why? It was a tool in my mind for recursive functions (like English-to-Piglatin converter). So much overhead just went away.   Ah Ha ! Even his complaint is a rehash of Ecclesiastes. The difference, of course, is that Solomon experimented with changing his views and developed insights. As you know, I occasionally get harsh - but this guy's so full of himself. It is the one facet of his arguments that is consistent. Admittedly, I follow the philosophical hubris of Hannibal:

                          "If I cannot find a way I shall make one!"

                          (or know the reason why)

                          Ravings en masse^

                          "The difference between genius and stupidity is that genius has its limits." - Albert Einstein

                          "If you are searching for perfection in others, then you seek disappointment. If you seek perfection in yourself, then you will find failure." - Balboos HaGadol Mar 2010

                          L Offline
                          L Offline
                          Lost User
                          wrote on last edited by
                          #37

                          If you have an exercise where you have certain limitation. The teacher want you to make a game that follows strict rules, how can you experiment? Can you experiment when you drive a car? No, a car drives allways in the same manner. You can't experiment and put a gas when want stop the car. The same with Conways game, if you have to use 2d array, make it with one loop. If you make it using only one loop, I will come back here and tell everyone that I'm a clown and I'm sorry. Please, don't compare CS to being self-taught. As self-taught you do whatever program you like to, and read whatever bookm you want to, and you can experiment how much you want. I would love to do that. But when you take a loan and you have to find solution to a problem, where you are restricted by instructions than you can't experiment. Of course, you can sweat and fight with it but the result will be not different from someone who copied it from internet.

                          W 1 Reply Last reply
                          0
                          • W W Balboos GHB

                            My impression is that he's in a world of copy-and-paste. He may think of it differently. He may describe himself differently. His first source is to see what someone else has done and copy it. I'm one of those self-taught types. Wallowing in errors - and the thrill of solving one - and even more, all the stuff learned in solving it. And - like "way back when" with a paper encyclopedia or dictionary: after you look something up, how can you resist looking at some other things that followed it or preceded it since, after all, the book's already opened and before you. In C, I looped through an array using indices. Then I came across someone incrementing a pointer, instead, and using that? Why? It was a tool in my mind for recursive functions (like English-to-Piglatin converter). So much overhead just went away.   Ah Ha ! Even his complaint is a rehash of Ecclesiastes. The difference, of course, is that Solomon experimented with changing his views and developed insights. As you know, I occasionally get harsh - but this guy's so full of himself. It is the one facet of his arguments that is consistent. Admittedly, I follow the philosophical hubris of Hannibal:

                            "If I cannot find a way I shall make one!"

                            (or know the reason why)

                            Ravings en masse^

                            "The difference between genius and stupidity is that genius has its limits." - Albert Einstein

                            "If you are searching for perfection in others, then you seek disappointment. If you seek perfection in yourself, then you will find failure." - Balboos HaGadol Mar 2010

                            L Offline
                            L Offline
                            Lost User
                            wrote on last edited by
                            #38

                            Please, don't compare being self-taught and CS. When you are self-taught you can experiment as much as you want because you do stuff that you want to do, and if you come up with a solution for bubble sort and Conways game of life on the way, good for you. If I could do my own stuff, and wasn't bound by the limitations of the instructions I get, I would do the same. But if you have strict instructions with strict rules and the deadline, and the loan than you don't fight and play with prewritten algorithm that someone already invented, because after few days of sweating and hard work your solution is not different from one that people copy from internet. And when it comes to certain algortihms you only can do it in one way, like bubble sort for example. But I understand, It hard for you to swallow that you're not smart just because you can implement other people's solution. In fact,you are full of yourself if you don't realize that and think that your implementation of common algorithms is your own.

                            1 Reply Last reply
                            0
                            • L Lost User

                              I'm so mad at myself... I took a loan for be able to make this degree. I was so stupid, now I'm stuck and I have to continue that path to get a job. Well, nevermind I just memorize all those algorithms just to copy them from my memory and explain to the teachers and the interviews what it is that I copied - they don't even know the difference. Let them be glad. Let me copy and paste all this crap from my memory, and take money in the end of the day... Whatever... If there is something that you find you love to do, don't be too enthusiastic, it's a trap. You will never do in your life what you love to do even if it's related to what you love to do. Life is a torture, whatever path in life you take... Sorry for all those messages, I'm so disapointed with life...

                              M Offline
                              M Offline
                              Mircea Neacsu
                              wrote on last edited by
                              #39

                              Member 14971499 wrote:

                              Life is a torture, whatever path in life you take... Sorry for all those messages, I'm so disapointed with life...

                              I would very seriously advise you to seek help: talk to family and friends and don't let despair get the best of you. Pound for pound, grey matter and specially functioning grey matter is one of the rarest commodities on Earth and once you've be given a few pounds of it, you should take good care of it. Getting back to your dissapoinmets with CS and without knowing anything about your program:

                              • Keep in mind that you cannot have any program tailored specifically for you. There are others in your class that might have different needs. Be considerate to them.
                              • There is no "perfect" method for teaching any science let alone "computer science". I put that in quotation marks because I'm not even sure it's truly a science or an art (Knuth titled his seminal work "The Art of Computer Programming"). Your instructor tries to teach you at the same time the syntax of a programming language, some basic data structures and algorithms and maybe give you a feeling for what real world problems might look like. It is hard to do all that. Be considerate of his efforts.
                              • There is always a balance between reinventing the wheel and blindly doing copy/paste from the Internet. Learn when you can get something already made and when you have to use your own grey matter.

                              To finish, let me tell you the story of my first program: first year; first CS course; language was FORTRAN (yes, I'm old). I meet a friend in second year and tell him I was bored with the homework (kind of like you) and he says "I have an interesting problem for you: write a program to find all the positions of 8 queens on a chessboard so that no one attacks another one." I write the program and, surprise, it doesn't work. My logical conclusion is that the compiler has made a mistake and I decide to search for it. I get the assembly language listing of my program and start analyzing it. But to do that I have first to learn assembly. Then I start marveling at how the compiler knew how to translate program and in the process I learn about formal languages, LL(n) and LR(n) grammars. Never finished my eight queen

                              L 1 Reply Last reply
                              0
                              • M Mircea Neacsu

                                Member 14971499 wrote:

                                Life is a torture, whatever path in life you take... Sorry for all those messages, I'm so disapointed with life...

                                I would very seriously advise you to seek help: talk to family and friends and don't let despair get the best of you. Pound for pound, grey matter and specially functioning grey matter is one of the rarest commodities on Earth and once you've be given a few pounds of it, you should take good care of it. Getting back to your dissapoinmets with CS and without knowing anything about your program:

                                • Keep in mind that you cannot have any program tailored specifically for you. There are others in your class that might have different needs. Be considerate to them.
                                • There is no "perfect" method for teaching any science let alone "computer science". I put that in quotation marks because I'm not even sure it's truly a science or an art (Knuth titled his seminal work "The Art of Computer Programming"). Your instructor tries to teach you at the same time the syntax of a programming language, some basic data structures and algorithms and maybe give you a feeling for what real world problems might look like. It is hard to do all that. Be considerate of his efforts.
                                • There is always a balance between reinventing the wheel and blindly doing copy/paste from the Internet. Learn when you can get something already made and when you have to use your own grey matter.

                                To finish, let me tell you the story of my first program: first year; first CS course; language was FORTRAN (yes, I'm old). I meet a friend in second year and tell him I was bored with the homework (kind of like you) and he says "I have an interesting problem for you: write a program to find all the positions of 8 queens on a chessboard so that no one attacks another one." I write the program and, surprise, it doesn't work. My logical conclusion is that the compiler has made a mistake and I decide to search for it. I get the assembly language listing of my program and start analyzing it. But to do that I have first to learn assembly. Then I start marveling at how the compiler knew how to translate program and in the process I learn about formal languages, LL(n) and LR(n) grammars. Never finished my eight queen

                                L Offline
                                L Offline
                                Lost User
                                wrote on last edited by
                                #40

                                Thank's :) It was intresting and funy story and nice advice. I feel much better after reading this :)

                                1 Reply Last reply
                                0
                                • OriginalGriffO OriginalGriff

                                  There is an argument for ignorance being really useful - not only for debugging, where describing a problem to a moron can really help you work out what you did wrong, but also in the sense that if you don't know something can't be done, there is no barrier to your trying. And sometimes, just sometimes, you can get it to work and then it was obvious all along! I've done that a few times, and it's wonderful when you have the impossible working ... but most of the time you fall flat on your face, or set fire to the desk by accident :-D But this one comes over as a child: he wants to be handed solutions but he wants to "solve" really complicated problems without the effort of learning how. Sad really - particularly since it's costing him a lot of money to ignore the opportunities he has in front of him.

                                  "I have no idea what I did, but I'm taking full credit for it." - ThisOldTony "Common sense is so rare these days, it should be classified as a super power" - Random T-shirt AntiTwitter: @DalekDave is now a follower!

                                  W Offline
                                  W Offline
                                  W Balboos GHB
                                  wrote on last edited by
                                  #41

                                  At first, I wasn't going to keep extending this but I happen to probably make my living, to no small extent, off of governance. I wall readily admit that it would not be difficult to find a "better" programmer than me. I have learned, in a way, a patchwork and much of the theory . . . I don't even know what I don't know. Actually, that was also true in the world of Chemistry. But in the latter, having never taken a course in catalysis or surface chemistry I came up with the idea of Induced Surface Ensembles on Transition Metal Surfaces. Inspired by a (fired) mathematician that was sitting next to me who told mine (ironically in this current context!) about predator-prey games. Computer modeled (Monte-carlo 2-D surface simulatation), proven experimentally as well, and patented by employer - and Marcel-Decker wanted me to write a book on Computer in Chemistry. All this in a bunch of field in which I was, well, truly ignorant. In grad school, I invented several pieces of equipment (simple stuff) that became staples because they were such an improvement over what had been done (literly, orders of magnitude). &etc. Some rather famous persons, such as Gabor Somorjai[^], wanted to work with me - ignorance on their part ! Same for programming. One of the bosses here, now CEO, once said to me "what does every do here? Some give them some papers, they add something to it and give it to someone else. Everyone is doing the same thing." - hit me like a ton bricks as it soaked in. Especially since, at the time, I was reading about XML - and completely reoriented how I code. Not the fine details of it (a function of experience) but the global view. So - I work for an insurance underwriter. My applications are totally unaware of this. They'd work equally well for a restaurant or garage. Let the actual data accessorize it into distinctions. Why should I care? On the other hand, all else being equal, if you built the same functionality, it would be gang-busters better in organization and probably performance. So - as I've said before - I'm a paid problem-solver. Everything I know is applied to everything I do. That tired expression "think outside the box" - what box are they talking about?

                                  Ravings en masse^

                                  1 Reply Last reply
                                  0
                                  • L Lost User

                                    Hi! I study CS already few months and I start hating programming - something I used to love. I thought that programming was about being creative, about inventing things, but the only things that we keep doing at school is copying and pasting other people's ideas. I don't know what is the point of copying and pasting other peoples algorithms? Especially when you program in Java which have a massive library with all those alorithms prewritten. What is the point of building a bubble-sort algorithm from scratch if you have a massive Java-libraries with all algorithms already prewritten? So what's the point of the classes and whole idea of object orientation and reusable code if the job-interviewers and the school is expecting from you to reinvent the wheel? Because they want to test your intelligence? How is this testing my intelligence if solving algorithmic problems is just about memorizing other people's solutions thanks to photographic memory and pasting them on the whiteboard from your memory then explaining to the teacher or the inteviewer what it is that you copied. And those problems are all the same - only written with different words. By memorizing all common algorithms from books you can solve all of them by finding analogy without even using your brain for a second just like those russian chess players who won tournaments by memorizing all chess openings from books. The funny thing that I always read on the internet is people writing something like "I was bored, so I created Conway's game of life". Like what? You didn't create anything. You just reimplemented someone's idea from a book or from a tutorial from a guy who also copied it from a book or a tutorial. You copied and pasted a solution that someone already came up with. Because, can you make a Conway's game of life without those famous 4 loops? You can maybe create a class or a different method but those 4 loops you have to copy and past. So what is the point of doing all this copying and past? I'm so bored. Why is programming so boring? All these stupid games and algorithms that we have to copy and past. I would love to build my own program, that I invented, with solutions that I came up with and not recreate some prehistoric code... Is this hwo this job will look like in the future? I thought I would be free to create something that is mine, that I can stand for and not be a living scanner. Maybe I should be a writer instead? As a creative person I feel tormented by my school and the thought that this is how my job will look like the rest of my

                                    S Offline
                                    S Offline
                                    Slacker007
                                    wrote on last edited by
                                    #42

                                    Just get through it the best you can. I have used very little of my CS degree in any of the work I have done in 16+ years as a developer. bubble sort, never had to use it or understand it in any real world solution. That's me though. Other people's stories may be different. get your CS degree so you can get your first couple of jobs, then after that, it is pure work experience. If you are still doing this after 5-7 years, you will probably do it for life. good luck.

                                    D 1 Reply Last reply
                                    0
                                    • L Lost User

                                      If you have an exercise where you have certain limitation. The teacher want you to make a game that follows strict rules, how can you experiment? Can you experiment when you drive a car? No, a car drives allways in the same manner. You can't experiment and put a gas when want stop the car. The same with Conways game, if you have to use 2d array, make it with one loop. If you make it using only one loop, I will come back here and tell everyone that I'm a clown and I'm sorry. Please, don't compare CS to being self-taught. As self-taught you do whatever program you like to, and read whatever bookm you want to, and you can experiment how much you want. I would love to do that. But when you take a loan and you have to find solution to a problem, where you are restricted by instructions than you can't experiment. Of course, you can sweat and fight with it but the result will be not different from someone who copied it from internet.

                                      W Offline
                                      W Offline
                                      W Balboos GHB
                                      wrote on last edited by
                                      #43

                                      Such a narrow view. If you were a horse they'd call that a result of blinders. So you re-code that new nemesis of yours, that game. You make the instructor happy. And at the same time, figure out how to enhance it - make it do more - experiment with it. In fact, you could learn how to leave 'stubs' in your code for later additions. The thing is, the world is full of mindless hacks creating unimaginative code. Where I work, they get that quality whenever they outsource - particularly to "foreign lands". It's just the way it is. It's not that the people in those places are less smart - they just turned a craft into an assembly line and they get to produce products, accordingly. Myself? I will argue with whomever wants me to build an application (assuming it doesn't fit into the abstract ones that can handle most things as-is). Ultimately, senior management gets my point and agrees - even if one of them is debating with me. I explain why until they understand - and if they still want something, OK. They all understand that it's easier for me to just code shit as people request it then to argue so it's done correctly. Loved? Maybe not. Respected. So, your exercise is only limited by a narrow view of following the instructions to the letter. You can make more of it . . . or continue your path to the assembly line in some field of endeavor.

                                      Ravings en masse^

                                      "The difference between genius and stupidity is that genius has its limits." - Albert Einstein

                                      "If you are searching for perfection in others, then you seek disappointment. If you seek perfection in yourself, then you will find failure." - Balboos HaGadol Mar 2010

                                      L 1 Reply Last reply
                                      0
                                      • L Lost User

                                        Well, what you described is the real world problem. Now I wonder how you apply bubble sort and Conways game to that? So how you solve the problem you described? Well, you look at the existing libraries or you come up with your own solution. Algorthmic problems? Allways. Reinventing the wheel just to feel like you're intelligent, I think is showing more stupidity than intelligence.

                                        D Offline
                                        D Offline
                                        Daniel Pfeffer
                                        wrote on last edited by
                                        #44

                                        Member 14971499 wrote:

                                        Now I wonder how you apply bubble sort and Conways game to that?

                                        You don't. If I may use an analogy from another field, every carpenter has to know how to drive nails with a hammer. However, building a table requires much more than that: selecting the right sort of wood, measuring, cutting, assembly, finishing etc. Learning how to write bubblesort or Conway's game of life is similar to the toy projects that you are given while learning to be a carpenter. They are not too hard for a beginner, and they teach you something about coding (or carpentry). If you are self-taught, this sort of approach may be frustrating at first. However, a good course will use even these simple projects to teach good practices such as code factoring, documentation, etc.

                                        Freedom is the freedom to say that two plus two make four. If that is granted, all else follows. -- 6079 Smith W.

                                        1 Reply Last reply
                                        0
                                        • L Lost User

                                          Actually when you are telling me that, it sounds really fun and I would love to try that, but my CS-exercises are not like that. They are like: You have a 2-d array and bla, bla, bla and yes make that game with those ingredients. Well, there is not much space for creativity here. Believe me, I sat few days and try to impress my teacher that I'm really passionate about it, and I'm not like those who just copy and paste and go the easy way... But I looked in my books for some inspiration, but it looks like there is only that one solution - those four for loops... If there is you can do that in different way, if I missed something. Beleive me, I will fight with that program from morning to night to find a better way. Because what I see is that I sweat and sweat and in the end of the day I come up with the same solution that everyone copied, and the teacher doesn't see a difference from my code and theirs anyway... The difference is just that I was stupid and didn't sleep in many days and they just memorize the solution and learned how it works. But thank you fro your answer, it really gives me a hope.

                                          D Offline
                                          D Offline
                                          DerekT P
                                          wrote on last edited by
                                          #45

                                          Member 14971499 wrote:

                                          But I looked in my books for some inspiration, but it looks like there is only that one solution - those four for loops...

                                          I can tell those loops have been driving you crazy! :laugh: But despite what you say about "copy and paste", what you say in the quote above is that instead of wanting to copy + paste those four loops, you decided to look in some books for someone else's idea so you could copy and paste that idea instead... The other thing to remember is that although you might be coming up with the same solutions that others are copy+pasting, you are learning how to write code to solve a problem; the others in your class are learning how to copy + paste, and as soon as they hit a real-world problem that doesn't have a solution on the 'net, they'll be lost - and you'll be soaring away. In the meantime, if the algorithms really hold no challenge for you, then experiment with the syntax; experiment with writing the shortest code, or the fastest, or the most obscure. There are more ways than one to be creative in development. Good luck, and I hope your tutor sets some more "interesting" tasks for you soon!

                                          L 2 Replies Last reply
                                          0
                                          Reply
                                          • Reply as topic
                                          Log in to reply
                                          • Oldest to Newest
                                          • Newest to Oldest
                                          • Most Votes


                                          • Login

                                          • Don't have an account? Register

                                          • Login or register to search.
                                          • First post
                                            Last post
                                          0
                                          • Categories
                                          • Recent
                                          • Tags
                                          • Popular
                                          • World
                                          • Users
                                          • Groups