Learning from mistakes in computer science degree...
by Sean Brady · in General Discussion · 05/06/2013 (9:20 am) · 3 replies
Hello I am back again with a question regarding the journey that is the computer science degree (only three months of it so far but with a further eight years on a part time basis). I already have a degree in game art and design but while during it I realised I made numerous mistakes. I am doing everything I can to make sure that does not happen again but with a new unknown educational journey in front of me, I am not fully satisfied that all holes have been plugged so to speak.
The main thing I am curious about is how would the multitude of experienced professionals within this community whose opinion is from my view more informed than others suggest as the best method(s) to leverage it for the best possible means based on their past mistakes and efforts. I don't want to waste any aspect of the experience in anyway.
I realise answering the question is a taxing task but just trying to learn from people who have been there and done it, stand on the shoulders of giants you might say. Plus honestly I am absolutely terrified that I have missed something and I am not leveraging it in the best possible manner.
Apart from following activities I am lost;
Reading, studying, practicing and turning any personal project I will be creating to open source as a verified reference.
Also assisting the student chapter of the ACM for the university.
Voluntary development work.
Any mistakes you can help me avoid, there are no words to express how thankful I would be.
Regards,
Sean.
The main thing I am curious about is how would the multitude of experienced professionals within this community whose opinion is from my view more informed than others suggest as the best method(s) to leverage it for the best possible means based on their past mistakes and efforts. I don't want to waste any aspect of the experience in anyway.
I realise answering the question is a taxing task but just trying to learn from people who have been there and done it, stand on the shoulders of giants you might say. Plus honestly I am absolutely terrified that I have missed something and I am not leveraging it in the best possible manner.
Apart from following activities I am lost;
Reading, studying, practicing and turning any personal project I will be creating to open source as a verified reference.
Also assisting the student chapter of the ACM for the university.
Voluntary development work.
Any mistakes you can help me avoid, there are no words to express how thankful I would be.
Regards,
Sean.
About the author
Professional mouth!, getting projects complete is the only problem.
#2
You will NEVER stop learning in the CS field...ever. Most fields are like this, and if it isn't you are as high as you will go.
Code, code, code, code...repeat...
You will learn way more about programming writing a real app than doing exercises in class. Do BOTH constantly. They reinforce each other. My background is actually EE. However, I have been programming for years and took a few CS classes.
IMO, the best learning language is Python. It allows you to write code that looks like pseudo code that can be extremely abstract. Then you can take that code and write it in C++. That will help you understand the CS topic AND 2 languages at once. Both will extremely valuable. Also, take a compiler course if they have a decent one. It will cover so many topics relative to CS besides writing a compiler.
05/07/2013 (3:19 pm)
Learn, learn, learn, learn, learn...repeat...You will NEVER stop learning in the CS field...ever. Most fields are like this, and if it isn't you are as high as you will go.
Code, code, code, code...repeat...
You will learn way more about programming writing a real app than doing exercises in class. Do BOTH constantly. They reinforce each other. My background is actually EE. However, I have been programming for years and took a few CS classes.
IMO, the best learning language is Python. It allows you to write code that looks like pseudo code that can be extremely abstract. Then you can take that code and write it in C++. That will help you understand the CS topic AND 2 languages at once. Both will extremely valuable. Also, take a compiler course if they have a decent one. It will cover so many topics relative to CS besides writing a compiler.
#3
Thank you for the point about focus and the nature of the educational realm in regard to CS. My focus and perspective were straying into things I judged as important but in fact were not. The information regarding the interview situation and expectations on both sides was extremely helpful. Answered a lot of questions I had built up in the brain over the years, in other cut through a lot of elements that caused confusion.
Thank you. The home truths delivered in your response are invaluable.I would have been lost for a lot longer without them. If I could thank you anymore I would. Thank you!!!
Demolishun
Again the brass tax truth is the most helpful. Unbelievably important to me this information is. Thank you sincerely from the bottom of my heart. I am actually fond of both python and C++. I learned how to integrate scripting in python on top of C++ a while ago but forgot it. Need to go back over it like a lot of stuff, thankfully the learning never stops. I will definitely be taking the compiler portion of the course, I think that is next term or possibly the next one after. Either way it will be taken and I am looking forward to it. Thank you once again. Thank you.
05/08/2013 (7:35 am)
David Montgomery-BlakeThank you for the point about focus and the nature of the educational realm in regard to CS. My focus and perspective were straying into things I judged as important but in fact were not. The information regarding the interview situation and expectations on both sides was extremely helpful. Answered a lot of questions I had built up in the brain over the years, in other cut through a lot of elements that caused confusion.
Thank you. The home truths delivered in your response are invaluable.I would have been lost for a lot longer without them. If I could thank you anymore I would. Thank you!!!
Demolishun
Again the brass tax truth is the most helpful. Unbelievably important to me this information is. Thank you sincerely from the bottom of my heart. I am actually fond of both python and C++. I learned how to integrate scripting in python on top of C++ a while ago but forgot it. Need to go back over it like a lot of stuff, thankfully the learning never stops. I will definitely be taking the compiler portion of the course, I think that is next term or possibly the next one after. Either way it will be taken and I am looking forward to it. Thank you once again. Thank you.
Associate David Montgomery-Blake
David MontgomeryBlake
Do every extra-credit or "just extra" assignment you can. That way you can do more coding, make more mistakes, and learn how to correct them.
Memorize the theory in-so-far as you will need it in the coursework. In the industry, you will rarely be asked to do a complex, memorized formula in an interview. However, they may give you a simple formula like matrix math and ask you how best to optimize it off the cuff, knowing that you would do a much better job with research, but wanting to see how you approach a problem in the moment.
Work with others. This means actively working with them, not doing their work or letting them do yours. By actively working in teams (versus passively letting your teams work around you), you will be preparing for working with teams in the real world. While your college classmates will take a severe amount of BS from each other, employers and co-workers will take substantially less.
No program is a perfect preparation for the real world, and no journey through a program can be perfectly mitigated. Just like no project in the real world goes as smoothly as the initial planning phase would project. There is always found work, change-of-course, team overhaul and rotations, etc. In a CS course, especially one that will take 8 years, you will be subject to a number of shifts.
It may be political:
engineering has control of the CS course this year, but math is vying for control of it next year...but the business department is also in the mix for control with their CIS management track...who will win the cage match? Professor W is leaving his Fortran class track behind and Professor X is planning on implementing it in C, while grad student A is really gung-ho about Python and Professor Y is teaching web-based programming with ASP and VisualBasic even though he really wants to move to PHP and Ruby, but can't get departmental buy-in. Meanwhile Grad Student B and Professor Z are working with the GIS department, sociology and biology departments on large-scale GIS datasets, population statistics, and bioinformatics in Hadoop servers scaling via Hadoop, MongoDB, Python, C, and Ruby.
It may be retirement-based:
Professor X's curriculum for Cobol has served the business world extremely well, keeping jobs in the financial world stable through the massive flux of degrading hardware and decades of custom financial programming. But Professor Y's teaching of Java to convert, maintain, and update custom Cobol code and manage large, antiquated custom datasets is the direction the university wants to go.
It may be "hot topic" based (which is still rather slow in academia):
We should stop teaching C++ and concentrate on C#. I know I said this about Java last year, but C# is really proving itself to be much more friendly and widespread every day!
The winds will change while you're there. You need to be agile, adapt, and most of all learn as much as you can. Never turn in an assignment late. Never procrastinate.
When I was asked by a national honor society how I had a 4.0 in grad school, I said:
1) Show up.
2) Do the work.
That's really it. Most of the other grad students had lower marks than me, and they were a whole lot smarter than I am. But I showed up everyday and did the work, regardless of working a full time job and holding a 20 hour contracting gig here at GG at the time.