Software Development Guide

By Sandeep Desai (http://www.thedesai.net/)

 

 

Quality of code is inversely proportional to the amount of code duplication

 

Successful projects

 

Typical problems in projects that fail

 

 

Coding style

 

 

Teamwork

·         At least two people know all the code, so that there is no single point of failure

·         Have proper code reviews for major code submission transactions

 

Architect

 

 

Individual

 

Manager/Tech Lead

 

Organizations

·         Allocate time for learning new skills

·         Hire fewer better programmers and pay them well. A good programmer can be 10 times more than a mediocre programmer

·          

 

Questions to ask when taking over a project

 

Initial issues

·         Architecture

·         Project Documentation (Design documents

·         Code

·         Database schema and code scripts

·         Database Data

·         Other Data such as XML files

·         Install and Deployment scripts

·          

 

Taking Over Project

 

Joining new Organization

 

 

References

 

Thinking in Java 3rd Edition

 

 

Programming Languages

 

 

The three types of programming languages in popular use are Compiled General Purpose such as C, C++ and Java. High level task specific languages such as SQL, perl, HTML  Perl, SQL and data definition languages such as XML.

 

The more esoteric and less common type of languages are functional languages like Lisp. Machine Code (Assembly language) for the Processor typically useful for writing device drivers.

 

A language is either compiled to machine code that can be directly understood by the processor or into some form of intermediate code which is then either interpreted or translated to machine code while the program is running. A language can also be interpreted such perl, SQL where the program is run directly.

 

Programming languages such as SQL can also be embedded into another language such as C, C++ or Java.

 

Types of Languages

 

 

The Basic Language features are

·         OOP

 

Language Tools

 

Data Structures and Algorithms

 

OOP Patterns

 

 

Languages

 

 

Machine Language

 

Assembly Language

 

 

 

C

 

C++

 

HTML

 

Java

 

Javascript

 

Jpython

 

Lex

 

Perl

 

PL/SQL

Oracles extensions to SQL to make it a general purpose programming language. Can create stored procedures inside the database

Python

 

SQL

 

XML

 

yacc/bison

 

 

 

 

 

Links