“When solving problems, dig at the roots instead of just hacking at the leaves.”

~Anthony J. D'Angelo

Seven Steps to become a world class computer Engineer


Reasons for writing this post:

* I feel I have not done enough to become a good computer engineer. May be I did not have someone who could guide me properly. We were only the second batch of Computer Engineering at Nirma Institute of Technology, Ahmedabad, so we had no mentors in the industry.
* Second reason, may be we were not mature enough.
* Third reason, 3 Idiots was not released at that time.
* So this post is dedicated to all the fellow computer engineering students (especially in India) who are still having a good time by bunking the classes but not doing good enough to become a world class computer engineer otherwise.

But what can I do?



1. Have the right infrastructure

* Get yourself a decent laptop. (I prefer Mac but any decent Dell laptop is also ok)
* Get yourself a nice internet connection with highest speed available. (Take a cut from your pocket money if you have to but this is a must)
* Get yourself an iPhone (I know it is expensive in India but you will have to use world class gadgets to become world class engineer)
* Make your home or hostel room WiFi enabled. (This is not expensive. You will get a decent router in 2-3k.)
* If you are not able to do any or all of the above things, don’t worry you can still become a good computer engineer. So hang on and keep reading.

2. Learn to use Google Reader

* Google reader will become the best companion of yours for lifetime if you use it properly.
* It is nothing but a cool RSS reader from Google using which you can subscribe to blogs to get latest updates and posts. So if you have a gmail account you are ready to go. What? You do not have a gmail account yet!! Go get one right now. Stop reading. Open a gmail account now and come back. I am waiting.
* I am still waiting.
* Ok great, so you have a gmail account now, good. Watch this video . It explains in plain english how to use google reader.
View This video for Google reader In plain english
How?

* Software, Web Search Strategies, Wikis, Social Bookmarking, Social Networking, Blogs, Podcasting and Cloud computing on http://www.commoncraft.com/ (Now you understand why I told you get the fastest internet connection available?). You don’t have to see them all at once but do check them all and understand.
* Done? Ok so you are ready to become a world class computer engineer now.
* Now you understand Google Reader, so it’s time to subscribe to interesting blogs. Subscribe to following blogs.
o Techcrunch.com (King of Technology Blogs)
o Gigaom.com (Michale Arrington of Techcrunch considers Om as his Guru)
o ReadWriteWeb.com
o Pluggd.in (Indian Techcrunch)
o JoelOnSoftware.com (a must read for programmers)
o CodingHorror.com (another must read for programmers)
* There are many such blogs but to start with these are ok. You will keep finding other interesting blogs as and when you will come across some.
* Getting used to read on computer takes time and patience so just keep reading it.
* So I guess we are done with Google Reader part here. This means you have to open up Google Reader as soon you bunk the classes or as soon as you get the time to check your mails.

3. Academic Earth

* Do you want to see how professors teach in Harvard and Stanford? Do you want to see how their lectures are conducted? You can now, we were not able to do that in our time.
* Go to www.academicearth.org and you will see videos of actual lectures and courses of Harvard, Yale, Stanford. Now you know whose lectures to watch after bunking the classes or after getting back to home.
* You do not want to miss the chance of studying in these universities without going to US to giving them millions in fees right? and guess what? Attendance is not compulsory here :)

4. Learn any web language quickly and start building

* I would suggest PHP or Ruby. ASP.NET C# is also fine if you already know something about it.
* And start building something on it. It can be anything. But start programming on web now. Most of you are never going to write a program C, C++ or COBOL in your lifetime. I would not advise against learning them though.
* After you know something about web programming, read “Getting Real” from 37Signals.
* Now again build something using whatever you learned from the above book.

5. Assume you are in Sillicon Valley

* I know this sounds little weird but that’s the way it is.
* The best of the minds in the world are there and you do not want to miss out on that right?
* Thousands of things happen everyday in Sillicon Valley and you can remain updated by reading above blogs I mentioned.
* So start feeling the air :)

6. Start asking why?

* When you are attending a lecture or reading anything, have a habit of asking why?
* For e.g. Why we have to study “Strength of Materials” when most of us are going to write web applications in PHP or ASP.NET?
* When you ask why often, you start understanding the logic, the reason behind doing anything.
* Same as they have said in 3 Idiots, don’t learn to get marks but learn to know something, to achieve the excellence. When you start asking why, you start on the right path.

7. Understand computer hardware

* Most people thinks this is boring and unnecessary.
* May be it is, but it will certainly make you better programmer, even if you will never touch the inside of the computer again.
* Basic understanding of hardware is necessary to understand how computer works.
* You have to understand following 100% without any doubt in your mind.
o How your high level programming code becomes 0s and 1s and execute?
o The text which you are reading now is also consisting of 0s and 1s only then how come you are reading the alphabets here?
o FYI I am still not 100% clear on this. But I will be one day. Till then I am not a good computer engineer.

I guess I have get you started here.

By following any or all of the above steps you are destined to become world class computer engineer. By no means I am asking you to stop whatever you are doing right now in your college.
These are additional things you have to do. It takes hard work to become world class right?

You are always on your own to achieve the path of excellence. Friends and Tutors can only guide you, they can not make you one.

I would request my fellow classmates to add points in this post. I believe our batch 99CE in Nirma Institue of Technology had one of the best and brightest minds in the world. Do you have any doubt? Well this guy is one of them. 99CE people are in MIT, Google, Apple, Barclays, Bank of America to name a few. They are spread across the world and are on their way to become future leaders.

I would also request people who have read this post and feel they can add something here to help students of computer engineering. My aim is to have great people coming out of Indian Engineering Colleges.

Last words, by no means above list is exhaustive and complete. There are “n” number of ways to achieve excellence. These are my personal views and I have learned them long and hard way. I hope to make your journey little easier by this post.