Database Programming or   Application Design with Databases or   The Guest Lecture Dr. Shen Asked Me To Do Matthew Batchel...
Ye Olde Overview <ul><li>My Background </li></ul><ul><li>My Project Background </li></ul><ul><li>Application Design Proces...
Me
Background <ul><li>PSU Graduate (PSC, actually) </li></ul><ul><li>PSU ITS </li></ul><ul><ul><li>Help Desk </li></ul></ul><...
Project Background <ul><li>As a Student </li></ul><ul><ul><li>Database Class </li></ul></ul><ul><ul><li>Senior Project </l...
Application Design Process
Application Design Process <ul><li>Analysis </li></ul><ul><ul><li>If you are beginning an application, there is undoubtedl...
Application Design Process <ul><li>Choosing Your Language </li></ul><ul><ul><li>Use what is appropriate </li></ul></ul><ul...
Application Design Process <ul><li>Database Design </li></ul><ul><ul><li>This is the application’s foundation </li></ul></...
Application Design Process <ul><li>Interface Design </li></ul><ul><ul><li>Storyboard </li></ul></ul><ul><ul><ul><li>The Wh...
Application Design Process <ul><li>Development </li></ul><ul><ul><li>Develop in chunks </li></ul></ul><ul><ul><li>Database...
The Industry
Industry <ul><li>Where it was </li></ul><ul><ul><li>Desktop Applications </li></ul></ul><ul><ul><ul><li>Full featured </li...
Industry <ul><li>Where it is </li></ul><ul><ul><li>Desktop Applications </li></ul></ul><ul><ul><ul><li>Full featured </li>...
Industry <ul><li>Where its going </li></ul><ul><ul><li>Who the *bleep* knows? </li></ul></ul><ul><ul><li>Keep an eye on </...
Stuff I’ve Learned
Stuff I’ve Learned <ul><li>Do your own thing </li></ul><ul><ul><li>If you run into an issue search for the answer online… ...
Stuff I’ve Learned (cont.) <ul><li>Design your Database…don’t just build it </li></ul><ul><ul><li>Its one thing to accompl...
Suggestions <ul><li>Senior Projects and School Projects </li></ul><ul><ul><li>These  can  be good…nice learning tools but ...
More Specifically <ul><li>Become  great  at Database Design </li></ul><ul><li>Pick a language and become  an expert </li><...
Success Stories <ul><li>Example “side project” success stories </li></ul><ul><ul><li>College Humor </li></ul></ul><ul><ul>...
The end.
Upcoming SlideShare
Loading in …5
×

PSU Guest Lecture: Database Programming

8,548 views

Published on

I had the privilege of being a guest speaker at Plymouth State University's Database Management class. The focus of the lecture was regarding Web Application Design and how it relates to database integration. The discussion centered around my experiences thus far with development with databases and tips I could give.

Published in: Technology, Business
0 Comments
4 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
8,548
On SlideShare
0
From Embeds
0
Number of Embeds
85
Actions
Shares
0
Downloads
0
Comments
0
Likes
4
Embeds 0
No embeds

No notes for slide

PSU Guest Lecture: Database Programming

  1. 1. Database Programming or Application Design with Databases or The Guest Lecture Dr. Shen Asked Me To Do Matthew Batchelder Web Application Engineer ITS
  2. 2. Ye Olde Overview <ul><li>My Background </li></ul><ul><li>My Project Background </li></ul><ul><li>Application Design Process </li></ul><ul><ul><li>Analysis </li></ul></ul><ul><ul><li>Language Selection </li></ul></ul><ul><ul><li>Database Design </li></ul></ul><ul><ul><li>Interface Design </li></ul></ul><ul><ul><li>Development </li></ul></ul><ul><ul><li>The Sweet Stuff </li></ul></ul><ul><li>Industry </li></ul><ul><ul><li>Where it was </li></ul></ul><ul><ul><li>Where it is </li></ul></ul><ul><ul><li>Where its going </li></ul></ul><ul><li>Stuff I’ve Learned </li></ul><ul><li>Suggestions </li></ul>
  3. 3. Me
  4. 4. Background <ul><li>PSU Graduate (PSC, actually) </li></ul><ul><li>PSU ITS </li></ul><ul><ul><li>Help Desk </li></ul></ul><ul><ul><li>PHP/Java Programmer </li></ul></ul><ul><ul><li>Registrar PL/SQL Programmer </li></ul></ul><ul><ul><li>“ Web Application Engineer” </li></ul></ul><ul><ul><ul><li>Database Design </li></ul></ul></ul><ul><ul><ul><li>Front-end Design </li></ul></ul></ul><ul><ul><ul><li>Javascript </li></ul></ul></ul><ul><ul><ul><li>PHP </li></ul></ul></ul><ul><ul><ul><li>PL/SQL </li></ul></ul></ul><ul><li>I’m a Blogger ( BorkWeb ) </li></ul>
  5. 5. Project Background <ul><li>As a Student </li></ul><ul><ul><li>Database Class </li></ul></ul><ul><ul><li>Senior Project </li></ul></ul><ul><ul><li>On the Side (I’m a Geek) </li></ul></ul><ul><ul><ul><li>Star Wars (Emperor’s Hammer) </li></ul></ul></ul><ul><ul><ul><li>Uber-Geeks Site </li></ul></ul></ul><ul><ul><ul><li>Random Database Projects </li></ul></ul></ul><ul><li>As an Employee </li></ul><ul><ul><li>Lots of Misc. Apps </li></ul></ul><ul><ul><li>On the Side (I’m still a Geek) </li></ul></ul><ul><ul><ul><li>BorkWeb </li></ul></ul></ul><ul><ul><ul><li>Uber-Geeks Site </li></ul></ul></ul><ul><ul><ul><li>MasterWish </li></ul></ul></ul><ul><ul><ul><li>Random Database Projects </li></ul></ul></ul>
  6. 6. Application Design Process
  7. 7. Application Design Process <ul><li>Analysis </li></ul><ul><ul><li>If you are beginning an application, there is undoubtedly a problem/inefficiency that needs a solution. </li></ul></ul><ul><ul><li>Compile a list of application needs </li></ul></ul><ul><ul><li>Build process maps: Map out </li></ul></ul><ul><ul><ul><li>Uses of the application </li></ul></ul></ul><ul><ul><ul><li>Data flows </li></ul></ul></ul><ul><ul><li>Analyze to root out inefficiencies </li></ul></ul>
  8. 8. Application Design Process <ul><li>Choosing Your Language </li></ul><ul><ul><li>Use what is appropriate </li></ul></ul><ul><ul><ul><li>Weigh: </li></ul></ul></ul><ul><ul><ul><ul><li>Your development capabilities </li></ul></ul></ul></ul><ul><ul><ul><ul><li>Time constraints </li></ul></ul></ul></ul><ul><ul><ul><ul><li>Language suitability </li></ul></ul></ul></ul><ul><ul><li>Thus far, I’ve opted for PHP in most cases </li></ul></ul>
  9. 9. Application Design Process <ul><li>Database Design </li></ul><ul><ul><li>This is the application’s foundation </li></ul></ul><ul><ul><li>Know your data </li></ul></ul><ul><ul><li>The Whiteboard is your friend </li></ul></ul>
  10. 10. Application Design Process <ul><li>Interface Design </li></ul><ul><ul><li>Storyboard </li></ul></ul><ul><ul><ul><li>The Whiteboard is still your friend </li></ul></ul></ul><ul><ul><ul><li>Oh, and paper too </li></ul></ul></ul><ul><ul><li>Graphics/Colors/Document Structure </li></ul></ul><ul><ul><li>It is extremely important to know what your application should look like! </li></ul></ul>
  11. 11. Application Design Process <ul><li>Development </li></ul><ul><ul><li>Develop in chunks </li></ul></ul><ul><ul><li>Database Abstraction </li></ul></ul><ul><ul><ul><li>PHP: ADOdb & Pear </li></ul></ul></ul><ul><ul><li>Modularization </li></ul></ul><ul><ul><ul><li>OO is where its at </li></ul></ul></ul><ul><ul><li>Templatization </li></ul></ul><ul><ul><ul><li>SmartyTemplates & XTemplates </li></ul></ul></ul><ul><li>The Sweet Stuff </li></ul><ul><ul><li>Javascript </li></ul></ul><ul><ul><li>XHR </li></ul></ul>
  12. 12. The Industry
  13. 13. Industry <ul><li>Where it was </li></ul><ul><ul><li>Desktop Applications </li></ul></ul><ul><ul><ul><li>Full featured </li></ul></ul></ul><ul><ul><ul><li>Updates difficult </li></ul></ul></ul><ul><ul><li>Web-based Interfaces </li></ul></ul><ul><ul><ul><li>Limited features </li></ul></ul></ul><ul><ul><ul><ul><li>Well, Java Applets or ActiveX helped on the feature front…but both came with their own set of problems </li></ul></ul></ul></ul><ul><ul><ul><li>Updates a cinch </li></ul></ul></ul><ul><ul><ul><ul><li>Or…semi-cinch depending on your language of choice </li></ul></ul></ul></ul>
  14. 14. Industry <ul><li>Where it is </li></ul><ul><ul><li>Desktop Applications </li></ul></ul><ul><ul><ul><li>Full featured </li></ul></ul></ul><ul><ul><ul><li>Updates difficult </li></ul></ul></ul><ul><ul><li>Web-based Applications </li></ul></ul><ul><ul><ul><li>Full featured </li></ul></ul></ul><ul><ul><ul><li>Updates a cinch </li></ul></ul></ul><ul><ul><ul><ul><li>Or…semi-cinch depending on your language of choice </li></ul></ul></ul></ul><ul><ul><ul><li>Why the change? </li></ul></ul></ul><ul><ul><ul><ul><li>Web 2.0 & AJAX & Ajax </li></ul></ul></ul></ul>
  15. 15. Industry <ul><li>Where its going </li></ul><ul><ul><li>Who the *bleep* knows? </li></ul></ul><ul><ul><li>Keep an eye on </li></ul></ul><ul><ul><ul><li>Ajax </li></ul></ul></ul><ul><ul><ul><li>Web 2.0 </li></ul></ul></ul><ul><ul><ul><ul><li>Collaboration </li></ul></ul></ul></ul><ul><ul><ul><ul><li>RSS & Remixability </li></ul></ul></ul></ul><ul><ul><ul><ul><li>Usability </li></ul></ul></ul></ul><ul><ul><ul><li>Accessibility </li></ul></ul></ul>
  16. 16. Stuff I’ve Learned
  17. 17. Stuff I’ve Learned <ul><li>Do your own thing </li></ul><ul><ul><li>If you run into an issue search for the answer online… </li></ul></ul><ul><ul><ul><li>ask friends and/or instructors for answers only as a last resort …when you’re at a job…chances are, no one knows the answer near you. Get used to it. </li></ul></ul></ul><ul><li>Brainstorm DB Design on Paper </li></ul><ul><ul><li>When you have an idea, jot it down on paper or the whiteboard then leave it. Come back later and look at it again, you’ll be sure to find inefficiencies. </li></ul></ul>
  18. 18. Stuff I’ve Learned (cont.) <ul><li>Design your Database…don’t just build it </li></ul><ul><ul><li>Its one thing to accomplish a task…it’s a completely different thing to do it correctly – Where “correctly” means: </li></ul></ul><ul><ul><ul><li>Re-usable </li></ul></ul></ul><ul><ul><ul><li>Sustainable </li></ul></ul></ul><ul><ul><ul><li>Versatile </li></ul></ul></ul><ul><ul><li>I find it useful to throw a design on the board and critique it aloud and (if possible) with another designer in the room. </li></ul></ul><ul><ul><ul><li>Ideas can be bounced back and forth and inefficiencies found before any coding has been done </li></ul></ul></ul><ul><li>Design your Interface…don’t just build it </li></ul><ul><ul><li>A solid set of mockups saves time and code. Scratch it down on paper before coding. Get a general idea about how your pages should contain and manipulate your data. </li></ul></ul>
  19. 19. Suggestions <ul><li>Senior Projects and School Projects </li></ul><ul><ul><li>These can be good…nice learning tools but they typically won’t get you very far </li></ul></ul><ul><ul><li>And 9 times out of 10 they won’t land you a job </li></ul></ul><ul><li>Study on your own </li></ul><ul><ul><li>Blog & Read Blogs </li></ul></ul><ul><ul><ul><li>Jon Emmons is a Oracle Database Blogging success story! </li></ul></ul></ul><ul><ul><li>Learn what is new and changing </li></ul></ul><ul><li>Do your own projects </li></ul><ul><ul><li>You aren’t going to know jack if you don’t play </li></ul></ul><ul><ul><li>Make mistakes and get pissed at yourself then learn from your errors </li></ul></ul><ul><li>Do someone else’s projects </li></ul><ul><ul><li>If you can’t come up with your own ideas, join a SourceForge project that interests you </li></ul></ul>
  20. 20. More Specifically <ul><li>Become great at Database Design </li></ul><ul><li>Pick a language and become an expert </li></ul><ul><li>Learn Javascript in depth </li></ul><ul><li>Learn to optimize your database </li></ul><ul><li>Learn to optimize your code </li></ul><ul><li>Like what you do and prove it by doing something </li></ul>
  21. 21. Success Stories <ul><li>Example “side project” success stories </li></ul><ul><ul><li>College Humor </li></ul></ul><ul><ul><ul><li>51% of college humor sold for ~$20 million </li></ul></ul></ul><ul><ul><li>Flickr </li></ul></ul><ul><ul><ul><li>Yahoo bought this for $30-$40 million </li></ul></ul></ul><ul><ul><li>MySpace </li></ul></ul><ul><ul><ul><li>Sold for $580 million </li></ul></ul></ul><ul><ul><li>Facebook </li></ul></ul><ul><ul><ul><li>Owners turn down $750 million offer </li></ul></ul></ul><ul><ul><li>YouTube </li></ul></ul><ul><ul><ul><li>Sold to Google for $1.65 billion </li></ul></ul></ul><ul><li>Sadly…I didn’t develop any of them  </li></ul>
  22. 22. The end.

×