Software Engineering is an interesting mix of practice and theory. On the theory side, you should make a habit of browsing / googling for things that are a good intersection of interesting to you and novel. Be forewarned, some of the common places to get information (like stackOverflow) can be very intimidating.
The standard expiration date for most checks is 180 days (six months) and personal checks are included in this policy. In the United States, banks are privately owned and not government operated so banks do have the right to refuse your deposit if there happens to be any suspicion of the item's negotiability.
Since there's really no such thing as expired personal checks, I always do a stop payment if one of my checks doesn't get cashed after several months. I make sure to contact the person who has the check first, and if they don't answer, I call the bank. I really hate having to do this, though.