TechOnline India Header
Most Popular
Top 5 Courses
  • Fundamentals of Signal Integrity
  • Fundamentals of DSP
  • Fundamentals of MOSFETs for Switching
  • Fundamentals of Multicore Processing
  • Fundamentals of Microcontrollers
    Most Popular
    Top 5 Technical Papers
  • Digital Signal Processing: A Practical Guide (Part 1)
  • How to Inexpensively Design an ASIC in 5 Weeks
  • Digital Signal Processing: A Practical Guide (Part 2)
  • Digital Signal Processing: A Practical Guide (Part 5)
  • Digital Signal Processing: A Practical Guide (Part 4)
    Most Popular
    Top 5 Virtual Labs
  • MC9S12NE64
  • Texas Instruments eZ430-RF2500 Wireless Development Tool
  • MC9S08QG
    Most Popular
    Top 5 Webinars
  • Mutexes vs. Semaphores: How to Use Each Properly
  • An Overview of ADI's iSensor' Intelligent Motion-sensing Technology
  • The Big Design Squeeze: How to get faster design turns in FPGA-based designs
  • Learn how to run the uC/OS-III real-time kernel on an ARM Cortex M3
    All Articles Products Courses Papers VirtuaLabs Webinars
    Top Search Items
    zigbee
    microcontroller
    digital filter
    LTE
    xilinx


    Techpaper Spotlight

    Wind River
    Accelerating the Development of Embedded Linux Devices with JTAG On-Chip Debugging
        Login | Register | Welcome, Guest

    Topics
    POLL
    How much code have you produced in your career?
    A few KLOC
        37%
    100s of KLOC
        46%
    Millions of LOC
        11%
    A trillion
        6%
     



    97 Things Every Programmer Should Know
    There have been various attempts to compile a software body of knowledge. O'Reilly has another which is a work-in-progress.
    Embedded.com
    In an attempt to codify a knowledge base for developers, long ago the IEEE created the SWEBOK - the Software Engineering Body of Knowledge - which is being revised for 2010. There's a lot to like about their efforts to bring so much information in to a single package, but SWEBOK strikes me as more of a review document than an encyclopedia.

    Now the folks at O'Reilly are soliciting contributions for their own version of a fundamental body of knowledge for software folks, titled "97 Things Every Programmer Should Know" (click here to read the Introduction and here for their List of 97 Things).

    As I write this, 88 of the eventual 97 have been edited and posted. O'Reilly's rules are far less organized and considerably more ad hoc than the SWEBOK, but quite a bit more fun.

    Some of the rules are, to embedded people at least, truly trite. For instance, one submissions encourages programmer to "consider the hardware." In the bloatware world of PCs this is indeed good advice, but to those of us cramming five pounds of specs into 1K of flash, this is like saying "turn on the computer before firing up the IDE." (In fairness, the posting concludes with a tip o' the hat to embedded people.)

    Some are interestingly philosophical, and equally appealing. "Do lots of deliberate practice" advises actively stretching ones bounds, all of the time.

    Others are frustrating short on details. "Improved testability leads to better design" is a great idea! But the suggestions lack depth. "Hard work does not pay off" makes a great point, but how does one sell the idea to panicked management whose heads are ready to explode since the project is already six months late?

    But there are a lot of great aphorisms. "The boy scout rule" suggests always leaving the code cleaner than when you started working on it. "The professional programmer" advocates acting as true professionals that take responsibility for their work.

    The list is interesting, infuriating, thoughtful, incomplete, full of spurious thoughts but fun. It's worth a gander.

    (Editor's Note:. Jack's Embedded Poll Question this week: Is a single body of software know-how needed? To participate go to the Embedded.com Home Page.)

    Jack G. Ganssle is a lecturer and consultant on embedded development issues. He conducts seminars on embedded systems and helps companies with their embedded challenges. Contact him at jack@ganssle.com. His website is www.ganssle.com.

    1
     
     
    Latest Webinars
    · Distributor Brand Preference Study
    · Editorial Webinar: Optimized Linux Development Tools for Multicore
    · High-Power Amplifier Characterization using a Nonlinear Vector Network Analyzer
    · Completing LTE eNB Closed-loop Conformance Tests
    · Build Smart Products: Maximize return on investment through cross-discipline trade studies
     
    Member Company Spotlight
    VMETRO
     

    Learn more about real-time digital data recording, playback, readback and analysis. Schedule a personalized one-on-one data recording webinar today with VMETRO's Application Engineers.

    Member Companies

    Virtualab
    Freescale Semiconductor

    MC9S12NE64