CS-insanity and things that make me want to quit
-
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.
"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
I always try to come with my own solution to a problem in my homeworks, but it always ends up with me being late and looking like an idiot with low IQ becuase everyone already did it, and than I at least try to rush it make it as easy for myself as I can and I end up with the solution that is all over the internet and I look like a fraud. Maybe I'm an idiot? And should come up with something revolutionary in three days, but well I can't... and then I wonder: Why do I even bother? Why not just memorize those algorithms because in the end of the day it doesn't make a difference.
-
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
I can 'sort' of relate. :laugh: Seriously though, I remember the boredom of learning to code by typing lines of code from a textbook, building silly little programs that did nothing original. In the intro level classes, one could get by just by following the spoon-fed examples from the book without much critical thinking. I can only guess that in the copy/paste age the boredom level has increased as you aren't even bothered with the typing aspect...actually reading through the program as you are constructing it. If you are in a formal program, you are just going to have to play the game. The classes will get harder as you progress and hopefully you'll feel more challenged. If not, there's all kinds of coding boot-camps and on-line courses that may be more what you are looking for. At any rate, I would suggest that you start by creating development tools that could prove useful down range...a better FTP utility, a database scripting utility, a password keeper...it doesn't matter, just something that helps in your daily activities...whatever, just make it your own...design it and build it from scratch. Don't confuse college exercises for real-world development. We're not just a bunch of robots copy/pasting code. (though done correctly, is quite acceptable) This job is at it's core is about solving problems for people using software...and getting paid well when you succeed. IMHO, software development is a craft where you can take nothing, make something, and charge people for it, just like artists, writers, poets, musicians, actors, etc. What we do might not always be sexy, but sometimes creativity is defined by not even noticing it. (a developer somewhere figured out how to get rid of a couple of nasty nested for loops by using a struct/array and your app loads much faster, who knows? If you noticed at all, it likely only increased your expectations.) Is that creativity, or just not being satisfied with the current incarnation of the wheel?...or quite possibly the result of an angry customer/boss who just expects them to do their job? So figure out what personal project you want to do and design and build it. Given the vast wealth of information at your fingertips, you are really only limited by your imagination and your will power. Good luck! :) BTW, I'd probably stay away from being a writer as your post has a few grammatical/readability issues. (of course, so does mine, but I'd be the last to call myself a writer!)
"Go forth into the source" - Neal Morse "Hope is contag
-
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
Think of it that way... Why do people learn Pythagoras theorem and its various proof? This thing is at least 2000 years old! Plus how does that help with everyday work? Well, it's not at all about learning the algorithm by rote at all. It's about practicing your brain muscle, learning new ways of thinking, finding it yourself again easily when you forgot the theorem. I see your complain 2 ways. Either learning algorithm is tedious, which often expresses itself as "boring", and you need to practice. Or it really is easy, and then you only have to spend 5 minutes on it and perhaps you can secretly do something else while the teacher is dronning on... Or add some fancy unrequested twist to your demo...
A new .NET Serializer All in one Menu-Ribbon Bar Taking over the world since 1371!
-
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
I spend a significant amount of time reading and analyzing stuff written by others. I do this to learn, and the world is full of smart people willing to share their knowledge through papers and open source projects. There is also no lack of software developers who manage to trick themselves into believing they have come up with simple a solution to a complex problem - here are two common examples: * Synchronizing state across multiple systems is hard to get right, but can be done using [Paxos](https://en.wikipedia.org/wiki/Paxos\_(computer\_science)) or [Raft](https://en.wikipedia.org/wiki/Raft\_(algorithm)). This *needs* to be properly handled when decisions will be made based on state information shared by multiple systems. * Scheduling is hard, problems like [job shop scheduling](https://en.wikipedia.org/wiki/Job\_shop\_scheduling) and [nurse scheduling](https://en.wikipedia.org/wiki/Nurse\_scheduling\_problem) may sound easy, but you cannot even pick the right algorithm for a particular problem without understanding it. There are often multiple algorithms that are known to provide a solution, but the performance can vary wildly depending in the input data. So, IMHO, get on with the learning - don't just - as you say - copy and paste solutions written by others.
Espen Harlinn Chief Architect - Powel AS Projects promoting programming in "natural language" are intrinsically doomed to fail. Edsger W.Dijkstra
-
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!
By the way. Well, I think they are challanging. They are hard, but I don't like the way they are taught. I simply find those games boring, like the problem itself is very hard but if I could use them in my own game it would be much easier to learn. When I do my projects I love to solve the problems, because I want to see my game work, but because I find those games and examples in the exercises boring, I just want to rush through them so I can sit and work on my own game or program that will do what I find useful. If we had to implement the same logic from Conways game of life in a more fun game than I would enjoy it, but I'm bored by the game itself. The example itself is boring, not the problem itself. It's like those bankaccount projects. Is it the only program that can teach classes and objects? I believe someone can give some more engaging examples than this same bankaccount project that you can find in every book and tutorial. I read a book about game development and the author also implements some of the common algorithms but I think its fun to do it when use it an little rpg game and not this boring Conways game or just this raw bubble sort exercise. What I would like to know is what can I use those algorithms for, because it's easier to learn things when you know why you need to learn something.
-
And of course ... the dreaded Ham and Pineapple ... :laugh: Truly the VB of pizza!
"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!
Trust me, ham and pineapple is almost normal. I saw, and ate, in Neapolitan places in Italy, horrors your feeble minds can not even begin to grasp. Most italians dread of fruit in savoury dishes but that's just dumb traditionalism.
GCS d--(d+) s-/++ a C++++ U+++ P- L+@ E-- W++ N+ o+ K- w+++ O? M-- V? PS+ PE- Y+ PGP t+ 5? X R+++ tv-- b+(+++) DI+++ D++ G e++ h--- r+++ y+++* Weapons extension: ma- k++ F+2 X
-
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
Basically you want to build starships without knowing what's a hammer. I saw many like you, they think that being creative meant there was no need of knowledge. And they are fast to copy paste from other works without *thinking*. I fixed many of their "works" because they did not know what they needed, what they were doing, what they were copying and where. If tomorrow I will enroll to run in the Olympics I will not win: I need to train from the very scratch to be able to participate, let alone compete. If you refuse to learn the basics then, by all means, change career now that it's easier. There's no fault in realizing some path is not for you. Maybe you will find yourself better in electronics? The programming is easier and there's more tinkering, which seems to suit your mindset more than the somewhat rigid world of Computer Science.
GCS d--(d+) s-/++ a C++++ U+++ P- L+@ E-- W++ N+ o+ K- w+++ O? M-- V? PS+ PE- Y+ PGP t+ 5? X R+++ tv-- b+(+++) DI+++ D++ G e++ h--- r+++ y+++* Weapons extension: ma- k++ F+2 X
-
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.
Honestly I only ever use either quicksort or insertion sort. Though exactly once bubble sort has been the best choice due to particularities of the procedure that computed the results to be sorted AND particularities of the output I needed.
GCS d--(d+) s-/++ a C++++ U+++ P- L+@ E-- W++ N+ o+ K- w+++ O? M-- V? PS+ PE- Y+ PGP t+ 5? X R+++ tv-- b+(+++) DI+++ D++ G e++ h--- r+++ y+++* Weapons extension: ma- k++ F+2 X
-
Basically you want to build starships without knowing what's a hammer. I saw many like you, they think that being creative meant there was no need of knowledge. And they are fast to copy paste from other works without *thinking*. I fixed many of their "works" because they did not know what they needed, what they were doing, what they were copying and where. If tomorrow I will enroll to run in the Olympics I will not win: I need to train from the very scratch to be able to participate, let alone compete. If you refuse to learn the basics then, by all means, change career now that it's easier. There's no fault in realizing some path is not for you. Maybe you will find yourself better in electronics? The programming is easier and there's more tinkering, which seems to suit your mindset more than the somewhat rigid world of Computer Science.
GCS d--(d+) s-/++ a C++++ U+++ P- L+@ E-- W++ N+ o+ K- w+++ O? M-- V? PS+ PE- Y+ PGP t+ 5? X R+++ tv-- b+(+++) DI+++ D++ G e++ h--- r+++ y+++* Weapons extension: ma- k++ F+2 X
For a brief period, I was a teacher at the first year of an undergrad CS course. Most students where stunned, because for them computers were: internet, games and editing on Word. When they realized what it was like on the other side of the mirror, many simply gave up.
-
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
I think you are missing the point. Using the karate kid as a metaphor, Daniel wasn't learning how to wax a car. He was learning a fundamental movement, by repeating it over and over. You are not copying other people's solution, you are learning those solutions, implementing them, and hopefully understanding then. Because in the real world, you will be using other people's code and you need to understand how you can use it *without* reading it. And when it fails, you need to know where to look. Take coding guidelines as an example. You might think of them as boring and stifling creativity, which is not true. They allowed me to dig into to the source of a program, fixing bugs and adding features *without* having to know how the program works in excruciating detail. For the most part, I could be confident that changing a couple of lines would not cause havock. These boring tasks are not stifling creativity. They are the essential bedrock on which your creativity can stand. Quoting Edison, "genius is 1% inspiration and 99% transpiration".
-
For a brief period, I was a teacher at the first year of an undergrad CS course. Most students where stunned, because for them computers were: internet, games and editing on Word. When they realized what it was like on the other side of the mirror, many simply gave up.
Having attended a Technical High School in Computer Science and then the Polytechnic University, I saw that happen twice. Behind the mirror sent many people running away way before they saw code, flow charts managed that on their own.
GCS d--(d+) s-/++ a C++++ U+++ P- L+@ E-- W++ N+ o+ K- w+++ O? M-- V? PS+ PE- Y+ PGP t+ 5? X R+++ tv-- b+(+++) DI+++ D++ G e++ h--- r+++ y+++* Weapons extension: ma- k++ F+2 X
-
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
Building software using pre-written, debugged, documented and supported components is the smartest thing we can do as developers. We absolutely should not re-invent the wheel. You can choose to be either a low-level component developer - this is a huge market. You would get to employ all your raw computer science learning and be as close to the machine as you can to derive maximum performance from your components. Or at the other end of the scale you could choose to be a high-level business systems developer, where re-assembling and integrating large components to build business software which fits the precise requirements of the corporation is the order of the day. All developer roles have their own unique challenges and I personally welcome having the wide choice of components, allowing me to focus on solving actual customer problems where business communication skills are of equal importance than coding ability. My advice would be find your preferred level. Low, mid, or high, or something in between? Change jobs if necessary. The software industry is going to be around for a long time and is incredibly varied. Read the 'Mythical Man Month'. Only 17% of any software project is coding. That statistic may help you find your ideal role.
Garry Lowther CEO and Founder TriSys Business Software Cambridge, England www.trisys.co.uk
-
By the way. Well, I think they are challanging. They are hard, but I don't like the way they are taught. I simply find those games boring, like the problem itself is very hard but if I could use them in my own game it would be much easier to learn. When I do my projects I love to solve the problems, because I want to see my game work, but because I find those games and examples in the exercises boring, I just want to rush through them so I can sit and work on my own game or program that will do what I find useful. If we had to implement the same logic from Conways game of life in a more fun game than I would enjoy it, but I'm bored by the game itself. The example itself is boring, not the problem itself. It's like those bankaccount projects. Is it the only program that can teach classes and objects? I believe someone can give some more engaging examples than this same bankaccount project that you can find in every book and tutorial. I read a book about game development and the author also implements some of the common algorithms but I think its fun to do it when use it an little rpg game and not this boring Conways game or just this raw bubble sort exercise. What I would like to know is what can I use those algorithms for, because it's easier to learn things when you know why you need to learn something.
Quote:
“Its the not the Destination, It's the journey.”
Seems from the above that what's winding you up (in part) is that you're not interested in the end result. Big lesson here. When you get a job in IT, 90% of the work you'll do is on deadly boring applications. You know, insurance premium calculations; credit card reconciliations; theatre booking systems; parcel tracking. Not things you'll want to spend your spare time playing with. If you're only into programming because of what it can achieve, you'll struggle to do it commercially. Take it up as a hobby and create wildly exciting games, sure. But if you want to enjoy your work, then learn to enjoy the process of development. Investigation, analysis, design, coding (and testing and documentation :laugh: ) You said in an earlier post that you're disillusioned not just with CS but with life, that you'll never get to do what you enjoy. Hang around in this forum for a while, and you'll learn that there are a LOT of us here who absolutely love what we do (and it doesn't depend on which industry we're in). For many of us it's a dream come true to actually earn money doing something we enjoy so much. (Of course, no-one is saying it's all perfect 100% of the time!) But if you don't enjoy the activities involved in CS but only the end result, maybe it's not for you.
-
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.
Member 14971499 wrote:
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.
Actually, I never realized that. But if you say so... So use your creativity to expand the game. Make the board non-flat, but like a cylinder. Or a torus. (Sphere shape is more troublesome!) Se how spaceships behave when they have made the round and return to the base. Or you could make life cells of two colors, and define rules for behaviour when cells of different color meet. Do they ignore each other? Merge into hybrids? Kill each other? Make some minor adjustments to fertility. Introduce small fluctuations (by a random generator) in fertility. Make a competition by splitting a (finite size) board into two or four equal pieces, maybe with a DMZ between them, and let two or for players set up their artillery to shoot down the others. When the situation stabilizes, the winner is the one having most live cells in his part of the board. If you are truly creative, you sure can make up a lot more variations on the Game of Life.
-
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.
Kris Lantz wrote:
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
What? Are you calling it "making your own pizza" when you are not making your own dough? And are you not experimenting with the dough? Different kinds of flour, adding sesame seeds or nutmeg or shredded coconut meat? Pizzas invite to experimentation, both in the dough and topping. Woody Allen taught me to use coconut in the topping (although I believe his joke was referring to a whole nut). I haven't made a pizza according to a "recipe" since I was a schoolboy. I never will. I may glance through lists of ingredients to see new and exciting combinations, just to get some ideas. I never try to copy someone else's work.
-
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
-
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
Until you retire, a "job" pays for your "hobbies"; which includes being "creative" (like a "writer"). The chances of meeting similar-minded on any given job are slim to none ... because they're all "on the job". And no boss will ever let an underling be "creative". Too much of a threat.
It was only in wine that he laid down no limit for himself, but he did not allow himself to be confused by it. ― Confucian Analects: Rules of Confucius about his food
-
Well, this is the problem. In the beginning I tried to solve those problems by myself, but some problems has only one solution that you have to copy anyway. For example Game of life, can you do it just with one loop? No, you have to use 4 loops. You can put them inside methods or create classes but still you have to copy this solution. Same to bubble sort. You can't invent anything new. You have to copy. Because there is only that one solution, because otherwise its not bubble sort. So why bothering even to think? If the result is anyway that same solution. The other thing would be if I made a whole program from scratch... a game or an app. Here I can implement new solutions and really think for myself. I don't have to reimplement other people's ideas, unless I find them useful. This is the main problem.
Undergraduate classes are like having a job where you get sent on courses as part of a training program. Only graduate students get to have ideas of their own. Unless you're Einstein.
It was only in wine that he laid down no limit for himself, but he did not allow himself to be confused by it. ― Confucian Analects: Rules of Confucius about his food
-
Kris Lantz wrote:
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
What? Are you calling it "making your own pizza" when you are not making your own dough? And are you not experimenting with the dough? Different kinds of flour, adding sesame seeds or nutmeg or shredded coconut meat? Pizzas invite to experimentation, both in the dough and topping. Woody Allen taught me to use coconut in the topping (although I believe his joke was referring to a whole nut). I haven't made a pizza according to a "recipe" since I was a schoolboy. I never will. I may glance through lists of ingredients to see new and exciting combinations, just to get some ideas. I never try to copy someone else's work.
Coconut. On. Pizza. You Madman! :laugh: My wife would murder me if I snuck in coconut on a pizza. She hates the stuff. I decided to look at other people's coconut pizza answers, and some actually do look great! I'm a fan of coconut flour in particular, so I may have to give some pizza dough creativity a whirl.
-
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.
Member 14971499 wrote:
Well, I have few books on problem solving. But how helpful are they when I have a problem with only one solution?
If you search for an answer to a problem and copy it, you have learned nothing. If you solve the problem on your own, you have learned something. It doesn't matter if 100,000 people have already solved that problem -- you used your problem solving abilities to produce a solution. You have expanded your own abilities, at least a bit, and proven that you can think. Plus, you now understand that bubble sort, and possibly why it works and why it's inefficient for large data sets. You appear to have a complete lack of understanding of what professional programmers do. The short answer is we solve business problems. It doesn't matter if the program is a game, a commercial web site, a management application, or an esoteric laboratory tool -- it's a business problem in the most basic terms. The programmer is paid to achieve a goal, not to solve complex problems and reach enlightenment. It's not always cool, it's not always sexy. Mostly it's not. Programming can be grunt work, frustrating grunt work. Sure, if I need a bubble sort, or a shell or quick sort -- I copy it. Or use a library. Why? Because I'm long past the learning stage and have written dozens of sorts to solve immediate problems. I learned those lessons decades ago and there is no value to my employer for me to write one. When I make pizza, I don't use a recipe. Why? Because I've made thousands of pizzas and I make one without having to think about what I'm doing. I solve the immediate problem (needing a pizza) using the tools (ingredients) I have at hand utilizing my experience.