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 0 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.
  • L loctrice

    I actually cook at home myself. You'll find a plethora of recipes for pizza crust alone. You can find all sorts of regular flower based ones, all sorts of keto ones, etc. There is absolutely NOT just one recipe for pizza. When I use recipes I do what you should do for coding. I look up a recipe and find one close to what I think is a good starting point. I try it once and if it's working I modify it to my liking. If it doesn't work then I either eat it anyway or toss it out and find another recipe. If you've ever spent time doing code katas (which are pretty much college problems) you'd see that you can do the same problem with several approaches, just like your pizza. Take Gilded Rose for instance. You can solve the problem once looking to practice SOLID principles, again thinking about using functional programming, again with something like javascript where there are other cool techniques you can use. I've used coding katas for company events and I can tell you that the same problem has many solutions. Sure the basic algorithm may not change in a lot of cases but that doesn't mean the implementation is exactly the same. You're partially right that we do have some things that are the same. Algorithms and design patterns are there for a reason, but the implementations are not always the same. You can take one algorithm and implement it in wildly different languages. Though the same thing (pizza) is begin accomplished, the recipe and steps are varying. If you don't learn to solve problems, you're goina have a bad time. If you rely on libraries you'll be using a hammer for you're only tool. Which data structure is best for which situation to implement an algorithm? What do you do if performance or resources becomes an issue if you only know one way to think? This question seems like it's coming from a position of "I already know what I'm doing so why should I have to learn". I think you need to calm down, let your ego go, and start trying to learn. Otherwise you're going to have an unpleasant time in the field.

    Elephant elephant elephant, sunshine sunshine sunshine

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

    I don't know why people assume that. Maybe big egos are that common in this field that you assume that I think I'm to smart to do those algorithms. No, this is not at all what I meant. I find them hard, and mostly I find them boring becuase of how they are taught, which make them even harder. I don't understand why books on Java focus only on libraries if building algorithms from scratch is that important. Believe me I didn't find yet a book on Java which would even touch on problem solving. I have even an impression that the authors are teaching: "Don't even bother. Here. Look at this library". That's why I'm shocked... becuase if it's so important why do I need to learn Java-libraries? Or do I even need to learn them? Becuase now I'm confused... Besides my message was about creativity in programming field. You can think that you are creative by doing your own version of someones game but this still not a creative job, just as you can come up with your own solution to cleaning a toilet as a housekeeper but still housekeeping is not creative job. Being a musician or a writer is creative careers. Of course there are programmers who are like artists like game or appdevelopers, AI-programmers, people like Bill Gates but an usual programmer is just a walking Scanner and you have to have a big ego if you don't realize that just by sitting and maintaing someone's system, who someone really creative made, makes you creative. No, you just as creative as a housekeeper who choose a different detergent for a different toilet seat. There is no creativity in being an office guy who just follow the instructions from above. This is what I mean that I don't enjoy in programming.

    L 1 Reply Last reply
    0
    • M Matt Bond

      I have long complained on here about how CS/programming is taught. I've been programming haphazardly since I was a teenager, professionally for 15 years. I got my bachelor's in CS 2 years ago. I'm working on my master's now. I learned nothing in my classes. The classes/degree tell employers that you 1) have some knowledge, 2) can jump through hoops - both of which are required for ANY job. I agree with the an above post that the process is most important. Did you start from scratch, debug that code and create a monstrosity that worked? Then you learned something - don't create monstrosities :) Clean, simple code that is easy to maintain is best for most projects since there is always someone else that will be looking at it. They never teach this in school. A book about code smells (and how to prevent them) would be more helpful. Also, the point of all those exercises to recreate algorithms is to learn the details of how they work, their pros and cons, differences between them. Schooling is usually more about theory than practice. In the real world, the creativity is there. I call programming art & science. I hope you enjoy it as a job, even if you don't enjoy the schooling part. Bond Keep all things as simple as possible, but no simpler. -said someone, somewhere

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

      Thank you :) :thumbsup:

      1 Reply Last reply
      0
      • L Lost User

        I don't know why people assume that. Maybe big egos are that common in this field that you assume that I think I'm to smart to do those algorithms. No, this is not at all what I meant. I find them hard, and mostly I find them boring becuase of how they are taught, which make them even harder. I don't understand why books on Java focus only on libraries if building algorithms from scratch is that important. Believe me I didn't find yet a book on Java which would even touch on problem solving. I have even an impression that the authors are teaching: "Don't even bother. Here. Look at this library". That's why I'm shocked... becuase if it's so important why do I need to learn Java-libraries? Or do I even need to learn them? Becuase now I'm confused... Besides my message was about creativity in programming field. You can think that you are creative by doing your own version of someones game but this still not a creative job, just as you can come up with your own solution to cleaning a toilet as a housekeeper but still housekeeping is not creative job. Being a musician or a writer is creative careers. Of course there are programmers who are like artists like game or appdevelopers, AI-programmers, people like Bill Gates but an usual programmer is just a walking Scanner and you have to have a big ego if you don't realize that just by sitting and maintaing someone's system, who someone really creative made, makes you creative. No, you just as creative as a housekeeper who choose a different detergent for a different toilet seat. There is no creativity in being an office guy who just follow the instructions from above. This is what I mean that I don't enjoy in programming.

        L Offline
        L Offline
        loctrice
        wrote on last edited by
        #87

        I think you are getting into the wrong field. You may want to try something else. You are making big assumptions for someone with no knowledge or experience.

        Elephant elephant elephant, sunshine sunshine sunshine

        L 1 Reply Last reply
        0
        • L loctrice

          I think you are getting into the wrong field. You may want to try something else. You are making big assumptions for someone with no knowledge or experience.

          Elephant elephant elephant, sunshine sunshine sunshine

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

          Well, I don't have to have experience or knowledge to feel like programming is not enough creative for me, just as a gay man don't have to have experience and knowledge about women to know that they are not enough attractive for him. For a heterosexual man this can sound like an insult: "How can a woman not be attractive?" But guess what? Yes she can, depending on who you ask. The same with programming, maybe making your own versions of other peoples programs is creative job for you but not for me. I come from creative background so please stop assuming I have a big ego. I made music before CS, that's why I know what creativity is about. When I made music no one told me which genre I have to make and what kind of instruments I am only allowed to play and what musical scale I only am allowed to use and no one forced me to only play other peoples music. Do you understand what I mean by creativity? It's not being bound by other people's instructions and restrictions. Well, I never got paid for my music, maybe if I copied and paste other people's music I would be succesful ;) but still that was called working creatively.

          L 1 Reply Last reply
          0
          • D dshillito

            "Maybe I should be a writer instead?" If you want to do that then start splitting your thoughts into paragraphs. Your posts in this thread are too dense to take in.

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

            This is a forum, not a book. And besides, you probably noticed already. English It's not my motherlanguage ;) You don't have to read my posts anyway. Why are you torturing yourself, are you a masochist?

            1 Reply Last reply
            0
            • L Lost User

              Well, I don't have to have experience or knowledge to feel like programming is not enough creative for me, just as a gay man don't have to have experience and knowledge about women to know that they are not enough attractive for him. For a heterosexual man this can sound like an insult: "How can a woman not be attractive?" But guess what? Yes she can, depending on who you ask. The same with programming, maybe making your own versions of other peoples programs is creative job for you but not for me. I come from creative background so please stop assuming I have a big ego. I made music before CS, that's why I know what creativity is about. When I made music no one told me which genre I have to make and what kind of instruments I am only allowed to play and what musical scale I only am allowed to use and no one forced me to only play other peoples music. Do you understand what I mean by creativity? It's not being bound by other people's instructions and restrictions. Well, I never got paid for my music, maybe if I copied and paste other people's music I would be succesful ;) but still that was called working creatively.

              L Offline
              L Offline
              loctrice
              wrote on last edited by
              #90

              I think comparing it to sexual attraction is quite a bit of a stretch. Also what you are describing is just a lack of experience in computer science. That's why you don't know how it is creative. Just like you couldn't make your own songs or music before you learned the theory of music. In fact in order to learn that you must first copy other peoples work and practice it until you get good at it. Learning music or to play an instrument takes lots of repetitive practice of things people have already done. If you don't have the discipline to get through that then you won't be a good musician. Lots of people play other peoples music but never learn to create their own. Just like programming.

              Elephant elephant elephant, sunshine sunshine sunshine

              L 1 Reply Last reply
              0
              • L loctrice

                I think comparing it to sexual attraction is quite a bit of a stretch. Also what you are describing is just a lack of experience in computer science. That's why you don't know how it is creative. Just like you couldn't make your own songs or music before you learned the theory of music. In fact in order to learn that you must first copy other peoples work and practice it until you get good at it. Learning music or to play an instrument takes lots of repetitive practice of things people have already done. If you don't have the discipline to get through that then you won't be a good musician. Lots of people play other peoples music but never learn to create their own. Just like programming.

                Elephant elephant elephant, sunshine sunshine sunshine

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

                "I think comparing it to sexual attraction is quite a bit of a stretch." :laugh: But it's true. Sometimes you don't have to experience things to know them. I don't have to experience falling down from my balcony to know that I can die ;) Sometimes a feeling and observation can be sufficient. :-D But you are right about music. In the beginning you usually only copy. And I did it to. You are probably right, maybe I'm impatient. Anyhow, thanks for nice conversation :)

                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

                  H Offline
                  H Offline
                  harvyk0
                  wrote on last edited by
                  #92

                  Can I suggest that programming as a career is not for you? There is an expression called "time in the trenches". Basically your first jobs in IT will be copy and paste, modify existing code, and generally very little creativity. I'm mentored several junior developers straight out of uni (and one who is currently working for me part time whilst finishing their uni degree). One of the best attributes you can have is a combination of "I'll get it done" and "Have you considered this way instead". A note on that second point, remember that you're only starting out in the industry, so the answer to "Have you considered this way instead" might actually be "no, please do it my way". Technically creativity won't come into play for many many years. Unless you're working on your own home project, you'll no doubt have both a manager and a customer. As a junior programmer you'll be dictated to over the type of code you'll write and how it'll look. Depending on the size of the project and how complex it is there will no doubt be an architect who has already made those creative decisions for you. Keep in mind that the architect has likely spent 20 years building IT systems and knows many pitfalls that you won't, and you're unlikely to find a company that's willing to let a junior spend 6 months making a mistake on a project just so that junior can learn something. So basically, only continue going down the path of learning how to be a software developer if you're a. Willing to spend time doing the crap jobs b. Understand that it'll likely be years before your full creativity will be allowed to be on display c. Understand that the world doesn't need more "glue programmers", a deep understanding of the code will be an asset in your career. d. You're a junior (technically not even that yet), most of what you don't know you don't even know you don't know it. Learn, even if you can't yet see why, every great software developer has been down the same path that you're going down. Finally, if you can't accept the realities of the industry, find something else do to as a career and keep programming as a hobby on nights and weekends.

                  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

                    R Offline
                    R Offline
                    RafagaX
                    wrote on last edited by
                    #93

                    The point of reimplementing well known algorithms at your stage is not that you copy and paste the solution, is that you learn how to solve a problem, being it well known helps you and the teacher to verify that your solution is correct, so even if you reach the same solution the book does (which may not be the only way to do it, as there may be better and more optimized solutions), you have learned how to think about the problem and solve it, and those that copy and paste are not learning anything besides how to copy and paste, and hopefully, how to Google the solution. Also, even if the teacher can't differentiate your solution from a copied one, if you're asked to explain it, he will quickly realize that you dind't do it, or that even bothered to understand what it does (Interviews are a different bag, especially when done by non technical people).

                    "Science fiction is any idea that occurs in the head and doesn’t exist yet, but soon will, and will change everything for everybody, and nothing will ever be the same again." Ray Bradbury

                    1 Reply Last reply
                    0
                    • L Lost User

                      Yeah, I totaly understand what you say, but this is why I feel frustrated, because I feel like I only copying things in that way that i have to recreate them by looking at the book first. I'm sorry but I'm not that smart to come up with the solution by myself. Maybe I would if I hade a month of free time, but because I don't I have to learn from a book. And many wrote here that: "Then stop copying". Well, I don't copy, I write it from my memory and I understand them but it's still the same as in the book, that's why it's a copy. This is what I mean by saying that I feel like the only thing I do is copying and pasting. Becuase this is the only thing beginners do... I guess... Otherwise thumbs up to whoever is so intelligent that he only learned the syntax of the language and was able to implement all those algorithms without seeing them first in a book or in a tutorial.

                      M Offline
                      M Offline
                      Mateusz Jakub
                      wrote on last edited by
                      #94

                      Well you are setting up some unrealistic expectations. You only have to accept reality, and doing boring non interesting stuff still has value.

                      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.

                        H Offline
                        H Offline
                        hpcoder2
                        wrote on last edited by
                        #95

                        Even with GoL, there are multiple possible approaches. The 4 loop algorithm you mention doesn't scale to dimensions higher than 2, nor does it work too well for hexagonal packing (where the grid is a honeycomb pattern, rather than a rectilinear layout. Possible other implementations include using a neighbourhood list, and recursion (to handle arbitrary dimensioned rectilinear layouts). What are the performance tradeoffs for each of these algorithms? Etc.

                        1 Reply Last reply
                        0
                        • L Lost User

                          But the question is then, so what are those libraries for? What is the point of reinventing the wheel? I understand if talked about problems in real programs, not some exercises that you will only see on the interview and CS-exam. I feel like I waste my time... Why learn something that you have to forget about after you get your job. Because dont tell me you do bubble sort at your job, when you have all those libraries? Or are making Conways game of life? Why not learn solving problems that I actually meet at my future work? Becase time is money, and I feel like I'm wasting my time...

                          H Offline
                          H Offline
                          hpcoder2
                          wrote on last edited by
                          #96

                          It lets you ace the Google interview process! My coding is entirely self-taught, and whilst I know I could learn about sorting algorithms, I never needed to. That is, until I tried interviewing at Google, and there some HR drone gave me technical questions that relied on one knowing the details of sorting algorithms for the majority of them. Capped off by a couple of other questions where the accepted answer was actually wrong, but given the interviewer was not technical, there being no possibility to point out where the answer was wrong, I think I managed a perfect duck's egg score (ie zero), in spite of more than 35 years of fairly intensive programming experience on quite advanced codebases.

                          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
                            CARNESECCHILuc
                            wrote on last edited by
                            #97

                            When you were a child and wanted to open a tap to get water, you could just learn from your parents or friends and copy their action : turning the tap conterclockwise. That was the copy & paste time... Now you are a grown person and you are no more thinking about how to open a tap but why to do it. I can say I'm an experienced programmer (47 years of developping applications of all kinds) and though I can write a sorting function from scratch (I may write it for my own pleasure!!!) I don't care about it; what is important is that, in order to make my new application work, I need to sort some kind of list and, then, I look for the simpliest way to do it. Doesn't matter by Copying & pasting or creating it or giving a young one the task to reinvent it (for it's own education), I just need to have the tap open so I can water my garden... And that is my real pleasure in life!!!!!!

                            1 Reply 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