New to CS at UIC? Here are some recommendations for you.
- Use all the resources available to you.
Do not adopt the mindset "I need to do this by myself" but rather use the substantial help available through TAs in your course, your professors' office hours, and CS tutoring available in the CS lounge, SEL 2260. (See tutoring schedule)
- Don't become isolated.
Get to know other students, join some CS-oriented student organizations, and take the initiative to form study groups. This is of particular importance if you live off campus. If you do live off-campus and are getting substantial financial aid, it is possible that living on-campus would not substantially change your costs, since your financial aid might go up to cover the additional expense.
- Get to know your professors.
You should stop in at least once to meet your professors sometime in the first 3 weeks of class. Make an effort to have some interaction with them, so they know who you are. If you are struggling, do the reading and make an honest attempt at assigned work, and then go see them once every two weeks or so to get help. This makes them remember you and communicates that you are invested in the course and care about what happens. Going every week could possibly convey that you want them to do the work for you, even if that is not true.
Choose at least once professor each semester in some course that you enjoy and in which you are doing really well, and do an absolutely outstanding job on at least one assignment. After doing so go in and talk to the professor about it. The purpose for all this is so that when you need a letter of recommendation for scholarships, internships, or as a reference for job applications, you can go back to this professor and say "remember I was the student who did that great job on that assignment."
- Step up your game.
College is not high school. No one is looking over your shoulder making sure you do everything. You can flunk out easily, and must be self-motivated and organized to succeed.
Certainly use some kind of calendar to keep track of all your assignment deadlines. (I recommend Google calendar, but there are many choices.) Break down your assignments into the steps needed, and give yourself intermediate deadlines for these sub-parts. Then get your work done for whatever needs to be done by that time on your calendar before you socialize, relax or do gaming.
- Recognize the "Imposter Syndrome"
In class there may be some topic that is unfamiliar to you, with which you are struggling. Similarly someone may ask a question, and you may not understand the question, let alone the answer. At these points you may look around and think "everyone understands this much better than I do. I don't belong here. I'm an imposter as a CS student."
When this happens you should know that there are a large number of students in the class who feel exactly the same way. You are not an imposter. You do belong! Combat this by asking questions during class, even if at times they make you look bad. Don't worry about what other students think. What is important is your success, so be honest with what you know and what you don't know.
- Make a 4-year plan.
Ultimately you (not your advisor, and not your parents) are responsible to make sure you take the right courses at the right time, so you can graduate without having to spend an extra semester here. Make a list of what courses you will take each semester, between now and when you graduate. It is OK to guess, and it is OK to put in general categories such as "English class". As you meet with your advisor and proceed through the curriculum, update your list as you gain clarity on your course preferences.
As a UIC CS student start with this list of courses for CS majors, and also look at the CS courses prerequisites diagram. On the wall at the CS Student Affairs office (905 SEO) there is a suggested 4-year plan that you can use as a starting point.
- Try for two internships before you graduate.
Having two internships paves the way for you to find a good job once you graduate with a degree in CS.
One internship should be after your sophomore year, and one after your junior year. In your first two years keep track of the interesting/significant projects that you do in class, so you can list them on your resume. This will give you something to talk about when you are interviewing for internships.
You should go visit the folks at the College of Engineering Career Center, on the 8th floor of SEO. (You'll get to know which building this is once you are on campus.) They will give you feedback and can help you with your resume.
See the book by Gayle McDowell called "Cracking the Coding Interview", in particular p. 40 on a grid to capture your experience with projects in your courses. [Thanks to Guillermo Martinez]
- Break big problems into smaller problems.
This is particularly important for programming. If you have a big assignment that you can't figure out, break it down into pieces, and keep doing this, until you have pieces that are small enough for you to work on. (Want help remembering the importance of breaking things down into smaller pieces so you can handle them? See this video on how to eat a bicycle.)