I've compiled a list of key-points which in my opinion, can make a significant difference in one's academic life. Since these days are the days many high-school students will pass their BAC exams and face the problem of choosing a university (i.e. determine their future), I decided it is time to publish this list.
Many points are generic, and apply to anyone studying in any field; while some of them are of a technical nature, and they will be of interest to those studying computers and programming.
In spite of the fact that the list is for pupils from Moldova, it is in English because it targets a specific subset of the "soon to be students" crowd; I hope you guys will find it useful.
The beauty of this list is that all the items are simple and you don't need to be a rocket scientist to make it work for you ;-)
- Get a digicam for quick and free photo-copies - there will be no need to carry loads of paper, wait in queue to make the copies, pay for the copies. Paper copies get lost easily, electronic copies can be shared (multiplied) at virtually no cost.
Social stuff
- Interact with your classmates - most of them will be people like you*
- Have your own mailing list
- Play football, go to movies :-)
- Use the digicam not just for copies ;-)
Information
- Get yourself accounts on news sites and get your information straight from the source
- Watch the blogs of people who are known to have done a lot for the community, or have a great impact on it (ex: Oldnewthing, Bruce Schneier, Diomidis Spinnelis, or XKCD - high-tech humour with grains of truth all over it)
- Sign up on Slashdot and read real comments written by people in the field
Books
- English must become your mother language
- Have your personal repository of ebooks, consult them when needed
- Buy real books from places like Amazon, or find an alternative source; nothing beats the feeling of dead trees in your hands
Software Tools
- Learn how to do things with a simple text editor and without an IDE
- Don't get too involved with Microsoft tools, study alternative software and learn to use other instruments (ex: Inkscape, Docbook, Linux)
- Understand source control mechanisms
Learn Python
- In the UTM curriculum you have TPC (tehnici si protocoale de comunicatii) before you have parallel and distributed programming, how can you write multi-threaded servers if you have no experience with threads?
- you'll learn how to write readable code
- it has high-level libraries for many things you need at the uni
Sleeping habits
- Learn how to sleep in public transport
- Quick naps during breaks
- Sleep securely(tm) during useless classes
- Or carry stuff with you, to keep yourself busy and productive in such cases (books, PDA, etc)
Have your pet-project and do everything for it
- Documentation
- Source control
- Testing
- Debugging
- Promoting
- Artwork
- Support
- Porting to other platforms
- Deployment
- Web site, community, blog, etc
Professional aspects
- Write your CV and update it on-the-fly - so that the copy you have at the moment is always a fresh one
- Establish contacts with local companies, meet people who work in the industry
- Get involved in various projects, accept to work for free as long as you can improve yourself skill-wise
- Get a job you like as soon as you can (note that I wrote "one you like", not "one that pays a lot")
Things I didn't do, but think are important
- Learn TEX, Docbook; don't write your theses in Word
- Find an open-source project and contribute to it
- Learn Brainfsck
- Listen audio books on your way to the uni and back
Notes:
- This is not a complete list, you shold fill in the gaps with other tips; I only wrote the things I thought would not be evident to others, or that in my opinion require an emphasis. I repeat, this list is by far not complete;
- Of course, there are many other arguments that support learning Python. Mentioning all of them here is beyond the scope of the list, one day I will write about this in detail.