Category Archives: life

Advice to New College Students

This post is mostly a brain dump of things I’ve picked up over the last 6 years about how to go to college. This advice will be most beneficial to new students in ECE or CS, but some of it is general enough to apply to everyone (even if you’ve been in college a few years already). I’ve tried to separate the general stuff from everything else.

The following pointers are mostly actions. College is not a spectator sport; it’s something you have to actively experience. Choose challenge over comfort. If you gain nothing else from reading this post, at least remember that.

General stuff:

Doing well in college requires focus. Really, this applies to school in general, but it’s never too late to start. You’re about to spend the next four years of your life learning about your field/craft. Becoming a professional in any field requires great depth of knowledge. You’re going to receive a lot of new information very quickly. Consuming and understanding this information requires most, and occasionally all of your attention.

I hear the word focus a lot, but I’m not sure whether most people really know what it means. To focus on something is to devote all of your brainpower and attention to that thing for some period of time. When you focus, you ignore external stimuli. Sometimes this means missing TV shows that you like, not going to see a movie, and not hanging out with friends. It means staying on task until you’ve reached a certain point in the process. “I’m almost finished writing a paper, but I’m starting to get hungry, and I didn’t eat any lunch.” Focusing means that I ignore the gurgle in my stomach until I finish writing that last page or two. I’m not saying you can’t have fun and be social, but the primary purpose of college is to learn.

Be social. While learning is the primary component of secondary education, becoming an adult is a close second. Learning to interact with other people in a variety of settings is a big part of that. Make new friends. Try new things. Do any student organizations look/sound interesting? Join them!

Social connections are an important part of doing well in college, even from an academic standpoint. It helps to know higher level students who have already been doing the college thing for a year or two. They already know (hopefully) how to handle themselves in the college environment; they can (and are often eager to) give advice on everything from doing laundry to finding lunch to scheduling classes. Friends in your own major can be especially helpful, as they most closely identify with your situation. Finally, getting involved opens up opportunities.

Seek and seize opportunity. You’re going to be presented with lots of good opportunities just because you’re in college. Don’t ignore them; do stuff. Most of these opportunities will disappear when you graduate (some before then), so take advantage of them while you can. You should always be doing something.

Some opportunities lead to bigger, better opportunities later. I started working with a research group very early in my undergraduate career. I was able to attend a couple of conferences in my field as an undergraduate, and I was ultimately able to secure funding for my graduate work because of my time spent doing research as an undergraduate. One opportunity leads to the next, and usually the opportunities grow as you go along. They may get big enough to be life-altering, but you’ll never know if you don’t start with the small ones.

Don’t avoid parts of your field. I keep learning this one the hard way. At some point, you’re going to decide that you’ve figured out which part of your field you want to work in, and you’ll start specializing in that area to the exclusion of the other parts of your field.

Example: I took a web development class as a junior. I decided as a result of this class that I didn’t like web development. I proceeded to avoid web development and the technologies associated with it for the rest of my undergraduate career. I have holes in my education as a result. These holes have since come back to haunt me. The tools I built for my masters thesis required me to work with databases and build a web interface. After I finished my degree, I began an internship where my primary responsibility was to write and maintain web applications.

I took several things away from this experience:
1) My masters project would have been ten times more presentable had I known about web development then what I know now.
2) Web development is, for the most part, really cool. The technologies for web development aren’t entirely clumsy and broken; I just didn’t understand the paradigms they were based on.
3) Although I was able to teach myself this material easily enough, it would have been easier to learn in the structured environment of a classroom.

Web development isn’t the only sub-field I tried to avoid. I tried to avoid several areas of computer science/engineering, but I have at some point had to deal with all of them anyway. I’m glad to have to learn these things though, because they make me a more well-rounded engineer. Get as broad an education as you can.

Get to know your professors. Professors like interacting with students; for a lot of them, that’s the reason they became professors in the first place. Some like to teach more than others, but all of them make time to help students who 1) struggle or 2) show a genuine interest in the subject.

Don’t hesitate to ask your professors questions that aren’t directly relevant to class assignments. Most professors are more than happy to have a conversation with you about anything in their field, as long as they know something about it. If you really want to get a professor talking, ask them about their research. Professors are experts in their area of research and are passionate about their work.

ECE/CS stuff:

Engineering requires more focus. Engineering is hard. Learning to think like an engineer is harder, and that’s exactly what you’ve chosen to do for the next 4 years. During these 4 years, you’re going to learn a solid 5 years worth of information. The curriculum is dense. To quote one of my managers, “It’s like drinking from a fire hose.” The concept of “free time” will become foreign to you. Stay focused on your course work and keep ahead of things as best you can.

Yes, you need those calculus courses. You’re going to take 3 or 4 calculus courses. All of them matter, but not because you’ll ever need to use calculus; most of you won’t (at least not more than a couple of times). It’s also not because of the many engineering formulas and techniques that are based on calculus. While they are based on calculus, you don’t need to be good at calculus to understand them.

Calculus matters because it changes the way you think. At it’s core, engineering is problem solving. Calculus changes the way you approach problem solving. By learning calculus, you’ll learn how to model problems in your head. You’ll also become comfortable with the idea of transforming one problem into another that’s easier to solve. Gaining ability to model and solve real-world problems as abstract ideas is critical to becoming an engineer.

Yes, you need to know how to write. You may have chosen engineering with the thought that you’d taken your last English class and that you wouldn’t have to write reports or papers ever again. If this thought was your top reason for choosing to become an engineer, then you’re going to be disappointed. Writing is inescapable. You will need to be able to communicate effectively in writing regardless of what profession you choose.

As a student in engineering, you’re going to write lab reports and project reports and possibly some surveys or paper reviews. As a new graduate looking for a job, you will develop a resume and write a new cover letter for each opening you apply to. As an engineer, the specifications you write will need to be clear, concise, and easy to understand.

Writing well is not difficult, it’s just a matter of knowing the rules of the English language and being disciplined enough to follow them. Fortunately, plenty of services exist to help you improve your writing skills. UK has the Writing Center; they’ll help you with everything from improving your writing style to preparing presentations and videos. I imagine most universities have similar organizations. Faculty members may also be good resources. Most professors spend a significant amount of time writing grant proposals and publishing the results of their research. Take a sample of your writing to the writing center or a faculty member and ask them for feedback; in particular, get feedback on your technical writing.

CS Students: Don’t be afraid of hardware. It’s not uncommon for computer science students to avoid learning the particulars of computer hardware. While most computer scientists don’t need an intimate knowledge of branch predictors and memory architectures, it is important to have a good mental model for what’s happening at the hardware level. Sure, you might have developed an algorithm that beats the previous method by a factor of 4 on the number of instructions, but if it accesses memory twice as often, then it’s probably going to run slower. Don’t put off the hardware/EE courses. The material you learn in those courses will provide you with a framework for the systems programming courses you’re likely to take during your junior and senior years.

EE Students: Don’t be afraid of software. Just like writing, software is inescapable. If you go into hardware design, you’re going to be very close to the software side; possibly to the point of writing compilers for your hardware. Those of you that go into other areas of electrical engineering, like lasers or electromagnetics, will be more isolated from software, but you will still most likely need to write software for simulations or scripts to automate the tools you’re using. You need to become a competent programmer. The ability to control computers gives you power.

Every class that starts with “EE” or “CS” is relevant. Not all of the material you need to learn will seem relevant at the time it’s taught. Some courses won’t show their value until you need the material from them later on.  When I took Discrete Math (CS 275), I didn’t see how the material was relevant to anything in computer science. It wasn’t until later when I took Algorithms (CS 315) that I realized that the concepts taught in CS 275 are foundational to computer science. The courses listed in the EE/CS curricula are all necessary; they wouldn’t be required if they weren’t. Pay close attention in all of them.

Don’t procrastinate on programming assignments. Really, “don’t procrastinate” applies to college in general, but programming assignments can be particularly deceptive. Programming takes time, and getting software right requires multiple iterations. It’s easy to look at a programming assignment and think, “That problem doesn’t look too hard, I can handle that in one or two nights.” No you can’t. You should spend at least a week on each programming problem. Writing software works best when you are able to step away from the problem for several hours and let your mind chew on the particulars of the implementation. Starting the night before doesn’t give you time to see elegant solutions or realize when you’ve made mistakes. It also doesn’t leave enough time for testing.

Look forward to the payoff. Engineering degrees are difficult to earn, but the payoff is satisfying. Now the payoff I’m talking about isn’t graduating. Yes, I did get a sense of accomplishment when I graduated, but there’s nothing inherently satisfying about having a diploma. The real payoff comes when you get a job. Satisfaction comes from finally being an engineer.

Don’t get too caught up in rushing to the future though. The reward is in the journey just as much as it is in the destination. If you focus only on what comes after college, you’ll miss most of the college experience.

This is my personal blog. The views expressed on these pages are mine alone and not those of my employer.

I’m finished

The last month and a half has been pretty intense. I wrote the majority of my masters thesis while at the same time TAing CS115 and working on several other miscellaneous things. I successfully defended my thesis on April 19 and the graduate school officially accepted my thesis this afternoon. I’m finished with my degree and with school in general, at least for the time being. I should actually have time now to post here regularly.

I’ve got an internship this summer with SDGblue. I’m not sure precisely what I’ll be doing, but SDGblue provides IT and other services with a strength/focus in security and compliance. I think this work will be interesting and I’m looking forward to it. In my spare time, I will continue work on NodeScape and the web front-end I’ve been working on as part of my masters thesis.