How to Become a World Class Computer Engineer
[There is a difference between engineers and software developers; and here is a guest post by Abhishek on what does it take to become a world class engineer.]
Reasons for writing this post:
- I feel I have not done enough to become a good computer engineer.
- First reason is may be I did not have someone who can guide me properly. We were the second only batch of Computer Engineering at Nirma Institute of Technology, Ahmedabad, so no person was in the industry at that time from our college.
- 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 prefere 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.
- As a side project: Watch videos related to RSS, World Wide Web, Twitter, Social Media, Computer Hardware, Computer 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.
- Now you understand Google Reader, so it’s time to subscribe to interesting blogs. Subscribe to following blogs.
- Techcrunch.com (King of Technology Blogs)
- Gigaom.com (Michale Arrington of Techcrunch considers Om as his Guru)
- ReadWriteWeb.com
- Pluggd.in (Indian Techcrunch)
- JoelOnSoftware.com (a must read for programmers)
- 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.
- 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" from37Signals.
- 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.
- How your high level programming code becomes 0s and 1s and execute?
- The text which you are reading now is also consisting of 0s and 1s only then how come you are reading the alphabets here?
- 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 got you started here.
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 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.
Comments are whole heartedly welcome.
[Reproduced from Abhishek Desai’s blog – he an alumnus of Nirma Institute of Technology.]
img credit
-
Related posts:
- Startup Jobs – Web App Developer, iPhone Developers, Server Engineer and more
- Today is Engineers Day..A look at difference between Engineer(s) and Software Developer(s)
- Startup Jobs: Technical Architect, Java Engineer..and more
- Startup Jobs: Software Engineer, Tech Architect, Mobile and LAMP Wizards
- Big G Down..World comes to a Halt?









“any decent Dell laptop”
why Dell?
Dell laptops are sturdy. I have used them myself and I feel they are perfect for student like use.
Linux?
Well yeah you can have linux on your Dell Laptop
I have no issues with any OS.
I like how you have acknowledged the fact that a lot of the CS/CE students in engineering colleges in India may not be upto the mark considered necessary to work at most software/internet companies in the world – and most of your suggestions are in the right light. And btw great suggestion with the Getting Real book by 37signals. However, i do have a few counter suggestions if I may.
1. Use twitter instead of Google Reader – Goog reader is so last generation and twitter is so next generation – follow the people who matter (@arrington, etc) follow the blogs that matter (@techcrunch) and so on
2. The one question people might wanna ask themselves is if this is really what they wanna do – i mean if you are not really into coding – then may be its gonna be harder to be become good at it – coz well you were not into it in the first place. However, it is important to find out what aspect of the entire software process you are most interested and read more on that and start working towards actually making that your full time job – assuming that software is indeed what you would be in.
3. Rapid prototyping is important not only because it results in faster progress and seeing a product much earlier – but acts as encouragement along the way. Ruby/PHP are great – try Python/Django as well – its pretty good and definitely very very rapid prototyping is possible!
4. Get to India’s silicon valley – Bangalore. See if you wanna be in bollywood – you can do that by sitting in Gorakhpur. You need to go to Mumbai. Likewise if you wanna climb in the software food chain – get your ass to bangalore (if possible make a few trips to San francisco bay area – US ki Silicon Valley just to see the atmosphere and how things are done)
5. Surround yourself with positive energy and positive thinking people and run away from negative thoughts and negativity in general!
Thanks for nice comments Rahul. I agree with your point of twitter. But I believe Twitter is little hard to understand in terms of its utility and importance to start with. Once a user gets hooked to Google Reader he/she is going to go to Twitter for more.
Your point about knowing whether you are in it for sure is a really good one. As shown in 3 Idiots don’t come to Computer Engineering if you want to become a Wildlife Photographer
I have not worked with Python or Django so can not comment on that but yes there are various rapid prototyping tools which you should get used to.
@zachary – too strong a language my mate.
@Abhishek – while ur intentions may be right, but the ideas quite off the track. For starters, just look up the link on top of the post which explains the diff between good engineers and good software devs. Your 1st point on good hardware negates most of those points. Why a laptop, why not an inexpensive make yourself PC to begin with? Most people learn a lot about the innards of a computer when they try to build one.
An iphone to become a world class engineer? Really?
You have just painted a very expensive path to becoming a good computer engineer.
Who told you that most of the people do not code on C, C++ for a lot of their life? That is not true at all. In fact, that statement is laughable at best. Just because you have been in the domain of web programming doesn’t mean that the whole world of computer engineering is about that. To become a good computer engineer, you need to pay attention to efficiency of your project or whatever you are building. Call me old fashioned but according to me, the best starting point for a person new to programming is C. People learn to appreciate memory efficiency and learn about memory leaks only when they dirty their hands in the pool of pointers. PHP is a good scripting language at best and a great framework for web programming but not a good starting point for someone who wants to learn how to program.
You have not mentioned a word about being part of github or other online code repos where one can learn a lot about good coding practices.
Techcrunch is just a tech equivalent of E! news. It is definitely not advisable for “impressionable” young computer engineers to go there.
Simply put, one cannot become a good computer programmer by getting the latest tech or reading some tech blogs.
@ashish – you should know better.
In my last comment – i meant “if you wanna be in bollywood – you can’t do that by sitting in Gorakhpur. You need to go to Mumbai.”
zomg! This is one of the most perverted posts on “How to Become a World Class Computer Engineer”. Heck, this post has so many “world class” cess holes that it would take ages to fill them up with right ideas. I did not know that pluggd.in folks are so desperate to get any 4th rate blogger to blog for them.
I sincerely hope for your sake that this was a nice practical joke that u tried to pull off.
Well I do agree about the 4th rate blogger part, in fact I do not consider myself as a blogger. I am an entrepreneur and probably have done some worthwhile things so far in my life which can help students of engineering students. My article may be mediocre but the intentions are not. Thanks for commenting in any case.
” Heck, this post has so many “world class” cess holes that it would take ages to fill them up with right ideas” – Do it then.
It’s easy to criticize, but would request you to share your take on the said theme.
@Zachary One more armchair critic I think. Buddy, if you have better or hell, even 5th rate ideas, please enlighten us. The ideas presented here are nothing earth shattering but having studied in a 6th grade college, I do believe some of them would have done wonders to me atleast if I had followed them at that time.
@abhishek You got some decent ideas dude. Don’t let the criticism put you off because I can vouch for the practicality of the ideas having not studied in a world class college.
Well what can I say? I am glad to have more positive reviews here. Thanks everyone including critics.
Hi Abhishek,
Nice school of thought. I would suggest there are many things which could be an add on. Yesterday I was in the World Book Fair at Pragati Maidan. There were two gentlemen related to academics discussing about education and specially engineering in today’s context and i was quite in agreement with what they had to say about engineers today. Its much easier to be an engineer than to be a graduate with 60%. There are around 20 lakhs engineers in India passing out every year and 2 lacs vacancies. The pity is that among these 20 lacs only 10 % know about what they been taught and should be knowing rest have the degrees which would have made the same impact if had been given after 1st year of completion. So now its not only the education system but we the students too who are equally responsble
(not equally!!! kyunki bacche man k sachhe)
Google Reader was symbolic I assume. But anyways, I like bloglines to it. then you can have netvibes whcih takes care of all your things at once be it techcrunch, readwriteweb.
joelonsoftware is awesome, period.
That’s for reading part. then you should be able to code in any language someone ask, but at the same time be master of one (refer joelonsoftware once again)
then, you should not just read, you should code, you should develop and you should talk. The biggest learning comes from this. share what you develop.
Not just use opensource contribute there, period. (big big point)
You touched the point of going to the hardware which is utterly important, but before that go to standards/protocols, go deeper than apis.
Loads of crap and bull shit. Try to read and understand “The Art of Programming” by Knuth. Show me one world class and engineer who has never read the book and I will prove in an instant why he is not a world class engineer. You get the point?
Ram: As I said at the end this list is by no means complete and exhaustive. There are many ways you can achieve this. I would love to hear your points about why anyone should read “The Art of Programming” to become better programmers. My intention is to help the students, sorry if I have gone wrong somewhere.
@Ram Steve Wozniak, started his Apple stint before completing school. Recommend you read iWoz immediately.
Please look at contrariwise views too, its not going to harm you. Rejection of the philosophy through one’s personal experience is another subject
How about learning software engineering principles from the best software engineering books? Software engineering is not about right fast code. Its about designing a good piece of code that can withstand the winds of change for at least 20 years. I know, I know most of the software engineers dont even think beyond 20 days of head winds but then thats the real problem. Rest all will follow. And its funny that in no other engineering discipline are people recommended to read blogs and not the bibles of the trade.
After starting our own company we really regretted of not studying “Software Engineering” properly. Point well taken.
Hi Abhishek,
I work on .net in C#. I work as a freelancer. Do you know some place where i can get small projects on dot net.
Try odesk.com, elance.com or rentacoder.com
I think one and only one thing is important to be a world class anything, and that is to start working on it. If one is trying to be a world class engineer, start programming, that’s it. Even before you are in college, work as an intern somewhere, work on projects for people. Anything, but start working and it will lead you on.
Yes, exposure to new technologies, being updated to whats going on and staying in a city with the same energy helps to get an edge. But they come later, when you have progressed enough to use the edge.
I’m assuming here an order to your points, which may not be so, in that case I think its a good article to wake up students to take charge of their career.
Hi Ruchika, You gave one of the best advise which I missed. There is no order of my points. One can take any, all or none of them in their consideration.
well…
1) Read /.
Read: How to get a Linux Admin Job? http://goinggnu.wordpress.com/2009/10/28/how-to-get-a-linux-admin-job/
2) watch classic Geek Movies like Pirates of the Silicon Valley, Office Space, The Code
3) Read “How To Become A Hacker” by ESR
4) Read essays by Paul Graham
5) Use FOSS OS like GNU/Linux, BSD etc..
6) Participate in GSoC
7) Join an active LUG like ILUGC
The concept may be applied to beyond Linux
9) Hack Meomo/Android to run on a cheap winmo handset
10)Become a Debian developer
11)Watch Guy Kawasaki’s talks
12)Subscribe to the thegeekstuff.com
13) write and ebook and publish it for free
14) learn mailing list etiquettes
15) hand around on your favorite IRC channels
16) Read the LH blog http://linuxhaters.blogspot.com/
17) read pluggd.in
18) don’t subscribe techcrunch. the volume is too huge. if something really cool happens there, it will be on techmeme anyway
19) when you bored run fortune for cool quotes
20) try photography
??
???
????
25) Profit
:-8
Great points. Only one thing. I would suggest subscribing to techcrunch only if not to GigaOM and ReadWriteWeb. They generate 20-25 posts a day but most of them you will skip once you will learn skipping through the contents which are not of use to you.
I like point number 9
I guess this is an excellent post as I meet plenty of fresh engineers undergoing the “another brick in the wall” process at the hands of Indian education system.
I think 3 idiots did a gr8 job as an eye-opener in this regard. Both 3 idiots and Five Point Someone did well coz that is the sentiment of youth today. Accept it, or be crushed in the next wave of entrepreneurs. Sorry about my emotional conviction, but it contains good degree of truth.
Cheers,
Arvind
Just right program, keep writing it only way to become great engineer
Couple to points:
- I think instead of a laptop, students should get a desktop. Cheaper and easier to tinker with. You will never be able to hack your laptop the way you can hack your desktop – open it all up, change parts and burn some – all this without getting a hole in your pocket. Also desktops are much more ergonomic. Later on you might be forced to use a laptop, why start bad habits early on
- I am surprised no one mentioned stackoverflow. Solve real problems others are facing, see multiple solutions to one problem and get amazed and build up your skills – all the the same time.
- I may be biased but stay away from propriety technologies. Same reasons as for laptop vs desktop. Most probably it will force you to use some piece of pirated software. If you dodged that, there will be much less opportunities to go under the hood and see how it works and later on, you may anyway be forced to work on one… you get the drift.
- And on a more philosophical note, ask lots of questions but learn fast to know which questions are stupid and which are worth a deeper look.
Abhaya
Oops how can i forget to stack over flow!!
Your idea about desktop is pretty right but my idea of laptop was mainly related to mobility and so was the reason to have WiFi in the room.
If you have mobility you tend to work longer according to me. I know its a bad habit and may cost you health wise but than there are other ways to overcome the health hazards
That was a good post Abhishek. When you get a chance try to look at NalandaU.com which has 7000 lecture videos (1800 in comp Sci) from MIT, Stanford, Berkeley and IITs.
I get a feeling that they are getting videos from Academic Earth only
or may be they look like so.
I think the guy above posted just to popularize nalandau.com – guess he is one of the partners (check his hyperlink!)
@Rahul,
I’m the founder at NalandaU and that’s why I declared my link as NalandaU.
@Abhishek,
The content is actually owned by neither AE nor NalandaU – they are released by the Universities and educators in Creative Commons. Most of the content have been around for much of the decade – I myself have used them for my graduate program at Maryland. Both try to add value in the aggregation and organization.
Why I pointed to NalandaU is for the expanded content. AcademicEarth for example has only 14 Computer Science courses while we have 59.
regards,
Balaji Viswanathan,
Founder NalandaU
Wud like to add few things, ashish. I am myself from a Tier – 2 engineering college. In my current visits to IITs and NITs at different fests, I observed a big difference in thinking of students. There, majority has a dream of becoming successful. Here, majority aims at getting a job. Meaning dreams are small and this shudnt be. I wud like all my frends studying at colleges to dream big, then only you can achieve big.
Peter Norvig said it best: http://norvig.com/21-days.html
Nilesh, I second your suggestion to read this magnificent essay by Norvig. Infact I was going to comment, if hadn’t seen your comment
Abhishek, has written a good earnest post. But I felt that most of the things are just about ‘reading’. So are most of the comments. Reading is fine, but the emphasis should be on doing.
So since the topic is on how to be a world class computer engineer. I would say, read an inspiring essay like the one written by Norvig, then just go about doing – programming!
PS: Reading a highly techy book like ‘Introduction to Algorithms’ would also come under doing
But techcrunch/GigaOM etc. Give me a break
These are mostly tech ‘page-3′ stuff – Good for time pass
gr8 gr8 post..absolutely spot on!!
You came real close to my reader RSS feeds.
I’d like to add maybe wired, engadget, slashdot and mashable to the feeds; and who can forget the text of Steve Jobs’ Stanford Commencement address (2005) http://bit.ly/YhHS1
One question..are you a 1st generation entrepreneur..I have a hunch you’re not.
Anyways thanks to you and pluggd.in for making this happen.
Till then stay hungry, stay foolish…and keep posting.
hey gaurav,
yes those blogs are worth adding once you get used read google reader or else it will become an information overload.
by the way why do you think i am not 1st generation entrepreneur?
thanks.
Reading widely is good. But don’t underestimate the power of imagination and creative thinking. Sometimes, you want to take break and just imagine how things are working. Then you can go back to books or blogs to see if your understanding is correct. This way you will better develop your mind.
Also recommend subscribing to http://www.itconversations.com . Again don’t get addicted but use in moderation. Your own thinking power is your best friend not the ideas of others.
Despite the first line of this blog, with the above steps you can at best become a “web developer” not a “computer engineer”, you might even make a heck a lot of money that way single handedly writing applications based on frameworks provided by facebook, google, iphone.
And probably the most important info for someone who wants to become a “web developer” is that that most of what they teach you in an engineering degree is orthogonal but if you want to become a “computer engineer” please take all your subjects seriously, including strength of materials. Computer science is not like other engineering branches, the best “computer engineers” are the best problem solvers and problems come in all kinds. Ever thought of why interviews at tech companies have questions like http://www.techinterview.org/Puzzles/fog0000000071.html
Agree completely.
Cannot agree more.
The post misses the real essence of computer engineering.
Watching lecture videos doesn’t do any good unless sincerely followed. Fundamentals of Mathematics, Algorithm designs, automata theory and state machines and several other areas are far more crucial for computer engineers than being updated with tech media. The points are too biased to be called guidelines for ‘computer engineering’ students
Leave the school / college and DIY
Sounds like a post to become world class software developer, not computer engineer.
Computer Engineers are supposed to solve problems in a smart way, web developers are supposed to write code to show data from a DB to a web page.
And PHP is a strict no no. Ruby, Python, Java, C are all good, though the best foundations are made when you code in C.
Hi Abhishek,
Warm Greetings!
You are doing really a great job. The blog was interesting and also the information shared by Pankaj was correct.
My concern is will this sort of information be reached to all of the engg colleges ? If so at least we can a proportion of students, act accordingly by taking ur inputs or think to develop themselves in other ways.
Im surprised one tip is not mentioned in the main content nor any one has suggested till now.
Once you learn a scripting/web enabled language, get involved in a open source project. Learn as much as you can. Actively participate in mailing lists/fourms. Ask/answer questions in a proper way (also a learning aspect).
Once you have good hold on it, make sure you send in a proposal for Google’s summer of code. And make sure you land up with one before your 3rd year in college (assuming a 4year course).
Pathetic Article..
I’ve figured out that hate comment/mail => important topic and that people get most angry when confronted with sound logic which they can’t refute. The premise of the article is rock solid; even though the title digresses a little bit.