Xavier0971 Posted October 22, 2012 Posted October 22, 2012 Hey guys the name is Xavier. I have a question for all of you Computer Scientists out there. I really and truly want to get a Computer Science degree and I'm trying everything I can. From reading programming books to keeping up with different topics (Science, Math, History, so forth and so on). Now I've recently been studying up on Java and I'm picking it up real quick. But I've noticed something. I know the ins and outs of it so far. Like I can tell you the different data types and operators, things of that nature. When programs are brought up in the book, I can sit down and tell you what each expression is and statement and things like that. So I have no problem reading the code, but when it comes to me sitting down and receiving a exercise to do on my own I kind of freeze up and think, "Oh man where to start?" It's weird, because I understand it but I just don't know how to put it down right away. I'm curious is this natural to happen when coding? I want to hear from you guys. Tell me about your experiences and how you dealt with them so I can try to better myself in the process. If you guys have any tips on how to better my programming skills, please do not hesitate. I will take in any information you guys throw at me. Like I said I'm here to better myself. Can't wait to hear from you guys (: Thanks
derek w Posted October 22, 2012 Posted October 22, 2012 (edited) Create a flow chart and break the programme down into smaller and smaller operations. Edited October 22, 2012 by derek w 2
mellowmorgan Posted October 22, 2012 Posted October 22, 2012 No, it's not unusual. Everyone in my programming class that I've talked to has had problems with this at some point, especially on exams when we are timed. Whenever I have to write a program, the first thing I do is read the instructions over and over until I know exactly what I need to do, and then sometimes write a summary of what I need to do in comment lines in my java file. Based on the instructions I'll try to figure out what variables and methods I need. Then I import my libraries and do all the headers and curly brackets. Obviously, this doesn't require much thinking but still makes me feel like I'm accomplishing something. When it comes to writing out the code, pseudocode helps me to figure out what I need to do. Also PRACTICE, PRACTICE, PRACTICE! I also had a professor last semester that made us write our code out on paper for tests. It was horrible at first, but over time it helped with memorisation. 2
Xavier0971 Posted October 24, 2012 Author Posted October 24, 2012 No, it's not unusual. Everyone in my programming class that I've talked to has had problems with this at some point, especially on exams when we are timed. Whenever I have to write a program, the first thing I do is read the instructions over and over until I know exactly what I need to do, and then sometimes write a summary of what I need to do in comment lines in my java file. Based on the instructions I'll try to figure out what variables and methods I need. Then I import my libraries and do all the headers and curly brackets. Obviously, this doesn't require much thinking but still makes me feel like I'm accomplishing something. When it comes to writing out the code, pseudocode helps me to figure out what I need to do. Also PRACTICE, PRACTICE, PRACTICE! I also had a professor last semester that made us write our code out on paper for tests. It was horrible at first, but over time it helped with memorisation. I just want to say thank you for the reply and your tips. I had a sure feeling about the Practice, Practice, Practice method (which believe me, I'm doing that). But I liked your touch of just sitting back and reading the example over and over and writing down a summary. I'm going to try that. What's funny is I had a high school teacher who did all of his coding tests and exams by paper. At the time I thought that was just flat out ridiculous but now... now I see the reason why and I thank him. But none the less I thank you for the nice well thought reply and I will get back to practicing and trying your method. If you feel like there is anything else I should know to get ready. Please feel free to leave it and I will reply back (:
zapatos Posted October 24, 2012 Posted October 24, 2012 If you haven't done so already, please be sure to give derek w's post some serious thought. What he described is a nice overview of what mellowmorgan said. Any job you do, from going grocery shopping to writing code to planning the invasion of Europe involves the process of starting at a high level and breaking it down into smaller and smaller operations. When it comes to grocery shopping you don't give it much thought but you still start with a high level problem, such as 'Need Groceries'. That gets broken down into components involving 'Food', 'Finances', 'Transportation', 'Storage', etc. You then break 'Food' down into 'Meals', 'Snacks', 'Basic Ingredients'... well, you get the idea. Same thing for writing code but much more involved. What is the basic problem identified in the exercise? Break it down into something like 'Output', 'Input', 'Processing'. 'Input' may come from multiple sources; what are they?, how do you get the data?, error correction, storage, blah, blah, blah. The very last breakdown is the actual code to do the operation.
Xavier0971 Posted October 27, 2012 Author Posted October 27, 2012 If you haven't done so already, please be sure to give derek w's post some serious thought. What he described is a nice overview of what mellowmorgan said. Any job you do, from going grocery shopping to writing code to planning the invasion of Europe involves the process of starting at a high level and breaking it down into smaller and smaller operations. When it comes to grocery shopping you don't give it much thought but you still start with a high level problem, such as 'Need Groceries'. That gets broken down into components involving 'Food', 'Finances', 'Transportation', 'Storage', etc. You then break 'Food' down into 'Meals', 'Snacks', 'Basic Ingredients'... well, you get the idea. Same thing for writing code but much more involved. What is the basic problem identified in the exercise? Break it down into something like 'Output', 'Input', 'Processing'. 'Input' may come from multiple sources; what are they?, how do you get the data?, error correction, storage, blah, blah, blah. The very last breakdown is the actual code to do the operation. Oh I did don't worry lol. But I was interested in Mellowmorgan's quote because it instilled ideas that I really didn't think about. Derek W's I took into thought but I learned it right away in my Advanced Computer Programming class for Visual Basic (As we all know that Visual Basic takes break downs a little more than other languages due to more data types and so forth... you guys get where I'm going.) But I just wanted an overview on different techniques. But please don't get me wrong though, I'm glad for different answers seeing as I wasn't specific in what I wanted. But I totally see where your coming from and the importance of breakdowns. I actually used these guys tips and it's progressively helped me. Thank you guys for the awesome tips (: Create a flow chart and break the programme down into smaller and smaller operations. Thanks for the advice (:
ndx Posted October 27, 2012 Posted October 27, 2012 For algorithms, where you have to sort an array, find a substring or anything this kind, an usual approach is to take some examples. write them down and analyse how you find the solution, as a human. Then try to figure out how a computer can find the solution. And the ability to feel things and write code that do what you need to do comes with experience, so the best thing to do is just to write code
DevilSolution Posted November 14, 2012 Posted November 14, 2012 Ceebs with writing a program from scratch, as you go along you'll pick up bits of code such as search, sort and math algorithms or trivial pieces like opening a buffer connection (networked or local) and then its more a case of learning how they fit together, like flow control; knowing and reading expressions is important when reading others code or getting to grips with something you need to understand and concepts like abstraction, recursion and OOP in general will be important. To be honest if you'd have to say create an application like a word processor or msn from the ground up, you'd need a huge memory capacity... im currently 3rd year CS and we get given most our code, our job is to piece it all together and get a thorough understanding of what it does via comments and problem solving the code were given; in high performance computing we have to split the hough transform algorithm up into cluster computing to see how fast we can get it to process and bitmap, the hough transform, the openMPI, colour threshold and thinning have been given to us, we simply have to get the code to run as fast as possible hence showing our understanding... You probably shouldnt be drawing a blank on very simple projects, such as getting it to store names and phone numbers and then printing them out. I think it comes down to practice, if youve been given enough similar examples you'll solve the problem in the way you've been taught. Also understanding the problem is important too, if you've been given a problem thats been worded strange and you dont know EXACTLY what it wants from you, you'll struggle to find a solution. hope this makes sense
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now