1.) Math is More Important Than You Think
Math is all over Computer Science in many different ways. Software Engineers will use discrete math when working out algorithm complexity and efficiency, in graph theory, and recursion. People who work more directly with hardware will use discrete math in designing logical circuits and use automata theory for making finite state machines. At that level you are also working with the large amount of math inherent with electrical engineering. In research aspects you will be using probability and statistics for performance measurements and comparisons. Even game programmers use a lot of math when creating 3D environments.
2.) You’ll Need To Write More Than Just Code
At the base level you will be writing comments in your code. Those are there for others to comprehend what you are trying to do, so explain what you are doing well. In software engineering you may be writing requirements, specifications, test plans, and more. There may be a time later in your CS career where you may need to write a research paper, that may get peer reviewed. Good writing skills will help you. Pay attention in your business writing classes and learn good technical writing skills now.
3) Don’t Procrastinate
We know you’ve heard it a million times, but this is the worst possible thing you can do in a programming class. When you get an assignment, look it over and start on it right away. In the likely chance that you can’t work through an error or figure out the logic, you’ll have time to contact your instructor or use other available resources to solve the problem.
4) Don’t Overcomplicate Things
The smaller a block of code is, without being redundant of other code, the better. When you break down algorithms which have nothing in common, often there is a loop or operation which is not unique, other than the parameters involved. A single method/function should not be longer, or wider than a standard 800×600 monitor view. If you comment well, a little larger is acceptable.
6) Impress Your Instructors, But Not Too Much
Your instructor can be your best friend, but don’t be a suck up. Ask questions and show your instructor you’re interested but don’t annoy the rest of the class with constant questions and meaningless comments. If you can get to know your instructor, you may be able to leverage that relationship in the future for internships and recommendations.
7) Flowcharting Early and Often
Any good programmer will tell you planning is the most important part of any project. You’ll have to flowchart when you get a real job, so get good at it now. Planning a project out before you start, even if it’s just good pseudocode, can save you hours of frustration. Don’t start your project in the compiler, instead sit down with a piece of paper and plan out your program.
8) Make Sure This is What You Want to Do
Many computer science students get into CS because they like games. Now there are a lot of positions in Computer Game Design that do not require you to be a programmer, so if you are not interested in the coding aspect talk to someone who might direct you to a better path. Areas such as Technical writing, Dramatic Writing, graphic arts, business management, and many more might be better places to go. Use your minor/electives to take computer oriented classes and get to know the CS majors.
9) Use All Your Resources
Don’t hit a road block and then panic. There are thousands of resources online to help you work through a problem. From tutorials, to forums (like http://www.dreamincode.net), to live help, you should be able to find the help you need. Just remember it can take more than a few minutes for someone to help solve your problem so don’t wait till the last minute. Google is definitley your friend and don’t feel embarassed if you have to search for your problem. Don’t expect people to do the work for you though, you’ll still have to put forth some effort.
10) Become a Well Rounded Programmer
Programming is more than just C++ or Java. If you plan on programming for a living, you’ll need to learn the business side of programming. This includes things like systems analysis, databases, security, and documentation. Also realize that C++ isn’t the only language out there, you should be able to jump fairly quickly from language to language. Don’t get stuck in one language. Learn the basics of other languages including web based. In addition to code, focus on your humanities. Nobody wants to interact with a dull uncultured nerd. Take classes that interest you and will provide you with a good non-technical education as well.