Showing posts with label Programming. Show all posts
Showing posts with label Programming. Show all posts

Sunday, December 30, 2007

Do engineers really do R&D?

Embedded Guru - Jack Ganssle has a column on embedded.com called Breakpoints. A highly recommended read if you are or want to be a embedded systems developer. Recently Jack wrote a nice article on what actually R&D is meant for and what actually it is. I would like to post that small article over here or else you can have a look at it @ Breakpoints

"Research and Development. R&D. It's the lifeblood of tech companies, and it's what we engineers do all day, every day.

Nonsense.

There's no such thing as R&D. There's R, and there's D, and the two are completely separate activities.

Research is all about discovering new things. It's the science that ultimately enables the products we build, the metaphorical man-behind-the-curtain pulling the levers to control the machines we create.

Research might also involve discovering new algorithms, like new ways to smooth signals or compress data. "New" might mean new to us but not to the world. So we research an idea or a need, and then switch to development mode. The result of research is an approach that one can then implement.

Development is taking known ideas and using them to build products. That's the bulk of an engineer's work. We transform an algorithm to something physical, like converting a CRC algorithm to C code, to VHDL inside an FPGA, or to logic components.

One of my top ten reasons for failed projects is "bad science," or the inability to separate R from D. When a company starts building a product before really understanding what is being measured the schedule is doomed. Start coding an algorithm without it being sharply defined and, at best, you'll wander aimlessly till, with luck, settling on an approach that works.

Research simply can't be scheduled. If you don't believe that, please develop a (realistic) schedule for discovering the cure for cancer.

You might be able to guesstimate simple research schedules, like doing a search for a known algorithm, but even that is, in my experience, very difficult to estimate. The first "Eureka" is often followed by disappointment when a little experimenting reveals some fatal flaw, requiring more research to find a better approach.

Yet I constantly see teams conflating R and D, leading inevitably to late or failed projects.

Sure, there are some projects that necessarily pursue R and D in parallel. But those care rarely be scheduled with any accuracy.

What do you think? Have you ever had a project disaster because you were doing R and the same time as D?"
-- Jack Ganssle

Wednesday, May 30, 2007

A myth called the Indian programmer

Are u a programmer? Are u an indian? Then this is a must read article for you. A Times of India article in which the author explains the indian software industry scenario - true to the core! A must read article - Click Here

Wednesday, February 14, 2007

Hello World Collection

"Hello World" is the first program one usually writes when learning a new programming language. This collection includes 311 Hello World programs in many more-or-less well known programming languages, plus 51 human languages.

http://www.roesler-ac.de/wolfram/hello.html

Friday, January 19, 2007

Nice Quote

I read this quote while browsing...This really matches my thinking...


Joel Spolsky from JoelOnSoftware.com says this about "Programming from Ground Up":

"Trying to be a programmer without understanding how a CPU works is like trying to practice medicine without learning anatomy. Sure, you can have limited success curing patients with medical advice gleaned from Google, but on the whole you're going to be a pretty bad doctor. For those who missed out on learning assembly language, I highly recommend working through this book, even if you'll never program in assembly again. I promise that all kinds of lights will go on in your head and you'll be a vastly better programmer."

Programming from the ground up


Today i found a nice free e book "Programming from the ground up" . This book is an introduction to programming using Linux Assembly language.

Programming from the Ground Up uses Linux assembly language to take you a step at a time through these concepts:

  • How the processor views memory
  • How the processor operates
  • How programs interact with the operating system
  • How computers represent data internally
  • How to do low-level and high-level optimization
The book can be freely downloaded from download.savannah.nongnu.org/releases/pgubook/ProgrammingGroundUp-1-0-booksize.pdf I have read a first few chapters and believe me..Its really amazing. The way the book makes us think while programming is quite extra ordinary. Even the computer architecture (complex thing..isnt it?) has been explained in a very good manner. Even a non electronics guy can understand the working.. It is that easily explained.Must Read for any programmer even if you are not going to work in assembly at any point in your life..But this will surely change the way you think when you program.