Non-techie Things I Learned from Being a Software Engineering Student

  1. The way to success is a lattice, not a ladder. Software engineering is hard. Computer science is hard. Heck, college is hard. To be able to succeed, you’re going to have to ask help sometimes, and you’re gonna have to be willing to share what you know. The saying what goes around comes around can never be more true here. In fact, the very concept of the Internet industry is the sharing of information to everyone. Help others, and they will help you back. Don’t be afraid to share your notes, to tutor a friend… you never know, he might be a JavaScript unit testing ninja!
  2. Fake it ’til you make it.  In my classes, I think the ratio of men to women hovers around 18:4. Observing my classmates, it never ceases to amaze me how a guy can speak up in front of the class, acting like he knows his stuff, and yet…he doesn’t really makes sense. BUT because he carries himself a certain way, his idea suddenly doesn’t seem so dumb, and it actually sparks an interesting discussion (or clarifies a hazy topic). On the other hand, I notice girls (myself included) tend to second guess themselves before they start to talk, or they start their sentences with, “I’m not sure, but…” We have to stop this! Think about it. How can someone believe you or take you seriously if you don’t even take yourself seriously?
  3. You become what you think you are. In my assembly programming class, I didn’t do so well in the beginning. Attending class made my tummy churn. As we did exercises, I joked around with my friends saying that I am really not good at this. Fortunately, one of my dear friends corrected me. She said, “Frances, don’t say that, or you’re brain might believe you.” Now, this girl was a genius, so I reasoned she might be right. Okay, I thought, how can it hurt? So I forced myself to believe I was an assembly black-belter; pretty soon, my brain believed it too. Then I found myself actually wanting to read tutorials, actually excited to go to class. I ended up getting an A.
  4. One rotten apple can spoil the whole bunch. One lazy team member will make everyone else feel lazy too. A team member that doesn’t really know what to do brings the productivity of the whole team down. You’ll have to give him extra help, fix the bad code he typed up, redo his algorithms when you could be moving on to greener pastures. (But then again, since we are in school, keep #1 in mind — just not when your are creating a system for a project. Personally, though, as long as the person is actually doing his 200%, then I’m willing to help; everyone has to start somewhere. However, if he is just slacking off, he can do that by throwing paper airplanes and not messing up my code.)
  5. You don’t know everything, but everything can be learned. I read somewhere that you become a software engineer the day you realize you really don’t know a thing about making software. If you know Java, someone out there knows how to do recursion in C in their sleep. On the upside, with the Internet and the helpful nature of most programmers, everything can be learned — just not overnight.
  6. All you have to do is take one step at a time. Thinking of everything your program has to do is always overwhelming. That is why I love object-oriented-programming. I “just” have to write little pieces of code that do their own thing and then another, and pretty soon, I’m actually getting somewhere. This is true for life too. Setting a huge, massive goal will zap your motivation in the buds. It will make you feel like you’re pushing against a boulder with all your strength, and it doesn’t even budge. But breakdown what you need to do in small steps, and you will actually find the willpower to do it (albeit, one step at a time). After all, it’s just one small thing right?
  7. Always prepare for the worst, but hope for the best. You never know what life will through at you, or if your hard drive will crash, so its always good to be prepared for the worst. The worst case for preparing for the worst, is the worst not happening, which is actually not bad. We cannot say the reverse is true.
  8. Sometimes, the best thing to do is to take a break. Rockstar developers know that when they are stuck in a problem, it is good to take a break, clear up the mind, etc. to get a fresh perspective on things they might have been missing previously. Again, this can be applied to life too. If you feel like you’re in a rut, you might have been overworking. Taking a break will refresh your energy and make you more productive in the long run. On a grander scheme, I am even a firm believer in travel as a means to treat depression. In a new country, your problems do not seem relevant anymore….all of a sudden, they do not matter! It’s a great way to realize that hey, you will probably live through whatever it is you were so worried about.
  9. It’s going to be tough, but it’s going to be worth it. People ask me what I love about being a programmer the most. Every time, I say I love the feeling of triumph when you’ve finally figured out that one last thing, or that feeling when you’ve finally tracked down the bug, or when your function finally works. The same can be said for any aspect of life that we have to work hard for, whether it is a college degree, a new job, even a marathon. We push ourselves constantly because we know our goal is worth it, our goal will make our circumstance better. We push ourselves because…well, reaching a goal is euphoria.

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )


Connecting to %s