Tuesday, September 30, 2008

Traits of a Java Software Developer

  • Mastery of version control system
    • Check out
    • Check in
    • see which files you modified or created
    • Add new files to version control
    • Branch
    • Merge branch into trunk
    • Revert changes
    • Rename files in version control
  • Ant / Mavan
    • Be able to read a build script
    • copy target
    • jar, war, compile, deploy, test, targets
  • Charting
    • Create pi-charts, bar-charts from Java objects using JFreeChart
    • Put tool-tip or hover on certain parts of the graph
    • Custom axis labels and ranges
    • Use Google charts to serve up images in web pages.
  • Database
    • Create a table with a PK, required, default values with data types of int, boolean, varchar, date, timestamp,
    • Insert data into tables,
    • Create foreign-key constraints
    • Sort in ASC or DESC order by one or more fields
    • Filter
    • Join (inner, outer, left and right outer joins)
    • Common syntax in MSSQL, MySQL, Oracle,
    • Create index, composite index,
  • JDBC
    • query db to get count
    • query db to get a list of items
    • Update or or more rows in db
    • bind int, bool, double, string, date, timestamp data types
    • Call a stored proc
    • closing statements and connections.
    • connection pools
  • Java
    • Interface vs. Class vs. abstract class,
    • enum
    • regex pattern matching (java.util.regex)
    • Guru of collections.
  • Web applications
    • cookie management from servlets
    • response encoding for PDF and GIF and TXT, HTML
    • Form based authentication
    • Authenticating against a DB or a LDAP realm
    • Redirects,
    • HTTP response codes
    • Servlet threading model
  • Logging
    • Log4J configuration
    • Logging in production vs. development
    • Log rotation
    • Basic grep knowledge to find info in logs
  • Debugging
    • Remote debugging using Eclipse, Idea, NetBeans
    • Change var values on the fly to simulate certain conditions
    • Wireshark, Firebug, Temper to monitor HTTP request and response
    • Cause an error, deliberately throw an exception of your choice to ensure proper handling.
  • Deployment
    • manage a Tomcat deployment
    • Package a war
    • Deploy
  • Basic Unix commands
    • chmod, chown, grep, find, scp, ssh,