Saturday, June 13, 2009

What to do this Summer - Part 2

As-Salam Alaikom,

Welcome back to my blog.


How is summer going? Hope everyone is grea

So, what do I do in Summer? continued..


Internship (training in a company)

I wanted to talk a-lot about this topic. It is one of the topics that I don't have a yes or no answer. Companies are also very different from each other. You must decide if you will or will not benefit from a specific internship.

Should I go to work, or not?

I'll discuss some advantages and disadvantages:

Advantages:

1. Soft skills:
One of the ways to learn softskills is through internship and real experience.

2. Language skills:
Can help your English, but english course is better.

3. Computer Science Topics:
Unfortunately, most companies will not teach you anything important. There are exceptions, but still most will either not teach you at all, or will give you useless courses.

Disadvantages:

1. Opportunity cost:
Do you remember what opportunity cost means? We took it in business in first year. It is the cost of the second best alternative. If you go to work, you may be missing the opportunity to learn really important things (see What to do this Summer - Part 1).

Summary
You can take an internship if and only if there is nothing else better for you to do (or the company is too good).



Helping Others

All the things I said till now are to help improve yourself, but don't forget about others.
Everyone has a debt for his knowledge to the Drs, TAs, colleagues, and family that taught him/her, he can only pay back that debt by passing the knowledge to others.

If you want to help others, I will help you by telling you some ways to do it.


1. Join a community (in FCI or outside FCI):
Most communities in FCI teach courses or sessions to help other students.
Make sure that you are not wasting time and that you are teaching something useful

2. Give a course:
You don't have to be in a community to give a course. If you are very good at that topic, you can easily give a course (and you may even get paid for it)

3. Help students younger than you:
How many of us could have used help from 3rd year students in 2nd/1st year?
Would it make a difference to a first year student if he heard advice about FCI from older students?
YES, it would. I know that because it happened to me.

Talk to some students, explain to them what they want to know. Give them advice on which subjects are important. Give them websites to help them. Even give them some of your old programs to see.Etc.

3. Write articles to others:
If you found this blog helpful, spread it, or even better, make articles like these and spread them to others.
If you know some new technology that can really help us, tell others.


Other Important stuff
There are things I didn't mention not because they are not important or to tell you not to do them, but I left them because they are essential things that I don't think I have to tell you about, they must be your priority too.
  • Family
  • Religion
  • Taking rest
  • Sport

Summary:
Time is THE most important thing ever to humans. We will be asked in front of Allah how did we spend our time.

Summer is a lot of time. Try filling it up with useful stuff.

Hope you all have a great summer.

Share your Ideas for summer with us, comment this blog.

Thanks,
Amr Samir

Saturday, May 30, 2009

What to do this Summer - Part 1

As-Salam Alaikom,

This is Amr Samir, student in FCI Cairo University.
Welcome to my blog. Hope you enjoy it.

(Warning: Some of the links I place in my blog may contain some bad pictures. I'm not responsible for these ads. I suggest using Mozilla Firefox + Adblock plus so you remove all the ads in the websites.)


How many understood the title of the blog? Its taken from "the 7 habits of highly effective people". The author of the book, Steven R. Covey said (as far as I remember):

"Its important to do things right, but whats more important is to do the right things"

So my blog is about doing right things/stuff in life.

So I was thinking, what should the first topic be?
Well, summer vacation has started for some and about to for others, and summer vacation is the perfect opportunity to waste 2 or 3 months of your life :|


Should I plan for my Summer?

Yes, you should. Planning can never hurt. Just make your plan flexible and don't forget to add rest and fun to your plan.

So, what do I do in Summer?

There are millions of things you can do. If anyone is feeling they don't need to do anything, just read this blog and think again.
I know some people have stuff that they are forced to do (such as summer course, family visits etc. ). You should still do something in your summer. There is always time for another thing.

All the things I mention are just examples to get you started. If people have any suggestion please tell me.

Ok lets start:

Knowledge

1. Soft skills:
What:
a. team work
b. time management
c. communication skills
d. presentation skills
e. Interview skills

How
:
a. Read "The 7 habits of highly effective people"
b. Watch videos of Dr. Ibrahim el-Feky, Dr. Tareq Al-Suwaidan etc.
c. Watch "The Last Lecture" and "Time Management Lecture" by Randy Pausch
d. Watch videos from day 0 and day 1 here
e. Join a community and make presentations and communicate with companies

2. Language skills:
What:
a. Reading: this is the most critical English skill you need. If you have trouble reading textbooks or reading this blog, then you need it.
b. Writing: You will have to write in your job, in your projects and in your graduation project.
c. Listening: There are many lectures on Computer Science online, and there are no subtitles (targama).

How:
a. Excellent book + course teaching English pronunciation
b. Take an English course at a respectable place (Birlitz, British Council, AUC, AmidEast)
c. See online English courses, the internet can teach you anything.

3. Computer Science Topics:
What:
There are too many things to learn to fit in this page :)

How:
a. ACM/TopCoder:
This is one of the best ways to learn programming and problem solving skills.
ACM also teaches you a lot of soft skills such as team work and strategies.
You can either join the summer training, or work alone, which is harder but still possible.
If you want to get started, make an account on SPOJ and start solving problems.

b. Online courses
Many universities across the world are putting their lectures on the internet for free. You can find almost all courses, starting from introduction to computers, to advanced stuff, explained really well online.
Where can I find them?
i. MIT OCW : 1900 course with videos, exams, assignments etc.
ii. Youtube : you wont believe number of lectures on youtube
iii. Google : just search for the topic + " course" and you will be amazed by the results
iv. Wikibooks : a large library of computer science books

c. Doing projects
You can plan to do software projects with your friends or alone. Try to learn as much as you can while making this project. Make sure you don't use pre-made code and libraries, learn doing things from scratch. Some examples of projects I thought of:
i. Doing the Database final project with mySQL and Java instead of C#
ii. Making a web site or web application that allows people working on a project to communicate together.
iii. Making a game using XNA game studio
Also, while working on a project, learn to use some of the Project management techniques used in software companies such as Agile software development (see first video from day 3 here)