University software projects/assignments are the first few impressions for a new programmer to taste the world. To be honest, they are daunting in terms of scale for most of the times, you may have no clue about how to even start, and sometimes your teammates are just as lost as you are. Although they do have a solid reason to be part of the education: these are the stuff you will get, if not worse, when you start working. Today I want to talk about uni projects, what a healthy attitude we should take towards, and a few tips about them.
It doesn’t go live!
One of the greatest difference between uni projects and production code is that they rarely go live. What this means is that no matter how good or bad your code is, after its due date, nobody really cares. Not even you yourself. You may say “I am going to fix the bugs in the feedback over Xmas”, but I would even bet you never open the text editor during Xmas. I have certainly done that myself.
This is not to be encouraged, of course. But we still ignore these bugs, because they don’t really matter, at least to the majority of the world. One thing I think is very important to have, even before starting to work, is the idea of “Signing your work”. Just like these blog posts, I put my name at the end of each post I wrote. If they suck, I will suck too. A same attitude should be adopted when it comes to uni projects. What your write represents you as a programmer, and you must bear the blame if others think your code sucks. I understand it is a harsh thing to say, and it is probably easy to say then do, but I do believe a programmer should sign his or her work. That’s the right thing to do, no matter if you go into the industry or not.
You can’t care that much
There is a certain opposite extreme to my previous point: you care too much. A common analogy is YouTubers. They try their best to make good contents, but if someone just hates the videos, they don’t go crazy for them. What I feel a lot when doing uni projects, is that sometimes you know there is a bug to be fixed, but you just get it fixed in time. And it really sucks.
This brings up a topic of good enough softwares. Basically you got to be rational about choose to fix a bug or not. Is the value of fixing it worth the resources and efforts spent to fix it. You have to realise that this is not work, and you as a student have other stuff to worry about in life too. Don’t spend 15 hours to fix a very hard bug, and have no time to revise for the midterm tomorrow. You have to balance everything in life.
Some practical advice
Ok, I might have just give you two mutually exclusive mentalities, but there is a way to make both of them to work. Now, I want to talk about a few things more practical that you might find helpful when doing your own school projects.
Two minds are better than one. A teammate can help you develop, review, and test your code much more efficiently, no doubt. But there are a few things to be careful when doing a team projects, and I going to be blunt here, no offence.
Don’t team up with a bum. If they are only going to drag you off, it’s better to not get into a team with them in the first place. You may got assigned one randomly, but as soon as you find out your team is not productive, talk to the professor about switching teams.
Communication is key. It is even more important that you guys coordinate better than each of you have better coding skills. If you are having trouble with this, read How to Win Friends & Influence People.
You need a leader. Some may not be happy about being lead by a fellow student, but you need someone to organise meetings, delegate work, and schedule everything.
Use the resources
This may come as a surprise, but you are probably not using all the resources you can. Surely you use Google and StackOverflow, but there are other places to seek help and advice. The professor and TAs. No one knows the project better than them because they wrote the project. If you are in doubt, it is never a bad idea to ask your professor for hint and advice. Mostly they understand and will help you as much as they can.
That’s it for this week guys. Let me know if you have any thoughts to other tips to give. Really appreciated. Hope you all have a nice week, and I will see you guys next week!